Skip to content

Commit 59f0c24

Browse files
committed
Merge tag 'net-5.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni: "Including fixes from xfrm and can. Current release - regressions: - rxrpc: restore removed timer deletion Current release - new code bugs: - gre: fix device lookup for l3mdev use-case - xfrm: fix egress device lookup for l3mdev use-case Previous releases - regressions: - sched: cls_u32: fix netns refcount changes in u32_change() - smc: fix sock leak when release after smc_shutdown() - xfrm: limit skb_page_frag_refill use to a single page - eth: atlantic: invert deep par in pm functions, preventing null derefs - eth: stmmac: use readl_poll_timeout_atomic() in atomic state Previous releases - always broken: - gre: fix skb_under_panic on xmit - openvswitch: fix OOB access in reserve_sfa_size() - dsa: hellcreek: calculate checksums in tagger - eth: ice: fix crash in switchdev mode - eth: igc: - fix infinite loop in release_swfw_sync - fix scheduling while atomic" * tag 'net-5.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (37 commits) drivers: net: hippi: Fix deadlock in rr_close() selftests: mlxsw: vxlan_flooding_ipv6: Prevent flooding of unwanted packets selftests: mlxsw: vxlan_flooding: Prevent flooding of unwanted packets nfc: MAINTAINERS: add Bug entry net: stmmac: Use readl_poll_timeout_atomic() in atomic state doc/ip-sysctl: add bc_forwarding netlink: reset network and mac headers in netlink_dump() net: mscc: ocelot: fix broken IP multicast flooding net: dsa: hellcreek: Calculate checksums in tagger net: atlantic: invert deep par in pm functions, preventing null derefs can: isotp: stop timeout monitoring when no first frame was sent bonding: do not discard lowest hash bit for non layer3+4 hashing net: lan966x: Make sure to release ptp interrupt ipv6: make ip6_rt_gc_expire an atomic_t net: Handle l3mdev in ip_tunnel_init_flow l3mdev: l3mdev_master_upper_ifindex_by_index_rcu should be using netdev_master_upper_dev_get_rcu net/sched: cls_u32: fix possible leak in u32_init_knode() net/sched: cls_u32: fix netns refcount changes in u32_change() powerpc: Update MAINTAINERS for ibmvnic and VAS net: restore alpha order to Ethernet devices in config ...
2 parents b253435 + bc6de28 commit 59f0c24

File tree

40 files changed

+210
-83
lines changed

40 files changed

+210
-83
lines changed

Documentation/networking/ip-sysctl.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,13 @@ ipfrag_max_dist - INTEGER
267267
from different IP datagrams, which could result in data corruption.
268268
Default: 64
269269

270+
bc_forwarding - INTEGER
271+
bc_forwarding enables the feature described in rfc1812#section-5.3.5.2
272+
and rfc2644. It allows the router to forward directed broadcast.
273+
To enable this feature, the 'all' entry and the input interface entry
274+
should be set to 1.
275+
Default: 0
276+
270277
INET peer storage
271278
=================
272279

MAINTAINERS

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9337,14 +9337,12 @@ F: drivers/pci/hotplug/rpaphp*
93379337

93389338
IBM Power SRIOV Virtual NIC Device Driver
93399339
M: Dany Madden <drt@linux.ibm.com>
9340-
M: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
93419340
R: Thomas Falcon <tlfalcon@linux.ibm.com>
93429341
L: netdev@vger.kernel.org
93439342
S: Supported
93449343
F: drivers/net/ethernet/ibm/ibmvnic.*
93459344

93469345
IBM Power Virtual Accelerator Switchboard
9347-
M: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
93489346
L: linuxppc-dev@lists.ozlabs.org
93499347
S: Supported
93509348
F: arch/powerpc/include/asm/vas.h
@@ -13823,6 +13821,7 @@ M: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
1382313821
L: linux-nfc@lists.01.org (subscribers-only)
1382413822
L: netdev@vger.kernel.org
1382513823
S: Maintained
13824+
B: mailto:linux-nfc@lists.01.org
1382613825
F: Documentation/devicetree/bindings/net/nfc/
1382713826
F: drivers/nfc/
1382813827
F: include/linux/platform_data/nfcmrvl.h

