staging: ks7010: fix error handling in ks7010_upload_firmware
authorSergio Paracuellos <sergio.paracuellos@gmail.com>
Tue, 3 Apr 2018 15:13:00 +0000 (17:13 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Apr 2018 12:22:07 +0000 (14:22 +0200)
This commit checks missing error code check when checking
if the firmware is running reading General Communication
Register A (GCR_A).

It also set ret to EBUSY if firmware is running before
copying it.

Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ks7010/ks7010_sdio.c

index 9907c0c..4d794ac 100644 (file)
@@ -657,8 +657,11 @@ static int ks7010_upload_firmware(struct ks_sdio_card *card)
 
        /* Firmware running ? */
        ret = ks7010_sdio_readb(priv, GCR_A, &byte);
+       if (ret)
+               goto release_host_and_free;
        if (byte == GCR_A_RUN) {
                netdev_dbg(priv->net_dev, "MAC firmware running ...\n");
+               ret = -EBUSY;
                goto release_host_and_free;
        }