can: only rename enabled led triggers when changing the netdev name
authorOliver Hartkopp <socketcan@hartkopp.net>
Tue, 27 May 2014 11:30:56 +0000 (13:30 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 27 May 2014 13:05:41 +0000 (15:05 +0200)
Commit a1ef7bd9fce8 ("can: rename LED trigger name on netdev renames") renames
the led trigger names according to the changed netdevice name.

As not every CAN driver supports and initializes the led triggers, checking for
the CAN private datastructure with safe_candev_priv() in the notifier chain is
not enough.

This patch adds a check when CONFIG_CAN_LEDS is enabled and the driver does not
support led triggers.

For stable 3.9+

Cc: Fabio Baltieri <fabio.baltieri@gmail.com>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Acked-by: Kurt Van Dijck <dev.kurt@vandijck-laurijssen.be>
Cc: linux-stable <stable@vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/led.c

index a3d99a8fd2d19ee46f846448d2707f8dadf3e4af..ab7f1b01be499a50266d5998c404f15b06cbdad6 100644 (file)
@@ -97,6 +97,9 @@ static int can_led_notifier(struct notifier_block *nb, unsigned long msg,
        if (!priv)
                return NOTIFY_DONE;
 
+       if (!priv->tx_led_trig || !priv->rx_led_trig)
+               return NOTIFY_DONE;
+
        if (msg == NETDEV_CHANGENAME) {
                snprintf(name, sizeof(name), "%s-tx", netdev->name);
                led_trigger_rename_static(name, priv->tx_led_trig);