Skip to content

Commit abacaf5

Browse files
committed
Merge tag 'net-7.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from CAN, netfilter and wireless. Current release - new code bugs: - sched: cake: fixup cake_mq rate adjustment for diffserv config - wifi: fix missing ieee80211_eml_params member initialization Previous releases - regressions: - tcp: give up on stronger sk_rcvbuf checks (for now) Previous releases - always broken: - net: fix rcu_tasks stall in threaded busypoll - sched: - fq: clear q->band_pkt_count[] in fq_reset() - only allow act_ct to bind to clsact/ingress qdiscs and shared blocks - bridge: check relevant per-VLAN options in VLAN range grouping - xsk: fix fragment node deletion to prevent buffer leak Misc: - spring cleanup of inactive maintainers" * tag 'net-7.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (138 commits) xdp: produce a warning when calculated tailroom is negative net: enetc: use truesize as XDP RxQ info frag_size libeth, idpf: use truesize as XDP RxQ info frag_size i40e: use xdp.frame_sz as XDP RxQ info frag_size i40e: fix registering XDP RxQ info ice: change XDP RxQ frag_size from DMA write length to xdp.frame_sz ice: fix rxq info registering in mbuf packets xsk: introduce helper to determine rxq->frag_size xdp: use modulo operation to calculate XDP frag tailroom selftests/tc-testing: Add tests exercising act_ife metalist replace behaviour net/sched: act_ife: Fix metalist update behavior selftests: net: add test for IPv4 route with loopback IPv6 nexthop net: ipv6: fix panic when IPv4 route references loopback IPv6 nexthop net: vxlan: fix nd_tbl NULL dereference when IPv6 is disabled net: bridge: fix nd_tbl NULL dereference when IPv6 is disabled MAINTAINERS: remove Thomas Falcon from IBM ibmvnic MAINTAINERS: remove Claudiu Manoil and Alexandre Belloni from Ocelot switch MAINTAINERS: replace Taras Chornyi with Elad Nachman for Marvell Prestera MAINTAINERS: remove Jonathan Lemon from OpenCompute PTP MAINTAINERS: replace Clark Wang with Frank Li for Freescale FEC ...
2 parents 18ecff3 + cf440e5 commit abacaf5

159 files changed

Lines changed: 2152 additions & 836 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.

.mailmap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,7 @@ Jarkko Sakkinen <jarkko@kernel.org> <jarkko.sakkinen@opinsys.com>
353353
Jason Gunthorpe <jgg@ziepe.ca> <jgg@mellanox.com>
354354
Jason Gunthorpe <jgg@ziepe.ca> <jgg@nvidia.com>
355355
Jason Gunthorpe <jgg@ziepe.ca> <jgunthorpe@obsidianresearch.com>
356+
Jason Xing <kerneljasonxing@gmail.com> <kernelxing@tencent.com>
356357
<javier@osg.samsung.com> <javier.martinez@collabora.co.uk>
357358
Javi Merino <javi.merino@kernel.org> <javi.merino@arm.com>
358359
Jayachandran C <c.jayachandran@gmail.com> <jayachandranc@netlogicmicro.com>
@@ -401,6 +402,7 @@ Jiri Slaby <jirislaby@kernel.org> <xslaby@fi.muni.cz>
401402
Jisheng Zhang <jszhang@kernel.org> <jszhang@marvell.com>
402403
Jisheng Zhang <jszhang@kernel.org> <Jisheng.Zhang@synaptics.com>
403404
Jishnu Prakash <quic_jprakash@quicinc.com> <jprakash@codeaurora.org>
405+
Joe Damato <joe@dama.to> <jdamato@fastly.com>
404406
Joel Granados <joel.granados@kernel.org> <j.granados@samsung.com>
405407
Johan Hovold <johan@kernel.org> <jhovold@gmail.com>
406408
Johan Hovold <johan@kernel.org> <johan@hovoldconsulting.com>

CREDITS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1242,6 +1242,10 @@ N: Veaceslav Falico
12421242
E: vfalico@gmail.com
12431243
D: Co-maintainer and co-author of the network bonding driver.
12441244

