mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 21:33:52 +00:00
i2c: cadence: cdns_i2c_master_xfer(): Fix runtime PM leak on error path
[ Upstream commitae1664f04f
] The cdns_i2c_master_xfer() function gets a runtime PM reference when the function is entered. This reference is released when the function is exited. There is currently one error path where the function exits directly, which leads to a leak of the runtime PM reference. Make sure that this error path also releases the runtime PM reference. Fixes:1a351b10b9
("i2c: cadence: Added slave support") Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Reviewed-by: Michal Simek <michal.simek@amd.com> Signed-off-by: Wolfram Sang <wsa@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
d453f25faf
commit
2d65599ad1
1 changed files with 4 additions and 2 deletions
|
@ -828,8 +828,10 @@ static int cdns_i2c_master_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs,
|
|||
#if IS_ENABLED(CONFIG_I2C_SLAVE)
|
||||
/* Check i2c operating mode and switch if possible */
|
||||
if (id->dev_mode == CDNS_I2C_MODE_SLAVE) {
|
||||
if (id->slave_state != CDNS_I2C_SLAVE_STATE_IDLE)
|
||||
return -EAGAIN;
|
||||
if (id->slave_state != CDNS_I2C_SLAVE_STATE_IDLE) {
|
||||
ret = -EAGAIN;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Set mode to master */
|
||||
cdns_i2c_set_mode(CDNS_I2C_MODE_MASTER, id);
|
||||
|
|
Loading…
Reference in a new issue