Skip to content

Commit 4164329

Browse files
author
Your Name
committed
Merge branch 'net-next-2024-03-30--03-00' into HEAD
2 parents 8f1ff3c + d0efd00 commit 4164329

File tree

263 files changed

+5579
-2489
lines changed

Some content is hidden

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

263 files changed

+5579
-2489
lines changed

Documentation/conf.py

+2
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ def have_command(cmd):
7575
"__rcu",
7676
"__user",
7777
"__force",
78+
"__counted_by_le",
79+
"__counted_by_be",
7880

7981
# include/linux/compiler_attributes.h:
8082
"__alias",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/net/airoha,en8811h.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Airoha EN8811H PHY
8+
9+
maintainers:
10+
- Eric Woudstra <ericwouds@gmail.com>
11+
12+
description:
13+
The Airoha EN8811H PHY has the ability to reverse polarity
14+
on the lines to and/or from the MAC. It is reversed by
15+
the booleans in the devicetree node of the phy.
16+
17+
allOf:
18+
- $ref: ethernet-phy.yaml#
19+
20+
properties:
21+
compatible:
22+
enum:
23+
- ethernet-phy-id03a2.a411
24+
25+
reg:
26+
maxItems: 1
27+
28+
airoha,pnswap-rx:
29+
type: boolean
30+
description:
31+
Reverse rx polarity of the SERDES. This is the receiving
32+
side of the lines from the MAC towards the EN881H.
33+
34+
airoha,pnswap-tx:
35+
type: boolean
36+
description:
37+
Reverse tx polarity of SERDES. This is the transmitting
38+
side of the lines from EN8811H towards the MAC.
39+
40+
required:
41+
- reg
42+
43+
unevaluatedProperties: false
44+
45+
examples:
46+
- |
47+
mdio {
48+
#address-cells = <1>;
49+
#size-cells = <0>;
50+
51+
ethernet-phy@1 {
52+
compatible = "ethernet-phy-id03a2.a411";
53+
reg = <1>;
54+
airoha,pnswap-rx;
55+
};
56+
};

Documentation/devicetree/bindings/net/bluetooth/qualcomm-bluetooth.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@ properties:
9494

9595
local-bd-address: true
9696

97+
qcom,local-bd-address-broken:
98+
type: boolean
99+
description:
100+
boot firmware is incorrectly passing the address in big-endian order
97101

98102
required:
99103
- compatible

Documentation/devicetree/bindings/net/stm32-dwmac.yaml

+7
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,13 @@ properties:
8282
Should be phandle/offset pair. The phandle to the syscon node which
8383
encompases the glue register, and the offset of the control register
8484

85+
st,ext-phyclk:
86+
description:
87+
set this property in RMII mode when you have PHY without crystal 50MHz and want to
88+
select RCC clock instead of ETH_REF_CLK. OR in RGMII mode when you want to select
89+
RCC clock instead of ETH_CLK125.
90+
type: boolean
91+
8592
st,eth-clk-sel:
8693
description:
8794
set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125.

Documentation/mm/page_frags.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ to be disabled when executing the fragment allocation.
2525
The network stack uses two separate caches per CPU to handle fragment
2626
allocation. The netdev_alloc_cache is used by callers making use of the
2727
netdev_alloc_frag and __netdev_alloc_skb calls. The napi_alloc_cache is
28-
used by callers of the __napi_alloc_frag and __napi_alloc_skb calls. The
28+
used by callers of the __napi_alloc_frag and napi_alloc_skb calls. The
2929
main difference between these two calls is the context in which they may be
3030
called. The "netdev" prefixed functions are usable in any context as these
3131
functions will disable interrupts, while the "napi" prefixed functions are

Documentation/netlink/specs/tc.yaml

