kernel: bump 4.19 to 4.19.19
[openwrt/staging/chunkeey.git] / target / linux / generic / backport-4.19 / 800-v5.0-usb-leds-fix-regression-in-usbport-led-trigger.patch
diff --git a/target/linux/generic/backport-4.19/800-v5.0-usb-leds-fix-regression-in-usbport-led-trigger.patch b/target/linux/generic/backport-4.19/800-v5.0-usb-leds-fix-regression-in-usbport-led-trigger.patch
deleted file mode 100644 (file)
index 11a0592..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-From 91f7d2e89868fcac0e750a28230fdb1ad4512137 Mon Sep 17 00:00:00 2001
-From: Christian Lamparter <chunkeey@gmail.com>
-Date: Fri, 11 Jan 2019 17:29:45 +0100
-Subject: USB: leds: fix regression in usbport led trigger
-
-The patch "usb: simplify usbport trigger" together with "leds: triggers:
-add device attribute support" caused an regression for the usbport
-trigger. it will no longer enumerate any active usb hub ports under the
-"ports" directory in the sysfs class directory, if the usb host drivers
-are fully initialized before the usbport trigger was loaded.
-
-The reason is that the usbport driver tries to register the sysfs
-entries during the activate() callback. And this will fail with -2 /
-ENOENT because the patch "leds: triggers: add device attribute support"
-made it so that the sysfs "ports" group was only being added after the
-activate() callback succeeded.
-
-This version of the patch reverts parts of the "usb: simplify usbport
-trigger" patch and restores usbport trigger's functionality.
-
-Fixes: 6f7b0bad8839 ("usb: simplify usbport trigger")
-Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
-Cc: stable <stable@vger.kernel.org>
-Acked-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
---- a/drivers/usb/core/ledtrig-usbport.c
-+++ b/drivers/usb/core/ledtrig-usbport.c
-@@ -119,11 +119,6 @@ static const struct attribute_group port
-       .attrs = ports_attrs,
- };
--static const struct attribute_group *ports_groups[] = {
--      &ports_group,
--      NULL
--};
--
- /***************************************
-  * Adding & removing ports
-  ***************************************/
-@@ -307,6 +302,7 @@ static int usbport_trig_notify(struct no
- static int usbport_trig_activate(struct led_classdev *led_cdev)
- {
-       struct usbport_trig_data *usbport_data;
-+      int err;
-       usbport_data = kzalloc(sizeof(*usbport_data), GFP_KERNEL);
-       if (!usbport_data)
-@@ -315,6 +311,9 @@ static int usbport_trig_activate(struct
-       /* List of ports */
-       INIT_LIST_HEAD(&usbport_data->ports);
-+      err = sysfs_create_group(&led_cdev->dev->kobj, &ports_group);
-+      if (err)
-+              goto err_free;
-       usb_for_each_dev(usbport_data, usbport_trig_add_usb_dev_ports);
-       usbport_trig_update_count(usbport_data);
-@@ -322,8 +321,11 @@ static int usbport_trig_activate(struct
-       usbport_data->nb.notifier_call = usbport_trig_notify;
-       led_set_trigger_data(led_cdev, usbport_data);
-       usb_register_notify(&usbport_data->nb);
--
-       return 0;
-+
-+err_free:
-+      kfree(usbport_data);
-+      return err;
- }
- static void usbport_trig_deactivate(struct led_classdev *led_cdev)
-@@ -335,6 +337,8 @@ static void usbport_trig_deactivate(stru
-               usbport_trig_remove_port(usbport_data, port);
-       }
-+      sysfs_remove_group(&led_cdev->dev->kobj, &ports_group);
-+
-       usb_unregister_notify(&usbport_data->nb);
-       kfree(usbport_data);
-@@ -344,7 +348,6 @@ static struct led_trigger usbport_led_tr
-       .name     = "usbport",
-       .activate = usbport_trig_activate,
-       .deactivate = usbport_trig_deactivate,
--      .groups = ports_groups,
- };
- static int __init usbport_trig_init(void)