aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/usb/kaweth.c
diff options
context:
space:
mode:
authorOliver Neukum <oneukum@suse.com>2016-08-17 15:51:56 +0200
committerDavid S. Miller <davem@davemloft.net>2016-08-18 23:25:33 -0700
commit575ced7f8090c1a4e91e2daf8da9352a6a1fc7a7 (patch)
tree8a5e52dfb0a2b5f3c3f58e093a58d950783eb140 /drivers/net/usb/kaweth.c
parentkaweth: fix firmware download (diff)
downloadlinux-575ced7f8090c1a4e91e2daf8da9352a6a1fc7a7.tar.xz
linux-575ced7f8090c1a4e91e2daf8da9352a6a1fc7a7.zip
kaweth: fix oops upon failed memory allocation
Just return an error upon failure. Signed-off-by: Oliver Neukum <oneukum@suse.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb/kaweth.c')
-rw-r--r--drivers/net/usb/kaweth.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
index 37bf715ab53b..528b9c9c4e60 100644
--- a/drivers/net/usb/kaweth.c
+++ b/drivers/net/usb/kaweth.c
@@ -1009,6 +1009,7 @@ static int kaweth_probe(
struct net_device *netdev;
const eth_addr_t bcast_addr = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
int result = 0;
+ int rv = -EIO;
dev_dbg(dev,
"Kawasaki Device Probe (Device number:%d): 0x%4.4x:0x%4.4x:0x%4.4x\n",
@@ -1049,6 +1050,10 @@ static int kaweth_probe(
/* Download the firmware */
dev_info(dev, "Downloading firmware...\n");
kaweth->firmware_buf = (__u8 *)__get_free_page(GFP_KERNEL);
+ if (!kaweth->firmware_buf) {
+ rv = -ENOMEM;
+ goto err_free_netdev;
+ }
if ((result = kaweth_download_firmware(kaweth,
"kaweth/new_code.bin",
100,
@@ -1203,7 +1208,7 @@ err_only_tx:
err_free_netdev:
free_netdev(netdev);
- return -EIO;
+ return rv;
}
/****************************************************************