diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2008-03-23 15:28:24 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-04-19 22:10:28 -0400 |
commit | b844eba292b477cda14582bfc6f535deed57a82d (patch) | |
tree | b2418a9a4fc672654f4592ae0a3e2853d82271c3 /drivers/net | |
parent | 138fe4e069798d9aa948a5402ff15e58f483ee4e (diff) |
PM: Remove destroy_suspended_device()
After 2.6.24 there was a plan to make the PM core acquire all device
semaphores during a suspend/hibernation to protect itself from
concurrent operations involving device objects. That proved to be
too heavy-handed and we found a better way to achieve the goal, but
before it happened, we had introduced the functions
device_pm_schedule_removal() and destroy_suspended_device() to allow
drivers to "safely" destroy a suspended device and we had adapted some
drivers to use them. Now that these functions are no longer necessary,
it seems reasonable to remove them and modify their users to use the
normal device unregistration instead.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/b43/leds.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/b43/main.c | 8 |
2 files changed, 5 insertions, 8 deletions
diff --git a/drivers/net/wireless/b43/leds.c b/drivers/net/wireless/b43/leds.c index 0aac1ff511df..36a9c42df835 100644 --- a/drivers/net/wireless/b43/leds.c +++ b/drivers/net/wireless/b43/leds.c | |||
@@ -116,10 +116,7 @@ static void b43_unregister_led(struct b43_led *led) | |||
116 | { | 116 | { |
117 | if (!led->dev) | 117 | if (!led->dev) |
118 | return; | 118 | return; |
119 | if (led->dev->suspend_in_progress) | 119 | led_classdev_unregister(&led->led_dev); |
120 | led_classdev_unregister_suspended(&led->led_dev); | ||
121 | else | ||
122 | led_classdev_unregister(&led->led_dev); | ||
123 | b43_led_turn_off(led->dev, led->index, led->activelow); | 120 | b43_led_turn_off(led->dev, led->index, led->activelow); |
124 | led->dev = NULL; | 121 | led->dev = NULL; |
125 | } | 122 | } |
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index cf5c046c9fa8..943cc851c504 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c | |||
@@ -2804,10 +2804,10 @@ static int b43_rng_read(struct hwrng *rng, u32 * data) | |||
2804 | return (sizeof(u16)); | 2804 | return (sizeof(u16)); |
2805 | } | 2805 | } |
2806 | 2806 | ||
2807 | static void b43_rng_exit(struct b43_wl *wl, bool suspended) | 2807 | static void b43_rng_exit(struct b43_wl *wl) |
2808 | { | 2808 | { |
2809 | if (wl->rng_initialized) | 2809 | if (wl->rng_initialized) |
2810 | __hwrng_unregister(&wl->rng, suspended); | 2810 | hwrng_unregister(&wl->rng); |
2811 | } | 2811 | } |
2812 | 2812 | ||
2813 | static int b43_rng_init(struct b43_wl *wl) | 2813 | static int b43_rng_init(struct b43_wl *wl) |
@@ -3824,7 +3824,7 @@ static void b43_wireless_core_exit(struct b43_wldev *dev) | |||
3824 | 3824 | ||
3825 | if (!dev->suspend_in_progress) { | 3825 | if (!dev->suspend_in_progress) { |
3826 | b43_leds_exit(dev); | 3826 | b43_leds_exit(dev); |
3827 | b43_rng_exit(dev->wl, false); | 3827 | b43_rng_exit(dev->wl); |
3828 | } | 3828 | } |
3829 | b43_dma_free(dev); | 3829 | b43_dma_free(dev); |
3830 | b43_pio_free(dev); | 3830 | b43_pio_free(dev); |
@@ -4589,7 +4589,7 @@ static int b43_resume(struct ssb_device *dev) | |||
4589 | err = b43_wireless_core_start(wldev); | 4589 | err = b43_wireless_core_start(wldev); |
4590 | if (err) { | 4590 | if (err) { |
4591 | b43_leds_exit(wldev); | 4591 | b43_leds_exit(wldev); |
4592 | b43_rng_exit(wldev->wl, true); | 4592 | b43_rng_exit(wldev->wl); |
4593 | b43_wireless_core_exit(wldev); | 4593 | b43_wireless_core_exit(wldev); |
4594 | b43err(wl, "Resume failed at core start\n"); | 4594 | b43err(wl, "Resume failed at core start\n"); |
4595 | goto out; | 4595 | goto out; |