drivers/net/bonding/bond_main.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4027,14 +4027,19 @@ static bool bond_flow_dissect(struct bonding *bond, struct sk_buff *skb, const v
40274027
return true;
40284028
}
40294029

4030-
static u32 bond_ip_hash(u32 hash, struct flow_keys *flow)
4030+
static u32 bond_ip_hash(u32 hash, struct flow_keys *flow, int xmit_policy)
40314031
{
40324032
hash ^= (__force u32)flow_get_u32_dst(flow) ^
40334033
(__force u32)flow_get_u32_src(flow);
40344034
hash ^= (hash >> 16);
40354035
hash ^= (hash >> 8);
4036+
40364037
/* discard lowest hash bit to deal with the common even ports pattern */
4037-
return hash >> 1;
4038+
if (xmit_policy == BOND_XMIT_POLICY_LAYER34 ||
4039+
xmit_policy == BOND_XMIT_POLICY_ENCAP34)
4040+
return hash >> 1;
4041+
4042+
return hash;
40384043
}
40394044

40404045
/* Generate hash based on xmit policy. If @skb is given it is used to linearize
@@ -4064,7 +4069,7 @@ static u32 __bond_xmit_hash(struct bonding *bond, struct sk_buff *skb, const voi
40644069
memcpy(&hash, &flow.ports.ports, sizeof(hash));
40654070
}
40664071

4067-
return bond_ip_hash(hash, &flow);
4072+
return bond_ip_hash(hash, &flow, bond->params.xmit_policy);
40684073
}
40694074

40704075
/**
@@ -5259,7 +5264,7 @@ static u32 bond_sk_hash_l34(struct sock *sk)
52595264
/* L4 */
52605265
memcpy(&hash, &flow.ports.ports, sizeof(hash));
52615266
/* L3 */
5262-
return bond_ip_hash(hash, &flow);
5267+
return bond_ip_hash(hash, &flow, BOND_XMIT_POLICY_LAYER34);
52635268
}
52645269

