aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/qlogic/qlcnic
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2015-02-05 17:33:28 -0500
committerDavid S. Miller <davem@davemloft.net>2015-02-05 17:33:28 -0500
commit6e03f896b52cd2ca88942170c5c9c407ec0ede69 (patch)
tree48ca9a6efa5f99819667538838bab3679416f92c /drivers/net/ethernet/qlogic/qlcnic
parentdb79a621835ee91d3e10177abd97f48e0a4dcf9b (diff)
parent9d82f5eb3376cbae96ad36a063a9390de1694546 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/vxlan.c drivers/vhost/net.c include/linux/if_vlan.h net/core/dev.c The net/core/dev.c conflict was the overlap of one commit marking an existing function static whilst another was adding a new function. In the include/linux/if_vlan.h case, the type used for a local variable was changed in 'net', whereas the function got rewritten to fix a stacked vlan bug in 'net-next'. In drivers/vhost/net.c, Al Viro's iov_iter conversions in 'net-next' overlapped with an endainness fix for VHOST 1.0 in 'net'. In drivers/net/vxlan.c, vxlan_find_vni() added a 'flags' parameter in 'net-next' whereas in 'net' there was a bug fix to pass in the correct network namespace pointer in calls to this function. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic')
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
index 4d2496f28b85..d4b5085a21fa 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c
@@ -968,7 +968,12 @@ static int qlcnic_poll(struct napi_struct *napi, int budget)
968 tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring, 968 tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring,
969 budget); 969 budget);
970 work_done = qlcnic_process_rcv_ring(sds_ring, budget); 970 work_done = qlcnic_process_rcv_ring(sds_ring, budget);
971 if ((work_done < budget) && tx_complete) { 971
972 /* Check if we need a repoll */
973 if (!tx_complete)
974 work_done = budget;
975
976 if (work_done < budget) {
972 napi_complete(&sds_ring->napi); 977 napi_complete(&sds_ring->napi);
973 if (test_bit(__QLCNIC_DEV_UP, &adapter->state)) { 978 if (test_bit(__QLCNIC_DEV_UP, &adapter->state)) {
974 qlcnic_enable_sds_intr(adapter, sds_ring); 979 qlcnic_enable_sds_intr(adapter, sds_ring);
@@ -993,6 +998,9 @@ static int qlcnic_tx_poll(struct napi_struct *napi, int budget)
993 napi_complete(&tx_ring->napi); 998 napi_complete(&tx_ring->napi);
994 if (test_bit(__QLCNIC_DEV_UP, &adapter->state)) 999 if (test_bit(__QLCNIC_DEV_UP, &adapter->state))
995 qlcnic_enable_tx_intr(adapter, tx_ring); 1000 qlcnic_enable_tx_intr(adapter, tx_ring);
1001 } else {
1002 /* As qlcnic_process_cmd_ring() returned 0, we need a repoll*/
1003 work_done = budget;
996 } 1004 }
997 1005
998 return work_done; 1006 return work_done;
@@ -1951,7 +1959,12 @@ static int qlcnic_83xx_msix_sriov_vf_poll(struct napi_struct *napi, int budget)
1951 1959
1952 tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring, budget); 1960 tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring, budget);
1953 work_done = qlcnic_83xx_process_rcv_ring(sds_ring, budget); 1961 work_done = qlcnic_83xx_process_rcv_ring(sds_ring, budget);
1954 if ((work_done < budget) && tx_complete) { 1962
1963 /* Check if we need a repoll */
1964 if (!tx_complete)
1965 work_done = budget;
1966
1967 if (work_done < budget) {
1955 napi_complete(&sds_ring->napi); 1968 napi_complete(&sds_ring->napi);
1956 qlcnic_enable_sds_intr(adapter, sds_ring); 1969 qlcnic_enable_sds_intr(adapter, sds_ring);
1957 } 1970 }
@@ -1974,7 +1987,12 @@ static int qlcnic_83xx_poll(struct napi_struct *napi, int budget)
1974 1987
1975 tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring, budget); 1988 tx_complete = qlcnic_process_cmd_ring(adapter, tx_ring, budget);
1976 work_done = qlcnic_83xx_process_rcv_ring(sds_ring, budget); 1989 work_done = qlcnic_83xx_process_rcv_ring(sds_ring, budget);
1977 if ((work_done < budget) && tx_complete) { 1990
1991 /* Check if we need a repoll */
1992 if (!tx_complete)
1993 work_done = budget;
1994
1995 if (work_done < budget) {
1978 napi_complete(&sds_ring->napi); 1996 napi_complete(&sds_ring->napi);
1979 qlcnic_enable_sds_intr(adapter, sds_ring); 1997 qlcnic_enable_sds_intr(adapter, sds_ring);
1980 } 1998 }
@@ -1996,6 +2014,9 @@ static int qlcnic_83xx_msix_tx_poll(struct napi_struct *napi, int budget)
1996 napi_complete(&tx_ring->napi); 2014 napi_complete(&tx_ring->napi);
1997 if (test_bit(__QLCNIC_DEV_UP , &adapter->state)) 2015 if (test_bit(__QLCNIC_DEV_UP , &adapter->state))
1998 qlcnic_enable_tx_intr(adapter, tx_ring); 2016 qlcnic_enable_tx_intr(adapter, tx_ring);
2017 } else {
2018 /* need a repoll */
2019 work_done = budget;
1999 } 2020 }
2000 2021
2001 return work_done; 2022 return work_done;