Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'sound-6.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"The first new year pull request: no surprises, all small fixes,
including:

- Follow-up fixes for the new compress-offload API extension

- A couple of fixes for MIDI 2.0 UMP handling

- A trivial race fix for OSS sequencer emulation ioctls

- USB-audio and HD-audio fixes / quirks"

* tag 'sound-6.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: seq: Check UMP support for midi_version change
ALSA hda/realtek: Add quirk for Framework F111:000C
Revert "ALSA: ump: Don't enumeration invalid groups for legacy rawmidi"
ALSA: seq: oss: Fix races at processing SysEx messages
ALSA: compress_offload: fix remaining descriptor races in sound/core/compress_offload.c
ALSA: compress_offload: Drop unneeded no_free_ptr()
ALSA: hda/tas2781: Ignore SUBSYS_ID not found for tas2563 projects
ALSA: usb-audio: US16x08: Initialize array before use

+25 -12
+6 -6
sound/core/compress_offload.c
··· 1053 1053 put_unused_fd(fd_i); 1054 1054 goto cleanup; 1055 1055 } 1056 + /* keep dmabuf reference until freed with task free ioctl */ 1057 + get_dma_buf(task->input); 1058 + get_dma_buf(task->output); 1056 1059 fd_install(fd_i, task->input->file); 1057 1060 fd_install(fd_o, task->output->file); 1058 1061 utask->input_fd = fd_i; 1059 1062 utask->output_fd = fd_o; 1060 - /* keep dmabuf reference until freed with task free ioctl */ 1061 - dma_buf_get(utask->input_fd); 1062 - dma_buf_get(utask->output_fd); 1063 1063 list_add_tail(&task->list, &stream->runtime->tasks); 1064 1064 stream->runtime->total_tasks++; 1065 1065 return 0; ··· 1077 1077 return -EPERM; 1078 1078 task = memdup_user((void __user *)arg, sizeof(*task)); 1079 1079 if (IS_ERR(task)) 1080 - return PTR_ERR(no_free_ptr(task)); 1080 + return PTR_ERR(task); 1081 1081 retval = snd_compr_task_new(stream, task); 1082 1082 if (retval >= 0) 1083 1083 if (copy_to_user((void __user *)arg, task, sizeof(*task))) ··· 1138 1138 return -EPERM; 1139 1139 task = memdup_user((void __user *)arg, sizeof(*task)); 1140 1140 if (IS_ERR(task)) 1141 - return PTR_ERR(no_free_ptr(task)); 1141 + return PTR_ERR(task); 1142 1142 retval = snd_compr_task_start(stream, task); 1143 1143 if (retval >= 0) 1144 1144 if (copy_to_user((void __user *)arg, task, sizeof(*task))) ··· 1229 1229 return -EPERM; 1230 1230 status = memdup_user((void __user *)arg, sizeof(*status)); 1231 1231 if (IS_ERR(status)) 1232 - return PTR_ERR(no_free_ptr(status)); 1232 + return PTR_ERR(status); 1233 1233 retval = snd_compr_task_status(stream, status); 1234 1234 if (retval >= 0) 1235 1235 if (copy_to_user((void __user *)arg, status, sizeof(*status)))
+2
sound/core/seq/oss/seq_oss_synth.c
··· 66 66 }; 67 67 68 68 static DEFINE_SPINLOCK(register_lock); 69 + static DEFINE_MUTEX(sysex_mutex); 69 70 70 71 /* 71 72 * prototypes ··· 498 497 if (!info) 499 498 return -ENXIO; 500 499 500 + guard(mutex)(&sysex_mutex); 501 501 sysex = info->sysex; 502 502 if (sysex == NULL) { 503 503 sysex = kzalloc(sizeof(*sysex), GFP_KERNEL);
+10 -4
sound/core/seq/seq_clientmgr.c
··· 1275 1275 if (client->type != client_info->type) 1276 1276 return -EINVAL; 1277 1277 1278 - /* check validity of midi_version field */ 1279 - if (client->user_pversion >= SNDRV_PROTOCOL_VERSION(1, 0, 3) && 1280 - client_info->midi_version > SNDRV_SEQ_CLIENT_UMP_MIDI_2_0) 1281 - return -EINVAL; 1278 + if (client->user_pversion >= SNDRV_PROTOCOL_VERSION(1, 0, 3)) { 1279 + /* check validity of midi_version field */ 1280 + if (client_info->midi_version > SNDRV_SEQ_CLIENT_UMP_MIDI_2_0) 1281 + return -EINVAL; 1282 + 1283 + /* check if UMP is supported in kernel */ 1284 + if (!IS_ENABLED(CONFIG_SND_SEQ_UMP) && 1285 + client_info->midi_version > 0) 1286 + return -EINVAL; 1287 + } 1282 1288 1283 1289 /* fill the info fields */ 1284 1290 if (client_info->name[0])
+1 -1
sound/core/ump.c
··· 1244 1244 1245 1245 num = 0; 1246 1246 for (i = 0; i < SNDRV_UMP_MAX_GROUPS; i++) 1247 - if ((group_maps & (1U << i)) && ump->groups[i].valid) 1247 + if (group_maps & (1U << i)) 1248 1248 ump->legacy_mapping[num++] = i; 1249 1249 1250 1250 return num;
+1
sound/pci/hda/patch_realtek.c
··· 11009 11009 SND_PCI_QUIRK(0xf111, 0x0001, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), 11010 11010 SND_PCI_QUIRK(0xf111, 0x0006, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), 11011 11011 SND_PCI_QUIRK(0xf111, 0x0009, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), 11012 + SND_PCI_QUIRK(0xf111, 0x000c, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE), 11012 11013 11013 11014 #if 0 11014 11015 /* Below is a quirk table taken from the old code.
+4
sound/pci/hda/tas2781_hda_i2c.c
··· 142 142 } 143 143 sub = acpi_get_subsystem_id(ACPI_HANDLE(physdev)); 144 144 if (IS_ERR(sub)) { 145 + /* No subsys id in older tas2563 projects. */ 146 + if (!strncmp(hid, "INT8866", sizeof("INT8866"))) 147 + goto end_2563; 145 148 dev_err(p->dev, "Failed to get SUBSYS ID.\n"); 146 149 ret = PTR_ERR(sub); 147 150 goto err; ··· 167 164 p->speaker_id = NULL; 168 165 } 169 166 167 + end_2563: 170 168 acpi_dev_free_resource_list(&resources); 171 169 strscpy(p->dev_name, hid, sizeof(p->dev_name)); 172 170 put_device(physdev);
+1 -1
sound/usb/mixer_us16x08.c
··· 687 687 struct usb_mixer_elem_info *elem = kcontrol->private_data; 688 688 struct snd_usb_audio *chip = elem->head.mixer->chip; 689 689 struct snd_us16x08_meter_store *store = elem->private_data; 690 - u8 meter_urb[64]; 690 + u8 meter_urb[64] = {0}; 691 691 692 692 switch (kcontrol->private_value) { 693 693 case 0: {