+51
Original file line numberDiff line numberDiff line change
@@ -1099,6 +1099,19 @@ definitions:
10991099
-
11001100
name: offmask
11011101
type: s32
1102+
-
1103+
name: tc-u32-mark
1104+
type: struct
1105+
members:
1106+
-
1107+
name: val
1108+
type: u32
1109+
-
1110+
name: mask
1111+
type: u32
1112+
-
1113+
name: success
1114+
type: u32
11021115
-
11031116
name: tc-u32-sel
11041117
type: struct
@@ -1774,6 +1787,44 @@ attribute-sets:
17741787
-
17751788
name: key-ex
17761789
type: binary
1790+
-
1791+
name: tc-act-police-attrs
1792+
attributes:
1793+
-
1794+
name: tbf
1795+
type: binary
1796+
struct: tc-police
1797+
-
1798+
name: rate
1799+
type: binary # TODO
1800+
-
1801+
name: peakrate
1802+
type: binary # TODO
1803+
-
1804+
name: avrate
1805+
type: u32
1806+
-
1807+
name: result
1808+
type: u32
1809+
-
1810+
name: tm
1811+
type: binary
1812+
struct: tcf-t
1813+
-
1814+
name: pad
1815+
type: pad
1816+
-
1817+
name: rate64
1818+
type: u64
1819+
-
1820+
name: peakrate64
1821+
type: u64
1822+
-
1823+
name: pktrate64
1824+
type: u64
1825+
-
1826+
name: pktburst64
1827+
type: u64
17771828
-
17781829
name: tc-act-simple-attrs
17791830
attributes:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
.. SPDX-License-Identifier: GPL-2.0
2+
3+
==========================
4+
Devlink E-Switch Attribute
5+
==========================
6+
7+
Devlink E-Switch supports two modes of operation: legacy and switchdev.
8+
Legacy mode operates based on traditional MAC/VLAN steering rules. Switching
9+
decisions are made based on MAC addresses, VLANs, etc. There is limited ability
10+
to offload switching rules to hardware.
11+
12+
On the other hand, switchdev mode allows for more advanced offloading
13+
capabilities of the E-Switch to hardware. In switchdev mode, more switching
14+
rules and logic can be offloaded to the hardware switch ASIC. It enables
15+
representor netdevices that represent the slow path of virtual functions (VFs)
16+
or scalable-functions (SFs) of the device. See more information about
17+
:ref:`Documentation/networking/switchdev.rst <switchdev>` and
18+
:ref:`Documentation/networking/representors.rst <representors>`.
19+
20+
In addition, the devlink E-Switch also comes with other attributes listed
21+
in the following section.
22+
23+
Attributes Description
24+
======================
25+
26+
The following is a list of E-Switch attributes.
27+
28+
.. list-table:: E-Switch attributes
29+
:widths: 8 5 45
30+
31+
* - Name
32+
- Type
33+
- Description
34+
* - ``mode``
35+
- enum
36+
- The mode of the device. The mode can be one of the following:
37+
38+
* ``legacy`` operates based on traditional MAC/VLAN steering
39+
rules.
40+
* ``switchdev`` allows for more advanced offloading capabilities of
41+
the E-Switch to hardware.
42+
* - ``inline-mode``
43+
- enum
44+
- Some HWs need the VF driver to put part of the packet
45+
headers on the TX descriptor so the e-switch can do proper
46+
matching and steering. Support for both switchdev mode and legacy mode.
47+
48+
* ``none`` none.
49+
* ``link`` L2 mode.
50+
* ``network`` L3 mode.
51+
* ``transport`` L4 mode.
52+
* - ``encap-mode``
53+
- enum
54+
- The encapsulation mode of the device. Support for both switchdev mode
55+
and legacy mode. The mode can be one of the following:
56+
57+
* ``none`` Disable encapsulation support.
58+
* ``basic`` Enable encapsulation support.
59+
60+
Example Usage
61+
=============
62+
63+
.. code:: shell
64+
65+
# enable switchdev mode
66+
$ devlink dev eswitch set pci/0000:08:00.0 mode switchdev
67+
68+
# set inline-mode and encap-mode
69+
$ devlink dev eswitch set pci/0000:08:00.0 inline-mode none encap-mode basic
70+
71+
# display devlink device eswitch attributes
72+
$ devlink dev eswitch show pci/0000:08:00.0
73+
pci/0000:08:00.0: mode switchdev inline-mode none encap-mode basic
74+
75+
# enable encap-mode with legacy mode
76+
$ devlink dev eswitch set pci/0000:08:00.0 mode legacy inline-mode none encap-mode basic

Documentation/networking/devlink/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ general.
6767
devlink-selftests
6868
devlink-trap
6969
devlink-linecard
70+
devlink-eswitch-attr
7071

7172
Driver-specific documentation
7273
-----------------------------

Documentation/networking/representors.rst

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
.. SPDX-License-Identifier: GPL-2.0
2+
.. _representors:
23

34
=============================
45
Network Function Representors

Documentation/translations/zh_CN/mm/page_frags.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ sk_buff->head使用,或者用于skb_shared_info的 “frags” 部分。
2525

2626
网络堆栈在每个CPU使用两个独立的缓存来处理碎片分配。netdev_alloc_cache被使用
2727
netdev_alloc_frag和__netdev_alloc_skb调用的调用者使用。napi_alloc_cache
28-
被调用__napi_alloc_frag和__napi_alloc_skb的调用者使用。这两个调用的主要区别是
28+
被调用__napi_alloc_frag和napi_alloc_skb的调用者使用。这两个调用的主要区别是
2929
它们可能被调用的环境。“netdev” 前缀的函数可以在任何上下文中使用,因为这些函数
3030
将禁用中断,而 ”napi“ 前缀的函数只可以在softirq上下文中使用。
3131

MAINTAINERS

-1
Original file line numberDiff line numberDiff line change
@@ -23661,7 +23661,6 @@ F: drivers/scsi/vmw_pvscsi.c
2366123661
F: drivers/scsi/vmw_pvscsi.h
2366223662

2366323663
VMWARE VIRTUAL PTP CLOCK DRIVER
23664-
M: Jeff Sipek <jsipek@vmware.com>
2366523664
R: Ajay Kaher <akaher@vmware.com>
2366623665
R: Alexey Makhalov <amakhalov@vmware.com>
2366723666
R: VMware PV-Drivers Reviewers <pv-drivers@vmware.com>

arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi

