Skip to content

Commit 41b9fb3

Browse files
committed
Merge tag 'net-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Jakub Kicinski: "Including fixes from netfilter. As Paolo promised we continue to hammer out issues in our selftests. This is not the end but probably the peak. Current release - regressions: - smc: fix incorrect SMC-D link group matching logic Current release - new code bugs: - eth: bnxt: silence WARN() when device skips a timestamp, it happens Previous releases - regressions: - ipmr: fix null-deref when forwarding mcast packets - conntrack: evaluate window negotiation only for packets in the REPLY direction, otherwise SYN retransmissions trigger incorrect window scale negotiation - ipset: fix performance regression in swap operation Previous releases - always broken: - tcp: add sanity checks to types of pages getting into the rx zerocopy path, we only support basic NIC -> user, no page cache pages etc. - ip6_tunnel: make sure to pull inner header in __ip6_tnl_rcv() - nt_tables: more input sanitization changes - dsa: mt7530: fix 10M/100M speed on MediaTek MT7988 switch - bridge: mcast: fix loss of snooping after long uptime, jiffies do wrap on 32bit - xen-netback: properly sync TX responses, protect with locking - phy: mediatek-ge-soc: sync calibration values with MediaTek SDK, increase connection stability - eth: pds: fixes for various teardown, and reset races Misc: - hsr: silence WARN() if we can't alloc supervision frame, it happens" * tag 'net-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (82 commits) doc/netlink/specs: Add missing attr in rt_link spec idpf: avoid compiler padding in virtchnl2_ptype struct selftests: mptcp: join: stop transfer when check is done (part 2) selftests: mptcp: join: stop transfer when check is done (part 1) selftests: mptcp: allow changing subtests prefix selftests: mptcp: decrease BW in simult flows selftests: mptcp: increase timeout to 30 min selftests: mptcp: add missing kconfig for NF Mangle selftests: mptcp: add missing kconfig for NF Filter in v6 selftests: mptcp: add missing kconfig for NF Filter mptcp: fix data re-injection from stale subflow selftests: net: enable some more knobs selftests: net: add missing config for NF_TARGET_TTL selftests: forwarding: List helper scripts in TEST_FILES Makefile variable selftests: net: List helper scripts in TEST_FILES Makefile variable selftests: net: Remove executable bits from library scripts selftests: bonding: Check initial state selftests: team: Add missing config options hv_netvsc: Fix race condition between netvsc_probe and netvsc_remove xen-netback: properly sync TX responses ...
2 parents 91481c9 + 4e192be commit 41b9fb3

Some content is hidden

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

90 files changed

+839
-403
lines changed

Documentation/ABI/testing/sysfs-class-net-queues

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
What: /sys/class/<iface>/queues/rx-<queue>/rps_cpus
1+
What: /sys/class/net/<iface>/queues/rx-<queue>/rps_cpus
22
Date: March 2010
33
KernelVersion: 2.6.35
44
@@ -8,31 +8,31 @@ Description:
88
network device queue. Possible values depend on the number
99
of available CPU(s) in the system.
1010

11-
What: /sys/class/<iface>/queues/rx-<queue>/rps_flow_cnt
11+
What: /sys/class/net/<iface>/queues/rx-<queue>/rps_flow_cnt
1212
Date: April 2010
1313
KernelVersion: 2.6.35
1414
1515
Description:
1616
Number of Receive Packet Steering flows being currently
1717
processed by this particular network device receive queue.
1818

19-
What: /sys/class/<iface>/queues/tx-<queue>/tx_timeout
19+
What: /sys/class/net/<iface>/queues/tx-<queue>/tx_timeout
2020
Date: November 2011
2121
KernelVersion: 3.3
2222
2323
Description:
2424
Indicates the number of transmit timeout events seen by this
2525
network interface transmit queue.
2626

27-
What: /sys/class/<iface>/queues/tx-<queue>/tx_maxrate
27+
What: /sys/class/net/<iface>/queues/tx-<queue>/tx_maxrate
2828
Date: March 2015
2929
KernelVersion: 4.1
3030
3131
Description:
3232
A Mbps max-rate set for the queue, a value of zero means disabled,
3333
default is disabled.
3434