1245+
N: Thomas Falcon
1246+
E: tlfalcon@linux.ibm.com
1247+
D: Initial author of the IBM ibmvnic network driver
1248+
12451249
N: János Farkas
12461250
E: chexum@shadow.banki.hu
12471251
D: romfs, various (mostly networking) fixes
@@ -2415,6 +2419,10 @@ S: Am Muehlenweg 38
24152419
S: D53424 Remagen
24162420
S: Germany
24172421

2422+
N: Jonathan Lemon
2423+
E: jonathan.lemon@gmail.com
2424+
D: OpenCompute PTP clock driver (ptp_ocp)
2425+
24182426
N: Colin Leroy
24192427
E: colin@colino.net
24202428
W: http://www.geekounet.org/

Documentation/devicetree/bindings/net/can/nxp,sja1000.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ required:
8787

8888
allOf:
8989
- $ref: can-controller.yaml#
90+
- $ref: /schemas/memory-controllers/mc-peripheral-props.yaml
9091
- if:
9192
properties:
9293
compatible:

MAINTAINERS

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -993,10 +993,8 @@ F: Documentation/devicetree/bindings/thermal/amazon,al-thermal.yaml
993993
F: drivers/thermal/thermal_mmio.c
994994

995995
AMAZON ETHERNET DRIVERS
996-
M: Shay Agroskin <shayagr@amazon.com>
997996
M: Arthur Kiyanovski <akiyano@amazon.com>
998-
R: David Arinzon <darinzon@amazon.com>
999-
R: Saeed Bishara <saeedb@amazon.com>
997+
M: David Arinzon <darinzon@amazon.com>
1000998
L: netdev@vger.kernel.org
1001999
S: Maintained
10021000
F: Documentation/networking/device_drivers/ethernet/amazon/ena.rst
@@ -4617,7 +4615,6 @@ F: drivers/bluetooth/
46174615

46184616
BLUETOOTH SUBSYSTEM
46194617
M: Marcel Holtmann <marcel@holtmann.org>
4620-
M: Johan Hedberg <johan.hedberg@gmail.com>
46214618
M: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
46224619
L: linux-bluetooth@vger.kernel.org
46234620
S: Supported
@@ -10171,8 +10168,8 @@ F: drivers/i2c/busses/i2c-cpm.c
1017110168

1017210169
FREESCALE IMX / MXC FEC DRIVER
1017310170
M: Wei Fang <wei.fang@nxp.com>
10171+
R: Frank Li <frank.li@nxp.com>
1017410172
R: Shenwei Wang <shenwei.wang@nxp.com>
10175-
R: Clark Wang <xiaoning.wang@nxp.com>
1017610173
L: imx@lists.linux.dev
1017710174
L: netdev@vger.kernel.org
1017810175
S: Maintained
@@ -12216,7 +12213,6 @@ IBM Power SRIOV Virtual NIC Device Driver
1221612213
M: Haren Myneni <haren@linux.ibm.com>
1221712214
M: Rick Lindsley <ricklind@linux.ibm.com>
1221812215
R: Nick Child <nnac123@linux.ibm.com>
12219-
R: Thomas Falcon <tlfalcon@linux.ibm.com>
1222012216
L: netdev@vger.kernel.org
1222112217
S: Maintained
1222212218
F: drivers/net/ethernet/ibm/ibmvnic.*
@@ -15375,10 +15371,8 @@ F: drivers/crypto/marvell/
1537515371
F: include/linux/soc/marvell/octeontx2/
1537615372

1537715373
MARVELL GIGABIT ETHERNET DRIVERS (skge/sky2)
15378-
M: Mirko Lindner <mlindner@marvell.com>
15379-
M: Stephen Hemminger <stephen@networkplumber.org>
1538015374
L: netdev@vger.kernel.org
15381-
S: Odd fixes
15375+
S: Orphan
1538215376
F: drivers/net/ethernet/marvell/sk*
1538315377

