Message ID | 20250108225533.915334-1-Frank.Li@nxp.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/1] i3c: master: Fix missing 'ret' assignment in set_speed() | expand |
On Wed, Jan 08, 2025 at 05:55:33PM -0500, Frank Li wrote: > Fix a probe failure in the i3c master driver that occurs when no i3c > devices are connected to the bus. > > The issue arises in `i3c_master_bus_init()` where the `ret` value is not > updated after calling `master->ops->set_speed()`. If no devices are > present, `ret` remains set to `I3C_ERROR_M2`, causing the code to > incorrectly proceed to `err_bus_cleanup`. > > Cc: stable@vger.kernel.org > Fixes: aef79e189ba2 ("i3c: master: support to adjust first broadcast address speed") > Signed-off-by: Frank Li <Frank.Li@nxp.com> Precisely. Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Tested with a Renesas RZ/G3S-SMARC board with some test code added to the still under-development controller driver: Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Hi Frank, change looks good to me. On 1/9/2025 4:25 AM, Frank Li wrote: > Fix a probe failure in the i3c master driver that occurs when no i3c > devices are connected to the bus. > > The issue arises in `i3c_master_bus_init()` where the `ret` value is not > updated after calling `master->ops->set_speed()`. If no devices are > present, `ret` remains set to `I3C_ERROR_M2`, causing the code to > incorrectly proceed to `err_bus_cleanup`. > > Cc: stable@vger.kernel.org > Fixes: aef79e189ba2 ("i3c: master: support to adjust first broadcast address speed") > Signed-off-by: Frank Li <Frank.Li@nxp.com> > --- > drivers/i3c/master.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c > index 42310c9a00c2d..53ab814b676ff 100644 > --- a/drivers/i3c/master.c > +++ b/drivers/i3c/master.c > @@ -1919,7 +1919,7 @@ static int i3c_master_bus_init(struct i3c_master_controller *master) > goto err_bus_cleanup; > > if (master->ops->set_speed) { > - master->ops->set_speed(master, I3C_OPEN_DRAIN_NORMAL_SPEED); > + ret = master->ops->set_speed(master, I3C_OPEN_DRAIN_NORMAL_SPEED); > if (ret) > goto err_bus_cleanup; > } Acked-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com>
On 08/01/2025 at 17:55:33 -05, Frank Li <Frank.Li@nxp.com> wrote: > Fix a probe failure in the i3c master driver that occurs when no i3c > devices are connected to the bus. > > The issue arises in `i3c_master_bus_init()` where the `ret` value is not > updated after calling `master->ops->set_speed()`. If no devices are > present, `ret` remains set to `I3C_ERROR_M2`, causing the code to > incorrectly proceed to `err_bus_cleanup`. Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> Thanks, Miquèl
diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c index 42310c9a00c2d..53ab814b676ff 100644 --- a/drivers/i3c/master.c +++ b/drivers/i3c/master.c @@ -1919,7 +1919,7 @@ static int i3c_master_bus_init(struct i3c_master_controller *master) goto err_bus_cleanup; if (master->ops->set_speed) { - master->ops->set_speed(master, I3C_OPEN_DRAIN_NORMAL_SPEED); + ret = master->ops->set_speed(master, I3C_OPEN_DRAIN_NORMAL_SPEED); if (ret) goto err_bus_cleanup; }
Fix a probe failure in the i3c master driver that occurs when no i3c devices are connected to the bus. The issue arises in `i3c_master_bus_init()` where the `ret` value is not updated after calling `master->ops->set_speed()`. If no devices are present, `ret` remains set to `I3C_ERROR_M2`, causing the code to incorrectly proceed to `err_bus_cleanup`. Cc: stable@vger.kernel.org Fixes: aef79e189ba2 ("i3c: master: support to adjust first broadcast address speed") Signed-off-by: Frank Li <Frank.Li@nxp.com> --- drivers/i3c/master.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)