35-
What: /sys/class/<iface>/queues/tx-<queue>/xps_cpus
35+
What: /sys/class/net/<iface>/queues/tx-<queue>/xps_cpus
3636
Date: November 2010
3737
KernelVersion: 2.6.38
3838
@@ -42,7 +42,7 @@ Description:
4242
network device transmit queue. Possible values depend on the
4343
number of available CPU(s) in the system.
4444

45-
What: /sys/class/<iface>/queues/tx-<queue>/xps_rxqs
45+
What: /sys/class/net/<iface>/queues/tx-<queue>/xps_rxqs
4646
Date: June 2018
4747
KernelVersion: 4.18.0
4848
@@ -53,7 +53,7 @@ Description:
5353
number of available receive queue(s) in the network device.
5454
Default is disabled.
5555

56-
What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time
56+
What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time
5757
Date: November 2011
5858
KernelVersion: 3.3
5959
@@ -62,15 +62,15 @@ Description:
6262
of this particular network device transmit queue.
6363
Default value is 1000.
6464

65-
What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/inflight
65+
What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/inflight
6666
Date: November 2011
6767
KernelVersion: 3.3
6868
6969
Description:
7070
Indicates the number of bytes (objects) in flight on this
7171
network device transmit queue.
7272

73-
What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit
73+
What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit
7474
Date: November 2011
7575
KernelVersion: 3.3
7676
@@ -79,7 +79,7 @@ Description:
7979
on this network device transmit queue. This value is clamped
8080
to be within the bounds defined by limit_max and limit_min.
8181

82-
What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max
82+
What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max
8383
Date: November 2011
8484
KernelVersion: 3.3
8585
@@ -88,7 +88,7 @@ Description:
8888
queued on this network device transmit queue. See
8989
include/linux/dynamic_queue_limits.h for the default value.
9090

91-
What: /sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min
91+
What: /sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min
9292
Date: November 2011
9393
KernelVersion: 3.3
9494

Documentation/netlink/specs/rt_link.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -942,6 +942,10 @@ attribute-sets:
942942
-
943943
name: gro-ipv4-max-size
944944
type: u32
945+
-
946+
name: dpll-pin
947+
type: nest
948+
nested-attributes: link-dpll-pin-attrs
945949
-
946950
name: af-spec-attrs
947951
attributes:
@@ -1627,6 +1631,12 @@ attribute-sets:
16271631
-
16281632
name: used
16291633
type: u8
1634+
-
1635+
name: link-dpll-pin-attrs
1636+
attributes:
1637+
-
1638+
name: id
1639+
type: u32
16301640

16311641
sub-messages:
16321642
-

MAINTAINERS

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15181,13 +15181,15 @@ F: Documentation/networking/net_cachelines/net_device.rst
1518115181
F: drivers/connector/
1518215182
F: drivers/net/
1518315183
F: include/dt-bindings/net/
15184+
F: include/linux/cn_proc.h
1518415185
F: include/linux/etherdevice.h
1518515186
F: include/linux/fcdevice.h
1518615187
F: include/linux/fddidevice.h
1518715188
F: include/linux/hippidevice.h
1518815189
F: include/linux/if_*
1518915190
F: include/linux/inetdevice.h
1519015191
F: include/linux/netdevice.h
15192+
F: include/uapi/linux/cn_proc.h
1519115193
F: include/uapi/linux/if_*
1519215194
F: include/uapi/linux/netdevice.h
1519315195
X: drivers/net/wireless/
@@ -18085,7 +18087,6 @@ F: drivers/net/ethernet/qualcomm/emac/
1808518087

1808618088
QUALCOMM ETHQOS ETHERNET DRIVER
1808718089
M: Vinod Koul <[email protected]>
18088-
R: Bhupesh Sharma <[email protected]>
1808918090
1809018091
1809118092
S: Maintained

