From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Subject: Re: [PATCH v3] serdev: Add serdev_device_write subroutine Date: Fri, 31 Mar 2017 11:38:22 -0500 Message-ID: References: <20170330220035.26649-1-andrew.smirnov@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Andy Shevchenko Cc: Andrey Smirnov , Chris Healy , Guenter Roeck , "linux-serial@vger.kernel.org" , "linux-kernel@vger.kernel.org" List-Id: linux-serial@vger.kernel.org On Fri, Mar 31, 2017 at 9:35 AM, Andy Shevchenko wrote: > On Fri, Mar 31, 2017 at 4:22 PM, Rob Herring wrote: >> On Thu, Mar 30, 2017 at 5:00 PM, Andrey Smirnov >> wrote: > >>> +int serdev_device_write(struct serdev_device *serdev, >>> + const unsigned char *buf, size_t count, >>> + unsigned long timeout) >>> { >>> struct serdev_controller *ctrl = serdev->ctrl; >>> + int ret; >>> >>> + if (!ctrl || !ctrl->ops->write_buf || >>> + (timeout && !serdev->ops->write_wakeup)) >>> return -EINVAL; >>> >>> + mutex_lock(&serdev->write_lock); >>> + do { >>> + reinit_completion(&serdev->write_comp); >>> + >>> + ret = ctrl->ops->write_buf(ctrl, buf, count); >>> + if (ret < 0) >>> + break; >>> + >>> + buf += ret; >>> + count -= ret; >>> + >>> + } while (count && >>> + (timeout = wait_for_completion_timeout(&serdev->write_comp, >>> + timeout))); >> >> Need to test for timeout < 0 here and return timeout when < 0. > > It can't be the case since the variable is of unsigned type. Oh right, that's only the interruptible version. NM Reviewed-by: Rob Herring Rob