Skip to content

Commit 6c3c1eb

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) Receive packet length needs to be adjust by 2 on RX to accomodate the two padding bytes in altera_tse driver. From Vlastimil Setka. 2) If rx frame is dropped due to out of memory in macb driver, we leave the receive ring descriptors in an undefined state. From Punnaiah Choudary Kalluri 3) Some netlink subsystems erroneously signal NLM_F_MULTI. That is only for dumps. Fix from Nicolas Dichtel. 4) Fix mis-use of raw rt->rt_pmtu value in ipv4, one must always go via the ipv4_mtu() helper. From Herbert Xu. 5) Fix null deref in bridge netfilter, and miscalculated lengths in jump/goto nf_tables verdicts. From Florian Westphal. 6) Unhash ping sockets properly. 7) Software implementation of BPF divide did 64/32 rather than 64/64 bit divide. The JITs got it right. Fix from Alexei Starovoitov. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (30 commits) ipv4: Missing sk_nulls_node_init() in ping_unhash(). net: fec: Fix RGMII-ID mode net/mlx4_en: Schedule napi when RX buffers allocation fails netxen_nic: use spin_[un]lock_bh around tx_clean_lock net/mlx4_core: Fix unaligned accesses mlx4_en: Use correct loop cursor in error path. cxgb4: Fix MC1 memory offset calculation bnx2x: Delay during kdump load net: Fix Kernel Panic in bonding driver debugfs file: rlb_hash_table net: dsa: Fix scope of eeprom-length property net: macb: Fix race condition in driver when Rx frame is dropped hv_netvsc: Fix a bug in netvsc_start_xmit() altera_tse: Correct rx packet length mlx4: Fix tx ring affinity_mask creation tipc: fix problem with parallel link synchronization mechanism tipc: remove wrong use of NLM_F_MULTI bridge/nl: remove wrong use of NLM_F_MULTI bridge/mdb: remove wrong use of NLM_F_MULTI net: sched: act_connmark: don't zap skb->nfct trivial: net: systemport: bcmsysport.h: fix 0x0x prefix ...
2 parents e412d3a + a134f08 commit 6c3c1eb

File tree

42 files changed

+224
-159
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+224
-159
lines changed

drivers/net/bonding/bond_main.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4544,6 +4544,8 @@ unsigned int bond_get_num_tx_queues(void)
45444544
int bond_create(struct net *net, const char *name)
45454545
{
45464546
struct net_device *bond_dev;
4547+
struct bonding *bond;
4548+
struct alb_bond_info *bond_info;
45474549
int res;
45484550

45494551
rtnl_lock();
@@ -4557,6 +4559,14 @@ int bond_create(struct net *net, const char *name)
45574559
return -ENOMEM;
45584560
}
45594561

4562+
/*
4563+
* Initialize rx_hashtbl_used_head to RLB_NULL_INDEX.
4564+
* It is set to 0 by default which is wrong.
4565+
*/
4566+
bond = netdev_priv(bond_dev);
4567+
bond_info = &(BOND_ALB_INFO(bond));
4568+
bond_info->rx_hashtbl_used_head = RLB_NULL_INDEX;
4569+
45604570
dev_net_set(bond_dev, net);
45614571
bond_dev->rtnl_link_ops = &bond_link_ops;
45624572

drivers/net/ethernet/altera/altera_tse_main.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,12 @@ static int tse_rx(struct altera_tse_private *priv, int limit)
391391
"RCV pktstatus %08X pktlength %08X\n",
392392
pktstatus, pktlength);
393393

394+
/* DMA trasfer from TSE starts with 2 aditional bytes for
395+
* IP payload alignment. Status returned by get_rx_status()
396+
* contains DMA transfer length. Packet is 2 bytes shorter.
397+
*/
398+
pktlength -= 2;
399+
394400
count++;
395401
next_entry = (++priv->rx_cons) % priv->rx_ring_size;
396402

drivers/net/ethernet/atheros/atl1e/atl1e_hw.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ s32 atl1e_restart_autoneg(struct atl1e_hw *hw);
129129
#define TWSI_CTRL_LD_SLV_ADDR_SHIFT 8
130130
#define TWSI_CTRL_SW_LDSTART 0x800
131131
#define TWSI_CTRL_HW_LDSTART 0x1000
132-
#define TWSI_CTRL_SMB_SLV_ADDR_MASK 0x0x7F
132+
#define TWSI_CTRL_SMB_SLV_ADDR_MASK 0x7F
133133
#define TWSI_CTRL_SMB_SLV_ADDR_SHIFT 15
134134
#define TWSI_CTRL_LD_EXIST 0x400000
135135
#define TWSI_CTRL_READ_FREQ_SEL_MASK 0x3

drivers/net/ethernet/broadcom/bcmsysport.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ struct bcm_sysport_tx_counters {
543543
u32 jbr; /* RO # of xmited jabber count*/
544544
u32 bytes; /* RO # of xmited byte count */
545545
u32 pok; /* RO # of xmited good pkt */
546-
u32 uc; /* RO (0x0x4f0)# of xmited unitcast pkt */
546+
u32 uc; /* RO (0x4f0) # of xmited unicast pkt */
547547
};
548548

