ledtrig-netdev.c (552c69b36ebd966186573b9c7a286b390935cce1) | ledtrig-netdev.c (2282e125a406e09331c5a785e3df29035c99a607) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2// Copyright 2017 Ben Whitten <ben.whitten@gmail.com> 3// Copyright 2007 Oliver Jowett <oliver@opencloud.com> 4// 5// LED Kernel Netdev Trigger 6// 7// Toggles the LED to reflect the link and traffic state of a named net device 8// --- 374 unchanged lines hidden (view full) --- 383 invert); 384 trigger_data->last_activity = new_activity; 385 } 386 387 schedule_delayed_work(&trigger_data->work, 388 (atomic_read(&trigger_data->interval)*2)); 389} 390 | 1// SPDX-License-Identifier: GPL-2.0 2// Copyright 2017 Ben Whitten <ben.whitten@gmail.com> 3// Copyright 2007 Oliver Jowett <oliver@opencloud.com> 4// 5// LED Kernel Netdev Trigger 6// 7// Toggles the LED to reflect the link and traffic state of a named net device 8// --- 374 unchanged lines hidden (view full) --- 383 invert); 384 trigger_data->last_activity = new_activity; 385 } 386 387 schedule_delayed_work(&trigger_data->work, 388 (atomic_read(&trigger_data->interval)*2)); 389} 390 |
391static void netdev_trig_activate(struct led_classdev *led_cdev) | 391static int netdev_trig_activate(struct led_classdev *led_cdev) |
392{ 393 struct led_netdev_data *trigger_data; 394 int rc; 395 396 trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL); 397 if (!trigger_data) | 392{ 393 struct led_netdev_data *trigger_data; 394 int rc; 395 396 trigger_data = kzalloc(sizeof(struct led_netdev_data), GFP_KERNEL); 397 if (!trigger_data) |
398 return; | 398 return 0; |
399 400 spin_lock_init(&trigger_data->lock); 401 402 trigger_data->notifier.notifier_call = netdev_trig_notify; 403 trigger_data->notifier.priority = 10; 404 405 INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work); 406 --- 20 unchanged lines hidden (view full) --- 427 if (rc) 428 goto err_out_rx; 429 rc = device_create_file(led_cdev->dev, &dev_attr_interval); 430 if (rc) 431 goto err_out_tx; 432 rc = register_netdevice_notifier(&trigger_data->notifier); 433 if (rc) 434 goto err_out_interval; | 399 400 spin_lock_init(&trigger_data->lock); 401 402 trigger_data->notifier.notifier_call = netdev_trig_notify; 403 trigger_data->notifier.priority = 10; 404 405 INIT_DELAYED_WORK(&trigger_data->work, netdev_trig_work); 406 --- 20 unchanged lines hidden (view full) --- 427 if (rc) 428 goto err_out_rx; 429 rc = device_create_file(led_cdev->dev, &dev_attr_interval); 430 if (rc) 431 goto err_out_tx; 432 rc = register_netdevice_notifier(&trigger_data->notifier); 433 if (rc) 434 goto err_out_interval; |
435 return; | 435 return 0; |
436 437err_out_interval: 438 device_remove_file(led_cdev->dev, &dev_attr_interval); 439err_out_tx: 440 device_remove_file(led_cdev->dev, &dev_attr_tx); 441err_out_rx: 442 device_remove_file(led_cdev->dev, &dev_attr_rx); 443err_out_link: 444 device_remove_file(led_cdev->dev, &dev_attr_link); 445err_out_device_name: 446 device_remove_file(led_cdev->dev, &dev_attr_device_name); 447err_out: 448 led_cdev->trigger_data = NULL; 449 kfree(trigger_data); | 436 437err_out_interval: 438 device_remove_file(led_cdev->dev, &dev_attr_interval); 439err_out_tx: 440 device_remove_file(led_cdev->dev, &dev_attr_tx); 441err_out_rx: 442 device_remove_file(led_cdev->dev, &dev_attr_rx); 443err_out_link: 444 device_remove_file(led_cdev->dev, &dev_attr_link); 445err_out_device_name: 446 device_remove_file(led_cdev->dev, &dev_attr_device_name); 447err_out: 448 led_cdev->trigger_data = NULL; 449 kfree(trigger_data); |
450 451 return 0; |
|
450} 451 452static void netdev_trig_deactivate(struct led_classdev *led_cdev) 453{ 454 struct led_netdev_data *trigger_data = led_cdev->trigger_data; 455 456 if (trigger_data) { 457 unregister_netdevice_notifier(&trigger_data->notifier); --- 39 unchanged lines hidden --- | 452} 453 454static void netdev_trig_deactivate(struct led_classdev *led_cdev) 455{ 456 struct led_netdev_data *trigger_data = led_cdev->trigger_data; 457 458 if (trigger_data) { 459 unregister_netdevice_notifier(&trigger_data->notifier); --- 39 unchanged lines hidden --- |