Skip to content

Commit

Permalink
drivers/staging/gdm72xx/gdm_sdio.c: Remove useless kfree
Browse files Browse the repository at this point in the history
Remove useless kfree() and clean up code related to the removal.

The semantic patch that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@r exists@
position p1,p2;
expression x;
@@

if (x@p1 == NULL) { ... kfree@p2(x); ... return ...; }

@unchanged exists@
position r.p1,r.p2;
expression e <= r.x,x,e1;
iterator I;
statement S;
@@

if (x@p1 == NULL) { ... when != I(x,...) S
                        when != e = e1
                        when != e += e1
                        when != e -= e1
                        when != ++e
                        when != --e
                        when != e++
                        when != e--
                        when != &e
   kfree@p2(x); ... return ...; }

@ok depends on unchanged exists@
position any r.p1;
position r.p2;
expression x;
@@

... when != true x@p1 == NULL
kfree@p2(x);

@depends on !ok && unchanged@
position r.p2;
expression x;
@@

*kfree@p2(x);
// </smpl>

Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Peter Senna Tschudin authored and Greg Kroah-Hartman committed Sep 12, 2012
1 parent 2e464f0 commit 47ad342
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions drivers/staging/gdm72xx/gdm_sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,17 +94,14 @@ static struct sdio_rx *alloc_rx_struct(struct rx_cxt *rx)
struct sdio_rx *r = NULL;

r = kmalloc(sizeof(*r), GFP_ATOMIC);
if (r == NULL)
goto out;
if (!r)
return NULL;

memset(r, 0, sizeof(*r));

r->rx_cxt = rx;

return r;
out:
kfree(r);
return NULL;
}

static void free_rx_struct(struct sdio_rx *r)
Expand Down

0 comments on commit 47ad342

Please sign in to comment.