staging: ks7010: factor out send stop request
authorTobin C. Harding <me@tobin.cc>
Mon, 10 Apr 2017 03:15:47 +0000 (13:15 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Apr 2017 14:03:36 +0000 (16:03 +0200)
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>
drivers/staging/ks7010/ks7010_sdio.c

index 2be1c654189afde8a49df89675d5e9a5fbf83f0a..9afa06b9ae30a4d3873556f2fcd0a9dec97c2966 100644 (file)
@@ -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) {