aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-05-04 23:10:04 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-05-04 23:10:04 -0400
commit1aaf6d3d3d1e95f4be07e32dd84aa1c93855fbbd (patch)
tree49e1fad1e1a1a3c7f2792c3554a876abfd58739a /drivers/net/ethernet
parentf589e9bfcfc4ec2b59bf36b994b75012c155799e (diff)
parent777c2300865cb9b1b1791862ed23da677abfe6dc (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) Several routines do not use netdev_features_t to hold such bitmasks, fixes from Patrick McHardy and Bjørn Mork. 2) Update cpsw IRQ software state and the actual HW irq enabling in the correct order. From Mugunthan V N. 3) When sending tipc packets to multiple bearers, we have to make copies of the SKB rather than just giving the original SKB directly. Fix from Gerlando Falauto. 4) Fix race with bridging topology change timer, from Stephen Hemminger. 5) Fix TCPv6 segmentation handling in GRE and VXLAN, from Pravin B Shelar. 6) Endian bug in USB pegasus driver, from Dan Carpenter. 7) Fix crashes on MTU reduction in USB asix driver, from Holger Eitzenberger. 8) Don't allow the kernel to BUG() just because the user puts some crap in an AF_PACKET mmap() ring descriptor. Fix from Daniel Borkmann. 9) Don't use variable sized arrays on the stack in xen-netback, from Wei Liu. 10) Fix stats reporting and an unbalanced napi_disable() in be2net driver. From Somnath Kotur and Ajit Khaparde. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (25 commits) cxgb4: fix error recovery when t4_fw_hello returns a positive value sky2: Fix crash on receiving VLAN frames packet: tpacket_v3: do not trigger bug() on wrong header status asix: fix BUG in receive path when lowering MTU net: qmi_wwan: Add Telewell TW-LTE 4G usbnet: pegasus: endian bug in write_mii_word() vxlan: Fix TCPv6 segmentation. gre: Fix GREv4 TCPv6 segmentation. bridge: fix race with topology change timer tipc: pskb_copy() buffers when sending on more than one bearer tipc: tipc_bcbearer_send(): simplify bearer selection tipc: cosmetic: clean up comments and break a long line drivers: net: cpsw: irq not disabled in cpsw isr in particular sequence xen-netback: better names for thresholds xen-netback: avoid allocating variable size array on stack xen-netback: remove redundent parameter in netbk_count_requests be2net: Fix to fail probe if MSI-X enable fails for a VF be2net: avoid napi_disable() when it has not been enabled be2net: Fix firmware download for Lancer be2net: Fix to receive Multicast Packets when Promiscuous mode is enabled on certain devices ...
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c2
-rw-r--r--drivers/net/ethernet/emulex/benet/be.h1
-rw-r--r--drivers/net/ethernet/emulex/benet/be_cmds.c35
-rw-r--r--drivers/net/ethernet/emulex/benet/be_cmds.h2
-rw-r--r--drivers/net/ethernet/emulex/benet/be_ethtool.c1
-rw-r--r--drivers/net/ethernet/emulex/benet/be_main.c54
-rw-r--r--drivers/net/ethernet/marvell/sky2.c2
-rw-r--r--drivers/net/ethernet/ti/cpsw.c2
8 files changed, 65 insertions, 34 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index c59ec3ddaa66..3cd397d60434 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -5204,7 +5204,7 @@ static pci_ers_result_t eeh_slot_reset(struct pci_dev *pdev)
5204 5204
5205 if (t4_wait_dev_ready(adap) < 0) 5205 if (t4_wait_dev_ready(adap) < 0)
5206 return PCI_ERS_RESULT_DISCONNECT; 5206 return PCI_ERS_RESULT_DISCONNECT;
5207 if (t4_fw_hello(adap, adap->fn, adap->fn, MASTER_MUST, NULL)) 5207 if (t4_fw_hello(adap, adap->fn, adap->fn, MASTER_MUST, NULL) < 0)
5208 return PCI_ERS_RESULT_DISCONNECT; 5208 return PCI_ERS_RESULT_DISCONNECT;
5209 adap->flags |= FW_OK; 5209 adap->flags |= FW_OK;
5210 if (adap_init1(adap, &c)) 5210 if (adap_init1(adap, &c))
diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h
index 234ce6f07544..f544b297c9ab 100644
--- a/drivers/net/ethernet/emulex/benet/be.h
+++ b/drivers/net/ethernet/emulex/benet/be.h
@@ -327,6 +327,7 @@ enum vf_state {
327 327
328#define BE_FLAGS_LINK_STATUS_INIT 1 328#define BE_FLAGS_LINK_STATUS_INIT 1
329#define BE_FLAGS_WORKER_SCHEDULED (1 << 3) 329#define BE_FLAGS_WORKER_SCHEDULED (1 << 3)
330#define BE_FLAGS_NAPI_ENABLED (1 << 9)
330#define BE_UC_PMAC_COUNT 30 331#define BE_UC_PMAC_COUNT 30
331#define BE_VF_UC_PMAC_COUNT 2 332#define BE_VF_UC_PMAC_COUNT 2
332#define BE_FLAGS_QNQ_ASYNC_EVT_RCVD (1 << 11) 333#define BE_FLAGS_QNQ_ASYNC_EVT_RCVD (1 << 11)
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c
index 25d3290b8cac..e1e5bb9d9054 100644
--- a/drivers/net/ethernet/emulex/benet/be_cmds.c
+++ b/drivers/net/ethernet/emulex/benet/be_cmds.c
@@ -961,19 +961,8 @@ int be_cmd_cq_create(struct be_adapter *adapter, struct be_queue_info *cq,
961 OPCODE_COMMON_CQ_CREATE, sizeof(*req), wrb, NULL); 961 OPCODE_COMMON_CQ_CREATE, sizeof(*req), wrb, NULL);
962 962
963 req->num_pages = cpu_to_le16(PAGES_4K_SPANNED(q_mem->va, q_mem->size)); 963 req->num_pages = cpu_to_le16(PAGES_4K_SPANNED(q_mem->va, q_mem->size));
964 if (lancer_chip(adapter)) { 964
965 req->hdr.version = 2; 965 if (BEx_chip(adapter)) {
966 req->page_size = 1; /* 1 for 4K */
967 AMAP_SET_BITS(struct amap_cq_context_lancer, nodelay, ctxt,
968 no_delay);
969 AMAP_SET_BITS(struct amap_cq_context_lancer, count, ctxt,
970 __ilog2_u32(cq->len/256));
971 AMAP_SET_BITS(struct amap_cq_context_lancer, valid, ctxt, 1);
972 AMAP_SET_BITS(struct amap_cq_context_lancer, eventable,
973 ctxt, 1);
974 AMAP_SET_BITS(struct amap_cq_context_lancer, eqid,
975 ctxt, eq->id);
976 } else {
977 AMAP_SET_BITS(struct amap_cq_context_be, coalescwm, ctxt, 966 AMAP_SET_BITS(struct amap_cq_context_be, coalescwm, ctxt,
978 coalesce_wm); 967 coalesce_wm);
979 AMAP_SET_BITS(struct amap_cq_context_be, nodelay, 968 AMAP_SET_BITS(struct amap_cq_context_be, nodelay,
@@ -983,6 +972,18 @@ int be_cmd_cq_create(struct be_adapter *adapter, struct be_queue_info *cq,
983 AMAP_SET_BITS(struct amap_cq_context_be, valid, ctxt, 1); 972 AMAP_SET_BITS(struct amap_cq_context_be, valid, ctxt, 1);
984 AMAP_SET_BITS(struct amap_cq_context_be, eventable, ctxt, 1); 973 AMAP_SET_BITS(struct amap_cq_context_be, eventable, ctxt, 1);
985 AMAP_SET_BITS(struct amap_cq_context_be, eqid, ctxt, eq->id); 974 AMAP_SET_BITS(struct amap_cq_context_be, eqid, ctxt, eq->id);
975 } else {
976 req->hdr.version = 2;
977 req->page_size = 1; /* 1 for 4K */
978 AMAP_SET_BITS(struct amap_cq_context_v2, nodelay, ctxt,
979 no_delay);
980 AMAP_SET_BITS(struct amap_cq_context_v2, count, ctxt,
981 __ilog2_u32(cq->len/256));
982 AMAP_SET_BITS(struct amap_cq_context_v2, valid, ctxt, 1);
983 AMAP_SET_BITS(struct amap_cq_context_v2, eventable,
984 ctxt, 1);
985 AMAP_SET_BITS(struct amap_cq_context_v2, eqid,
986 ctxt, eq->id);
986 } 987 }
987 988
988 be_dws_cpu_to_le(ctxt, sizeof(req->context)); 989 be_dws_cpu_to_le(ctxt, sizeof(req->context));
@@ -1763,10 +1764,12 @@ int be_cmd_rx_filter(struct be_adapter *adapter, u32 flags, u32 value)
1763 req->if_id = cpu_to_le32(adapter->if_handle); 1764 req->if_id = cpu_to_le32(adapter->if_handle);
1764 if (flags & IFF_PROMISC) { 1765 if (flags & IFF_PROMISC) {
1765 req->if_flags_mask = cpu_to_le32(BE_IF_FLAGS_PROMISCUOUS | 1766 req->if_flags_mask = cpu_to_le32(BE_IF_FLAGS_PROMISCUOUS |
1766 BE_IF_FLAGS_VLAN_PROMISCUOUS); 1767 BE_IF_FLAGS_VLAN_PROMISCUOUS |
1768 BE_IF_FLAGS_MCAST_PROMISCUOUS);
1767 if (value == ON) 1769 if (value == ON)
1768 req->if_flags = cpu_to_le32(BE_IF_FLAGS_PROMISCUOUS | 1770 req->if_flags = cpu_to_le32(BE_IF_FLAGS_PROMISCUOUS |
1769 BE_IF_FLAGS_VLAN_PROMISCUOUS); 1771 BE_IF_FLAGS_VLAN_PROMISCUOUS |
1772 BE_IF_FLAGS_MCAST_PROMISCUOUS);
1770 } else if (flags & IFF_ALLMULTI) { 1773 } else if (flags & IFF_ALLMULTI) {
1771 req->if_flags_mask = req->if_flags = 1774 req->if_flags_mask = req->if_flags =
1772 cpu_to_le32(BE_IF_FLAGS_MCAST_PROMISCUOUS); 1775 cpu_to_le32(BE_IF_FLAGS_MCAST_PROMISCUOUS);
@@ -2084,7 +2087,7 @@ int lancer_cmd_write_object(struct be_adapter *adapter, struct be_dma_mem *cmd,
2084 spin_unlock_bh(&adapter->mcc_lock); 2087 spin_unlock_bh(&adapter->mcc_lock);
2085 2088
2086 if (!wait_for_completion_timeout(&adapter->flash_compl, 2089 if (!wait_for_completion_timeout(&adapter->flash_compl,
2087 msecs_to_jiffies(30000))) 2090 msecs_to_jiffies(60000)))
2088 status = -1; 2091 status = -1;
2089 else 2092 else
2090 status = adapter->flash_status; 2093 status = adapter->flash_status;
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.h b/drivers/net/ethernet/emulex/benet/be_cmds.h
index a855668e0cc5..025bdb0d1764 100644
--- a/drivers/net/ethernet/emulex/benet/be_cmds.h
+++ b/drivers/net/ethernet/emulex/benet/be_cmds.h
@@ -381,7 +381,7 @@ struct amap_cq_context_be {
381 u8 rsvd5[32]; /* dword 3*/ 381 u8 rsvd5[32]; /* dword 3*/
382} __packed; 382} __packed;
383 383
384struct amap_cq_context_lancer { 384struct amap_cq_context_v2 {
385 u8 rsvd0[12]; /* dword 0*/ 385 u8 rsvd0[12]; /* dword 0*/
386 u8 coalescwm[2]; /* dword 0*/ 386 u8 coalescwm[2]; /* dword 0*/
387 u8 nodelay; /* dword 0*/ 387 u8 nodelay; /* dword 0*/
diff --git a/drivers/net/ethernet/emulex/benet/be_ethtool.c b/drivers/net/ethernet/emulex/benet/be_ethtool.c
index 5733cde88e2c..3d4461adb3b4 100644
--- a/drivers/net/ethernet/emulex/benet/be_ethtool.c
+++ b/drivers/net/ethernet/emulex/benet/be_ethtool.c
@@ -85,6 +85,7 @@ static const struct be_ethtool_stat et_stats[] = {
85 {DRVSTAT_INFO(tx_pauseframes)}, 85 {DRVSTAT_INFO(tx_pauseframes)},
86 {DRVSTAT_INFO(tx_controlframes)}, 86 {DRVSTAT_INFO(tx_controlframes)},
87 {DRVSTAT_INFO(rx_priority_pause_frames)}, 87 {DRVSTAT_INFO(rx_priority_pause_frames)},
88 {DRVSTAT_INFO(tx_priority_pauseframes)},
88 /* Received packets dropped when an internal fifo going into 89 /* Received packets dropped when an internal fifo going into
89 * main packet buffer tank (PMEM) overflows. 90 * main packet buffer tank (PMEM) overflows.
90 */ 91 */
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index 4babc8a4a543..6c52a60dcdb7 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -410,6 +410,7 @@ static void populate_be_v1_stats(struct be_adapter *adapter)
410 drvs->rxpp_fifo_overflow_drop = port_stats->rxpp_fifo_overflow_drop; 410 drvs->rxpp_fifo_overflow_drop = port_stats->rxpp_fifo_overflow_drop;
411 drvs->tx_pauseframes = port_stats->tx_pauseframes; 411 drvs->tx_pauseframes = port_stats->tx_pauseframes;
412 drvs->tx_controlframes = port_stats->tx_controlframes; 412 drvs->tx_controlframes = port_stats->tx_controlframes;
413 drvs->tx_priority_pauseframes = port_stats->tx_priority_pauseframes;
413 drvs->jabber_events = port_stats->jabber_events; 414 drvs->jabber_events = port_stats->jabber_events;
414 drvs->rx_drops_no_pbuf = rxf_stats->rx_drops_no_pbuf; 415 drvs->rx_drops_no_pbuf = rxf_stats->rx_drops_no_pbuf;
415 drvs->rx_drops_no_erx_descr = rxf_stats->rx_drops_no_erx_descr; 416 drvs->rx_drops_no_erx_descr = rxf_stats->rx_drops_no_erx_descr;
@@ -471,11 +472,26 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
471 ACCESS_ONCE(*acc) = newacc; 472 ACCESS_ONCE(*acc) = newacc;
472} 473}
473 474
475void populate_erx_stats(struct be_adapter *adapter,
476 struct be_rx_obj *rxo,
477 u32 erx_stat)
478{
479 if (!BEx_chip(adapter))
480 rx_stats(rxo)->rx_drops_no_frags = erx_stat;
481 else
482 /* below erx HW counter can actually wrap around after
483 * 65535. Driver accumulates a 32-bit value
484 */
485 accumulate_16bit_val(&rx_stats(rxo)->rx_drops_no_frags,
486 (u16)erx_stat);
487}
488
474void be_parse_stats(struct be_adapter *adapter) 489void be_parse_stats(struct be_adapter *adapter)
475{ 490{
476 struct be_erx_stats_v1 *erx = be_erx_stats_from_cmd(adapter); 491 struct be_erx_stats_v1 *erx = be_erx_stats_from_cmd(adapter);
477 struct be_rx_obj *rxo; 492 struct be_rx_obj *rxo;
478 int i; 493 int i;
494 u32 erx_stat;
479 495
480 if (lancer_chip(adapter)) { 496 if (lancer_chip(adapter)) {
481 populate_lancer_stats(adapter); 497 populate_lancer_stats(adapter);
@@ -488,12 +504,8 @@ void be_parse_stats(struct be_adapter *adapter)
488 504
489 /* as erx_v1 is longer than v0, ok to use v1 for v0 access */ 505 /* as erx_v1 is longer than v0, ok to use v1 for v0 access */
490 for_all_rx_queues(adapter, rxo, i) { 506 for_all_rx_queues(adapter, rxo, i) {
491 /* below erx HW counter can actually wrap around after 507 erx_stat = erx->rx_drops_no_fragments[rxo->q.id];
492 * 65535. Driver accumulates a 32-bit value 508 populate_erx_stats(adapter, rxo, erx_stat);
493 */
494 accumulate_16bit_val(&rx_stats(rxo)->rx_drops_no_frags,
495 (u16)erx->rx_drops_no_fragments \
496 [rxo->q.id]);
497 } 509 }
498 } 510 }
499} 511}
@@ -2378,7 +2390,7 @@ static uint be_num_rss_want(struct be_adapter *adapter)
2378 return num; 2390 return num;
2379} 2391}
2380 2392
2381static void be_msix_enable(struct be_adapter *adapter) 2393static int be_msix_enable(struct be_adapter *adapter)
2382{ 2394{
2383#define BE_MIN_MSIX_VECTORS 1 2395#define BE_MIN_MSIX_VECTORS 1
2384 int i, status, num_vec, num_roce_vec = 0; 2396 int i, status, num_vec, num_roce_vec = 0;
@@ -2403,13 +2415,17 @@ static void be_msix_enable(struct be_adapter *adapter)
2403 goto done; 2415 goto done;
2404 } else if (status >= BE_MIN_MSIX_VECTORS) { 2416 } else if (status >= BE_MIN_MSIX_VECTORS) {
2405 num_vec = status; 2417 num_vec = status;
2406 if (pci_enable_msix(adapter->pdev, adapter->msix_entries, 2418 status = pci_enable_msix(adapter->pdev, adapter->msix_entries,
2407 num_vec) == 0) 2419 num_vec);
2420 if (!status)
2408 goto done; 2421 goto done;
2409 } 2422 }
2410 2423
2411 dev_warn(dev, "MSIx enable failed\n"); 2424 dev_warn(dev, "MSIx enable failed\n");
2412 return; 2425 /* INTx is not supported in VFs, so fail probe if enable_msix fails */
2426 if (!be_physfn(adapter))
2427 return status;
2428 return 0;
2413done: 2429done:
2414 if (be_roce_supported(adapter)) { 2430 if (be_roce_supported(adapter)) {
2415 if (num_vec > num_roce_vec) { 2431 if (num_vec > num_roce_vec) {
@@ -2423,7 +2439,7 @@ done:
2423 } else 2439 } else
2424 adapter->num_msix_vec = num_vec; 2440 adapter->num_msix_vec = num_vec;
2425 dev_info(dev, "enabled %d MSI-x vector(s)\n", adapter->num_msix_vec); 2441 dev_info(dev, "enabled %d MSI-x vector(s)\n", adapter->num_msix_vec);
2426 return; 2442 return 0;
2427} 2443}
2428 2444
2429static inline int be_msix_vec_get(struct be_adapter *adapter, 2445static inline int be_msix_vec_get(struct be_adapter *adapter,
@@ -2536,8 +2552,11 @@ static int be_close(struct net_device *netdev)
2536 2552
2537 be_roce_dev_close(adapter); 2553 be_roce_dev_close(adapter);
2538 2554
2539 for_all_evt_queues(adapter, eqo, i) 2555 if (adapter->flags & BE_FLAGS_NAPI_ENABLED) {
2540 napi_disable(&eqo->napi); 2556 for_all_evt_queues(adapter, eqo, i)
2557 napi_disable(&eqo->napi);
2558 adapter->flags &= ~BE_FLAGS_NAPI_ENABLED;
2559 }
2541 2560
2542 be_async_mcc_disable(adapter); 2561 be_async_mcc_disable(adapter);
2543 2562
@@ -2631,7 +2650,9 @@ static int be_open(struct net_device *netdev)
2631 if (status) 2650 if (status)
2632 goto err; 2651 goto err;
2633 2652
2634 be_irq_register(adapter); 2653 status = be_irq_register(adapter);
2654 if (status)
2655 goto err;
2635 2656
2636 for_all_rx_queues(adapter, rxo, i) 2657 for_all_rx_queues(adapter, rxo, i)
2637 be_cq_notify(adapter, rxo->cq.id, true, 0); 2658 be_cq_notify(adapter, rxo->cq.id, true, 0);
@@ -2645,6 +2666,7 @@ static int be_open(struct net_device *netdev)
2645 napi_enable(&eqo->napi); 2666 napi_enable(&eqo->napi);
2646 be_eq_notify(adapter, eqo->q.id, true, false, 0); 2667 be_eq_notify(adapter, eqo->q.id, true, false, 0);
2647 } 2668 }
2669 adapter->flags |= BE_FLAGS_NAPI_ENABLED;
2648 2670
2649 status = be_cmd_link_status_query(adapter, NULL, &link_status, 0); 2671 status = be_cmd_link_status_query(adapter, NULL, &link_status, 0);
2650 if (!status) 2672 if (!status)
@@ -3100,7 +3122,9 @@ static int be_setup(struct be_adapter *adapter)
3100 if (status) 3122 if (status)
3101 goto err; 3123 goto err;
3102 3124
3103 be_msix_enable(adapter); 3125 status = be_msix_enable(adapter);
3126 if (status)
3127 goto err;
3104 3128
3105 status = be_evt_queues_create(adapter); 3129 status = be_evt_queues_create(adapter);
3106 if (status) 3130 if (status)
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
index 256ae789c143..d175bbd3ffd3 100644
--- a/drivers/net/ethernet/marvell/sky2.c
+++ b/drivers/net/ethernet/marvell/sky2.c
@@ -2496,10 +2496,12 @@ static struct sk_buff *receive_copy(struct sky2_port *sky2,
2496 skb->ip_summed = re->skb->ip_summed; 2496 skb->ip_summed = re->skb->ip_summed;
2497 skb->csum = re->skb->csum; 2497 skb->csum = re->skb->csum;
2498 skb->rxhash = re->skb->rxhash; 2498 skb->rxhash = re->skb->rxhash;
2499 skb->vlan_proto = re->skb->vlan_proto;
2499 skb->vlan_tci = re->skb->vlan_tci; 2500 skb->vlan_tci = re->skb->vlan_tci;
2500 2501
2501 pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr, 2502 pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr,
2502 length, PCI_DMA_FROMDEVICE); 2503 length, PCI_DMA_FROMDEVICE);
2504 re->skb->vlan_proto = 0;
2503 re->skb->vlan_tci = 0; 2505 re->skb->vlan_tci = 0;
2504 re->skb->rxhash = 0; 2506 re->skb->rxhash = 0;
2505 re->skb->ip_summed = CHECKSUM_NONE; 2507 re->skb->ip_summed = CHECKSUM_NONE;
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 59c43918883e..21a5b291b4b3 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -555,8 +555,8 @@ static int cpsw_poll(struct napi_struct *napi, int budget)
555 cpdma_ctlr_eoi(priv->dma, CPDMA_EOI_RX); 555 cpdma_ctlr_eoi(priv->dma, CPDMA_EOI_RX);
556 prim_cpsw = cpsw_get_slave_priv(priv, 0); 556 prim_cpsw = cpsw_get_slave_priv(priv, 0);
557 if (prim_cpsw->irq_enabled == false) { 557 if (prim_cpsw->irq_enabled == false) {
558 cpsw_enable_irq(priv);
559 prim_cpsw->irq_enabled = true; 558 prim_cpsw->irq_enabled = true;
559 cpsw_enable_irq(priv);
560 } 560 }
561 } 561 }
562 562