Skip to content

Commit ab431bc

Browse files
committed
Merge tag 'net-6.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from can. Slim pickings, I'm guessing people haven't really started testing. Current release - new code bugs: - eth: mlx5e: - psp: avoid 'accel' NULL pointer dereference - skip PPHCR register query for FEC histogram if not supported Previous releases - regressions: - bonding: update the slave array for broadcast mode - rtnetlink: re-allow deleting FDB entries in user namespace - eth: dpaa2: fix the pointer passed to PTR_ALIGN on Tx path Previous releases - always broken: - can: drop skb on xmit if device is in listen-only mode - gro: clear skb_shinfo(skb)->hwtstamps in napi_reuse_skb() - eth: mlx5e - RX, fix generating skb from non-linear xdp_buff if program trims frags - make devcom init failures non-fatal, fix races with IPSec Misc: - some documentation formatting 'fixes'" * tag 'net-6.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (47 commits) net/mlx5: Fix IPsec cleanup over MPV device net/mlx5: Refactor devcom to return NULL on failure net/mlx5e: Skip PPHCR register query if not supported by the device net/mlx5: Add PPHCR to PCAM supported registers mask virtio-net: zero unused hash fields net: phy: micrel: always set shared->phydev for LAN8814 vsock: fix lock inversion in vsock_assign_transport() ovpn: use datagram_poll_queue for socket readiness in TCP espintcp: use datagram_poll_queue for socket readiness net: datagram: introduce datagram_poll_queue for custom receive queues net: bonding: fix possible peer notify event loss or dup issue net: hsr: prevent creation of HSR device with slaves from another netns sctp: avoid NULL dereference when chunk data buffer is missing ptp: ocp: Fix typo using index 1 instead of i in SMA initialization loop net: ravb: Ensure memory write completes before ringing TX doorbell net: ravb: Enforce descriptor type ordering net: hibmcge: select FIXED_PHY net: dlink: use dev_kfree_skb_any instead of dev_kfree_skb Documentation: networking: ax25: update the mailing list info. net: gro_cells: fix lock imbalance in gro_cells_receive() ...
2 parents a0b12d7 + cb68d1e commit ab431bc

50 files changed

Lines changed: 451 additions & 263 deletions

File tree

Some content is hidden

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

Documentation/networking/ax25.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ found on https://linux-ax25.in-berlin.de.
1111

1212
There is a mailing list for discussing Linux amateur radio matters
1313
called linux-hams@vger.kernel.org. To subscribe to it, send a message to
14-
majordomo@vger.kernel.org with the words "subscribe linux-hams" in the body
15-
of the message, the subject field is ignored. You don't need to be
16-
subscribed to post but of course that means you might miss an answer.
14+
linux-hams+subscribe@vger.kernel.org or use the web interface at
15+
https://vger.kernel.org. The subject and body of the message are
16+
ignored. You don't need to be subscribed to post but of course that
17+
means you might miss an answer.

Documentation/networking/device_drivers/cellular/qualcomm/rmnet.rst

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,16 +137,20 @@ d. Checksum offload header v5
137137

138138
Checksum offload header fields are in big endian format.
139139

140+
Packet format::
141+
140142
Bit 0 - 6 7 8-15 16-31
141143
Function Header Type Next Header Checksum Valid Reserved
142144

143145
Header Type is to indicate the type of header, this usually is set to CHECKSUM
144146

145147
Header types
146-
= ==========================================
148+
149+
= ===============
147150
0 Reserved
148151
1 Reserved
149152
2 checksum header
153+
= ===============
150154

151155
Checksum Valid is to indicate whether the header checksum is valid. Value of 1
152156
implies that checksum is calculated on this packet and is valid, value of 0
@@ -183,9 +187,11 @@ rmnet in a single linear skb. rmnet will process the individual
183187
packets and either ACK the MAP command or deliver the IP packet to the
184188
network stack as needed
185189

186-
MAP header|IP Packet|Optional padding|MAP header|IP Packet|Optional padding....
190+
Packet format::
191+
192+
MAP header|IP Packet|Optional padding|MAP header|IP Packet|Optional padding....
187193

188-
MAP header|IP Packet|Optional padding|MAP header|Command Packet|Optional pad...
194+
MAP header|IP Packet|Optional padding|MAP header|Command Packet|Optional pad...
189195

190196
3. Userspace configuration
191197
==========================

Documentation/networking/net_failover.rst

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,8 @@ needed to these network configuration daemons to make sure that an IP is
9696
received only on the 'failover' device.
9797

9898
Below is the patch snippet used with 'cloud-ifupdown-helper' script found on
99-
Debian cloud images:
99+
Debian cloud images::
100100

101-
::
102101
@@ -27,6 +27,8 @@ do_setup() {
103102
local working="$cfgdir/.$INTERFACE"
104103
local final="$cfgdir/$INTERFACE"
@@ -172,9 +171,8 @@ appropriate FDB entry is added.
172171

173172
The following script is executed on the destination hypervisor once migration
174173
completes, and it reattaches the VF to the VM and brings down the virtio-net
175-
interface.
174+
interface::
176175

177-
::
178176
# reattach-vf.sh
179177
#!/bin/bash
180178

drivers/net/bonding/bond_main.c

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2287,7 +2287,9 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev,
22872287
unblock_netpoll_tx();
22882288
}
22892289

2290-
if (bond_mode_can_use_xmit_hash(bond))
2290+
/* broadcast mode uses the all_slaves to loop through slaves. */
2291+
if (bond_mode_can_use_xmit_hash(bond) ||
2292+
BOND_MODE(bond) == BOND_MODE_BROADCAST)
22912293
bond_update_slave_arr(bond, NULL);
22922294

22932295
if (!slave_dev->netdev_ops->ndo_bpf ||
@@ -2463,7 +2465,8 @@ static int __bond_release_one(struct net_device *bond_dev,
24632465

24642466
bond_upper_dev_unlink(bond, slave);
24652467

2466-
if (bond_mode_can_use_xmit_hash(bond))
2468+
if (bond_mode_can_use_xmit_hash(bond) ||
2469+
BOND_MODE(bond) == BOND_MODE_BROADCAST)
24672470
bond_update_slave_arr(bond, slave);
24682471

24692472
slave_info(bond_dev, slave_dev, "Releasing %s interface\n",
@@ -2871,7 +2874,7 @@ static void bond_mii_monitor(struct work_struct *work)
28712874
{
28722875
struct bonding *bond = container_of(work, struct bonding,
28732876
mii_work.work);
2874-
bool should_notify_peers = false;
2877+
bool should_notify_peers;
28752878
bool commit;
28762879
unsigned long delay;
28772880
struct slave *slave;
@@ -2883,44 +2886,40 @@ static void bond_mii_monitor(struct work_struct *work)
28832886
goto re_arm;
28842887

28852888
rcu_read_lock();
2889+
28862890
should_notify_peers = bond_should_notify_peers(bond);
28872891
commit = !!bond_miimon_inspect(bond);
2888-
if (bond->send_peer_notif) {
2889-
rcu_read_unlock();
2890-
if (rtnl_trylock()) {
2891-
bond->send_peer_notif--;
2892-
rtnl_unlock();
2893-
}
2894-
} else {
2895-
rcu_read_unlock();
2896-
}
28972892

2898-
if (commit) {
2893+
rcu_read_unlock();
2894+
2895+
if (commit || bond->send_peer_notif) {
28992896
/* Race avoidance with bond_close cancel of workqueue */
29002897
if (!rtnl_trylock()) {
29012898
delay = 1;
2902-
should_notify_peers = false;
29032899
goto re_arm;
29042900
}
29052901

2906-
bond_for_each_slave(bond, slave, iter) {
2907-
bond_commit_link_state(slave, BOND_SLAVE_NOTIFY_LATER);
2902+
if (commit) {
2903+
bond_for_each_slave(bond, slave, iter) {
2904+
bond_commit_link_state(slave,
2905+
BOND_SLAVE_NOTIFY_LATER);
2906+
}
2907+
bond_miimon_commit(bond);
2908+
}
2909+
2910+
if (bond->send_peer_notif) {
2911+
bond->send_peer_notif--;
2912+
if (should_notify_peers)
2913+
call_netdevice_notifiers(NETDEV_NOTIFY_PEERS,
2914+
bond->dev);
29082915
}
2909-
bond_miimon_commit(bond);
29102916

29112917
rtnl_unlock(); /* might sleep, hold no other locks */
29122918
}
29132919

29142920
re_arm:
29152921
if (bond->params.miimon)
29162922
queue_delayed_work(bond->wq, &bond->mii_work, delay);
2917-
2918-
if (should_notify_peers) {
2919-
if (!rtnl_trylock())
2920-
return;
2921-
call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, bond->dev);
2922-
rtnl_unlock();
2923-
}
29242923
}
29252924

29262925
static int bond_upper_dev_walk(struct net_device *upper,

drivers/net/can/bxcan.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -842,7 +842,7 @@ static netdev_tx_t bxcan_start_xmit(struct sk_buff *skb,
842842
u32 id;
843843
int i, j;
844844

845-
if (can_dropped_invalid_skb(ndev, skb))
845+
if (can_dev_dropped_skb(ndev, skb))
846846
return NETDEV_TX_OK;
847847

848848
if (bxcan_tx_busy(priv))

drivers/net/can/dev/netlink.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,9 @@ static int can_changelink(struct net_device *dev, struct nlattr *tb[],
452452
}
453453

454454
if (data[IFLA_CAN_RESTART_MS]) {
455-
if (!priv->do_set_mode) {
455+
unsigned int restart_ms = nla_get_u32(data[IFLA_CAN_RESTART_MS]);
456+
457+
if (restart_ms != 0 && !priv->do_set_mode) {
456458
NL_SET_ERR_MSG(extack,
457459
"Device doesn't support restart from Bus Off");
458460
return -EOPNOTSUPP;
@@ -461,7 +463,7 @@ static int can_changelink(struct net_device *dev, struct nlattr *tb[],
461463
/* Do not allow changing restart delay while running */
462464
if (dev->flags & IFF_UP)
463465
return -EBUSY;
464-
priv->restart_ms = nla_get_u32(data[IFLA_CAN_RESTART_MS]);
466+
priv->restart_ms = restart_ms;
465467
}
466468

467469
if (data[IFLA_CAN_RESTART]) {

drivers/net/can/esd/esdacc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ netdev_tx_t acc_start_xmit(struct sk_buff *skb, struct net_device *netdev)
254254
u32 acc_id;
255255
u32 acc_dlc;
256256

257-
if (can_dropped_invalid_skb(netdev, skb))
257+
if (can_dev_dropped_skb(netdev, skb))
258258
return NETDEV_TX_OK;
259259

260260
/* Access core->tx_fifo_tail only once because it may be changed

drivers/net/can/rockchip/rockchip_canfd-tx.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ netdev_tx_t rkcanfd_start_xmit(struct sk_buff *skb, struct net_device *ndev)
7272
int err;
7373
u8 i;
7474

75-
if (can_dropped_invalid_skb(ndev, skb))
75+
if (can_dev_dropped_skb(ndev, skb))
7676
return NETDEV_TX_OK;
7777

7878
if (!netif_subqueue_maybe_stop(priv->ndev, 0,

drivers/net/ethernet/dlink/dl2k.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -733,7 +733,7 @@ start_xmit (struct sk_buff *skb, struct net_device *dev)
733733
u64 tfc_vlan_tag = 0;
734734

735735
if (np->link_status == 0) { /* Link Down */
736-
dev_kfree_skb(skb);
736+
dev_kfree_skb_any(skb);
737737
return NETDEV_TX_OK;
738738
}
739739
entry = np->cur_tx % TX_RING_SIZE;

drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,8 +1077,7 @@ static int dpaa2_eth_build_single_fd(struct dpaa2_eth_priv *priv,
10771077
dma_addr_t addr;
10781078

10791079
buffer_start = skb->data - dpaa2_eth_needed_headroom(skb);
1080-
aligned_start = PTR_ALIGN(buffer_start - DPAA2_ETH_TX_BUF_ALIGN,
1081-
DPAA2_ETH_TX_BUF_ALIGN);
1080+
aligned_start = PTR_ALIGN(buffer_start, DPAA2_ETH_TX_BUF_ALIGN);
10821081
if (aligned_start >= skb->head)
10831082
buffer_start = aligned_start;
10841083
else

0 commit comments

Comments
 (0)