From: Dmitry Torokhov Date: Tue, 10 Jan 2012 08:45:12 +0000 (-0800) Subject: Input: serio_raw - return proper result when serio_raw_write fails X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=4fa0771138d0b56fe59ab8ab3b1ce9e594484362;p=mv-sheeva.git Input: serio_raw - return proper result when serio_raw_write fails If serio_raw_write was always returning number of bytes successfully sent to serio port and never signalled error condition to the caller. Change it so that for completely failed transfers appropriate error code returned to the caller (partially successful writes still return number of bytes transferred). Reported-by: Che-liang Chiou Signed-off-by: Dmitry Torokhov --- diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_raw.c index f6c83e9ecff..8250299fd64 100644 --- a/drivers/input/serio/serio_raw.c +++ b/drivers/input/serio/serio_raw.c @@ -224,7 +224,7 @@ static ssize_t serio_raw_write(struct file *file, const char __user *buffer, out: mutex_unlock(&serio_raw_mutex); - return written; + return written ?: retval; } static unsigned int serio_raw_poll(struct file *file, poll_table *wait)