1538415378
MARVELL LIBERTAS WIRELESS DRIVER
@@ -15475,7 +15469,6 @@ MARVELL OCTEONTX2 RVU ADMIN FUNCTION DRIVER
1547515469
M: Sunil Goutham <sgoutham@marvell.com>
1547615470
M: Linu Cherian <lcherian@marvell.com>
1547715471
M: Geetha sowjanya <gakula@marvell.com>
15478-
M: Jerin Jacob <jerinj@marvell.com>
1547915472
M: hariprasad <hkelam@marvell.com>
1548015473
M: Subbaraya Sundeep <sbhatta@marvell.com>
1548115474
L: netdev@vger.kernel.org
@@ -15490,7 +15483,7 @@ S: Supported
1549015483
F: drivers/perf/marvell_pem_pmu.c
1549115484

1549215485
MARVELL PRESTERA ETHERNET SWITCH DRIVER
15493-
M: Taras Chornyi <taras.chornyi@plvision.eu>
15486+
M: Elad Nachman <enachman@marvell.com>
1549415487
S: Supported
1549515488
W: https://github.com/Marvell-switching/switchdev-prestera
1549615489
F: drivers/net/ethernet/marvell/prestera/
@@ -16164,7 +16157,6 @@ F: drivers/dma/mediatek/
1616416157

1616516158
MEDIATEK ETHERNET DRIVER
1616616159
M: Felix Fietkau <nbd@nbd.name>
16167-
M: Sean Wang <sean.wang@mediatek.com>
1616816160
M: Lorenzo Bianconi <lorenzo@kernel.org>
1616916161
L: netdev@vger.kernel.org
1617016162
S: Maintained
@@ -16357,8 +16349,6 @@ F: include/soc/mediatek/smi.h
1635716349
MEDIATEK SWITCH DRIVER
1635816350
M: Chester A. Unal <chester.a.unal@arinc9.com>
1635916351
M: Daniel Golle <daniel@makrotopia.org>
16360-
M: DENG Qingfang <dqfext@gmail.com>
16361-
M: Sean Wang <sean.wang@mediatek.com>
1636216352
L: netdev@vger.kernel.org
1636316353
S: Maintained
1636416354
F: drivers/net/dsa/mt7530-mdio.c
@@ -19226,8 +19216,6 @@ F: tools/objtool/
1922619216

1922719217
OCELOT ETHERNET SWITCH DRIVER
1922819218
M: Vladimir Oltean <vladimir.oltean@nxp.com>
19229-
M: Claudiu Manoil <claudiu.manoil@nxp.com>
19230-
M: Alexandre Belloni <alexandre.belloni@bootlin.com>
1923119219
M: UNGLinuxDriver@microchip.com
1923219220
L: netdev@vger.kernel.org
1923319221
S: Supported
@@ -19813,7 +19801,6 @@ F: arch/*/boot/dts/
1981319801
F: include/dt-bindings/
1981419802

1981519803
OPENCOMPUTE PTP CLOCK DRIVER
19816-
M: Jonathan Lemon <jonathan.lemon@gmail.com>
1981719804
M: Vadim Fedorenko <vadim.fedorenko@linux.dev>
1981819805
L: netdev@vger.kernel.org
1981919806
S: Maintained
@@ -21457,9 +21444,8 @@ S: Supported
2145721444
F: drivers/scsi/qedi/
2145821445

2145921446
QLOGIC QL4xxx ETHERNET DRIVER
21460-
M: Manish Chopra <manishc@marvell.com>
2146121447
L: netdev@vger.kernel.org
21462-
S: Maintained
21448+
S: Orphan
2146321449
F: drivers/net/ethernet/qlogic/qed/
2146421450
F: drivers/net/ethernet/qlogic/qede/
2146521451
F: include/linux/qed/

drivers/net/bonding/bond_main.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ static bool bond_sk_check(struct bonding *bond)
324324
}
325325
}
326326

327-
bool bond_xdp_check(struct bonding *bond, int mode)
327+
bool __bond_xdp_check(int mode, int xmit_policy)
328328
{
329329
switch (mode) {
330330
case BOND_MODE_ROUNDROBIN:
@@ -335,14 +335,19 @@ bool bond_xdp_check(struct bonding *bond, int mode)
335335
/* vlan+srcmac is not supported with XDP as in most cases the 802.1q
336336
* payload is not in the packet due to hardware offload.
337337
*/
338-
if (bond->params.xmit_policy != BOND_XMIT_POLICY_VLAN_SRCMAC)
338+
if (xmit_policy != BOND_XMIT_POLICY_VLAN_SRCMAC)
339339
return true;
340340
fallthrough;
341341
default:
342342
return false;
343343
}
344344
}
345345

