Commit 129575f2 authored by Ben Chan's avatar Ben Chan Committed by Greg Kroah-Hartman

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: default avatarBen Chan <benchan@chromium.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b37c1aee
...@@ -60,25 +60,20 @@ static void hexdump(char *title, u8 *data, int len) ...@@ -60,25 +60,20 @@ static void hexdump(char *title, u8 *data, int len)
static struct sdio_tx *alloc_tx_struct(struct tx_cxt *tx) 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)
if (t == NULL) return NULL;
goto out;
t->buf = kmalloc(TX_BUF_SIZE, GFP_ATOMIC); t->buf = kmalloc(TX_BUF_SIZE, GFP_ATOMIC);
if (t->buf == NULL) if (!t->buf) {
goto out; kfree(t);
return NULL;
}
t->tx_cxt = tx; t->tx_cxt = tx;
return t; return t;
out:
if (t) {
kfree(t->buf);
kfree(t);
}
return NULL;
} }
static void free_tx_struct(struct sdio_tx *t) static void free_tx_struct(struct sdio_tx *t)
...@@ -91,15 +86,10 @@ 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) static struct sdio_rx *alloc_rx_struct(struct rx_cxt *rx)
{ {
struct sdio_rx *r = NULL; struct sdio_rx *r = kzalloc(sizeof(*r), GFP_ATOMIC);
r = kmalloc(sizeof(*r), GFP_ATOMIC);
if (!r)
return NULL;
memset(r, 0, sizeof(*r));
r->rx_cxt = rx; if (r)
r->rx_cxt = rx;
return r; return r;
} }
......
...@@ -73,27 +73,23 @@ static void hexdump(char *title, u8 *data, int len) ...@@ -73,27 +73,23 @@ static void hexdump(char *title, u8 *data, int len)
static struct usb_tx *alloc_tx_struct(struct tx_cxt *tx) 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)
if (t == NULL) return NULL;
goto out;
t->urb = usb_alloc_urb(0, GFP_ATOMIC); t->urb = usb_alloc_urb(0, GFP_ATOMIC);
t->buf = kmalloc(TX_BUF_SIZE, GFP_ATOMIC); t->buf = kmalloc(TX_BUF_SIZE, GFP_ATOMIC);
if (t->urb == NULL || t->buf == NULL) if (!t->urb || !t->buf) {
goto out;
t->tx_cxt = tx;
return t;
out:
if (t) {
usb_free_urb(t->urb); usb_free_urb(t->urb);
kfree(t->buf); kfree(t->buf);
kfree(t); kfree(t);
return NULL;
} }
return NULL;
t->tx_cxt = tx;
return t;
} }
static void free_tx_struct(struct usb_tx *t) static void free_tx_struct(struct usb_tx *t)
...@@ -107,28 +103,22 @@ 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) 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)
if (r == NULL) return NULL;
goto out;
memset(r, 0, sizeof(*r));
r->urb = usb_alloc_urb(0, GFP_ATOMIC); r->urb = usb_alloc_urb(0, GFP_ATOMIC);
r->buf = kmalloc(RX_BUF_SIZE, GFP_ATOMIC); r->buf = kmalloc(RX_BUF_SIZE, GFP_ATOMIC);
if (r->urb == NULL || r->buf == NULL) if (!r->urb || !r->buf) {
goto out;
r->rx_cxt = rx;
return r;
out:
if (r) {
usb_free_urb(r->urb); usb_free_urb(r->urb);
kfree(r->buf); kfree(r->buf);
kfree(r); kfree(r);
return NULL;
} }
return NULL;
r->rx_cxt = rx;
return r;
} }
static void free_rx_struct(struct usb_rx *r) static void free_rx_struct(struct usb_rx *r)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment