[ Sasha's backport helper bot ] Hi, Summary of potential issues: ⚠️ Found matching upstream commit but patch is missing proper reference to it ℹ️ Patch is missing in 6.13.y (ignore if backport was sent) ⚠️ Commit missing in all newer stable branches Found matching upstream commit: 8004d635f27bbccaa5c083c50d4d5302a6ffa00e WARNING: Author mismatch between patch and found commit: Backport author: Ricardo Ribalda<ribalda@xxxxxxxxxxxx> Commit author: Thadeu Lima de Souza Cascardo<cascardo@xxxxxxxxxx> Status in newer kernel trees: 6.13.y | Present (different SHA1: 69d44bc03db2) 6.12.y | Present (different SHA1: 0a14a2b84177) 6.6.y | Present (different SHA1: a80f82d31ca6) 6.1.y | Present (different SHA1: 996ca83c4610) 5.15.y | Present (different SHA1: 367c47db178d) 5.4.y | Not found Note: The patch differs from the upstream commit: --- 1: 8004d635f27bb ! 1: 891a75127ec4c Revert "media: uvcvideo: Require entities to have a non-zero unique ID" @@ Commit message Reviewed-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx> Link: https://lore.kernel.org/r/20250114200045.1401644-1-cascardo@xxxxxxxxxx Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> + (cherry picked from commit 8004d635f27bbccaa5c083c50d4d5302a6ffa00e) ## drivers/media/usb/uvc/uvc_driver.c ## -@@ drivers/media/usb/uvc/uvc_driver.c: static const u8 uvc_media_transport_input_guid[16] = - UVC_GUID_UVC_MEDIA_TRANSPORT_INPUT; - static const u8 uvc_processing_guid[16] = UVC_GUID_UVC_PROCESSING; +@@ drivers/media/usb/uvc/uvc_driver.c: static int uvc_parse_streaming(struct uvc_device *dev, + return ret; + } -static struct uvc_entity *uvc_alloc_new_entity(struct uvc_device *dev, u16 type, - u16 id, unsigned int num_pads, - unsigned int extra_size) -+static struct uvc_entity *uvc_alloc_entity(u16 type, u16 id, ++static struct uvc_entity *uvc_alloc_entity(u16 type, u8 id, + unsigned int num_pads, unsigned int extra_size) { struct uvc_entity *entity; @@ drivers/media/usb/uvc/uvc_driver.c: static int uvc_parse_vendor_control(struct u + if (unit == NULL) + return -ENOMEM; - memcpy(unit->guid, &buffer[4], 16); + memcpy(unit->extension.guidExtensionCode, &buffer[4], 16); unit->extension.bNumControls = buffer[20]; @@ drivers/media/usb/uvc/uvc_driver.c: static int uvc_parse_standard_control(struct uvc_device *dev, return -EINVAL; @@ drivers/media/usb/uvc/uvc_driver.c: static int uvc_parse_standard_control(struct + if (unit == NULL) + return -ENOMEM; - memcpy(unit->guid, &buffer[4], 16); + memcpy(unit->extension.guidExtensionCode, &buffer[4], 16); unit->extension.bNumControls = buffer[20]; -@@ drivers/media/usb/uvc/uvc_driver.c: static int uvc_gpio_parse(struct uvc_device *dev) - return dev_err_probe(&dev->intf->dev, irq, - "No IRQ for privacy GPIO\n"); - -- unit = uvc_alloc_new_entity(dev, UVC_EXT_GPIO_UNIT, -- UVC_EXT_GPIO_UNIT_ID, 0, 1); -- if (IS_ERR(unit)) -- return PTR_ERR(unit); -+ unit = uvc_alloc_entity(UVC_EXT_GPIO_UNIT, UVC_EXT_GPIO_UNIT_ID, 0, 1); -+ if (!unit) -+ return -ENOMEM; - - unit->gpio.gpio_privacy = gpio_privacy; - unit->gpio.irq = irq; --- Results of testing on various branches: | Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-5.10.y | Success | Success |