s390/zcrypt: Fix blocking queue device after unbind/bind.
authorHarald Freudenberger <freude@linux.vnet.ibm.com>
Wed, 24 May 2017 08:26:29 +0000 (10:26 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 2 Jun 2017 12:30:12 +0000 (14:30 +0200)
commite385050873d1e19e40481d8cd868c9f60ebe46ac
tree3072228e0be6eaa316d52309752efcd32f69d277
parent698be5d6ee26127818d6033c32aa7967034496bd
s390/zcrypt: Fix blocking queue device after unbind/bind.

When the association between a queue device and the
driver is released via unbind and later re-associated
the queue device was not operational any more. Reason
was a wrong administration of the card/queue lists
within the ap device driver.

This patch introduces revised card/queue list handling
within the ap device driver: when an ap device is
detected it is initial not added to the card/queue list
any more. With driver probe the card device is added to
the card list/the queue device is added to the queue list
within a card. With driver remove the device is removed
from the card/queue list. Additionally there are some
situations within the ap device live where the lists
need update upon card/queue device release (for example
device hot unplug or suspend/resume).

Signed-off-by: Harald Freudenberger <freude@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/crypto/ap_bus.c
drivers/s390/crypto/ap_card.c
drivers/s390/crypto/ap_queue.c