drivers/net/dsa/mt7530.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2838,8 +2838,7 @@ static void mt753x_phylink_mac_link_up(struct dsa_switch *ds, int port,
28382838
/* MT753x MAC works in 1G full duplex mode for all up-clocked
28392839
* variants.
28402840
*/
2841-
if (interface == PHY_INTERFACE_MODE_INTERNAL ||
2842-
interface == PHY_INTERFACE_MODE_TRGMII ||
2841+
if (interface == PHY_INTERFACE_MODE_TRGMII ||
28432842
(phy_interface_mode_is_8023z(interface))) {
28442843
speed = SPEED_1000;
28452844
duplex = DUPLEX_FULL;

drivers/net/dsa/mv88e6xxx/chip.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3659,7 +3659,7 @@ static int mv88e6xxx_mdio_read_c45(struct mii_bus *bus, int phy, int devad,
36593659
int err;
36603660

36613661
if (!chip->info->ops->phy_read_c45)
3662-
return -EOPNOTSUPP;
3662+
return 0xffff;
36633663

36643664
mv88e6xxx_reg_lock(chip);
36653665
err = chip->info->ops->phy_read_c45(chip, bus, phy, devad, reg, &val);

drivers/net/dsa/qca/qca8k-8xxx.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2051,12 +2051,11 @@ qca8k_sw_probe(struct mdio_device *mdiodev)
20512051
priv->info = of_device_get_match_data(priv->dev);
20522052

20532053
priv->reset_gpio = devm_gpiod_get_optional(priv->dev, "reset",
2054-
GPIOD_ASIS);
2054+
GPIOD_OUT_HIGH);
20552055
if (IS_ERR(priv->reset_gpio))
20562056
return PTR_ERR(priv->reset_gpio);
20572057

20582058
if (priv->reset_gpio) {
2059-
gpiod_set_value_cansleep(priv->reset_gpio, 1);
20602059
/* The active low duration must be greater than 10 ms
20612060
* and checkpatch.pl wants 20 ms.
20622061
*/

drivers/net/ethernet/amd/pds_core/adminq.c

Lines changed: 48 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,15 @@ static int pdsc_process_notifyq(struct pdsc_qcq *qcq)
6363
return nq_work;
6464
}
6565

66+
static bool pdsc_adminq_inc_if_up(struct pdsc *pdsc)
67+
{
68+
if (pdsc->state & BIT_ULL(PDSC_S_STOPPING_DRIVER) ||
69+
pdsc->state & BIT_ULL(PDSC_S_FW_DEAD))
70+
return false;
71+
72+
return refcount_inc_not_zero(&pdsc->adminq_refcnt);
73+
}
74+
6675
void pdsc_process_adminq(struct pdsc_qcq *qcq)
6776
{
6877
union pds_core_adminq_comp *comp;
@@ -75,9 +84,9 @@ void pdsc_process_adminq(struct pdsc_qcq *qcq)
7584
int aq_work = 0;
7685
int credits;
7786

78-
/* Don't process AdminQ when shutting down */
79-
if (pdsc->state & BIT_ULL(PDSC_S_STOPPING_DRIVER)) {
80-
dev_err(pdsc->dev, "%s: called while PDSC_S_STOPPING_DRIVER\n",
87+
/* Don't process AdminQ when it's not up */
88+
if (!pdsc_adminq_inc_if_up(pdsc)) {
89+
dev_err(pdsc->dev, "%s: called while adminq is unavailable\n",
8190
__func__);
8291
return;
8392
}
@@ -124,6 +133,7 @@ void pdsc_process_adminq(struct pdsc_qcq *qcq)
124133
pds_core_intr_credits(&pdsc->intr_ctrl[qcq->intx],
125134
credits,
126135
PDS_CORE_INTR_CRED_REARM);
136+
refcount_dec(&pdsc->adminq_refcnt);
127137
}
128138

129139
void pdsc_work_thread(struct work_struct *work)
@@ -135,18 +145,20 @@ void pdsc_work_thread(struct work_struct *work)
135145

136146
irqreturn_t pdsc_adminq_isr(int irq, void *data)
137147
{
138-
struct pdsc_qcq *qcq = data;
139-
struct pdsc *pdsc = qcq->pdsc;
148+
struct pdsc *pdsc = data;
149+
struct pdsc_qcq *qcq;
140150

141-
/* Don't process AdminQ when shutting down */
142-
if (pdsc->state & BIT_ULL(PDSC_S_STOPPING_DRIVER)) {
143-
dev_err(pdsc->dev, "%s: called while PDSC_S_STOPPING_DRIVER\n",
151+
/* Don't process AdminQ when it's not up */
152+
if (!pdsc_adminq_inc_if_up(pdsc)) {
153+
dev_err(pdsc->dev, "%s: called while adminq is unavailable\n",
144154
__func__);
145155
return IRQ_HANDLED;
146156
}
147157

158+
qcq = &pdsc->adminqcq;
148159
queue_work(pdsc->wq, &qcq->work);
149160
pds_core_intr_mask(&pdsc->intr_ctrl[qcq->intx], PDS_CORE_INTR_MASK_CLEAR);
161+
refcount_dec(&pdsc->adminq_refcnt);
150162

151163
return IRQ_HANDLED;
152164
}
@@ -179,10 +191,16 @@ static int __pdsc_adminq_post(struct pdsc *pdsc,
179191

180192
/* Check that the FW is running */
181193
if (!pdsc_is_fw_running(pdsc)) {
182-
u8 fw_status = ioread8(&pdsc->info_regs->fw_status);
183-
184-
dev_info(pdsc->dev, "%s: post failed - fw not running %#02x:\n",
185-
__func__, fw_status);
194+
if (pdsc->info_regs) {
195+
u8 fw_status =
196+
ioread8(&pdsc->info_regs->fw_status);
197+
198+
dev_info(pdsc->dev, "%s: post failed - fw not running %#02x:\n",
199+
__func__, fw_status);
200+
} else {
201+
dev_info(pdsc->dev, "%s: post failed - BARs not setup\n",
202+
__func__);
203+
}
186204
ret = -ENXIO;
187205

188206
goto err_out_unlock;
@@ -230,6 +248,12 @@ int pdsc_adminq_post(struct pdsc *pdsc,
230248
int err = 0;
231249
int index;
232250

251+
if (!pdsc_adminq_inc_if_up(pdsc)) {
252+
dev_dbg(pdsc->dev, "%s: preventing adminq cmd %u\n",
253+
__func__, cmd->opcode);
254+
return -ENXIO;
255+
}
256+
233257
wc.qcq = &pdsc->adminqcq;
234258
index = __pdsc_adminq_post(pdsc, &pdsc->adminqcq, cmd, comp, &wc);
235259
if (index < 0) {
@@ -248,10 +272,16 @@ int pdsc_adminq_post(struct pdsc *pdsc,
248272
break;
249273

250274
if (!pdsc_is_fw_running(pdsc)) {
251-
u8 fw_status = ioread8(&pdsc->info_regs->fw_status);
252-
253-
dev_dbg(pdsc->dev, "%s: post wait failed - fw not running %#02x:\n",
254-
__func__, fw_status);
275+
if (pdsc->info_regs) {
276+
u8 fw_status =
277+
ioread8(&pdsc->info_regs->fw_status);
278+
279+
dev_dbg(pdsc->dev, "%s: post wait failed - fw not running %#02x:\n",
280+
__func__, fw_status);
281+
} else {
282+
dev_dbg(pdsc->dev, "%s: post wait failed - BARs not setup\n",
283+
__func__);
284+
}
255285
err = -ENXIO;
256286
break;
257287
}
@@ -285,6 +315,8 @@ int pdsc_adminq_post(struct pdsc *pdsc,
285315
queue_work(pdsc->wq, &pdsc->health_work);
286316
}
287317

318+
refcount_dec(&pdsc->adminq_refcnt);
319+
288320
return err;
289321
}
290322
EXPORT_SYMBOL_GPL(pdsc_adminq_post);

0 commit comments

Comments
 (0)