From 98733791e8ea9f700ce2c6feedcbeb7c4703359e Mon Sep 17 00:00:00 2001 From: Martin Schwidefsky Date: Fri, 17 Jul 2015 15:01:08 +0200 Subject: 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 689f46c..80af1bd 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); -- cgit v0.10.2