diff options
-rw-r--r-- | drivers/net/wireless/mwifiex/pcie.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/drivers/net/wireless/mwifiex/pcie.c b/drivers/net/wireless/mwifiex/pcie.c index a2f32008f9a8..405350940a45 100644 --- a/drivers/net/wireless/mwifiex/pcie.c +++ b/drivers/net/wireless/mwifiex/pcie.c | |||
@@ -386,7 +386,7 @@ static int mwifiex_pcie_create_txbd_ring(struct mwifiex_adapter *adapter) | |||
386 | card->txbd_ring_vbase = kzalloc(card->txbd_ring_size, GFP_KERNEL); | 386 | card->txbd_ring_vbase = kzalloc(card->txbd_ring_size, GFP_KERNEL); |
387 | if (!card->txbd_ring_vbase) { | 387 | if (!card->txbd_ring_vbase) { |
388 | dev_err(adapter->dev, "Unable to allocate buffer for txbd ring.\n"); | 388 | dev_err(adapter->dev, "Unable to allocate buffer for txbd ring.\n"); |
389 | return -1; | 389 | return -ENOMEM; |
390 | } | 390 | } |
391 | card->txbd_ring_pbase = virt_to_phys(card->txbd_ring_vbase); | 391 | card->txbd_ring_pbase = virt_to_phys(card->txbd_ring_vbase); |
392 | 392 | ||
@@ -476,7 +476,7 @@ static int mwifiex_pcie_create_rxbd_ring(struct mwifiex_adapter *adapter) | |||
476 | if (!card->rxbd_ring_vbase) { | 476 | if (!card->rxbd_ring_vbase) { |
477 | dev_err(adapter->dev, "Unable to allocate buffer for " | 477 | dev_err(adapter->dev, "Unable to allocate buffer for " |
478 | "rxbd_ring.\n"); | 478 | "rxbd_ring.\n"); |
479 | return -1; | 479 | return -ENOMEM; |
480 | } | 480 | } |
481 | card->rxbd_ring_pbase = virt_to_phys(card->rxbd_ring_vbase); | 481 | card->rxbd_ring_pbase = virt_to_phys(card->rxbd_ring_vbase); |
482 | 482 | ||
@@ -569,7 +569,7 @@ static int mwifiex_pcie_create_evtbd_ring(struct mwifiex_adapter *adapter) | |||
569 | if (!card->evtbd_ring_vbase) { | 569 | if (!card->evtbd_ring_vbase) { |
570 | dev_err(adapter->dev, "Unable to allocate buffer. " | 570 | dev_err(adapter->dev, "Unable to allocate buffer. " |
571 | "Terminating download\n"); | 571 | "Terminating download\n"); |
572 | return -1; | 572 | return -ENOMEM; |
573 | } | 573 | } |
574 | card->evtbd_ring_pbase = virt_to_phys(card->evtbd_ring_vbase); | 574 | card->evtbd_ring_pbase = virt_to_phys(card->evtbd_ring_vbase); |
575 | 575 | ||
@@ -1231,15 +1231,13 @@ static int mwifiex_pcie_event_complete(struct mwifiex_adapter *adapter, | |||
1231 | if (rdptr >= MWIFIEX_MAX_EVT_BD) { | 1231 | if (rdptr >= MWIFIEX_MAX_EVT_BD) { |
1232 | dev_err(adapter->dev, "event_complete: Invalid rdptr 0x%x\n", | 1232 | dev_err(adapter->dev, "event_complete: Invalid rdptr 0x%x\n", |
1233 | rdptr); | 1233 | rdptr); |
1234 | ret = -EINVAL; | 1234 | return -EINVAL; |
1235 | goto done; | ||
1236 | } | 1235 | } |
1237 | 1236 | ||
1238 | /* Read the event ring write pointer set by firmware */ | 1237 | /* Read the event ring write pointer set by firmware */ |
1239 | if (mwifiex_read_reg(adapter, REG_EVTBD_WRPTR, &wrptr)) { | 1238 | if (mwifiex_read_reg(adapter, REG_EVTBD_WRPTR, &wrptr)) { |
1240 | dev_err(adapter->dev, "event_complete: failed to read REG_EVTBD_WRPTR\n"); | 1239 | dev_err(adapter->dev, "event_complete: failed to read REG_EVTBD_WRPTR\n"); |
1241 | ret = -1; | 1240 | return -1; |
1242 | goto done; | ||
1243 | } | 1241 | } |
1244 | 1242 | ||
1245 | if (!card->evt_buf_list[rdptr]) { | 1243 | if (!card->evt_buf_list[rdptr]) { |
@@ -1268,15 +1266,9 @@ static int mwifiex_pcie_event_complete(struct mwifiex_adapter *adapter, | |||
1268 | /* Write the event ring read pointer in to REG_EVTBD_RDPTR */ | 1266 | /* Write the event ring read pointer in to REG_EVTBD_RDPTR */ |
1269 | if (mwifiex_write_reg(adapter, REG_EVTBD_RDPTR, card->evtbd_rdptr)) { | 1267 | if (mwifiex_write_reg(adapter, REG_EVTBD_RDPTR, card->evtbd_rdptr)) { |
1270 | dev_err(adapter->dev, "event_complete: failed to read REG_EVTBD_RDPTR\n"); | 1268 | dev_err(adapter->dev, "event_complete: failed to read REG_EVTBD_RDPTR\n"); |
1271 | ret = -1; | 1269 | return -1; |
1272 | goto done; | ||
1273 | } | 1270 | } |
1274 | 1271 | ||
1275 | done: | ||
1276 | /* Free the buffer for failure case */ | ||
1277 | if (ret && skb) | ||
1278 | dev_kfree_skb_any(skb); | ||
1279 | |||
1280 | dev_dbg(adapter->dev, "info: Check Events Again\n"); | 1272 | dev_dbg(adapter->dev, "info: Check Events Again\n"); |
1281 | ret = mwifiex_pcie_process_event_ready(adapter); | 1273 | ret = mwifiex_pcie_process_event_ready(adapter); |
1282 | 1274 | ||