return 0;
 
        mask = 0x80 >> j;
-       spin_lock(&sch->lock);
+       spin_lock_irq(&sch->lock);
 
        stsch(sch->schid, &schib);
        if (!schib.pmcw.dnv)
        if (sch->driver && sch->driver->verify)
                sch->driver->verify(&sch->dev);
 out_unlock:
-       spin_unlock(&sch->lock);
+       spin_unlock_irq(&sch->lock);
        return 0;
 out_unreg:
-       spin_unlock(&sch->lock);
+       spin_unlock_irq(&sch->lock);
        sch->lpm = 0;
        if (css_enqueue_subchannel_slow(sch->schid)) {
                css_clear_subchannel_slow_list();
        if (!sch)
                /* Check if the subchannel is now available. */
                return __chp_add_new_sch(schid);
-       spin_lock(&sch->lock);
+       spin_lock_irq(&sch->lock);
        for (i=0; i<8; i++)
                if (sch->schib.pmcw.chpid[i] == chp->id) {
                        if (stsch(sch->schid, &sch->schib) != 0) {
        if (sch->driver && sch->driver->verify)
                sch->driver->verify(&sch->dev);
 
-       spin_unlock(&sch->lock);
+       spin_unlock_irq(&sch->lock);
        put_device(&sch->dev);
        return 0;
 }