X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fs390%2Fchar%2Fvmcp.c;h=19762f3476aadd22289d4ddb4a44d82985465bf4;hb=fab8d6ddf6dee2608869005d45fe97f70e4f5bdd;hp=7f11a608a63371855c8fd36ba18ac3967c372178;hpb=f45727d52d1581e9ff4df9d1a12a60789ad2d1eb;p=linux-2.6-omap-h63xx.git diff --git a/drivers/s390/char/vmcp.c b/drivers/s390/char/vmcp.c index 7f11a608a63..19762f3476a 100644 --- a/drivers/s390/char/vmcp.c +++ b/drivers/s390/char/vmcp.c @@ -103,8 +103,10 @@ vmcp_write(struct file *file, const char __user * buff, size_t count, } cmd[count] = '\0'; session = (struct vmcp_session *)file->private_data; - if (down_interruptible(&session->mutex)) + if (down_interruptible(&session->mutex)) { + kfree(cmd); return -ERESTARTSYS; + } if (!session->response) session->response = (char *)__get_free_pages(GFP_KERNEL | __GFP_REPEAT | GFP_DMA, @@ -115,9 +117,9 @@ vmcp_write(struct file *file, const char __user * buff, size_t count, return -ENOMEM; } debug_text_event(vmcp_debug, 1, cmd); - session->resp_size = cpcmd(cmd, session->response, - session->bufsize, - &session->resp_code); + session->resp_size = __cpcmd(cmd, session->response, + session->bufsize, + &session->resp_code); up(&session->mutex); kfree(cmd); *ppos = 0; /* reset the file pointer after a command */