summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobin C. Harding <me@tobin.cc>2017-04-10 13:15:47 +1000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-04-11 16:03:36 +0200
commit2ab6fd596317c89b96f0cfd8811f12dd047bbd9e (patch)
tree207a3469afae2231e9243b999599abbd32247c87
parentf8641485ffb4ba573daa3f7d0532720634e5f44b (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.c52
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) {