Messages in this thread Patch in this message | | | Date | Fri, 15 Dec 2006 17:21:45 +0100 | From | Martin Schwidefsky <> | Subject | [S390] zcrypt: module unload fixes. |
| |
From: Ralph Wuerthner <rwuerthn@de.ibm.com>
[S390] zcrypt: module unload fixes.
Add code to reset all queues for a domain and add missing tasklet_kill call to ap bus module exit code.
Signed-off-by: Ralph Wuerthner <rwuerthn@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> ---
drivers/s390/crypto/ap_bus.c | 14 ++++++++++++-- 1 files changed, 12 insertions(+), 2 deletions(-)
diff -urpN linux-2.6/drivers/s390/crypto/ap_bus.c linux-2.6-patched/drivers/s390/crypto/ap_bus.c --- linux-2.6/drivers/s390/crypto/ap_bus.c 2006-12-15 16:54:55.000000000 +0100 +++ linux-2.6-patched/drivers/s390/crypto/ap_bus.c 2006-12-15 16:55:08.000000000 +0100 @@ -1129,7 +1129,15 @@ static void ap_poll_thread_stop(void) mutex_unlock(&ap_poll_thread_mutex); } -static void ap_reset(void) +static void ap_reset_domain(void) +{ + int i; + + for (i = 0; i < AP_DEVICES; i++) + ap_reset_queue(AP_MKQID(i, ap_domain_index)); +} + +static void ap_reset_all(void) { int i, j; @@ -1139,7 +1147,7 @@ static void ap_reset(void) } static struct reset_call ap_reset_call = { - .fn = ap_reset, + .fn = ap_reset_all, }; /** @@ -1229,10 +1237,12 @@ void ap_module_exit(void) int i; struct device *dev; + ap_reset_domain(); ap_poll_thread_stop(); del_timer_sync(&ap_config_timer); del_timer_sync(&ap_poll_timer); destroy_workqueue(ap_work_queue); + tasklet_kill(&ap_tasklet); s390_root_dev_unregister(ap_root_device); while ((dev = bus_find_device(&ap_bus_type, NULL, NULL, __ap_match_all))) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |