lkml.org 
[lkml]   [2013]   [Jan]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/15] drivers/usb/chipidea/core.c: adjust duplicate test
    Date
    From: Julia Lawall <Julia.Lawall@lip6.fr>

    Delete successive tests to the same location. In this case res has already
    been tested for being NULL, and calling devm_request_and_ioremap will not
    make it NULL. On the other hand, devm_request_and_ioremap can return NULL
    on failure.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    // <smpl>
    @s exists@
    local idexpression y;
    expression x,e;
    @@

    *if ( \(x == NULL\|IS_ERR(x)\|y != 0\) )
    { ... when forall
    return ...; }
    ... when != \(y = e\|y += e\|y -= e\|y |= e\|y &= e\|y++\|y--\|&y\)
    when != \(XT_GETPAGE(...,y)\|WMI_CMD_BUF(...)\)
    *if ( \(x == NULL\|IS_ERR(x)\|y != 0\) )
    { ... when forall
    return ...; }
    // </smpl>

    Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>

    ---
    This code could be improved in other ways. The previous NULL test on res
    is not needed, and the dev_err in the error-handling code for the call to
    devm_request_and_ioremap is redundant with respect to the logging already
    done by devm_request_and_ioremap. But these should probably be done
    separately.

    drivers/usb/chipidea/core.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/usb/chipidea/core.c b/drivers/usb/chipidea/core.c
    index aebf695..57cae1f 100644
    --- a/drivers/usb/chipidea/core.c
    +++ b/drivers/usb/chipidea/core.c
    @@ -411,7 +411,7 @@ static int ci_hdrc_probe(struct platform_device *pdev)
    }

    base = devm_request_and_ioremap(dev, res);
    - if (!res) {
    + if (!base) {
    dev_err(dev, "can't request and ioremap resource\n");
    return -ENOMEM;
    }


    \
     
     \ /
      Last update: 2013-01-21 18:21    [W:4.226 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site