Message ID | 20241026030942.1484-1-yangyingliang@huaweicloud.com |
---|---|
State | New |
Headers | show |
Series | i2c: muxes: Fix return value check in mule_i2c_mux_probe() | expand |
Hi Yang, On Sat, Oct 26, 2024 at 11:09:42AM +0800, Yang Yingliang wrote: > From: Yang Yingliang <yangyingliang@huawei.com> > > If dev_get_regmap() fails, it returns NULL pointer not ERR_PTR(), > replace IS_ERR() with NULL pointer check, and return -ENODEV. > > Fixes: d0f8e97866bf ("i2c: muxes: add support for tsd,mule-i2c multiplexer") > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> merged to i2c/i2c-host-fixes. Thanks, Andi
On Thu, Oct 31, 2024 at 01:09:17PM +0100, Andi Shyti wrote: > Hi Yang, > > On Sat, Oct 26, 2024 at 11:09:42AM +0800, Yang Yingliang wrote: > > From: Yang Yingliang <yangyingliang@huawei.com> > > > > If dev_get_regmap() fails, it returns NULL pointer not ERR_PTR(), > > replace IS_ERR() with NULL pointer check, and return -ENODEV. > > > > Fixes: d0f8e97866bf ("i2c: muxes: add support for tsd,mule-i2c multiplexer") > > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> > > merged to i2c/i2c-host-fixes. I'd like an ack from Farouk here. In general, -ENODEV makes the driver core sliently fail (ok, we have a printout but still). But not getting the regmap sounds like a real error to me. I'd suggest -ENOENT or something. But maybe this mux is a special case, Farouk should know.
Hi, On 04.11.24 11:56, Wolfram Sang wrote: > On Thu, Oct 31, 2024 at 01:09:17PM +0100, Andi Shyti wrote: >> Hi Yang, >> >> On Sat, Oct 26, 2024 at 11:09:42AM +0800, Yang Yingliang wrote: >>> From: Yang Yingliang <yangyingliang@huawei.com> >>> >>> If dev_get_regmap() fails, it returns NULL pointer not ERR_PTR(), >>> replace IS_ERR() with NULL pointer check, and return -ENODEV. >>> >>> Fixes: d0f8e97866bf ("i2c: muxes: add support for tsd,mule-i2c multiplexer") >>> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> >> merged to i2c/i2c-host-fixes. > I'd like an ack from Farouk here. In general, -ENODEV makes the driver > core sliently fail (ok, we have a printout but still). But not getting > the regmap sounds like a real error to me. I'd suggest -ENOENT or > something. But maybe this mux is a special case, Farouk should know. > I think the -ENODEV is good enough since we already log the error. Thanks Best regards
diff --git a/drivers/i2c/muxes/i2c-mux-mule.c b/drivers/i2c/muxes/i2c-mux-mule.c index 8e942470b35f..284ff4afeeac 100644 --- a/drivers/i2c/muxes/i2c-mux-mule.c +++ b/drivers/i2c/muxes/i2c-mux-mule.c @@ -66,8 +66,8 @@ static int mule_i2c_mux_probe(struct platform_device *pdev) priv = i2c_mux_priv(muxc); priv->regmap = dev_get_regmap(mux_dev->parent, NULL); - if (IS_ERR(priv->regmap)) - return dev_err_probe(mux_dev, PTR_ERR(priv->regmap), + if (!priv->regmap) + return dev_err_probe(mux_dev, -ENODEV, "No parent i2c register map\n"); platform_set_drvdata(pdev, muxc);