diff options
author | Ben Chan <benchan@chromium.org> | 2012-09-12 11:43:41 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-09-13 20:15:41 -0700 |
commit | 129575f2a8958a1e90780b0d5b80702bb45b5aac (patch) | |
tree | e79b0a0f7f5cd7c6051893cc08bfc1c7d2816a74 /drivers/staging/gdm72xx | |
parent | b37c1aeed89062a82da9bf78c83db0328d08e95d (diff) | |
download | linux-129575f2a8958a1e90780b0d5b80702bb45b5aac.tar.gz linux-129575f2a8958a1e90780b0d5b80702bb45b5aac.tar.bz2 linux-129575f2a8958a1e90780b0d5b80702bb45b5aac.zip |
staging: gdm72xx: simplify alloc_tx_struct and alloc_rx_struct
This patch simplifies alloc_tx_struct and alloc_rx_struct in gdm_sdio.c
and gdm_usb.c by replacing kmalloc+memset with kzalloc and reorganizing
the code.
Signed-off-by: Ben Chan <benchan@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/gdm72xx')
-rw-r--r-- | drivers/staging/gdm72xx/gdm_sdio.c | 30 | ||||
-rw-r--r-- | drivers/staging/gdm72xx/gdm_usb.c | 44 |
2 files changed, 27 insertions, 47 deletions
diff --git a/drivers/staging/gdm72xx/gdm_sdio.c b/drivers/staging/gdm72xx/gdm_sdio.c index a0621d9c2198..ca38d719a1f8 100644 --- a/drivers/staging/gdm72xx/gdm_sdio.c +++ b/drivers/staging/gdm72xx/gdm_sdio.c @@ -60,25 +60,20 @@ static void hexdump(char *title, u8 *data, int len) static struct sdio_tx *alloc_tx_struct(struct tx_cxt *tx) { - struct sdio_tx *t = NULL; + struct sdio_tx *t = kzalloc(sizeof(*t), GFP_ATOMIC); - t = kzalloc(sizeof(*t), GFP_ATOMIC); - if (t == NULL) - goto out; + if (!t) + return NULL; t->buf = kmalloc(TX_BUF_SIZE, GFP_ATOMIC); - if (t->buf == NULL) - goto out; + if (!t->buf) { + kfree(t); + return NULL; + } t->tx_cxt = tx; return t; -out: - if (t) { - kfree(t->buf); - kfree(t); - } - return NULL; } static void free_tx_struct(struct sdio_tx *t) @@ -91,15 +86,10 @@ static void free_tx_struct(struct sdio_tx *t) static struct sdio_rx *alloc_rx_struct(struct rx_cxt *rx) { - struct sdio_rx *r = NULL; - - r = kmalloc(sizeof(*r), GFP_ATOMIC); - if (!r) - return NULL; - - memset(r, 0, sizeof(*r)); + struct sdio_rx *r = kzalloc(sizeof(*r), GFP_ATOMIC); - r->rx_cxt = rx; + if (r) + r->rx_cxt = rx; return r; } diff --git a/drivers/staging/gdm72xx/gdm_usb.c b/drivers/staging/gdm72xx/gdm_usb.c index 6d306f7ffffa..0c9e8958009b 100644 --- a/drivers/staging/gdm72xx/gdm_usb.c +++ b/drivers/staging/gdm72xx/gdm_usb.c @@ -73,27 +73,23 @@ static void hexdump(char *title, u8 *data, int len) static struct usb_tx *alloc_tx_struct(struct tx_cxt *tx) { - struct usb_tx *t = NULL; + struct usb_tx *t = kzalloc(sizeof(*t), GFP_ATOMIC); - t = kzalloc(sizeof(*t), GFP_ATOMIC); - if (t == NULL) - goto out; + if (!t) + return NULL; t->urb = usb_alloc_urb(0, GFP_ATOMIC); t->buf = kmalloc(TX_BUF_SIZE, GFP_ATOMIC); - if (t->urb == NULL || t->buf == NULL) - goto out; - - t->tx_cxt = tx; - - return t; -out: - if (t) { + if (!t->urb || !t->buf) { usb_free_urb(t->urb); kfree(t->buf); kfree(t); + return NULL; } - return NULL; + + t->tx_cxt = tx; + + return t; } static void free_tx_struct(struct usb_tx *t) @@ -107,28 +103,22 @@ static void free_tx_struct(struct usb_tx *t) static struct usb_rx *alloc_rx_struct(struct rx_cxt *rx) { - struct usb_rx *r = NULL; + struct usb_rx *r = kzalloc(sizeof(*r), GFP_ATOMIC); - r = kmalloc(sizeof(*r), GFP_ATOMIC); - if (r == NULL) - goto out; - - memset(r, 0, sizeof(*r)); + if (!r) + return NULL; r->urb = usb_alloc_urb(0, GFP_ATOMIC); r->buf = kmalloc(RX_BUF_SIZE, GFP_ATOMIC); - if (r->urb == NULL || r->buf == NULL) - goto out; - - r->rx_cxt = rx; - return r; -out: - if (r) { + if (!r->urb || !r->buf) { usb_free_urb(r->urb); kfree(r->buf); kfree(r); + return NULL; } - return NULL; + + r->rx_cxt = rx; + return r; } static void free_rx_struct(struct usb_rx *r) |