Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/ethernet/emulex/benet/be_main.c drivers/net/ethernet/intel/igb/igb_main.c drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c include/net/scm.h net/batman-adv/routing.c net/ipv4/tcp_input.c The e{uid,gid} --> {uid,gid} credentials fix conflicted with the cleanup in net-next to now pass cred structs around. The be2net driver had a bug fix in 'net' that overlapped with the VLAN interface changes by Patrick McHardy in net-next. An IGB conflict existed because in 'net' the build_skb() support was reverted, and in 'net-next' there was a comment style fix within that code. Several batman-adv conflicts were resolved by making sure that all calls to batadv_is_my_mac() are changed to have a new bat_priv first argument. Eric Dumazet's TS ECR fix in TCP in 'net' conflicted with the F-RTO rewrite in 'net-next', mostly overlapping changes. Thanks to Stephen Rothwell and Antonio Quartulli for help with several of these merge resolutions. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
#define DRV_NAME "qlge"
|
||||
#define DRV_STRING "QLogic 10 Gigabit PCI-E Ethernet Driver "
|
||||
#define DRV_VERSION "v1.00.00.31"
|
||||
#define DRV_VERSION "v1.00.00.32"
|
||||
|
||||
#define WQ_ADDR_ALIGN 0x3 /* 4 byte alignment */
|
||||
|
||||
|
@@ -379,13 +379,13 @@ static int ql_get_settings(struct net_device *ndev,
|
||||
|
||||
ecmd->supported = SUPPORTED_10000baseT_Full;
|
||||
ecmd->advertising = ADVERTISED_10000baseT_Full;
|
||||
ecmd->autoneg = AUTONEG_ENABLE;
|
||||
ecmd->transceiver = XCVR_EXTERNAL;
|
||||
if ((qdev->link_status & STS_LINK_TYPE_MASK) ==
|
||||
STS_LINK_TYPE_10GBASET) {
|
||||
ecmd->supported |= (SUPPORTED_TP | SUPPORTED_Autoneg);
|
||||
ecmd->advertising |= (ADVERTISED_TP | ADVERTISED_Autoneg);
|
||||
ecmd->port = PORT_TP;
|
||||
ecmd->autoneg = AUTONEG_ENABLE;
|
||||
} else {
|
||||
ecmd->supported |= SUPPORTED_FIBRE;
|
||||
ecmd->advertising |= ADVERTISED_FIBRE;
|
||||
|
@@ -1432,11 +1432,13 @@ map_error:
|
||||
}
|
||||
|
||||
/* Categorizing receive firmware frame errors */
|
||||
static void ql_categorize_rx_err(struct ql_adapter *qdev, u8 rx_err)
|
||||
static void ql_categorize_rx_err(struct ql_adapter *qdev, u8 rx_err,
|
||||
struct rx_ring *rx_ring)
|
||||
{
|
||||
struct nic_stats *stats = &qdev->nic_stats;
|
||||
|
||||
stats->rx_err_count++;
|
||||
rx_ring->rx_errors++;
|
||||
|
||||
switch (rx_err & IB_MAC_IOCB_RSP_ERR_MASK) {
|
||||
case IB_MAC_IOCB_RSP_ERR_CODE_ERR:
|
||||
@@ -1472,6 +1474,12 @@ static void ql_process_mac_rx_gro_page(struct ql_adapter *qdev,
|
||||
struct bq_desc *lbq_desc = ql_get_curr_lchunk(qdev, rx_ring);
|
||||
struct napi_struct *napi = &rx_ring->napi;
|
||||
|
||||
/* Frame error, so drop the packet. */
|
||||
if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_ERR_MASK) {
|
||||
ql_categorize_rx_err(qdev, ib_mac_rsp->flags2, rx_ring);
|
||||
put_page(lbq_desc->p.pg_chunk.page);
|
||||
return;
|
||||
}
|
||||
napi->dev = qdev->ndev;
|
||||
|
||||
skb = napi_get_frags(napi);
|
||||
@@ -1525,6 +1533,12 @@ static void ql_process_mac_rx_page(struct ql_adapter *qdev,
|
||||
addr = lbq_desc->p.pg_chunk.va;
|
||||
prefetch(addr);
|
||||
|
||||
/* Frame error, so drop the packet. */
|
||||
if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_ERR_MASK) {
|
||||
ql_categorize_rx_err(qdev, ib_mac_rsp->flags2, rx_ring);
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
/* The max framesize filter on this chip is set higher than
|
||||
* MTU since FCoE uses 2k frames.
|
||||
*/
|
||||
@@ -1608,6 +1622,13 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev,
|
||||
memcpy(skb_put(new_skb, length), skb->data, length);
|
||||
skb = new_skb;
|
||||
|
||||
/* Frame error, so drop the packet. */
|
||||
if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_ERR_MASK) {
|
||||
ql_categorize_rx_err(qdev, ib_mac_rsp->flags2, rx_ring);
|
||||
dev_kfree_skb_any(skb);
|
||||
return;
|
||||
}
|
||||
|
||||
/* loopback self test for ethtool */
|
||||
if (test_bit(QL_SELFTEST, &qdev->flags)) {
|
||||
ql_check_lb_frame(qdev, skb);
|
||||
@@ -1913,6 +1934,13 @@ static void ql_process_mac_split_rx_intr(struct ql_adapter *qdev,
|
||||
return;
|
||||
}
|
||||
|
||||
/* Frame error, so drop the packet. */
|
||||
if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_ERR_MASK) {
|
||||
ql_categorize_rx_err(qdev, ib_mac_rsp->flags2, rx_ring);
|
||||
dev_kfree_skb_any(skb);
|
||||
return;
|
||||
}
|
||||
|
||||
/* The max framesize filter on this chip is set higher than
|
||||
* MTU since FCoE uses 2k frames.
|
||||
*/
|
||||
@@ -1994,12 +2022,6 @@ static unsigned long ql_process_mac_rx_intr(struct ql_adapter *qdev,
|
||||
|
||||
QL_DUMP_IB_MAC_RSP(ib_mac_rsp);
|
||||
|
||||
/* Frame error, so drop the packet. */
|
||||
if (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_ERR_MASK) {
|
||||
ql_categorize_rx_err(qdev, ib_mac_rsp->flags2);
|
||||
return (unsigned long)length;
|
||||
}
|
||||
|
||||
if (ib_mac_rsp->flags4 & IB_MAC_IOCB_RSP_HV) {
|
||||
/* The data and headers are split into
|
||||
* separate buffers.
|
||||
|
Reference in New Issue
Block a user