From 751d5c38eb07b75dbd56f355825c59752bd38db5 Mon Sep 17 00:00:00 2001 From: Sebastian Ott Date: Mon, 8 Mar 2010 12:25:17 +0100 Subject: [PATCH] --- yaml --- r: 186990 b: refs/heads/master c: a290156f479af436f94ac23f5729a1e33c94293b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/s390/cio/device.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 9b4ede811f01..13e7d477d3bc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 52898025cf7d458d029c18773d0ef49b4789d829 +refs/heads/master: a290156f479af436f94ac23f5729a1e33c94293b diff --git a/trunk/drivers/s390/cio/device.c b/trunk/drivers/s390/cio/device.c index c6abb75c4615..6d229f3523a0 100644 --- a/trunk/drivers/s390/cio/device.c +++ b/trunk/drivers/s390/cio/device.c @@ -764,7 +764,7 @@ static void sch_create_and_recog_new_device(struct subchannel *sch) static void io_subchannel_register(struct ccw_device *cdev) { struct subchannel *sch; - int ret; + int ret, adjust_init_count = 1; unsigned long flags; sch = to_subchannel(cdev->dev.parent); @@ -793,6 +793,7 @@ static void io_subchannel_register(struct ccw_device *cdev) cdev->private->dev_id.ssid, cdev->private->dev_id.devno); } + adjust_init_count = 0; goto out; } /* @@ -818,7 +819,7 @@ static void io_subchannel_register(struct ccw_device *cdev) cdev->private->flags.recog_done = 1; wake_up(&cdev->private->wait_q); out_err: - if (atomic_dec_and_test(&ccw_device_init_count)) + if (adjust_init_count && atomic_dec_and_test(&ccw_device_init_count)) wake_up(&ccw_device_init_wq); }