7 Feb
2017
7 Feb
'17
2:42 p.m.
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@oracle.com
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