]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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>
Fri, 3 Aug 2018 05:47:59 +0000 (07:47 +0200)
[ Upstream commit 6e043704fb99e3e1d7a1bb02030e49c093cdd943 ]

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>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/ks7010/ks7010_sdio.c

index b8f55a11ee1c66c13f71f8468aab62bed99758e5..7391bba405ae88b9f041d68465e5d40ea2e37983 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;
        }