s390/qdio: avoid reschedule of outbound tasklet once killed
authorUrsula Braun <ursula.braun@de.ibm.com>
Fri, 5 Aug 2016 10:33:10 +0000 (12:33 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 8 Aug 2016 14:01:28 +0000 (16:01 +0200)
commit9bce8b2cbebf9f11b41021ccb98c6b18d1796edd
treee688298aae0aa41d08fe908b9a9c86c7948e1dda
parent6e30c549f6cab7a41d0934cea80822a2211132ae
s390/qdio: avoid reschedule of outbound tasklet once killed

During qdio_shutdown the queue tasklets are killed for all inbound and
outbound queues. The queue structures might be freed after
qdio_shutdown.
Thus it must be guaranteed that these queue tasklets are not rescheduled
after that. In addition the outbound queue timers are deleted and it
must
be guaranteed that these timers are not restarted after qdio_shutdown
processing. Timer deletion should make use of del_timer_sync() to make
sure qdio_outbound_timer() is finished on other CPUs as well. Queue
tasklets should be scheduled in state QDIO_IRQ_STATE_ACTIVE only.

Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com>
Reviewed-by: Benjamin Block <bblock@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/cio/qdio_main.c