diff options
author | Tobin C. Harding <me@tobin.cc> | 2017-04-10 13:15:47 +1000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-04-11 16:03:36 +0200 |
commit | 2ab6fd596317c89b96f0cfd8811f12dd047bbd9e (patch) | |
tree | 207a3469afae2231e9243b999599abbd32247c87 | |
parent | f8641485ffb4ba573daa3f7d0532720634e5f44b (diff) |
staging: ks7010: factor out send stop request
Function contains compound statement delineated by lone braces. This
statement represents a discreet set of functionality and thus can be
factored out into a separate function. Using a separate function
instead of a compound statement increases readability, reduces code
indentation, reduces function length, and generally looks more tidy.
Factor compound statement out to separate function.
Signed-off-by: Tobin C. Harding <me@tobin.cc>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/ks7010/ks7010_sdio.c | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/drivers/staging/ks7010/ks7010_sdio.c b/drivers/staging/ks7010/ks7010_sdio.c index 2be1c654189a..9afa06b9ae30 100644 --- a/drivers/staging/ks7010/ks7010_sdio.c +++ b/drivers/staging/ks7010/ks7010_sdio.c @@ -1042,6 +1042,35 @@ static int ks7010_sdio_probe(struct sdio_func *func, return -ENODEV; } +/* send stop request to MAC */ +static int send_stop_request(struct sdio_func *func) +{ + struct hostif_stop_request_t *pp; + struct ks_sdio_card *card; + size_t size; + + card = sdio_get_drvdata(func); + + pp = kzalloc(hif_align_size(sizeof(*pp)), GFP_KERNEL); + if (!pp) { + DPRINTK(3, "allocate memory failed..\n"); + return -ENOMEM; + } + + size = sizeof(*pp) - sizeof(pp->header.size); + pp->header.size = cpu_to_le16((uint16_t)size); + pp->header.event = cpu_to_le16((uint16_t)HIF_STOP_REQ); + + sdio_claim_host(func); + write_to_device(card->priv, (unsigned char *)pp, + hif_align_size(sizeof(*pp))); + sdio_release_host(func); + + kfree(pp); + return 0; +} + + static void ks7010_sdio_remove(struct sdio_func *func) { int ret; @@ -1070,27 +1099,10 @@ static void ks7010_sdio_remove(struct sdio_func *func) sdio_release_host(func); DPRINTK(1, "interrupt disable\n"); - /* send stop request to MAC */ - { - struct hostif_stop_request_t *pp; + ret = send_stop_request(func); + if (ret) /* memory allocation failure */ + return; - pp = kzalloc(hif_align_size(sizeof(*pp)), GFP_KERNEL); - if (!pp) { - DPRINTK(3, "allocate memory failed..\n"); - return; /* to do goto ni suru */ - } - pp->header.size = - cpu_to_le16((uint16_t) - (sizeof(*pp) - - sizeof(pp->header.size))); - pp->header.event = cpu_to_le16((uint16_t)HIF_STOP_REQ); - - sdio_claim_host(func); - write_to_device(priv, (unsigned char *)pp, - hif_align_size(sizeof(*pp))); - sdio_release_host(func); - kfree(pp); - } DPRINTK(1, "STOP Req\n"); if (priv->ks_wlan_hw.ks7010sdio_wq) { |