Hi Dan, On Tue, Feb 07, 2017 at 04:19:34PM +0300, Dan Carpenter wrote: > "i2s->rst" is either NULL or a valid pointer. We won't probe > successfully if it's an error pointer. That means these checks can be > removed. > > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > > diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c > index 3635bbc72cbc..d79be3e4361b 100644 > --- a/sound/soc/sunxi/sun4i-i2s.c > +++ b/sound/soc/sunxi/sun4i-i2s.c > @@ -723,13 +723,11 @@ static int sun4i_i2s_probe(struct platform_device *pdev) > } > } > > - if (!IS_ERR(i2s->rst)) { > - ret = reset_control_deassert(i2s->rst); > - if (ret) { > - dev_err(&pdev->dev, > - "Failed to deassert the reset control\n"); > - return -EINVAL; > - } > + ret = reset_control_deassert(i2s->rst); > + if (ret) { > + dev_err(&pdev->dev, > + "Failed to deassert the reset control\n"); > + return -EINVAL; In the case where has_reset is false, rst is NULL and will trigger a WARN_ON in reset_control_deassert. The proper fix would be to move it in the previous if block, or to change the IS_ERR check for a NULL check. Maxime -- Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com
Attachment:
signature.asc
Description: PGP signature