OSDN Git Service

i2c: mlxcpld: Fix wrong initialization order in probe
authorVadim Pasternak <vadimp@mellanox.com>
Thu, 16 May 2019 17:15:41 +0000 (17:15 +0000)
committerWolfram Sang <wsa@the-dreams.de>
Mon, 27 May 2019 19:24:58 +0000 (21:24 +0200)
commit13067ef73f337336e3149f5bb9f3fd05fe7f87a0
treede1cba3da186121bccf50b402c3840e784a50dbd
parenta0692f0eef91354b62c2b4c94954536536be5425
i2c: mlxcpld: Fix wrong initialization order in probe

Fix wrong order in probing routine initialization - field `base_addr'
is used before it's initialized. Move assignment of 'priv->base_addr`
to the beginning, prior the call to mlxcpld_i2c_read_comm().
Wrong order caused the first read of capability register to be executed
at wrong offset 0x0 instead of 0x2000. By chance it was a "good
garbage" at 0x0 offset.

Fixes: 313ce648b5a4 ("i2c: mlxcpld: Add support for extended transaction length for i2c-mlxcpld")
Signed-off-by: Vadim Pasternak <vadimp@mellanox.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: stable@kernel.org
drivers/i2c/busses/i2c-mlxcpld.c