346+
bool bond_xdp_check(struct bonding *bond, int mode)
347+
{
348+
return __bond_xdp_check(mode, bond->params.xmit_policy);
349+
}
350+
346351
/*---------------------------------- VLAN -----------------------------------*/
347352

348353
/* In the following 2 functions, bond_vlan_rx_add_vid and bond_vlan_rx_kill_vid,

drivers/net/bonding/bond_options.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1575,6 +1575,8 @@ static int bond_option_fail_over_mac_set(struct bonding *bond,
15751575
static int bond_option_xmit_hash_policy_set(struct bonding *bond,
15761576
const struct bond_opt_value *newval)
15771577
{
1578+
if (bond->xdp_prog && !__bond_xdp_check(BOND_MODE(bond), newval->value))
1579+
return -EOPNOTSUPP;
15781580
netdev_dbg(bond->dev, "Setting xmit hash policy to %s (%llu)\n",
15791581
newval->string, newval->value);
15801582
bond->params.xmit_policy = newval->value;

drivers/net/can/dummy_can.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ static int __init dummy_can_init(void)
241241

242242
dev->netdev_ops = &dummy_can_netdev_ops;
243243
dev->ethtool_ops = &dummy_can_ethtool_ops;
244+
dev->flags |= IFF_ECHO; /* enable echo handling */
244245
priv = netdev_priv(dev);
245246
priv->can.bittiming_const = &dummy_can_bittiming_const;
246247
priv->can.bitrate_max = 20 * MEGA /* BPS */;

drivers/net/can/spi/mcp251x.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1214,6 +1214,7 @@ static int mcp251x_open(struct net_device *net)
12141214
{
12151215
struct mcp251x_priv *priv = netdev_priv(net);
12161216
struct spi_device *spi = priv->spi;
1217+
bool release_irq = false;
12171218
unsigned long flags = 0;
12181219
int ret;
12191220

@@ -1257,12 +1258,24 @@ static int mcp251x_open(struct net_device *net)
12571258
return 0;
12581259

12591260
out_free_irq:
1260-
free_irq(spi->irq, priv);
1261+
/* The IRQ handler might be running, and if so it will be waiting
1262+
* for the lock. But free_irq() must wait for the handler to finish
1263+
* so calling it here would deadlock.
1264+
*
1265+
* Setting priv->force_quit will let the handler exit right away
1266+
* without any access to the hardware. This make it safe to call
1267+
* free_irq() after the lock is released.
1268+
*/
1269+
priv->force_quit = 1;
1270+
release_irq = true;
1271+
12611272
mcp251x_hw_sleep(spi);
12621273
out_close:
12631274
mcp251x_power_enable(priv->transceiver, 0);
12641275
close_candev(net);
12651276
mutex_unlock(&priv->mcp_lock);
1277+
if (release_irq)
1278+
free_irq(spi->irq, priv);
12661279
return ret;
12671280
}
12681281

drivers/net/can/usb/ems_usb.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,11 @@ static void ems_usb_read_bulk_callback(struct urb *urb)
445445
start = CPC_HEADER_SIZE;
446446