+2
Original file line numberDiff line numberDiff line change
@@ -944,6 +944,8 @@ ap_spi_fp: &spi10 {
944944
vddrf-supply = <&pp1300_l2c>;
945945
vddch0-supply = <&pp3300_l10c>;
946946
max-speed = <3200000>;
947+
948+
qcom,local-bd-address-broken;
947949
};
948950
};
949951

crypto/af_alg.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -847,7 +847,7 @@ void af_alg_wmem_wakeup(struct sock *sk)
847847
wake_up_interruptible_sync_poll(&wq->wait, EPOLLIN |
848848
EPOLLRDNORM |
849849
EPOLLRDBAND);
850-
sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN);
850+
sk_wake_async_rcu(sk, SOCK_WAKE_WAITD, POLL_IN);
851851
rcu_read_unlock();
852852
}
853853
EXPORT_SYMBOL_GPL(af_alg_wmem_wakeup);
@@ -914,7 +914,7 @@ static void af_alg_data_wakeup(struct sock *sk)
914914
wake_up_interruptible_sync_poll(&wq->wait, EPOLLOUT |
915915
EPOLLRDNORM |
916916
EPOLLRDBAND);
917-
sk_wake_async(sk, SOCK_WAKE_SPACE, POLL_OUT);
917+
sk_wake_async_rcu(sk, SOCK_WAKE_SPACE, POLL_OUT);
918918
rcu_read_unlock();
919919
}
920920

drivers/bluetooth/btqca.c

+6-2
Original file line numberDiff line numberDiff line change
@@ -826,11 +826,15 @@ EXPORT_SYMBOL_GPL(qca_uart_setup);
826826

827827
int qca_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr)
828828
{
829+
bdaddr_t bdaddr_swapped;
829830
struct sk_buff *skb;
830831
int err;
831832

832-
skb = __hci_cmd_sync_ev(hdev, EDL_WRITE_BD_ADDR_OPCODE, 6, bdaddr,
833-
HCI_EV_VENDOR, HCI_INIT_TIMEOUT);
833+
baswap(&bdaddr_swapped, bdaddr);
834+
835+
skb = __hci_cmd_sync_ev(hdev, EDL_WRITE_BD_ADDR_OPCODE, 6,
836+
&bdaddr_swapped, HCI_EV_VENDOR,
837+
HCI_INIT_TIMEOUT);
834838
if (IS_ERR(skb)) {
835839
err = PTR_ERR(skb);
836840
bt_dev_err(hdev, "QCA Change address cmd failed (%d)", err);

drivers/bluetooth/hci_qca.c

+9-10
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
*
88
* Copyright (C) 2007 Texas Instruments, Inc.
99
* Copyright (c) 2010, 2012, 2018 The Linux Foundation. All rights reserved.
10-
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
1110
*
1211
* Acknowledgements:
1312
* This file is based on hci_ll.c, which was...
@@ -226,6 +225,7 @@ struct qca_serdev {
226225
struct qca_power *bt_power;
227226
u32 init_speed;
228227
u32 oper_speed;
228+
bool bdaddr_property_broken;
229229
const char *firmware_name;
230230
};
231231

@@ -1843,6 +1843,7 @@ static int qca_setup(struct hci_uart *hu)
18431843
const char *firmware_name = qca_get_firmware_name(hu);
18441844
int ret;
18451845
struct qca_btsoc_version ver;
1846+
struct qca_serdev *qcadev;
18461847
const char *soc_name;
18471848

18481849
ret = qca_check_speeds(hu);
@@ -1904,16 +1905,11 @@ static int qca_setup(struct hci_uart *hu)
19041905
case QCA_WCN6750:
19051906
case QCA_WCN6855:
19061907
case QCA_WCN7850:
1908+
set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
19071909

1908-
/* Set BDA quirk bit for reading BDA value from fwnode property
1909-
* only if that property exist in DT.
1910-
*/
1911-
if (fwnode_property_present(dev_fwnode(hdev->dev.parent), "local-bd-address")) {
1912-
set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
1913-
bt_dev_info(hdev, "setting quirk bit to read BDA from fwnode later");
1914-
} else {
1915-
bt_dev_dbg(hdev, "local-bd-address` is not present in the devicetree so not setting quirk bit for BDA");
1916-
}
1910+
qcadev = serdev_device_get_drvdata(hu->serdev);
1911+
if (qcadev->bdaddr_property_broken)
1912+
set_bit(HCI_QUIRK_BDADDR_PROPERTY_BROKEN, &hdev->quirks);
19171913

19181914
hci_set_aosp_capable(hdev);
19191915

@@ -2295,6 +2291,9 @@ static int qca_serdev_probe(struct serdev_device *serdev)
22952291
if (!qcadev->oper_speed)
22962292
BT_DBG("UART will pick default operating speed");
22972293

2294+
qcadev->bdaddr_property_broken = device_property_read_bool(&serdev->dev,
2295+
"qcom,local-bd-address-broken");
2296+
22982297
if (data)
22992298
qcadev->btsoc_type = data->soc_type;
23002299
else

0 commit comments

Comments
 (0)