diff options
-rw-r--r-- | drivers/char/pcmcia/ipwireless/hardware.c | 2 | ||||
-rw-r--r-- | drivers/char/pcmcia/ipwireless/network.c | 3 | ||||
-rw-r--r-- | drivers/char/pcmcia/ipwireless/tty.c | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/drivers/char/pcmcia/ipwireless/hardware.c b/drivers/char/pcmcia/ipwireless/hardware.c index 99cffdab1056..0aeb5a38d296 100644 --- a/drivers/char/pcmcia/ipwireless/hardware.c +++ b/drivers/char/pcmcia/ipwireless/hardware.c | |||
@@ -1729,7 +1729,7 @@ void ipwireless_hardware_free(struct ipw_hardware *hw) | |||
1729 | 1729 | ||
1730 | ipwireless_stop_interrupts(hw); | 1730 | ipwireless_stop_interrupts(hw); |
1731 | 1731 | ||
1732 | flush_scheduled_work(); | 1732 | flush_work_sync(&hw->work_rx); |
1733 | 1733 | ||
1734 | for (i = 0; i < NL_NUM_OF_ADDRESSES; i++) | 1734 | for (i = 0; i < NL_NUM_OF_ADDRESSES; i++) |
1735 | if (hw->packet_assembler[i] != NULL) | 1735 | if (hw->packet_assembler[i] != NULL) |
diff --git a/drivers/char/pcmcia/ipwireless/network.c b/drivers/char/pcmcia/ipwireless/network.c index 9fe538347932..f7daeea598e4 100644 --- a/drivers/char/pcmcia/ipwireless/network.c +++ b/drivers/char/pcmcia/ipwireless/network.c | |||
@@ -430,7 +430,8 @@ void ipwireless_network_free(struct ipw_network *network) | |||
430 | network->shutting_down = 1; | 430 | network->shutting_down = 1; |
431 | 431 | ||
432 | ipwireless_ppp_close(network); | 432 | ipwireless_ppp_close(network); |
433 | flush_scheduled_work(); | 433 | flush_work_sync(&network->work_go_online); |
434 | flush_work_sync(&network->work_go_offline); | ||
434 | 435 | ||
435 | ipwireless_stop_interrupts(network->hardware); | 436 | ipwireless_stop_interrupts(network->hardware); |
436 | ipwireless_associate_network(network->hardware, NULL); | 437 | ipwireless_associate_network(network->hardware, NULL); |
diff --git a/drivers/char/pcmcia/ipwireless/tty.c b/drivers/char/pcmcia/ipwireless/tty.c index 1a2c2c3b068f..f5eb28b6cb0f 100644 --- a/drivers/char/pcmcia/ipwireless/tty.c +++ b/drivers/char/pcmcia/ipwireless/tty.c | |||
@@ -577,7 +577,7 @@ void ipwireless_tty_free(struct ipw_tty *tty) | |||
577 | mutex_unlock(&ttyj->ipw_tty_mutex); | 577 | mutex_unlock(&ttyj->ipw_tty_mutex); |
578 | tty_hangup(ttyj->linux_tty); | 578 | tty_hangup(ttyj->linux_tty); |
579 | /* Wait till the tty_hangup has completed */ | 579 | /* Wait till the tty_hangup has completed */ |
580 | flush_scheduled_work(); | 580 | flush_work_sync(&ttyj->linux_tty->hangup_work); |
581 | /* FIXME: Exactly how is the tty object locked here | 581 | /* FIXME: Exactly how is the tty object locked here |
582 | against a parallel ioctl etc */ | 582 | against a parallel ioctl etc */ |
583 | mutex_lock(&ttyj->ipw_tty_mutex); | 583 | mutex_lock(&ttyj->ipw_tty_mutex); |