447447
while (msg_count) {
448+
if (start + CPC_MSG_HEADER_LEN > urb->actual_length) {
449+
netdev_err(netdev, "format error\n");
450+
break;
451+
}
452+
448453
msg = (struct ems_cpc_msg *)&ibuf[start];
449454

450455
switch (msg->type) {
@@ -474,7 +479,7 @@ static void ems_usb_read_bulk_callback(struct urb *urb)
474479
start += CPC_MSG_HEADER_LEN + msg->length;
475480
msg_count--;
476481

477-
if (start > urb->transfer_buffer_length) {
482+
if (start > urb->actual_length) {
478483
netdev_err(netdev, "format error\n");
479484
break;
480485
}

drivers/net/can/usb/esd_usb.c

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,9 @@ struct esd_usb {
272272

273273
struct usb_anchor rx_submitted;
274274

275+
unsigned int rx_pipe;
276+
unsigned int tx_pipe;
277+
275278
int net_count;
276279
u32 version;
277280
int rxinitdone;
@@ -537,7 +540,7 @@ static void esd_usb_read_bulk_callback(struct urb *urb)
537540
}
538541

539542
resubmit_urb:
540-
usb_fill_bulk_urb(urb, dev->udev, usb_rcvbulkpipe(dev->udev, 1),
543+
usb_fill_bulk_urb(urb, dev->udev, dev->rx_pipe,
541544
urb->transfer_buffer, ESD_USB_RX_BUFFER_SIZE,
542545
esd_usb_read_bulk_callback, dev);
543546

@@ -626,9 +629,7 @@ static int esd_usb_send_msg(struct esd_usb *dev, union esd_usb_msg *msg)
626629
{
627630
int actual_length;
628631

629-
return usb_bulk_msg(dev->udev,
630-
usb_sndbulkpipe(dev->udev, 2),
631-
msg,
632+
return usb_bulk_msg(dev->udev, dev->tx_pipe, msg,
632633
msg->hdr.len * sizeof(u32), /* convert to # of bytes */
633634
&actual_length,
634635
1000);
@@ -639,12 +640,8 @@ static int esd_usb_wait_msg(struct esd_usb *dev,
639640
{
640641
int actual_length;
641642

642-
return usb_bulk_msg(dev->udev,
643-
usb_rcvbulkpipe(dev->udev, 1),
644-
msg,
645-
sizeof(*msg),
646-
&actual_length,
647-
1000);
643+
return usb_bulk_msg(dev->udev, dev->rx_pipe, msg,
644+
sizeof(*msg), &actual_length, 1000);
648645
}
649646

650647
static int esd_usb_setup_rx_urbs(struct esd_usb *dev)
@@ -677,8 +674,7 @@ static int esd_usb_setup_rx_urbs(struct esd_usb *dev)
677674

678675
urb->transfer_dma = buf_dma;
679676

680-
usb_fill_bulk_urb(urb, dev->udev,
681-
usb_rcvbulkpipe(dev->udev, 1),
677+
usb_fill_bulk_urb(urb, dev->udev, dev->rx_pipe,
682678
buf, ESD_USB_RX_BUFFER_SIZE,
683679
esd_usb_read_bulk_callback, dev);
684680
urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
@@ -903,7 +899,7 @@ static netdev_tx_t esd_usb_start_xmit(struct sk_buff *skb,
903899
/* hnd must not be 0 - MSB is stripped in txdone handling */
904900
msg->tx.hnd = BIT(31) | i; /* returned in TX done message */
905901

906-
usb_fill_bulk_urb(urb, dev->udev, usb_sndbulkpipe(dev->udev, 2), buf,
902+
usb_fill_bulk_urb(urb, dev->udev, dev->tx_pipe, buf,
907903
msg->hdr.len * sizeof(u32), /* convert to # of bytes */
908904
esd_usb_write_bulk_callback, context);
909905

@@ -1298,17 +1294,25 @@ static int esd_usb_probe_one_net(struct usb_interface *intf, int index)
12981294
static int esd_usb_probe(struct usb_interface *intf,
12991295
const struct usb_device_id *id)
13001296
{
1297+
struct usb_endpoint_descriptor *ep_in, *ep_out;
13011298
struct esd_usb *dev;
13021299
union esd_usb_msg *msg;
13031300
int i, err;
13041301

1302+
err = usb_find_common_endpoints(intf->cur_altsetting, &ep_in, &ep_out,
1303+
NULL, NULL);
1304+
if (err)
1305+
return err;
1306+
13051307
dev = kzalloc_obj(*dev);
13061308
if (!dev) {
13071309
err = -ENOMEM;
13081310
goto done;
13091311
}
13101312

13111313
dev->udev = interface_to_usbdev(intf);
1314+
dev->rx_pipe = usb_rcvbulkpipe(dev->udev, ep_in->bEndpointAddress);
1315+
dev->tx_pipe = usb_sndbulkpipe(dev->udev, ep_out->bEndpointAddress);
13121316

13131317
init_usb_anchor(&dev->rx_submitted);
13141318

0 commit comments

Comments
 (0)