aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/mwifiex/pcie.c20
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
1275done:
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