X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fs390%2Fchar%2Fsclp_cpi.c;h=5a6cef2dfa130c203830a6eb9648baa5186261af;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=232182deee7251ee879d744a72a22cc5c6823f0e;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/s390/char/sclp_cpi.c b/drivers/s390/char/sclp_cpi.c index 232182dee..5a6cef2df 100644 --- a/drivers/s390/char/sclp_cpi.c +++ b/drivers/s390/char/sclp_cpi.c @@ -196,18 +196,20 @@ cpi_module_init(void) rc = sclp_register(&sclp_cpi_event); if (rc) { /* could not register sclp event. Die. */ - printk("cpi: could not register to hardware console.\n"); + printk(KERN_WARNING "cpi: could not register to hardware " + "console.\n"); return -EINVAL; } if (!(sclp_cpi_event.sclp_send_mask & EvTyp_CtlProgIdent_Mask)) { - printk("cpi: no control program identification support\n"); + printk(KERN_WARNING "cpi: no control program identification " + "support\n"); sclp_unregister(&sclp_cpi_event); return -ENOTSUPP; } req = cpi_prepare_req(); if (IS_ERR(req)) { - printk("cpi: couldn't allocate request\n"); + printk(KERN_WARNING "cpi: couldn't allocate request\n"); sclp_unregister(&sclp_cpi_event); return PTR_ERR(req); } @@ -216,13 +218,20 @@ cpi_module_init(void) sema_init(&sem, 0); req->callback_data = &sem; /* Add request to sclp queue */ - sclp_add_request(req); + rc = sclp_add_request(req); + if (rc) { + printk(KERN_WARNING "cpi: could not start request\n"); + cpi_free_req(req); + sclp_unregister(&sclp_cpi_event); + return rc; + } /* make "insmod" sleep until callback arrives */ down(&sem); rc = ((struct cpi_sccb *) req->sccb)->header.response_code; if (rc != 0x0020) { - printk("cpi: failed with response code 0x%x\n", rc); + printk(KERN_WARNING "cpi: failed with response code 0x%x\n", + rc); rc = -ECOMM; } else rc = 0;