diff --git a/libraries/AP_HAL_Linux/I2CDevice.cpp b/libraries/AP_HAL_Linux/I2CDevice.cpp index 1c8535918ef..83d61fe6f99 100644 --- a/libraries/AP_HAL_Linux/I2CDevice.cpp +++ b/libraries/AP_HAL_Linux/I2CDevice.cpp @@ -177,13 +177,13 @@ bool I2CDevice::transfer(const uint8_t *send, uint32_t send_len, i2c_data.msgs = msgs; i2c_data.nmsgs = nmsgs; - int r = -EINVAL; + int r; unsigned retries = _retries; do { r = ::ioctl(_bus.fd, I2C_RDWR, &i2c_data); - } while (r < 0 && retries-- > 0); + } while (r == -1 && retries-- > 0); - return r >= 0; + return r != -1; } bool I2CDevice::read_registers_multiple(uint8_t first_reg, uint8_t *recv,