From efc904139d06ba3ca8de1e77366facc2a64b493b Mon Sep 17 00:00:00 2001 From: Sebastian Ott Date: Wed, 5 Sep 2012 14:20:41 +0200 Subject: [PATCH] --- yaml --- r: 322993 b: refs/heads/master c: 3368ba25bf387109b24732c1e270c628f20e345d h: refs/heads/master i: 322991: 6eba44b2dd29dd31091a6ed77804ef3eb5fff92d v: v3 --- [refs] | 2 +- trunk/drivers/s390/cio/device.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index d0cc5f828f30..d0adbc2540cd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 43d0be75af8d05654b88d1da494cf292714fbdec +refs/heads/master: 3368ba25bf387109b24732c1e270c628f20e345d diff --git a/trunk/drivers/s390/cio/device.c b/trunk/drivers/s390/cio/device.c index e8e1a108cdf8..fc916f5d7314 100644 --- a/trunk/drivers/s390/cio/device.c +++ b/trunk/drivers/s390/cio/device.c @@ -1521,11 +1521,14 @@ static int io_subchannel_sch_event(struct subchannel *sch, int process) goto out; break; case IO_SCH_UNREG_ATTACH: + spin_lock_irqsave(sch->lock, flags); if (cdev->private->flags.resuming) { /* Device will be handled later. */ rc = 0; - goto out; + goto out_unlock; } + sch_set_cdev(sch, NULL); + spin_unlock_irqrestore(sch->lock, flags); /* Unregister ccw device. */ ccw_device_unregister(cdev); break;