On 11/30/18 11:25 AM, Peter Maydell wrote:
On Mon, 26 Nov 2018 at 20:04, <miny...@acm.org> wrote:
From: Corey Minyard <cminy...@mvista.com>

i2c_recv() cannot fail, so there is no need to check the return
value.  It also returns unt8_t, so comparing with < 0 is not
meaningful.

Fix up various I2C controllers to remove the unneeded code.

Signed-off-by: Corey Minyard <cminy...@mvista.com>
Suggested-by: Peter Maydell <peter.mayd...@linaro.org>
---
diff --git a/hw/i2c/exynos4210_i2c.c b/hw/i2c/exynos4210_i2c.c
index c96fa7d7be..43f284eab7 100644
--- a/hw/i2c/exynos4210_i2c.c
+++ b/hw/i2c/exynos4210_i2c.c
@@ -106,12 +106,12 @@ static inline void 
exynos4210_i2c_raise_interrupt(Exynos4210I2CState *s)
  static void exynos4210_i2c_data_receive(void *opaque)
  {
      Exynos4210I2CState *s = (Exynos4210I2CState *)opaque;
-    int ret;
+    uint8_t ret;

      s->i2cstat &= ~I2CSTAT_LAST_BIT;
      s->scl_free = false;
      ret = i2c_recv(s->bus);
-    if (ret < 0 && (s->i2ccon & I2CCON_ACK_GEN)) {
+    if (s->i2ccon & I2CCON_ACK_GEN) {
          s->i2cstat |= I2CSTAT_LAST_BIT;  /* Data is not acknowledged */
Previously the code was doing this only if i2c_recv()
failed (returned a negative value) and ACK_GEN was set.
i2c_recv() can never fail, so this if() {} branch should
be deleted entirely ("false && something" simplifies
to "false", not "something").

Oops, yes.  Plus you can just remove the ret variable and simplify
this a lot.  Thanks for finding this.

-corey



      } else {
          s->i2cds = ret;
The rest of the patch looks good.

thanks
-- PMM



Reply via email to