52655270
static struct net_device *__bond_sk_get_lower_dev(struct bonding *bond,

drivers/net/ethernet/Kconfig

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,6 @@ source "drivers/net/ethernet/aquantia/Kconfig"
3535
source "drivers/net/ethernet/arc/Kconfig"
3636
source "drivers/net/ethernet/asix/Kconfig"
3737
source "drivers/net/ethernet/atheros/Kconfig"
38-
source "drivers/net/ethernet/broadcom/Kconfig"
39-
source "drivers/net/ethernet/brocade/Kconfig"
40-
source "drivers/net/ethernet/cadence/Kconfig"
41-
source "drivers/net/ethernet/calxeda/Kconfig"
42-
source "drivers/net/ethernet/cavium/Kconfig"
43-
source "drivers/net/ethernet/chelsio/Kconfig"
44-
source "drivers/net/ethernet/cirrus/Kconfig"
45-
source "drivers/net/ethernet/cisco/Kconfig"
46-
source "drivers/net/ethernet/cortina/Kconfig"
4738

4839
config CX_ECAT
4940
tristate "Beckhoff CX5020 EtherCAT master support"
@@ -57,6 +48,14 @@ config CX_ECAT
5748
To compile this driver as a module, choose M here. The module
5849
will be called ec_bhf.
5950

51+
source "drivers/net/ethernet/broadcom/Kconfig"
52+
source "drivers/net/ethernet/cadence/Kconfig"
53+
source "drivers/net/ethernet/calxeda/Kconfig"
54+
source "drivers/net/ethernet/cavium/Kconfig"
55+
source "drivers/net/ethernet/chelsio/Kconfig"
56+
source "drivers/net/ethernet/cirrus/Kconfig"
57+
source "drivers/net/ethernet/cisco/Kconfig"
58+
source "drivers/net/ethernet/cortina/Kconfig"
6059
source "drivers/net/ethernet/davicom/Kconfig"
6160

6261
config DNET
@@ -85,7 +84,6 @@ source "drivers/net/ethernet/huawei/Kconfig"
8584
source "drivers/net/ethernet/i825xx/Kconfig"
8685
source "drivers/net/ethernet/ibm/Kconfig"
8786
source "drivers/net/ethernet/intel/Kconfig"
88-
source "drivers/net/ethernet/microsoft/Kconfig"
8987
source "drivers/net/ethernet/xscale/Kconfig"
9088

9189
config JME
@@ -128,8 +126,9 @@ source "drivers/net/ethernet/mediatek/Kconfig"
128126
source "drivers/net/ethernet/mellanox/Kconfig"
129127
source "drivers/net/ethernet/micrel/Kconfig"
130128
source "drivers/net/ethernet/microchip/Kconfig"
131-
source "drivers/net/ethernet/moxa/Kconfig"
132129
source "drivers/net/ethernet/mscc/Kconfig"
130+
source "drivers/net/ethernet/microsoft/Kconfig"
131+
source "drivers/net/ethernet/moxa/Kconfig"
133132
source "drivers/net/ethernet/myricom/Kconfig"
134133

135134
config FEALNX
@@ -141,10 +140,10 @@ config FEALNX
141140
Say Y here to support the Myson MTD-800 family of PCI-based Ethernet
142141
cards. <http://www.myson.com.tw/>
143142

143+
source "drivers/net/ethernet/ni/Kconfig"
144144
source "drivers/net/ethernet/natsemi/Kconfig"
145145
source "drivers/net/ethernet/neterion/Kconfig"
146146
source "drivers/net/ethernet/netronome/Kconfig"
147-
source "drivers/net/ethernet/ni/Kconfig"
148147
source "drivers/net/ethernet/8390/Kconfig"
149148
source "drivers/net/ethernet/nvidia/Kconfig"
150149
source "drivers/net/ethernet/nxp/Kconfig"
@@ -164,17 +163,18 @@ source "drivers/net/ethernet/packetengines/Kconfig"
164163
source "drivers/net/ethernet/pasemi/Kconfig"
165164
source "drivers/net/ethernet/pensando/Kconfig"
166165
source "drivers/net/ethernet/qlogic/Kconfig"
166+
source "drivers/net/ethernet/brocade/Kconfig"
167167
source "drivers/net/ethernet/qualcomm/Kconfig"
168168
source "drivers/net/ethernet/rdc/Kconfig"
169169
source "drivers/net/ethernet/realtek/Kconfig"
170170
source "drivers/net/ethernet/renesas/Kconfig"
171171
source "drivers/net/ethernet/rocker/Kconfig"
172172
source "drivers/net/ethernet/samsung/Kconfig"
173173
source "drivers/net/ethernet/seeq/Kconfig"
174-
source "drivers/net/ethernet/sfc/Kconfig"
175174
source "drivers/net/ethernet/sgi/Kconfig"
176175
source "drivers/net/ethernet/silan/Kconfig"
177176
source "drivers/net/ethernet/sis/Kconfig"
177+
source "drivers/net/ethernet/sfc/Kconfig"
178178
source "drivers/net/ethernet/smsc/Kconfig"
179179
source "drivers/net/ethernet/socionext/Kconfig"
180180
source "drivers/net/ethernet/stmicro/Kconfig"

drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -444,22 +444,22 @@ static int atl_resume_common(struct device *dev, bool deep)
444444

445445
static int aq_pm_freeze(struct device *dev)
446446
{
447-
return aq_suspend_common(dev, false);
447+
return aq_suspend_common(dev, true);
448448
}
449449

450450
static int aq_pm_suspend_poweroff(struct device *dev)
451451
{
452-
return aq_suspend_common(dev, true);
452+
return aq_suspend_common(dev, false);
453453
}
454454

455455
static int aq_pm_thaw(struct device *dev)
456456
{
457-
return atl_resume_common(dev, false);
457+
return atl_resume_common(dev, true);
458458
}
459459

460460
static int aq_pm_resume_restore(struct device *dev)
461461
{
462-
return atl_resume_common(dev, true);
462+
return atl_resume_common(dev, false);
463463
}
464464

465465
static const struct dev_pm_ops aq_pm_ops = {

drivers/net/ethernet/intel/e1000e/ich8lan.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,8 +1009,8 @@ static s32 e1000_platform_pm_pch_lpt(struct e1000_hw *hw, bool link)
10091009
{
10101010
u32 reg = link << (E1000_LTRV_REQ_SHIFT + E1000_LTRV_NOSNOOP_SHIFT) |
10111011
link << E1000_LTRV_REQ_SHIFT | E1000_LTRV_SEND;
1012-
u16 max_ltr_enc_d = 0; /* maximum LTR decoded by platform */
1013-
u16 lat_enc_d = 0; /* latency decoded */
1012+
u32 max_ltr_enc_d = 0; /* maximum LTR decoded by platform */
1013+
u32 lat_enc_d = 0; /* latency decoded */
10141014
u16 lat_enc = 0; /* latency encoded */
10151015

10161016
if (link) {

drivers/net/ethernet/intel/ice/ice_eswitch.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -361,7 +361,8 @@ ice_eswitch_port_start_xmit(struct sk_buff *skb, struct net_device *netdev)
361361
np = netdev_priv(netdev);
362362
vsi = np->vsi;
363363

364-
if (ice_is_reset_in_progress(vsi->back->state))
364+
if (ice_is_reset_in_progress(vsi->back->state) ||
365+
test_bit(ICE_VF_DIS, vsi->back->state))
365366
return NETDEV_TX_BUSY;
366367

367368
repr = ice_netdev_to_repr(netdev);

drivers/net/ethernet/intel/ice/ice_eswitch.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ static inline void ice_eswitch_update_repr(struct ice_vsi *vsi) { }
5252

5353
static inline int ice_eswitch_configure(struct ice_pf *pf)
5454
{
55-
return -EOPNOTSUPP;
55+
return 0;
5656
}
5757

5858
static inline int ice_eswitch_rebuild(struct ice_pf *pf)

drivers/net/ethernet/intel/ice/ice_nvm.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,7 @@ ice_get_orom_civd_data(struct ice_hw *hw, enum ice_bank_select bank,
641641
status = ice_read_flash_module(hw, bank, ICE_SR_1ST_OROM_BANK_PTR, 0,
642642
orom_data, hw->flash.banks.orom_size);
643643
if (status) {
644+
vfree(orom_data);
644645
ice_debug(hw, ICE_DBG_NVM, "Unable to read Option ROM data\n");
645646
return status;
646647
}

drivers/net/ethernet/intel/ice/ice_xsk.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,8 +415,8 @@ static u16 ice_fill_rx_descs(struct xsk_buff_pool *pool, struct xdp_buff **xdp,
415415
*/
416416
static bool __ice_alloc_rx_bufs_zc(struct ice_rx_ring *rx_ring, u16 count)
417417
{
418+
u32 nb_buffs_extra = 0, nb_buffs = 0;
418419
union ice_32b_rx_flex_desc *rx_desc;
419-
u32 nb_buffs_extra = 0, nb_buffs;
420420
u16 ntu = rx_ring->next_to_use;
421421
u16 total_count = count;
422422
struct xdp_buff **xdp;
@@ -428,6 +428,10 @@ static bool __ice_alloc_rx_bufs_zc(struct ice_rx_ring *rx_ring, u16 count)
428428
nb_buffs_extra = ice_fill_rx_descs(rx_ring->xsk_pool, xdp,
429429
rx_desc,
430430
rx_ring->count - ntu);
431+
if (nb_buffs_extra != rx_ring->count - ntu) {
432+
ntu += nb_buffs_extra;
433+
goto exit;
434+
}
431435
rx_desc = ICE_RX_DESC(rx_ring, 0);
432436
xdp = ice_xdp_buf(rx_ring, 0);
433437
ntu = 0;
@@ -441,6 +445,7 @@ static bool __ice_alloc_rx_bufs_zc(struct ice_rx_ring *rx_ring, u16 count)
441445
if (ntu == rx_ring->count)
442446
ntu = 0;
443447

448+
exit:
444449
if (rx_ring->next_to_use != ntu)
445450
ice_release_rx_desc(rx_ring, ntu);
446451

0 commit comments

Comments
 (0)