aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorJan Glauber <jang@linux.vnet.ibm.com>2009-03-26 10:24:30 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-03-26 10:24:21 -0400
commit9e890ad880be1dd98483313b2ec0e23fbd4e3792 (patch)
tree30c45a05b7d00ed418e5bfa2fe355fc68916f075 /drivers/s390
parente85dea0e415617b5c5627f38c71b33fbc7f94a85 (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.c3
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
371void __exit tiqdio_unregister_thinints(void) 371void __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}