The creation of a new lcs device requires a call to the function
ccw_device_set_online() for the read and the write channel. Failure
of either call should terminate the lcs device creation immediately
with return code -ENODEV.
Signed-off-by: Klaus-Dieter Wacker <kdwacker@de.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
        card->write.ccwdev = ccwgdev->cdev[1];
 
        recover_state = card->state;
-       ccw_device_set_online(card->read.ccwdev);
-       ccw_device_set_online(card->write.ccwdev);
+       rc = ccw_device_set_online(card->read.ccwdev);
+       if (rc)
+               goto out_err;
+       rc = ccw_device_set_online(card->write.ccwdev);
+       if (rc)
+               goto out_werr;
 
        LCS_DBF_TEXT(3, setup, "lcsnewdv");
 
        return 0;
 out:
 
-       ccw_device_set_offline(card->read.ccwdev);
        ccw_device_set_offline(card->write.ccwdev);
+out_werr:
+       ccw_device_set_offline(card->read.ccwdev);
+out_err:
        return -ENODEV;
 }