On Thu, May 10, 2018 at 01:16:59PM +0200, Wolfram Sang wrote: > On Sat, May 05, 2018 at 08:02:21AM -0500, Wenwen Wang wrote: > > In i2c_smbus_xfer_emulated(), the function i2c_transfer() is invoked to > > transfer i2c messages. The number of actual transferred messages is > > returned and saved to 'status'. If 'status' is negative, that means an > > error occurred during the transfer process. In that case, the value of > > 'status' is an error code to indicate the reason of the transfer failure. > > In most cases, i2c_transfer() can transfer 'num' messages with no error. > > And so 'status' == 'num'. However, due to unexpected errors, it is probable > > that only partial messages are transferred by i2c_transfer(). As a result, > > 'status' != 'num'. This special case is not checked after the invocation of > > i2c_transfer() and can potentially lead to unexpected issues in the > > following execution since it is expected that 'status' == 'num'. > > > > This patch checks the return value of i2c_transfer() and returns an error > > code -EIO if the number of actual transferred messages 'status' is not > > equal to 'num'. > > > > Signed-off-by: Wenwen Wang <wang6495@xxxxxxx> > > Applied to for-current, thanks! Reconsidered and applied to for-next, thanks!
Attachment:
signature.asc
Description: PGP signature