diff options
Diffstat (limited to 'drivers/s390/cio/chsc.c')
-rw-r--r-- | drivers/s390/cio/chsc.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c index c28444af0919..3bb4e472d73d 100644 --- a/drivers/s390/cio/chsc.c +++ b/drivers/s390/cio/chsc.c | |||
@@ -256,7 +256,7 @@ s390_subchannel_remove_chpid(struct device *dev, void *data) | |||
256 | /* trigger path verification. */ | 256 | /* trigger path verification. */ |
257 | if (sch->driver && sch->driver->verify) | 257 | if (sch->driver && sch->driver->verify) |
258 | sch->driver->verify(&sch->dev); | 258 | sch->driver->verify(&sch->dev); |
259 | else if (sch->vpm == mask) | 259 | else if (sch->lpm == mask) |
260 | goto out_unreg; | 260 | goto out_unreg; |
261 | out_unlock: | 261 | out_unlock: |
262 | spin_unlock_irq(&sch->lock); | 262 | spin_unlock_irq(&sch->lock); |
@@ -378,6 +378,7 @@ __s390_process_res_acc(struct subchannel_id schid, void *data) | |||
378 | 378 | ||
379 | if (chp_mask == 0) { | 379 | if (chp_mask == 0) { |
380 | spin_unlock_irq(&sch->lock); | 380 | spin_unlock_irq(&sch->lock); |
381 | put_device(&sch->dev); | ||
381 | return 0; | 382 | return 0; |
382 | } | 383 | } |
383 | old_lpm = sch->lpm; | 384 | old_lpm = sch->lpm; |
@@ -392,7 +393,7 @@ __s390_process_res_acc(struct subchannel_id schid, void *data) | |||
392 | 393 | ||
393 | spin_unlock_irq(&sch->lock); | 394 | spin_unlock_irq(&sch->lock); |
394 | put_device(&sch->dev); | 395 | put_device(&sch->dev); |
395 | return (res_data->fla_mask == 0xffff) ? -ENODEV : 0; | 396 | return 0; |
396 | } | 397 | } |
397 | 398 | ||
398 | 399 | ||