549549
struct bcm_sysport_mib {

drivers/net/ethernet/broadcom/bnx2x/bnx2x.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,7 @@ struct bnx2x_fp_txdata {
521521
};
522522

523523
enum bnx2x_tpa_mode_t {
524+
TPA_MODE_DISABLED,
524525
TPA_MODE_LRO,
525526
TPA_MODE_GRO
526527
};
@@ -589,7 +590,6 @@ struct bnx2x_fastpath {
589590

590591
/* TPA related */
591592
struct bnx2x_agg_info *tpa_info;
592-
u8 disable_tpa;
593593
#ifdef BNX2X_STOP_ON_ERROR
594594
u64 tpa_queue_used;
595595
#endif
@@ -1545,9 +1545,7 @@ struct bnx2x {
15451545
#define USING_MSIX_FLAG (1 << 5)
15461546
#define USING_MSI_FLAG (1 << 6)
15471547
#define DISABLE_MSI_FLAG (1 << 7)
1548-
#define TPA_ENABLE_FLAG (1 << 8)
15491548
#define NO_MCP_FLAG (1 << 9)
1550-
#define GRO_ENABLE_FLAG (1 << 10)
15511549
#define MF_FUNC_DIS (1 << 11)
15521550
#define OWN_CNIC_IRQ (1 << 12)
15531551
#define NO_ISCSI_OOO_FLAG (1 << 13)

drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c

Lines changed: 26 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -947,10 +947,10 @@ static int bnx2x_rx_int(struct bnx2x_fastpath *fp, int budget)
947947
u16 frag_size, pages;
948948
#ifdef BNX2X_STOP_ON_ERROR
949949
/* sanity check */
950-
if (fp->disable_tpa &&
950+
if (fp->mode == TPA_MODE_DISABLED &&
951951
(CQE_TYPE_START(cqe_fp_type) ||
952952
CQE_TYPE_STOP(cqe_fp_type)))
953-
BNX2X_ERR("START/STOP packet while disable_tpa type %x\n",
953+
BNX2X_ERR("START/STOP packet while TPA disabled, type %x\n",
954954
CQE_TYPE(cqe_fp_type));
955955
#endif
956956

@@ -1396,7 +1396,7 @@ void bnx2x_init_rx_rings(struct bnx2x *bp)
13961396
DP(NETIF_MSG_IFUP,
13971397
"mtu %d rx_buf_size %d\n", bp->dev->mtu, fp->rx_buf_size);
13981398

1399-
if (!fp->disable_tpa) {
1399+
if (fp->mode != TPA_MODE_DISABLED) {
14001400
/* Fill the per-aggregation pool */
14011401
for (i = 0; i < MAX_AGG_QS(bp); i++) {
14021402
struct bnx2x_agg_info *tpa_info =
@@ -1410,7 +1410,7 @@ void bnx2x_init_rx_rings(struct bnx2x *bp)
14101410
BNX2X_ERR("Failed to allocate TPA skb pool for queue[%d] - disabling TPA on this queue!\n",
14111411
j);
14121412
bnx2x_free_tpa_pool(bp, fp, i);
1413-
fp->disable_tpa = 1;
1413+
fp->mode = TPA_MODE_DISABLED;
14141414
break;
14151415
}
14161416
dma_unmap_addr_set(first_buf, mapping, 0);
@@ -1438,7 +1438,7 @@ void bnx2x_init_rx_rings(struct bnx2x *bp)
14381438
ring_prod);
14391439
bnx2x_free_tpa_pool(bp, fp,
14401440
MAX_AGG_QS(bp));
1441-
fp->disable_tpa = 1;
1441+
fp->mode = TPA_MODE_DISABLED;
14421442
ring_prod = 0;
14431443
break;
14441444
}
@@ -1560,7 +1560,7 @@ static void bnx2x_free_rx_skbs(struct bnx2x *bp)
15601560

15611561
bnx2x_free_rx_bds(fp);
15621562

1563-
if (!fp->disable_tpa)
1563+
if (fp->mode != TPA_MODE_DISABLED)
15641564
bnx2x_free_tpa_pool(bp, fp, MAX_AGG_QS(bp));
15651565
}
15661566
}
@@ -2477,19 +2477,19 @@ static void bnx2x_bz_fp(struct bnx2x *bp, int index)
24772477
/* set the tpa flag for each queue. The tpa flag determines the queue
24782478
* minimal size so it must be set prior to queue memory allocation
24792479
*/
2480-
fp->disable_tpa = !(bp->flags & TPA_ENABLE_FLAG ||
2481-
(bp->flags & GRO_ENABLE_FLAG &&
2482-
bnx2x_mtu_allows_gro(bp->dev->mtu)));
2483-
if (bp->flags & TPA_ENABLE_FLAG)
2480+
if (bp->dev->features & NETIF_F_LRO)
24842481
fp->mode = TPA_MODE_LRO;
2485-
else if (bp->flags & GRO_ENABLE_FLAG)
2482+
else if (bp->dev->features & NETIF_F_GRO &&
2483+
bnx2x_mtu_allows_gro(bp->dev->mtu))
24862484
fp->mode = TPA_MODE_GRO;
2485+
else
2486+
fp->mode = TPA_MODE_DISABLED;
24872487

24882488
/* We don't want TPA if it's disabled in bp
24892489
* or if this is an FCoE L2 ring.
24902490
*/
24912491
if (bp->disable_tpa || IS_FCOE_FP(fp))
2492-
fp->disable_tpa = 1;
2492+
fp->mode = TPA_MODE_DISABLED;
24932493
}
24942494

24952495
int bnx2x_load_cnic(struct bnx2x *bp)
@@ -2610,7 +2610,7 @@ int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
26102610
/*
26112611
* Zero fastpath structures preserving invariants like napi, which are
26122612
* allocated only once, fp index, max_cos, bp pointer.
2613-
* Also set fp->disable_tpa and txdata_ptr.
2613+
* Also set fp->mode and txdata_ptr.
26142614
*/
26152615
DP(NETIF_MSG_IFUP, "num queues: %d", bp->num_queues);
26162616
for_each_queue(bp, i)
@@ -3249,7 +3249,7 @@ int bnx2x_low_latency_recv(struct napi_struct *napi)
32493249

32503250
if ((bp->state == BNX2X_STATE_CLOSED) ||
32513251
(bp->state == BNX2X_STATE_ERROR) ||
3252-
(bp->flags & (TPA_ENABLE_FLAG | GRO_ENABLE_FLAG)))
3252+
(bp->dev->features & (NETIF_F_LRO | NETIF_F_GRO)))
32533253
return LL_FLUSH_FAILED;
32543254

32553255
if (!bnx2x_fp_lock_poll(fp))
@@ -4545,7 +4545,7 @@ static int bnx2x_alloc_fp_mem_at(struct bnx2x *bp, int index)
45454545
* In these cases we disable the queue
45464546
* Min size is different for OOO, TPA and non-TPA queues
45474547
*/
4548-
if (ring_size < (fp->disable_tpa ?
4548+
if (ring_size < (fp->mode == TPA_MODE_DISABLED ?
45494549
MIN_RX_SIZE_NONTPA : MIN_RX_SIZE_TPA)) {
45504550
/* release memory allocated for this queue */
45514551
bnx2x_free_fp_mem_at(bp, index);
@@ -4834,29 +4834,15 @@ netdev_features_t bnx2x_fix_features(struct net_device *dev,
48344834
features &= ~NETIF_F_GRO;
48354835
}
48364836

4837-
/* Note: do not disable SW GRO in kernel when HW GRO is off */
4838-
if (bp->disable_tpa)
4839-
features &= ~NETIF_F_LRO;
4840-
48414837
return features;
48424838
}
48434839

48444840
int bnx2x_set_features(struct net_device *dev, netdev_features_t features)
48454841
{
48464842
struct bnx2x *bp = netdev_priv(dev);
4847-
u32 flags = bp->flags;
4848-
u32 changes;
4843+
netdev_features_t changes = features ^ dev->features;
48494844
bool bnx2x_reload = false;
4850-
4851-
if (features & NETIF_F_LRO)
4852-
flags |= TPA_ENABLE_FLAG;
4853-
else
4854-
flags &= ~TPA_ENABLE_FLAG;
4855-
4856-
if (features & NETIF_F_GRO)
4857-
flags |= GRO_ENABLE_FLAG;
4858-
else
4859-
flags &= ~GRO_ENABLE_FLAG;
4845+
int rc;
48604846

48614847
/* VFs or non SRIOV PFs should be able to change loopback feature */
48624848
if (!pci_num_vf(bp->pdev)) {
@@ -4873,24 +4859,23 @@ int bnx2x_set_features(struct net_device *dev, netdev_features_t features)
48734859
}
48744860
}
48754861

4876-
changes = flags ^ bp->flags;
4877-
48784862
/* if GRO is changed while LRO is enabled, don't force a reload */
4879-
if ((changes & GRO_ENABLE_FLAG) && (flags & TPA_ENABLE_FLAG))
4880-
changes &= ~GRO_ENABLE_FLAG;
4863+
if ((changes & NETIF_F_GRO) && (features & NETIF_F_LRO))
4864+
changes &= ~NETIF_F_GRO;
48814865

48824866
/* if GRO is changed while HW TPA is off, don't force a reload */
4883-
if ((changes & GRO_ENABLE_FLAG) && bp->disable_tpa)
4884-
changes &= ~GRO_ENABLE_FLAG;
4867+
if ((changes & NETIF_F_GRO) && bp->disable_tpa)
4868+
changes &= ~NETIF_F_GRO;
48854869

48864870
if (changes)
48874871
bnx2x_reload = true;
48884872

4889-
bp->flags = flags;
4890-
48914873
if (bnx2x_reload) {
4892-
if (bp->recovery_state == BNX2X_RECOVERY_DONE)
4893-
return bnx2x_reload_if_running(dev);
4874+
if (bp->recovery_state == BNX2X_RECOVERY_DONE) {
4875+
dev->features = features;
4876+
rc = bnx2x_reload_if_running(dev);
4877+
return rc ? rc : 1;
4878+
}
48944879
/* else: bnx2x_nic_load() will be called at end of recovery */
48954880
}
48964881

drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -969,7 +969,7 @@ static inline void bnx2x_free_rx_sge_range(struct bnx2x *bp,
969969
{
970970
int i;
971971

972-
if (fp->disable_tpa)
972+
if (fp->mode == TPA_MODE_DISABLED)
973973
return;
974974

975975
for (i = 0; i < last; i++)

drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3128,7 +3128,7 @@ static unsigned long bnx2x_get_q_flags(struct bnx2x *bp,
31283128
__set_bit(BNX2X_Q_FLG_FORCE_DEFAULT_PRI, &flags);
31293129
}
31303130

3131-
if (!fp->disable_tpa) {
3131+
if (fp->mode != TPA_MODE_DISABLED) {
31323132
__set_bit(BNX2X_Q_FLG_TPA, &flags);
31333133
__set_bit(BNX2X_Q_FLG_TPA_IPV6, &flags);
31343134
if (fp->mode == TPA_MODE_GRO)
@@ -3176,7 +3176,7 @@ static void bnx2x_pf_rx_q_prep(struct bnx2x *bp,
31763176
u16 sge_sz = 0;
31773177
u16 tpa_agg_size = 0;
31783178

3179-
if (!fp->disable_tpa) {
3179+
if (fp->mode != TPA_MODE_DISABLED) {
31803180
pause->sge_th_lo = SGE_TH_LO(bp);
31813181
pause->sge_th_hi = SGE_TH_HI(bp);
31823182

@@ -3304,7 +3304,7 @@ static void bnx2x_pf_init(struct bnx2x *bp)
33043304
/* This flag is relevant for E1x only.
33053305
* E2 doesn't have a TPA configuration in a function level.
33063306
*/
3307-
flags |= (bp->flags & TPA_ENABLE_FLAG) ? FUNC_FLG_TPA : 0;
3307+
flags |= (bp->dev->features & NETIF_F_LRO) ? FUNC_FLG_TPA : 0;
33083308

33093309
func_init.func_flgs = flags;
33103310
func_init.pf_id = BP_FUNC(bp);
@@ -12107,11 +12107,8 @@ static int bnx2x_init_bp(struct bnx2x *bp)
1210712107

1210812108
/* Set TPA flags */
1210912109
if (bp->disable_tpa) {
12110-
bp->flags &= ~(TPA_ENABLE_FLAG | GRO_ENABLE_FLAG);
12110+
bp->dev->hw_features &= ~NETIF_F_LRO;
1211112111
bp->dev->features &= ~NETIF_F_LRO;
12112-
} else {
12113-
bp->flags |= (TPA_ENABLE_FLAG | GRO_ENABLE_FLAG);
12114-
bp->dev->features |= NETIF_F_LRO;
1211512112
}
1211612113

1211712114
if (CHIP_IS_E1(bp))
@@ -13371,6 +13368,12 @@ static int bnx2x_init_one(struct pci_dev *pdev,
1337113368
bool is_vf;
1337213369
int cnic_cnt;
1337313370

13371+
/* Management FW 'remembers' living interfaces. Allow it some time
13372+
* to forget previously living interfaces, allowing a proper re-load.
13373+
*/
13374+
if (is_kdump_kernel())
13375+
msleep(5000);
13376+
1337413377
/* An estimated maximum supported CoS number according to the chip
1337513378
* version.
1337613379
* We will try to roughly estimate the maximum number of CoSes this chip

drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,7 @@ int bnx2x_vfpf_setup_q(struct bnx2x *bp, struct bnx2x_fastpath *fp,
594594
bnx2x_vfpf_prep(bp, &req->first_tlv, CHANNEL_TLV_SETUP_Q, sizeof(*req));
595595

596596
/* select tpa mode to request */
597-
if (!fp->disable_tpa) {
597+
if (fp->mode != TPA_MODE_DISABLED) {
598598
flags |= VFPF_QUEUE_FLG_TPA;
599599
flags |= VFPF_QUEUE_FLG_TPA_IPV6;
600600
if (fp->mode == TPA_MODE_GRO)

drivers/net/ethernet/cadence/macb.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -707,6 +707,9 @@ static void gem_rx_refill(struct macb *bp)
707707

708708
/* properly align Ethernet header */
709709
skb_reserve(skb, NET_IP_ALIGN);
710+
} else {
711+
bp->rx_ring[entry].addr &= ~MACB_BIT(RX_USED);
712+
bp->rx_ring[entry].ctrl = 0;
710713
}
711714
}
712715

drivers/net/ethernet/chelsio/cxgb4/t4_hw.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ int t4_memory_rw(struct adapter *adap, int win, int mtype, u32 addr,
492492
memoffset = (mtype * (edc_size * 1024 * 1024));
493493
else {
494494
mc_size = EXT_MEM0_SIZE_G(t4_read_reg(adap,
495-
MA_EXT_MEMORY1_BAR_A));
495+
MA_EXT_MEMORY0_BAR_A));
496496
memoffset = (MEM_MC0 * edc_size + mc_size) * 1024 * 1024;
497497
}
498498

drivers/net/ethernet/emulex/benet/be_main.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4846,7 +4846,8 @@ static int be_ndo_bridge_setlink(struct net_device *dev, struct nlmsghdr *nlh,
48464846
}
48474847

48484848
static int be_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
4849-
struct net_device *dev, u32 filter_mask)
4849+
struct net_device *dev, u32 filter_mask,
4850+
int nlflags)
48504851
{
48514852
struct be_adapter *adapter = netdev_priv(dev);
48524853
int status = 0;
@@ -4868,7 +4869,7 @@ static int be_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
48684869
return ndo_dflt_bridge_getlink(skb, pid, seq, dev,
48694870
hsw_mode == PORT_FWD_TYPE_VEPA ?
48704871
BRIDGE_MODE_VEPA : BRIDGE_MODE_VEB,
4871-
0, 0);
4872+
0, 0, nlflags);
48724873
}
48734874

48744875
#ifdef CONFIG_BE2NET_VXLAN

drivers/net/ethernet/freescale/fec_main.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -988,7 +988,10 @@ fec_restart(struct net_device *ndev)
988988
rcntl |= 0x40000000 | 0x00000020;
989989

990990
/* RGMII, RMII or MII */
991-
if (fep->phy_interface == PHY_INTERFACE_MODE_RGMII)
991+
if (fep->phy_interface == PHY_INTERFACE_MODE_RGMII ||
992+
fep->phy_interface == PHY_INTERFACE_MODE_RGMII_ID ||
993+
fep->phy_interface == PHY_INTERFACE_MODE_RGMII_RXID ||
994+
fep->phy_interface == PHY_INTERFACE_MODE_RGMII_TXID)
992995
rcntl |= (1 << 6);
993996
else if (fep->phy_interface == PHY_INTERFACE_MODE_RMII)
994997
rcntl |= (1 << 8);

drivers/net/ethernet/intel/i40e/i40e_main.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8053,10 +8053,10 @@ static int i40e_ndo_bridge_setlink(struct net_device *dev,
80538053
#ifdef HAVE_BRIDGE_FILTER
80548054
static int i40e_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
80558055
struct net_device *dev,
8056-
u32 __always_unused filter_mask)
8056+
u32 __always_unused filter_mask, int nlflags)
80578057
#else
80588058
static int i40e_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
8059-
struct net_device *dev)
8059+
struct net_device *dev, int nlflags)
80608060
#endif /* HAVE_BRIDGE_FILTER */
80618061
{
80628062
struct i40e_netdev_priv *np = netdev_priv(dev);
@@ -8078,7 +8078,8 @@ static int i40e_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
80788078
if (!veb)
80798079
return 0;
80808080

8081-
return ndo_dflt_bridge_getlink(skb, pid, seq, dev, veb->bridge_mode);
8081+
return ndo_dflt_bridge_getlink(skb, pid, seq, dev, veb->bridge_mode,
8082+
nlflags);
80828083
}
80838084
#endif /* HAVE_BRIDGE_ATTRIBS */
80848085

0 commit comments

Comments
 (0)