diff options
Diffstat (limited to 'drivers/s390/cio/device.c')
| -rw-r--r-- | drivers/s390/cio/device.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index 4e78c82194b..4e4008325e2 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c @@ -874,11 +874,15 @@ void ccw_device_move_to_orphanage(struct work_struct *work)  	replacing_cdev = get_disc_ccwdev_by_dev_id(&dev_id, cdev);  	if (replacing_cdev) {  		sch_attach_disconnected_device(sch, replacing_cdev); +		/* Release reference from get_disc_ccwdev_by_dev_id() */ +		put_device(&cdev->dev);  		return;  	}  	replacing_cdev = get_orphaned_ccwdev_by_dev_id(css, &dev_id);  	if (replacing_cdev) {  		sch_attach_orphaned_device(sch, replacing_cdev); +		/* Release reference from get_orphaned_ccwdev_by_dev_id() */ +		put_device(&cdev->dev);  		return;  	}  	sch_create_and_recog_new_device(sch);  |