[ Sasha's backport helper bot ]
Hi,
Found matching upstream commit: f7d306b47a24367302bd4fe846854e07752ffcd9
WARNING: Author mismatch between patch and found commit: Backport author: "=?UTF-8?q?Beno=C3=AEt=20Sevens?=" bsevens@google.com Commit author: Dan Carpenter dan.carpenter@linaro.org
Status in newer kernel trees: 6.12.y | Present (different SHA1: 7f1292f8d4d6) 6.6.y | Not found 6.1.y | Not found 5.15.y | Not found
Note: The patch differs from the upstream commit: --- 1: f7d306b47a24 ! 1: c80406b311f1 ALSA: usb-audio: Fix a DMA to stack memory bug @@ Commit message Signed-off-by: Dan Carpenter dan.carpenter@linaro.org Link: https://patch.msgid.link/60e3aa09-039d-46d2-934c-6f123026c2eb@stanley.mounta... Signed-off-by: Takashi Iwai tiwai@suse.de + (cherry picked from commit f7d306b47a24367302bd4fe846854e07752ffcd9) + [Benoît: there is no mbox3 suppport and no __free macro in 5.15] + Signed-off-by: Benoît Sevens bsevens@google.com
## sound/usb/quirks.c ## @@ sound/usb/quirks.c: int snd_usb_create_quirk(struct snd_usb_audio *chip, @@ sound/usb/quirks.c: static int snd_usb_mbox2_boot_quirk(struct usb_device *dev)
err = usb_reset_configuration(dev); if (err < 0) -@@ sound/usb/quirks.c: static void mbox3_setup_defaults(struct usb_device *dev) - static int snd_usb_mbox3_boot_quirk(struct usb_device *dev) - { - struct usb_host_config *config = dev->actconfig; -- struct usb_device_descriptor new_device_descriptor; -+ struct usb_device_descriptor *new_device_descriptor __free(kfree) = NULL; - int err; - int descriptor_size; - -@@ sound/usb/quirks.c: static int snd_usb_mbox3_boot_quirk(struct usb_device *dev) - - dev_dbg(&dev->dev, "MBOX3: device initialised!\n"); - -+ new_device_descriptor = kmalloc(sizeof(*new_device_descriptor), GFP_KERNEL); -+ if (!new_device_descriptor) -+ return -ENOMEM; -+ - err = usb_get_descriptor(dev, USB_DT_DEVICE, 0, -- &new_device_descriptor, sizeof(new_device_descriptor)); -+ new_device_descriptor, sizeof(*new_device_descriptor)); - if (err < 0) - dev_dbg(&dev->dev, "MBOX3: error usb_get_descriptor: %d\n", err); -- if (new_device_descriptor.bNumConfigurations > dev->descriptor.bNumConfigurations) -+ if (new_device_descriptor->bNumConfigurations > dev->descriptor.bNumConfigurations) - dev_dbg(&dev->dev, "MBOX3: error too large bNumConfigurations: %d\n", -- new_device_descriptor.bNumConfigurations); -+ new_device_descriptor->bNumConfigurations); - else -- memcpy(&dev->descriptor, &new_device_descriptor, sizeof(dev->descriptor)); -+ memcpy(&dev->descriptor, new_device_descriptor, sizeof(dev->descriptor)); - - err = usb_reset_configuration(dev); - if (err < 0) ---
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-5.15.y | Success | Failed |
Build Errors: Build error for stable/linux-5.15.y: sound/usb/quirks.c: In function 'snd_usb_extigy_boot_quirk': sound/usb/quirks.c:594:61: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__free' 594 | struct usb_device_descriptor *new_device_descriptor __free(kfree) = NULL; | ^~~~~~ sound/usb/quirks.c:594:61: error: implicit declaration of function '__free'; did you mean 'kvfree'? [-Werror=implicit-function-declaration] 594 | struct usb_device_descriptor *new_device_descriptor __free(kfree) = NULL; | ^~~~~~ | kvfree sound/usb/quirks.c:594:75: error: lvalue required as left operand of assignment 594 | struct usb_device_descriptor *new_device_descriptor __free(kfree) = NULL; | ^ sound/usb/quirks.c:595:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] 595 | int err; | ^~~ sound/usb/quirks.c:606:17: error: 'new_device_descriptor' undeclared (first use in this function); did you mean 'usb_device_descriptor'? 606 | new_device_descriptor = kmalloc(sizeof(*new_device_descriptor), GFP_KERNEL); | ^~~~~~~~~~~~~~~~~~~~~ | usb_device_descriptor sound/usb/quirks.c:606:17: note: each undeclared identifier is reported only once for each function it appears in sound/usb/quirks.c: In function 'snd_usb_mbox2_boot_quirk': sound/usb/quirks.c:949:61: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__free' 949 | struct usb_device_descriptor *new_device_descriptor __free(kfree) = NULL; | ^~~~~~ sound/usb/quirks.c:949:75: error: lvalue required as left operand of assignment 949 | struct usb_device_descriptor *new_device_descriptor __free(kfree) = NULL; | ^ sound/usb/quirks.c:950:9: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] 950 | int err; | ^~~ sound/usb/quirks.c:984:9: error: 'new_device_descriptor' undeclared (first use in this function); did you mean 'usb_device_descriptor'? 984 | new_device_descriptor = kmalloc(sizeof(*new_device_descriptor), GFP_KERNEL); | ^~~~~~~~~~~~~~~~~~~~~ | usb_device_descriptor cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:289: sound/usb/quirks.o] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [scripts/Makefile.build:552: sound/usb] Error 2 make[1]: Target '__build' not remade because of errors. make: *** [Makefile:1906: sound] Error 2 make: Target '__all' not remade because of errors.