diff options
author | Jan Glauber <jang@linux.vnet.ibm.com> | 2009-03-26 10:24:30 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-03-26 10:24:21 -0400 |
commit | 9e890ad880be1dd98483313b2ec0e23fbd4e3792 (patch) | |
tree | 30c45a05b7d00ed418e5bfa2fe355fc68916f075 /drivers/s390 | |
parent | e85dea0e415617b5c5627f38c71b33fbc7f94a85 (diff) |
[S390] qdio: tasklet termination in case of module unload
If the qdio module is unloaded the tiqdio tasklet must be terminated
by tasklet_kill. Move the tasklet_kill after the unregistration of
the adapter interrupt so the tiqdio tasklet will not be scheduled
anymore before calling tasklet_kill.
Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/cio/qdio_thinint.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c index c7c5512a892e..96f0095f568d 100644 --- a/drivers/s390/cio/qdio_thinint.c +++ b/drivers/s390/cio/qdio_thinint.c | |||
@@ -370,10 +370,11 @@ void qdio_shutdown_thinint(struct qdio_irq *irq_ptr) | |||
370 | 370 | ||
371 | void __exit tiqdio_unregister_thinints(void) | 371 | void __exit tiqdio_unregister_thinints(void) |
372 | { | 372 | { |
373 | tasklet_disable(&tiqdio_tasklet); | 373 | WARN_ON(!list_empty(&tiq_list)); |
374 | 374 | ||
375 | if (tiqdio_alsi) { | 375 | if (tiqdio_alsi) { |
376 | s390_unregister_adapter_interrupt(tiqdio_alsi, QDIO_AIRQ_ISC); | 376 | s390_unregister_adapter_interrupt(tiqdio_alsi, QDIO_AIRQ_ISC); |
377 | isc_unregister(QDIO_AIRQ_ISC); | 377 | isc_unregister(QDIO_AIRQ_ISC); |
378 | } | 378 | } |
379 | tasklet_kill(&tiqdio_tasklet); | ||
379 | } | 380 | } |