From 08135c85d8e868f7eaf9cebeb356fd1b2816995f Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 23 Jul 2015 09:00:31 +0200 Subject: i2c: Fix return status of i2c dev read/write --- cpukit/dev/i2c/i2c-dev.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'cpukit/dev/i2c') diff --git a/cpukit/dev/i2c/i2c-dev.c b/cpukit/dev/i2c/i2c-dev.c index 6710632e87..b00a9bdf21 100644 --- a/cpukit/dev/i2c/i2c-dev.c +++ b/cpukit/dev/i2c/i2c-dev.c @@ -43,11 +43,13 @@ static ssize_t i2c_dev_read( ssize_t n; n = (*dev->read)(dev, buffer, count, iop->offset); - if (n > 0) { + if (n >= 0) { iop->offset += n; - } - return n; + return n; + } else { + rtems_set_errno_and_return_minus_one(-n); + } } static ssize_t i2c_dev_write( @@ -60,11 +62,13 @@ static ssize_t i2c_dev_write( ssize_t n; n = (*dev->write)(dev, buffer, count, iop->offset); - if (n > 0) { + if (n >= 0) { iop->offset += n; - } - return n; + return n; + } else { + rtems_set_errno_and_return_minus_one(-n); + } } static int i2c_dev_ioctl( -- cgit v1.2.3