X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=kernel%2Fdrivers%2Fnet%2Fwireless%2Frsi%2Frsi_91x_usb_ops.c;h=30c2cf7fa93b0c6015d22236c3a9189b462cb064;hb=fdb8b20906f3546ba6c2f9f0686d8a5189516ba3;hp=1106ce76707e1095fd523c5c541fa3740e9c9496;hpb=9ca8dbcc65cfc63d6f5ef3312a33184e1d726e00;p=kvmfornfv.git diff --git a/kernel/drivers/net/wireless/rsi/rsi_91x_usb_ops.c b/kernel/drivers/net/wireless/rsi/rsi_91x_usb_ops.c index 1106ce767..30c2cf7fa 100644 --- a/kernel/drivers/net/wireless/rsi/rsi_91x_usb_ops.c +++ b/kernel/drivers/net/wireless/rsi/rsi_91x_usb_ops.c @@ -146,7 +146,10 @@ static int rsi_load_ta_instructions(struct rsi_common *common) return status; } + /* Copy firmware into DMA-accessible memory */ fw = kmemdup(fw_entry->data, fw_entry->size, GFP_KERNEL); + if (!fw) + return -ENOMEM; len = fw_entry->size; if (len % 4) @@ -158,6 +161,7 @@ static int rsi_load_ta_instructions(struct rsi_common *common) rsi_dbg(INIT_ZONE, "%s: num blocks: %d\n", __func__, num_blocks); status = rsi_copy_to_card(common, fw, len, num_blocks); + kfree(fw); release_firmware(fw_entry); return status; }