summaryrefslogtreecommitdiff
path: root/drivers/net/phy/phy_led_triggers.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/phy/phy_led_triggers.c')
-rw-r--r--drivers/net/phy/phy_led_triggers.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/net/phy/phy_led_triggers.c b/drivers/net/phy/phy_led_triggers.c
index 4eb7716bb9d6..ff6e518395be 100644
--- a/drivers/net/phy/phy_led_triggers.c
+++ b/drivers/net/phy/phy_led_triggers.c
@@ -126,6 +126,7 @@ out_unreg:
while (i--)
phy_led_trigger_unregister(&phy->phy_led_triggers[i]);
kfree(phy->phy_led_triggers);
+ phy->phy_led_triggers = NULL;
out_unreg_link:
phy_led_trigger_unregister(phy->led_link_trigger);
out_free_link:
@@ -141,10 +142,12 @@ void phy_led_triggers_unregister(struct phy_device *phy)
{
int i;
- for (i = 0; i < phy->phy_num_led_triggers; i++)
- phy_led_trigger_unregister(&phy->phy_led_triggers[i]);
- kfree(phy->phy_led_triggers);
- phy->phy_led_triggers = NULL;
+ if (phy->phy_led_triggers) {
+ for (i = 0; i < phy->phy_num_led_triggers; i++)
+ phy_led_trigger_unregister(&phy->phy_led_triggers[i]);
+ kfree(phy->phy_led_triggers);
+ phy->phy_led_triggers = NULL;
+ }
if (phy->led_link_trigger) {
phy_led_trigger_unregister(phy->led_link_trigger);