From: Martin Schwidefsky Date: Fri, 17 Jul 2015 13:01:08 +0000 (+0200) Subject: s390/zcrypt: fix device unregister race X-Git-Tag: v4.4-rc1~138^2~26 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=98733791e8ea9f700ce2c6feedcbeb7c4703359e;p=linux.git s390/zcrypt: fix device unregister race The ap_queue_messsage function will call device_unregister if the unregistered field of the device has been set while trying to queue a message. This races with other device_unregister calls, e.g. from the ap_scan_bus. Remove the call to device_unregister from ap_queue_message and let ap_scan_bus deal with it. Signed-off-by: Martin Schwidefsky --- diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c index 689f46cbf594..80af1bd473e1 100644 --- a/drivers/s390/crypto/ap_bus.c +++ b/drivers/s390/crypto/ap_bus.c @@ -1666,8 +1666,6 @@ void ap_queue_message(struct ap_device *ap_dev, struct ap_message *ap_msg) rc = -ENODEV; } spin_unlock_bh(&ap_dev->lock); - if (rc == -ENODEV) - device_unregister(&ap_dev->device); } EXPORT_SYMBOL(ap_queue_message);