kernel/drivers/i2c/busses/i2c-cadence.c
.. .. @@ -792,8 +792,10 @@ 792 792 #if IS_ENABLED(CONFIG_I2C_SLAVE) 793 793 /* Check i2c operating mode and switch if possible */ 794 794 if (id->dev_mode == CDNS_I2C_MODE_SLAVE) { 795 - if (id->slave_state != CDNS_I2C_SLAVE_STATE_IDLE)796 - return -EAGAIN;795 + if (id->slave_state != CDNS_I2C_SLAVE_STATE_IDLE) {796 + ret = -EAGAIN;797 + goto out;798 + }797 799 798 800 /* Set mode to master */ 799 801 cdns_i2c_set_mode(CDNS_I2C_MODE_MASTER, id);