* [PATCH AUTOSEL 5.4 02/28] drm/mcde: Enable module autoloading
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 03/28] drm/radeon/r600_cs: Fix possible int overflow in r600_packet3_check() Sasha Levin
` (25 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Liao Chen, Linus Walleij, Dmitry Baryshkov, Sasha Levin,
maarten.lankhorst, mripard, tzimmermann, airlied, simona,
dri-devel
From: Liao Chen <liaochen4@huawei.com>
[ Upstream commit 8a16b5cdae26207ff4c22834559384ad3d7bc970 ]
Add MODULE_DEVICE_TABLE(), so modules could be properly autoloaded based
on the alias from of_device_id table.
Signed-off-by: Liao Chen <liaochen4@huawei.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240902113320.903147-4-liaochen4@huawei.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/gpu/drm/mcde/mcde_drv.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/mcde/mcde_drv.c b/drivers/gpu/drm/mcde/mcde_drv.c
index 82946ffcb6d21..9a767fbb86c95 100644
--- a/drivers/gpu/drm/mcde/mcde_drv.c
+++ b/drivers/gpu/drm/mcde/mcde_drv.c
@@ -533,6 +533,7 @@ static const struct of_device_id mcde_of_match[] = {
},
{},
};
+MODULE_DEVICE_TABLE(of, mcde_of_match);
static struct platform_driver mcde_driver = {
.driver = {
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 03/28] drm/radeon/r600_cs: Fix possible int overflow in r600_packet3_check()
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 02/28] drm/mcde: Enable module autoloading Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 04/28] samples/bpf: Fix a resource leak Sasha Levin
` (24 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Igor Artemiev, Alex Deucher, Sasha Levin, christian.koenig,
Xinhui.Pan, airlied, simona, amd-gfx, dri-devel
From: Igor Artemiev <Igor.A.Artemiev@mcst.ru>
[ Upstream commit a1e2da6a5072f8abe5b0feaa91a5bcd9dc544a04 ]
It is possible, although unlikely, that an integer overflow will occur
when the result of radeon_get_ib_value() is shifted to the left.
Avoid it by casting one of the operands to larger data type (u64).
Found by Linux Verification Center (linuxtesting.org) with static
analysis tool SVACE.
Signed-off-by: Igor Artemiev <Igor.A.Artemiev@mcst.ru>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/gpu/drm/radeon/r600_cs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c
index 19c9e86b2aafe..a85470213b27f 100644
--- a/drivers/gpu/drm/radeon/r600_cs.c
+++ b/drivers/gpu/drm/radeon/r600_cs.c
@@ -2104,7 +2104,7 @@ static int r600_packet3_check(struct radeon_cs_parser *p,
return -EINVAL;
}
- offset = radeon_get_ib_value(p, idx+1) << 8;
+ offset = (u64)radeon_get_ib_value(p, idx+1) << 8;
if (offset != track->vgt_strmout_bo_offset[idx_value]) {
DRM_ERROR("bad STRMOUT_BASE_UPDATE, bo offset does not match: 0x%llx, 0x%x\n",
offset, track->vgt_strmout_bo_offset[idx_value]);
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 04/28] samples/bpf: Fix a resource leak
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 02/28] drm/mcde: Enable module autoloading Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 03/28] drm/radeon/r600_cs: Fix possible int overflow in r600_packet3_check() Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 05/28] net: fec_mpc52xx_phy: Use %pa to format resource_size_t Sasha Levin
` (23 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Zhu Jun, Andrii Nakryiko, Sasha Levin, ast, daniel, bpf
From: Zhu Jun <zhujun2@cmss.chinamobile.com>
[ Upstream commit f3ef53174b23246fe9bc2bbc2542f3a3856fa1e2 ]
The opened file should be closed in show_sockopts(), otherwise resource
leak will occur that this problem was discovered by reading code
Signed-off-by: Zhu Jun <zhujun2@cmss.chinamobile.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20241010014126.2573-1-zhujun2@cmss.chinamobile.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
samples/bpf/test_cgrp2_sock.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/samples/bpf/test_cgrp2_sock.c b/samples/bpf/test_cgrp2_sock.c
index b0811da5a00f3..3f56519a1ccd7 100644
--- a/samples/bpf/test_cgrp2_sock.c
+++ b/samples/bpf/test_cgrp2_sock.c
@@ -174,8 +174,10 @@ static int show_sockopts(int family)
return 1;
}
- if (get_bind_to_device(sd, name, sizeof(name)) < 0)
+ if (get_bind_to_device(sd, name, sizeof(name)) < 0) {
+ close(sd);
return 1;
+ }
mark = get_somark(sd);
prio = get_priority(sd);
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 05/28] net: fec_mpc52xx_phy: Use %pa to format resource_size_t
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (2 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 04/28] samples/bpf: Fix a resource leak Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 06/28] net: ethernet: fs_enet: " Sasha Levin
` (22 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Simon Horman, Geert Uytterhoeven, Daniel Machon, Jakub Kicinski,
Sasha Levin, andrew+netdev, davem, edumazet, pabeni,
u.kleine-koenig, netdev
From: Simon Horman <horms@kernel.org>
[ Upstream commit 020bfdc4ed94be472138c891bde4d14241cf00fd ]
The correct format string for resource_size_t is %pa which
acts on the address of the variable to be formatted [1].
[1] https://elixir.bootlin.com/linux/v6.11.3/source/Documentation/core-api/printk-formats.rst#L229
Introduced by commit 9d9326d3bc0e ("phy: Change mii_bus id field to a string")
Flagged by gcc-14 as:
drivers/net/ethernet/freescale/fec_mpc52xx_phy.c: In function 'mpc52xx_fec_mdio_probe':
drivers/net/ethernet/freescale/fec_mpc52xx_phy.c:97:46: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'resource_size_t' {aka 'long long unsigned int'} [-Wformat=]
97 | snprintf(bus->id, MII_BUS_ID_SIZE, "%x", res.start);
| ~^ ~~~~~~~~~
| | |
| | resource_size_t {aka long long unsigned int}
| unsigned int
| %llx
No functional change intended.
Compile tested only.
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Closes: https://lore.kernel.org/netdev/711d7f6d-b785-7560-f4dc-c6aad2cce99@linux-m68k.org/
Signed-off-by: Simon Horman <horms@kernel.org>
Reviewed-by: Daniel Machon <daniel.machon@microchip.com>
Link: https://patch.msgid.link/20241014-net-pa-fmt-v1-1-dcc9afb8858b@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/freescale/fec_mpc52xx_phy.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c b/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
index b5497e3083020..7e631e2f710fb 100644
--- a/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
+++ b/drivers/net/ethernet/freescale/fec_mpc52xx_phy.c
@@ -92,7 +92,7 @@ static int mpc52xx_fec_mdio_probe(struct platform_device *of)
goto out_free;
}
- snprintf(bus->id, MII_BUS_ID_SIZE, "%x", res.start);
+ snprintf(bus->id, MII_BUS_ID_SIZE, "%pa", &res.start);
bus->priv = priv;
bus->parent = dev;
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 06/28] net: ethernet: fs_enet: Use %pa to format resource_size_t
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (3 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 05/28] net: fec_mpc52xx_phy: Use %pa to format resource_size_t Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 07/28] net/sched: cbs: Fix integer overflow in cbs_set_port_rate() Sasha Levin
` (21 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Simon Horman, Geert Uytterhoeven, Daniel Machon, Jakub Kicinski,
Sasha Levin, pantelis.antoniou, andrew+netdev, davem, edumazet,
pabeni, linuxppc-dev, netdev
From: Simon Horman <horms@kernel.org>
[ Upstream commit 45fe45fada261e1e83fce2a07fa22835aec1cf0a ]
The correct format string for resource_size_t is %pa which
acts on the address of the variable to be formatted [1].
[1] https://elixir.bootlin.com/linux/v6.11.3/source/Documentation/core-api/printk-formats.rst#L229
Introduced by commit 9d9326d3bc0e ("phy: Change mii_bus id field to a string")
Flagged by gcc-14 as:
drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c: In function 'fs_mii_bitbang_init':
drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c:126:46: warning: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'resource_size_t' {aka 'long long unsigned int'} [-Wformat=]
126 | snprintf(bus->id, MII_BUS_ID_SIZE, "%x", res.start);
| ~^ ~~~~~~~~~
| | |
| | resource_size_t {aka long long unsigned int}
| unsigned int
| %llx
No functional change intended.
Compile tested only.
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Closes: https://lore.kernel.org/netdev/711d7f6d-b785-7560-f4dc-c6aad2cce99@linux-m68k.org/
Signed-off-by: Simon Horman <horms@kernel.org>
Reviewed-by: Daniel Machon <daniel.machon@microchip.com>
Link: https://patch.msgid.link/20241014-net-pa-fmt-v1-2-dcc9afb8858b@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c b/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c
index 21de56345503f..f743112730194 100644
--- a/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c
+++ b/drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c
@@ -126,7 +126,7 @@ static int fs_mii_bitbang_init(struct mii_bus *bus, struct device_node *np)
* we get is an int, and the odds of multiple bitbang mdio buses
* is low enough that it's not worth going too crazy.
*/
- snprintf(bus->id, MII_BUS_ID_SIZE, "%x", res.start);
+ snprintf(bus->id, MII_BUS_ID_SIZE, "%pa", &res.start);
data = of_get_property(np, "fsl,mdio-pin", &len);
if (!data || len != 4)
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 07/28] net/sched: cbs: Fix integer overflow in cbs_set_port_rate()
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (4 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 06/28] net: ethernet: fs_enet: " Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 08/28] af_packet: avoid erroring out after sock_init_data() in packet_create() Sasha Levin
` (20 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Elena Salomatkina, Jakub Kicinski, Sasha Levin, vinicius.gomes,
jhs, xiyou.wangcong, jiri, davem, edumazet, pabeni, netdev
From: Elena Salomatkina <esalomatkina@ispras.ru>
[ Upstream commit 397006ba5d918f9b74e734867e8fddbc36dc2282 ]
The subsequent calculation of port_rate = speed * 1000 * BYTES_PER_KBIT,
where the BYTES_PER_KBIT is of type LL, may cause an overflow.
At least when speed = SPEED_20000, the expression to the left of port_rate
will be greater than INT_MAX.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Signed-off-by: Elena Salomatkina <esalomatkina@ispras.ru>
Link: https://patch.msgid.link/20241013124529.1043-1-esalomatkina@ispras.ru
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/sched/sch_cbs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/sched/sch_cbs.c b/net/sched/sch_cbs.c
index 2eaac2ff380fa..db92ae819fd28 100644
--- a/net/sched/sch_cbs.c
+++ b/net/sched/sch_cbs.c
@@ -309,7 +309,7 @@ static void cbs_set_port_rate(struct net_device *dev, struct cbs_sched_data *q)
{
struct ethtool_link_ksettings ecmd;
int speed = SPEED_10;
- int port_rate;
+ s64 port_rate;
int err;
err = __ethtool_get_link_ksettings(dev, &ecmd);
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 08/28] af_packet: avoid erroring out after sock_init_data() in packet_create()
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (5 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 07/28] net/sched: cbs: Fix integer overflow in cbs_set_port_rate() Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 09/28] Bluetooth: L2CAP: do not leave dangling sk pointer on error in l2cap_sock_create() Sasha Levin
` (19 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Ignat Korchagin, Eric Dumazet, Kuniyuki Iwashima,
Willem de Bruijn, Jakub Kicinski, Sasha Levin,
willemdebruijn.kernel, davem, pabeni, netdev
From: Ignat Korchagin <ignat@cloudflare.com>
[ Upstream commit 46f2a11cb82b657fd15bab1c47821b635e03838b ]
After sock_init_data() the allocated sk object is attached to the provided
sock object. On error, packet_create() frees the sk object leaving the
dangling pointer in the sock object on return. Some other code may try
to use this pointer and cause use-after-free.
Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241014153808.51894-2-ignat@cloudflare.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/packet/af_packet.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 6aed6a36ea456..88bc4a21dda45 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -3357,18 +3357,18 @@ static int packet_create(struct net *net, struct socket *sock, int protocol,
if (sock->type == SOCK_PACKET)
sock->ops = &packet_ops_spkt;
+ po = pkt_sk(sk);
+ err = packet_alloc_pending(po);
+ if (err)
+ goto out_sk_free;
+
sock_init_data(sock, sk);
- po = pkt_sk(sk);
init_completion(&po->skb_completion);
sk->sk_family = PF_PACKET;
po->num = proto;
po->xmit = dev_queue_xmit;
- err = packet_alloc_pending(po);
- if (err)
- goto out2;
-
packet_cached_dev_reset(po);
sk->sk_destruct = packet_sock_destruct;
@@ -3403,7 +3403,7 @@ static int packet_create(struct net *net, struct socket *sock, int protocol,
preempt_enable();
return 0;
-out2:
+out_sk_free:
sk_free(sk);
out:
return err;
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 09/28] Bluetooth: L2CAP: do not leave dangling sk pointer on error in l2cap_sock_create()
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (6 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 08/28] af_packet: avoid erroring out after sock_init_data() in packet_create() Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 10/28] net: af_can: do not leave a dangling sk pointer in can_create() Sasha Levin
` (18 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Ignat Korchagin, Kuniyuki Iwashima, Eric Dumazet, Jakub Kicinski,
Sasha Levin, marcel, johan.hedberg, luiz.dentz, linux-bluetooth
From: Ignat Korchagin <ignat@cloudflare.com>
[ Upstream commit 7c4f78cdb8e7501e9f92d291a7d956591bf73be9 ]
bt_sock_alloc() allocates the sk object and attaches it to the provided
sock object. On error l2cap_sock_alloc() frees the sk object, but the
dangling pointer is still attached to the sock object, which may create
use-after-free in other code.
Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241014153808.51894-3-ignat@cloudflare.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/bluetooth/l2cap_sock.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index 9eea2af9a8e1c..6ec6f6a06521d 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -1678,6 +1678,7 @@ static struct sock *l2cap_sock_alloc(struct net *net, struct socket *sock,
chan = l2cap_chan_create();
if (!chan) {
sk_free(sk);
+ sock->sk = NULL;
return NULL;
}
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 10/28] net: af_can: do not leave a dangling sk pointer in can_create()
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (7 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 09/28] Bluetooth: L2CAP: do not leave dangling sk pointer on error in l2cap_sock_create() Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 11/28] net: ieee802154: do not leave a dangling sk pointer in ieee802154_create() Sasha Levin
` (17 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Ignat Korchagin, Vincent Mailhol, Kuniyuki Iwashima,
Marc Kleine-Budde, Jakub Kicinski, Sasha Levin, socketcan,
linux-can
From: Ignat Korchagin <ignat@cloudflare.com>
[ Upstream commit 811a7ca7320c062e15d0f5b171fe6ad8592d1434 ]
On error can_create() frees the allocated sk object, but sock_init_data()
has already attached it to the provided sock object. This will leave a
dangling sk pointer in the sock object and may cause use-after-free later.
Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Marc Kleine-Budde <mkl@pengutronix.de>
Link: https://patch.msgid.link/20241014153808.51894-5-ignat@cloudflare.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/can/af_can.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/can/af_can.c b/net/can/af_can.c
index b396c23561d63..bc06016a4fe90 100644
--- a/net/can/af_can.c
+++ b/net/can/af_can.c
@@ -171,6 +171,7 @@ static int can_create(struct net *net, struct socket *sock, int protocol,
/* release sk on errors */
sock_orphan(sk);
sock_put(sk);
+ sock->sk = NULL;
}
errout:
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 11/28] net: ieee802154: do not leave a dangling sk pointer in ieee802154_create()
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (8 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 10/28] net: af_can: do not leave a dangling sk pointer in can_create() Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 12/28] net: inet: do not leave a dangling sk pointer in inet_create() Sasha Levin
` (16 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Ignat Korchagin, Miquel Raynal, Kuniyuki Iwashima, Eric Dumazet,
Jakub Kicinski, Sasha Levin, alex.aring, stefan, davem, pabeni,
linux-wpan, netdev
From: Ignat Korchagin <ignat@cloudflare.com>
[ Upstream commit b4fcd63f6ef79c73cafae8cf4a114def5fc3d80d ]
sock_init_data() attaches the allocated sk object to the provided sock
object. If ieee802154_create() fails later, the allocated sk object is
freed, but the dangling pointer remains in the provided sock object, which
may allow use-after-free.
Clear the sk pointer in the sock object on error.
Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241014153808.51894-6-ignat@cloudflare.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/ieee802154/socket.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/net/ieee802154/socket.c b/net/ieee802154/socket.c
index ce5f25c89dfaf..b5f8aaa428844 100644
--- a/net/ieee802154/socket.c
+++ b/net/ieee802154/socket.c
@@ -1055,19 +1055,21 @@ static int ieee802154_create(struct net *net, struct socket *sock,
if (sk->sk_prot->hash) {
rc = sk->sk_prot->hash(sk);
- if (rc) {
- sk_common_release(sk);
- goto out;
- }
+ if (rc)
+ goto out_sk_release;
}
if (sk->sk_prot->init) {
rc = sk->sk_prot->init(sk);
if (rc)
- sk_common_release(sk);
+ goto out_sk_release;
}
out:
return rc;
+out_sk_release:
+ sk_common_release(sk);
+ sock->sk = NULL;
+ goto out;
}
static const struct net_proto_family ieee802154_family_ops = {
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 12/28] net: inet: do not leave a dangling sk pointer in inet_create()
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (9 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 11/28] net: ieee802154: do not leave a dangling sk pointer in ieee802154_create() Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 13/28] net: inet6: do not leave a dangling sk pointer in inet6_create() Sasha Levin
` (15 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Ignat Korchagin, Kuniyuki Iwashima, Eric Dumazet, Jakub Kicinski,
Sasha Levin, davem, dsahern, pabeni, netdev
From: Ignat Korchagin <ignat@cloudflare.com>
[ Upstream commit 9365fa510c6f82e3aa550a09d0c5c6b44dbc78ff ]
sock_init_data() attaches the allocated sk object to the provided sock
object. If inet_create() fails later, the sk object is freed, but the
sock object retains the dangling pointer, which may create use-after-free
later.
Clear the sk pointer in the sock object on error.
Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241014153808.51894-7-ignat@cloudflare.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/ipv4/af_inet.c | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index be2b786cee2bd..486ab202303ff 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -369,32 +369,30 @@ static int inet_create(struct net *net, struct socket *sock, int protocol,
inet->inet_sport = htons(inet->inet_num);
/* Add to protocol hash chains. */
err = sk->sk_prot->hash(sk);
- if (err) {
- sk_common_release(sk);
- goto out;
- }
+ if (err)
+ goto out_sk_release;
}
if (sk->sk_prot->init) {
err = sk->sk_prot->init(sk);
- if (err) {
- sk_common_release(sk);
- goto out;
- }
+ if (err)
+ goto out_sk_release;
}
if (!kern) {
err = BPF_CGROUP_RUN_PROG_INET_SOCK(sk);
- if (err) {
- sk_common_release(sk);
- goto out;
- }
+ if (err)
+ goto out_sk_release;
}
out:
return err;
out_rcu_unlock:
rcu_read_unlock();
goto out;
+out_sk_release:
+ sk_common_release(sk);
+ sock->sk = NULL;
+ goto out;
}
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 13/28] net: inet6: do not leave a dangling sk pointer in inet6_create()
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (10 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 12/28] net: inet: do not leave a dangling sk pointer in inet_create() Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 14/28] wifi: ath5k: add PCI ID for SX76X Sasha Levin
` (14 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Ignat Korchagin, Kuniyuki Iwashima, Eric Dumazet, Jakub Kicinski,
Sasha Levin, davem, dsahern, pabeni, netdev
From: Ignat Korchagin <ignat@cloudflare.com>
[ Upstream commit 9df99c395d0f55fb444ef39f4d6f194ca437d884 ]
sock_init_data() attaches the allocated sk pointer to the provided sock
object. If inet6_create() fails later, the sk object is released, but the
sock object retains the dangling sk pointer, which may cause use-after-free
later.
Clear the sock sk pointer on error.
Signed-off-by: Ignat Korchagin <ignat@cloudflare.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241014153808.51894-8-ignat@cloudflare.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/ipv6/af_inet6.c | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 7ee0bfea9de1d..845d77b0a7f03 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -251,31 +251,29 @@ static int inet6_create(struct net *net, struct socket *sock, int protocol,
*/
inet->inet_sport = htons(inet->inet_num);
err = sk->sk_prot->hash(sk);
- if (err) {
- sk_common_release(sk);
- goto out;
- }
+ if (err)
+ goto out_sk_release;
}
if (sk->sk_prot->init) {
err = sk->sk_prot->init(sk);
- if (err) {
- sk_common_release(sk);
- goto out;
- }
+ if (err)
+ goto out_sk_release;
}
if (!kern) {
err = BPF_CGROUP_RUN_PROG_INET_SOCK(sk);
- if (err) {
- sk_common_release(sk);
- goto out;
- }
+ if (err)
+ goto out_sk_release;
}
out:
return err;
out_rcu_unlock:
rcu_read_unlock();
goto out;
+out_sk_release:
+ sk_common_release(sk);
+ sock->sk = NULL;
+ goto out;
}
static int __inet6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len,
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 14/28] wifi: ath5k: add PCI ID for SX76X
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (11 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 13/28] net: inet6: do not leave a dangling sk pointer in inet6_create() Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 15/28] wifi: ath5k: add PCI ID for Arcadyan devices Sasha Levin
` (13 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Rosen Penev, Jeff Johnson, Sasha Levin, jirislaby, mickflemm,
mcgrof, kvalo, linux-wireless
From: Rosen Penev <rosenp@gmail.com>
[ Upstream commit da0474012402d4729b98799d71a54c35dc5c5de3 ]
This is in two devices made by Gigaset, SX762 and SX763.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://patch.msgid.link/20240930180716.139894-2-rosenp@gmail.com
Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/wireless/ath/ath5k/pci.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/ath/ath5k/pci.c b/drivers/net/wireless/ath/ath5k/pci.c
index d5ee32ce9eb3d..b7f62c472b879 100644
--- a/drivers/net/wireless/ath/ath5k/pci.c
+++ b/drivers/net/wireless/ath/ath5k/pci.c
@@ -46,6 +46,7 @@ static const struct pci_device_id ath5k_pci_id_table[] = {
{ PCI_VDEVICE(ATHEROS, 0x001b) }, /* 5413 Eagle */
{ PCI_VDEVICE(ATHEROS, 0x001c) }, /* PCI-E cards */
{ PCI_VDEVICE(ATHEROS, 0x001d) }, /* 2417 Nala */
+ { PCI_VDEVICE(ATHEROS, 0xff16) }, /* Gigaset SX76[23] AR241[34]A */
{ PCI_VDEVICE(ATHEROS, 0xff1b) }, /* AR5BXB63 */
{ 0 }
};
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 15/28] wifi: ath5k: add PCI ID for Arcadyan devices
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (12 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 14/28] wifi: ath5k: add PCI ID for SX76X Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 16/28] jfs: array-index-out-of-bounds fix in dtReadFirst Sasha Levin
` (12 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Rosen Penev, Jeff Johnson, Sasha Levin, jirislaby, mickflemm,
mcgrof, kvalo, linux-wireless
From: Rosen Penev <rosenp@gmail.com>
[ Upstream commit f3ced9bb90b0a287a1fa6184d16b0f104a78fa90 ]
Arcadyan made routers with this PCI ID containing an AR2417.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://patch.msgid.link/20240930180716.139894-3-rosenp@gmail.com
Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/wireless/ath/ath5k/pci.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/ath/ath5k/pci.c b/drivers/net/wireless/ath/ath5k/pci.c
index b7f62c472b879..e58da21b28ef5 100644
--- a/drivers/net/wireless/ath/ath5k/pci.c
+++ b/drivers/net/wireless/ath/ath5k/pci.c
@@ -47,6 +47,7 @@ static const struct pci_device_id ath5k_pci_id_table[] = {
{ PCI_VDEVICE(ATHEROS, 0x001c) }, /* PCI-E cards */
{ PCI_VDEVICE(ATHEROS, 0x001d) }, /* 2417 Nala */
{ PCI_VDEVICE(ATHEROS, 0xff16) }, /* Gigaset SX76[23] AR241[34]A */
+ { PCI_VDEVICE(ATHEROS, 0xff1a) }, /* Arcadyan ARV45XX AR2417 */
{ PCI_VDEVICE(ATHEROS, 0xff1b) }, /* AR5BXB63 */
{ 0 }
};
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 16/28] jfs: array-index-out-of-bounds fix in dtReadFirst
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (13 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 15/28] wifi: ath5k: add PCI ID for Arcadyan devices Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 17/28] jfs: fix shift-out-of-bounds in dbSplit Sasha Levin
` (11 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Ghanshyam Agrawal, syzbot+65fa06e29859e41a83f3, Dave Kleikamp,
Sasha Levin, shaggy, eadavis, jfs-discussion
From: Ghanshyam Agrawal <ghanshyam1898@gmail.com>
[ Upstream commit ca84a2c9be482836b86d780244f0357e5a778c46 ]
The value of stbl can be sometimes out of bounds due
to a bad filesystem. Added a check with appopriate return
of error code in that case.
Reported-by: syzbot+65fa06e29859e41a83f3@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=65fa06e29859e41a83f3
Signed-off-by: Ghanshyam Agrawal <ghanshyam1898@gmail.com>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/jfs/jfs_dtree.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/fs/jfs/jfs_dtree.c b/fs/jfs/jfs_dtree.c
index 077a87e530205..bd198b04c388f 100644
--- a/fs/jfs/jfs_dtree.c
+++ b/fs/jfs/jfs_dtree.c
@@ -3382,6 +3382,13 @@ static int dtReadFirst(struct inode *ip, struct btstack * btstack)
/* get the leftmost entry */
stbl = DT_GETSTBL(p);
+
+ if (stbl[0] < 0 || stbl[0] > 127) {
+ DT_PUTPAGE(mp);
+ jfs_error(ip->i_sb, "stbl[0] out of bound\n");
+ return -EIO;
+ }
+
xd = (pxd_t *) & p->slot[stbl[0]];
/* get the child page block address */
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 17/28] jfs: fix shift-out-of-bounds in dbSplit
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (14 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 16/28] jfs: array-index-out-of-bounds fix in dtReadFirst Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 18/28] jfs: fix array-index-out-of-bounds in jfs_readdir Sasha Levin
` (10 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Ghanshyam Agrawal, syzbot+b5ca8a249162c4b9a7d0, Dave Kleikamp,
Sasha Levin, shaggy, aha310510, niharchaithanya, eadavis, rbrasga,
peili.dev, jfs-discussion
From: Ghanshyam Agrawal <ghanshyam1898@gmail.com>
[ Upstream commit a5f5e4698f8abbb25fe4959814093fb5bfa1aa9d ]
When dmt_budmin is less than zero, it causes errors
in the later stages. Added a check to return an error beforehand
in dbAllocCtl itself.
Reported-by: syzbot+b5ca8a249162c4b9a7d0@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=b5ca8a249162c4b9a7d0
Signed-off-by: Ghanshyam Agrawal <ghanshyam1898@gmail.com>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/jfs/jfs_dmap.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c
index 00258a551334a..d83ac5f5888a4 100644
--- a/fs/jfs/jfs_dmap.c
+++ b/fs/jfs/jfs_dmap.c
@@ -1886,6 +1886,9 @@ dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results)
return -EIO;
dp = (struct dmap *) mp->data;
+ if (dp->tree.budmin < 0)
+ return -EIO;
+
/* try to allocate the blocks.
*/
rc = dbAllocDmapLev(bmp, dp, (int) nblocks, l2nb, results);
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 18/28] jfs: fix array-index-out-of-bounds in jfs_readdir
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (15 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 17/28] jfs: fix shift-out-of-bounds in dbSplit Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 19/28] jfs: add a check to prevent array-index-out-of-bounds in dbAdjTree Sasha Levin
` (9 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Ghanshyam Agrawal, syzbot+0315f8fe99120601ba88, Dave Kleikamp,
Sasha Levin, shaggy, eadavis, jfs-discussion
From: Ghanshyam Agrawal <ghanshyam1898@gmail.com>
[ Upstream commit 839f102efb168f02dfdd46717b7c6dddb26b015e ]
The stbl might contain some invalid values. Added a check to
return error code in that case.
Reported-by: syzbot+0315f8fe99120601ba88@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=0315f8fe99120601ba88
Signed-off-by: Ghanshyam Agrawal <ghanshyam1898@gmail.com>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/jfs/jfs_dtree.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/fs/jfs/jfs_dtree.c b/fs/jfs/jfs_dtree.c
index bd198b04c388f..4692c50d615f0 100644
--- a/fs/jfs/jfs_dtree.c
+++ b/fs/jfs/jfs_dtree.c
@@ -3187,6 +3187,14 @@ int jfs_readdir(struct file *file, struct dir_context *ctx)
stbl = DT_GETSTBL(p);
for (i = index; i < p->header.nextindex; i++) {
+ if (stbl[i] < 0 || stbl[i] > 127) {
+ jfs_err("JFS: Invalid stbl[%d] = %d for inode %ld, block = %lld",
+ i, stbl[i], (long)ip->i_ino, (long long)bn);
+ free_page(dirent_buf);
+ DT_PUTPAGE(mp);
+ return -EIO;
+ }
+
d = (struct ldtentry *) & p->slot[stbl[i]];
if (((long) jfs_dirent + d->namlen + 1) >
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 19/28] jfs: add a check to prevent array-index-out-of-bounds in dbAdjTree
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (16 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 18/28] jfs: fix array-index-out-of-bounds in jfs_readdir Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 20/28] net: enetc: add i.MX95 EMDIO support Sasha Levin
` (8 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Nihar Chaithanya, syzbot+412dea214d8baa3f7483, Dave Kleikamp,
Sasha Levin, shaggy, eadavis, aha310510, ghanshyam1898, rbrasga,
jfs-discussion
From: Nihar Chaithanya <niharchaithanya@gmail.com>
[ Upstream commit a174706ba4dad895c40b1d2277bade16dfacdcd9 ]
When the value of lp is 0 at the beginning of the for loop, it will
become negative in the next assignment and we should bail out.
Reported-by: syzbot+412dea214d8baa3f7483@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=412dea214d8baa3f7483
Tested-by: syzbot+412dea214d8baa3f7483@syzkaller.appspotmail.com
Signed-off-by: Nihar Chaithanya <niharchaithanya@gmail.com>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/jfs/jfs_dmap.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c
index d83ac5f5888a4..812945c8e3840 100644
--- a/fs/jfs/jfs_dmap.c
+++ b/fs/jfs/jfs_dmap.c
@@ -2953,6 +2953,9 @@ static void dbAdjTree(dmtree_t *tp, int leafno, int newval, bool is_ctl)
/* bubble the new value up the tree as required.
*/
for (k = 0; k < le32_to_cpu(tp->dmt_height); k++) {
+ if (lp == 0)
+ break;
+
/* get the index of the first leaf of the 4 leaf
* group containing the specified leaf (leafno).
*/
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 20/28] net: enetc: add i.MX95 EMDIO support
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (17 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 19/28] jfs: add a check to prevent array-index-out-of-bounds in dbAdjTree Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-25 1:54 ` Wei Fang
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 21/28] drm/amdgpu: set the right AMDGPU sg segment limitation Sasha Levin
` (7 subsequent siblings)
26 siblings, 1 reply; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Wei Fang, David S . Miller, Sasha Levin, claudiu.manoil,
vladimir.oltean, xiaoning.wang, andrew+netdev, edumazet, kuba,
pabeni, imx, netdev
From: Wei Fang <wei.fang@nxp.com>
[ Upstream commit a52201fb9caa9b33b4d881725d1ec733438b07f2 ]
The verdor ID and device ID of i.MX95 EMDIO are different from LS1028A
EMDIO, so add new vendor ID and device ID to pci_device_id table to
support i.MX95 EMDIO.
Signed-off-by: Wei Fang <wei.fang@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c b/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c
index fbd41ce01f068..aeffc3bd00afe 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c
@@ -3,6 +3,8 @@
#include <linux/of_mdio.h>
#include "enetc_mdio.h"
+#define NETC_EMDIO_VEN_ID 0x1131
+#define NETC_EMDIO_DEV_ID 0xee00
#define ENETC_MDIO_DEV_ID 0xee01
#define ENETC_MDIO_DEV_NAME "FSL PCIe IE Central MDIO"
#define ENETC_MDIO_BUS_NAME ENETC_MDIO_DEV_NAME " Bus"
@@ -85,6 +87,7 @@ static void enetc_pci_mdio_remove(struct pci_dev *pdev)
static const struct pci_device_id enetc_pci_mdio_id_table[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_FREESCALE, ENETC_MDIO_DEV_ID) },
+ { PCI_DEVICE(NETC_EMDIO_VEN_ID, NETC_EMDIO_DEV_ID) },
{ 0, } /* End of table. */
};
MODULE_DEVICE_TABLE(pci, enetc_pci_mdio_id_table);
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* RE: [PATCH AUTOSEL 5.4 20/28] net: enetc: add i.MX95 EMDIO support
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 20/28] net: enetc: add i.MX95 EMDIO support Sasha Levin
@ 2024-11-25 1:54 ` Wei Fang
2024-12-10 16:14 ` Sasha Levin
0 siblings, 1 reply; 30+ messages in thread
From: Wei Fang @ 2024-11-25 1:54 UTC (permalink / raw)
To: Sasha Levin, linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: David S . Miller, Claudiu Manoil, Vladimir Oltean, Clark Wang,
andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, imx@lists.linux.dev, netdev@vger.kernel.org
> From: Wei Fang <wei.fang@nxp.com>
>
> [ Upstream commit a52201fb9caa9b33b4d881725d1ec733438b07f2 ]
>
> The verdor ID and device ID of i.MX95 EMDIO are different from LS1028A
> EMDIO, so add new vendor ID and device ID to pci_device_id table to support
> i.MX95 EMDIO.
>
> Signed-off-by: Wei Fang <wei.fang@nxp.com>
> Signed-off-by: David S. Miller <davem@davemloft.net>
> Signed-off-by: Sasha Levin <sashal@kernel.org>
> ---
> drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c
> b/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c
> index fbd41ce01f068..aeffc3bd00afe 100644
> --- a/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c
> +++ b/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c
> @@ -3,6 +3,8 @@
> #include <linux/of_mdio.h>
> #include "enetc_mdio.h"
>
> +#define NETC_EMDIO_VEN_ID 0x1131
> +#define NETC_EMDIO_DEV_ID 0xee00
> #define ENETC_MDIO_DEV_ID 0xee01
> #define ENETC_MDIO_DEV_NAME "FSL PCIe IE Central MDIO"
> #define ENETC_MDIO_BUS_NAME ENETC_MDIO_DEV_NAME " Bus"
> @@ -85,6 +87,7 @@ static void enetc_pci_mdio_remove(struct pci_dev *pdev)
>
> static const struct pci_device_id enetc_pci_mdio_id_table[] = {
> { PCI_DEVICE(PCI_VENDOR_ID_FREESCALE, ENETC_MDIO_DEV_ID) },
> + { PCI_DEVICE(NETC_EMDIO_VEN_ID, NETC_EMDIO_DEV_ID) },
> { 0, } /* End of table. */
> };
> MODULE_DEVICE_TABLE(pci, enetc_pci_mdio_id_table);
> --
> 2.43.0
Hi Sasha,
This patch does not need to be backported, because this is a new
feature which adds the EMDIO support for i.MX95 NETC. And i.MX95
NETC is supported in the latest kernel (should be 6.13, Linus tree).
^ permalink raw reply [flat|nested] 30+ messages in thread* Re: [PATCH AUTOSEL 5.4 20/28] net: enetc: add i.MX95 EMDIO support
2024-11-25 1:54 ` Wei Fang
@ 2024-12-10 16:14 ` Sasha Levin
0 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-12-10 16:14 UTC (permalink / raw)
To: Wei Fang
Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
David S . Miller, Claudiu Manoil, Vladimir Oltean, Clark Wang,
andrew+netdev@lunn.ch, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, imx@lists.linux.dev, netdev@vger.kernel.org
On Mon, Nov 25, 2024 at 01:54:14AM +0000, Wei Fang wrote:
>> From: Wei Fang <wei.fang@nxp.com>
>>
>> [ Upstream commit a52201fb9caa9b33b4d881725d1ec733438b07f2 ]
>>
>> The verdor ID and device ID of i.MX95 EMDIO are different from LS1028A
>> EMDIO, so add new vendor ID and device ID to pci_device_id table to support
>> i.MX95 EMDIO.
>>
>> Signed-off-by: Wei Fang <wei.fang@nxp.com>
>> Signed-off-by: David S. Miller <davem@davemloft.net>
>> Signed-off-by: Sasha Levin <sashal@kernel.org>
>> ---
>> drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c
>> b/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c
>> index fbd41ce01f068..aeffc3bd00afe 100644
>> --- a/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c
>> +++ b/drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.c
>> @@ -3,6 +3,8 @@
>> #include <linux/of_mdio.h>
>> #include "enetc_mdio.h"
>>
>> +#define NETC_EMDIO_VEN_ID 0x1131
>> +#define NETC_EMDIO_DEV_ID 0xee00
>> #define ENETC_MDIO_DEV_ID 0xee01
>> #define ENETC_MDIO_DEV_NAME "FSL PCIe IE Central MDIO"
>> #define ENETC_MDIO_BUS_NAME ENETC_MDIO_DEV_NAME " Bus"
>> @@ -85,6 +87,7 @@ static void enetc_pci_mdio_remove(struct pci_dev *pdev)
>>
>> static const struct pci_device_id enetc_pci_mdio_id_table[] = {
>> { PCI_DEVICE(PCI_VENDOR_ID_FREESCALE, ENETC_MDIO_DEV_ID) },
>> + { PCI_DEVICE(NETC_EMDIO_VEN_ID, NETC_EMDIO_DEV_ID) },
>> { 0, } /* End of table. */
>> };
>> MODULE_DEVICE_TABLE(pci, enetc_pci_mdio_id_table);
>> --
>> 2.43.0
>
>Hi Sasha,
>
>This patch does not need to be backported, because this is a new
>feature which adds the EMDIO support for i.MX95 NETC. And i.MX95
>NETC is supported in the latest kernel (should be 6.13, Linus tree).
I'll drop it, thanks!
--
Thanks,
Sasha
^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH AUTOSEL 5.4 21/28] drm/amdgpu: set the right AMDGPU sg segment limitation
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (18 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 20/28] net: enetc: add i.MX95 EMDIO support Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 22/28] wifi: ipw2x00: libipw_rx_any(): fix bad alignment Sasha Levin
` (6 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Prike Liang, Christian König, Alex Deucher, Sasha Levin,
Xinhui.Pan, airlied, simona, Frank.Min, felix.kuehling,
Hawking.Zhang, shashank.sharma, Philip.Yang,
Arunpravin.PaneerSelvam, Amaranath.Somalapuram, amd-gfx,
dri-devel
From: Prike Liang <Prike.Liang@amd.com>
[ Upstream commit e2e97435783979124ba92d6870415c57ecfef6a5 ]
The driver needs to set the correct max_segment_size;
otherwise debug_dma_map_sg() will complain about the
over-mapping of the AMDGPU sg length as following:
WARNING: CPU: 6 PID: 1964 at kernel/dma/debug.c:1178 debug_dma_map_sg+0x2dc/0x370
[ 364.049444] Modules linked in: veth amdgpu(OE) amdxcp drm_exec gpu_sched drm_buddy drm_ttm_helper ttm(OE) drm_suballoc_helper drm_display_helper drm_kms_helper i2c_algo_bit rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs lockd grace netfs xt_conntrack xt_MASQUERADE nf_conntrack_netlink xfrm_user xfrm_algo iptable_nat xt_addrtype iptable_filter br_netfilter nvme_fabrics overlay nfnetlink_cttimeout nfnetlink openvswitch nsh nf_conncount nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c bridge stp llc amd_atl intel_rapl_msr intel_rapl_common sunrpc sch_fq_codel snd_hda_codec_realtek snd_hda_codec_generic snd_hda_scodec_component snd_hda_codec_hdmi snd_hda_intel snd_intel_dspcfg edac_mce_amd binfmt_misc snd_hda_codec snd_pci_acp6x snd_hda_core snd_acp_config snd_hwdep snd_soc_acpi kvm_amd snd_pcm kvm snd_seq_midi snd_seq_midi_event crct10dif_pclmul ghash_clmulni_intel sha512_ssse3 snd_rawmidi sha256_ssse3 sha1_ssse3 aesni_intel snd_seq nls_iso8859_1 crypto_simd snd_seq_device cryptd snd_timer rapl input_leds snd
[ 364.049532] ipmi_devintf wmi_bmof ccp serio_raw k10temp sp5100_tco soundcore ipmi_msghandler cm32181 industrialio mac_hid msr parport_pc ppdev lp parport drm efi_pstore ip_tables x_tables pci_stub crc32_pclmul nvme ahci libahci i2c_piix4 r8169 nvme_core i2c_designware_pci realtek i2c_ccgx_ucsi video wmi hid_generic cdc_ether usbnet usbhid hid r8152 mii
[ 364.049576] CPU: 6 PID: 1964 Comm: rocminfo Tainted: G OE 6.10.0-custom #492
[ 364.049579] Hardware name: AMD Majolica-RN/Majolica-RN, BIOS RMJ1009A 06/13/2021
[ 364.049582] RIP: 0010:debug_dma_map_sg+0x2dc/0x370
[ 364.049585] Code: 89 4d b8 e8 36 b1 86 00 8b 4d b8 48 8b 55 b0 44 8b 45 a8 4c 8b 4d a0 48 89 c6 48 c7 c7 00 4b 74 bc 4c 89 4d b8 e8 b4 73 f3 ff <0f> 0b 4c 8b 4d b8 8b 15 c8 2c b8 01 85 d2 0f 85 ee fd ff ff 8b 05
[ 364.049588] RSP: 0018:ffff9ca600b57ac0 EFLAGS: 00010286
[ 364.049590] RAX: 0000000000000000 RBX: ffff88b7c132b0c8 RCX: 0000000000000027
[ 364.049592] RDX: ffff88bb0f521688 RSI: 0000000000000001 RDI: ffff88bb0f521680
[ 364.049594] RBP: ffff9ca600b57b20 R08: 000000000000006f R09: ffff9ca600b57930
[ 364.049596] R10: ffff9ca600b57928 R11: ffffffffbcb46328 R12: 0000000000000000
[ 364.049597] R13: 0000000000000001 R14: ffff88b7c19c0700 R15: ffff88b7c9059800
[ 364.049599] FS: 00007fb2d3516e80(0000) GS:ffff88bb0f500000(0000) knlGS:0000000000000000
[ 364.049601] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 364.049603] CR2: 000055610bd03598 CR3: 00000001049f6000 CR4: 0000000000350ef0
[ 364.049605] Call Trace:
[ 364.049607] <TASK>
[ 364.049609] ? show_regs+0x6d/0x80
[ 364.049614] ? __warn+0x8c/0x140
[ 364.049618] ? debug_dma_map_sg+0x2dc/0x370
[ 364.049621] ? report_bug+0x193/0x1a0
[ 364.049627] ? handle_bug+0x46/0x80
[ 364.049631] ? exc_invalid_op+0x1d/0x80
[ 364.049635] ? asm_exc_invalid_op+0x1f/0x30
[ 364.049642] ? debug_dma_map_sg+0x2dc/0x370
[ 364.049647] __dma_map_sg_attrs+0x90/0xe0
[ 364.049651] dma_map_sgtable+0x25/0x40
[ 364.049654] amdgpu_bo_move+0x59a/0x850 [amdgpu]
[ 364.049935] ? srso_return_thunk+0x5/0x5f
[ 364.049939] ? amdgpu_ttm_tt_populate+0x5d/0xc0 [amdgpu]
[ 364.050095] ttm_bo_handle_move_mem+0xc3/0x180 [ttm]
[ 364.050103] ttm_bo_validate+0xc1/0x160 [ttm]
[ 364.050108] ? amdgpu_ttm_tt_get_user_pages+0xe5/0x1b0 [amdgpu]
[ 364.050263] amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu+0xa12/0xc90 [amdgpu]
[ 364.050473] kfd_ioctl_alloc_memory_of_gpu+0x16b/0x3b0 [amdgpu]
[ 364.050680] kfd_ioctl+0x3c2/0x530 [amdgpu]
[ 364.050866] ? __pfx_kfd_ioctl_alloc_memory_of_gpu+0x10/0x10 [amdgpu]
[ 364.051054] ? srso_return_thunk+0x5/0x5f
[ 364.051057] ? tomoyo_file_ioctl+0x20/0x30
[ 364.051063] __x64_sys_ioctl+0x9c/0xd0
[ 364.051068] x64_sys_call+0x1219/0x20d0
[ 364.051073] do_syscall_64+0x51/0x120
[ 364.051077] entry_SYSCALL_64_after_hwframe+0x76/0x7e
[ 364.051081] RIP: 0033:0x7fb2d2f1a94f
Signed-off-by: Prike Liang <Prike.Liang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 870dd78d5a21a..30e3cc9c25d03 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1678,6 +1678,7 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
mutex_init(&adev->mman.gtt_window_lock);
+ dma_set_max_seg_size(adev->dev, UINT_MAX);
/* No others user of address space so set it to 0 */
r = ttm_bo_device_init(&adev->mman.bdev,
&amdgpu_bo_driver,
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 22/28] wifi: ipw2x00: libipw_rx_any(): fix bad alignment
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (19 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 21/28] drm/amdgpu: set the right AMDGPU sg segment limitation Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 23/28] wifi: brcmfmac: Fix oops due to NULL pointer dereference in brcmf_sdiod_sglist_rw() Sasha Levin
` (5 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Jiapeng Chong, Abaci Robot, Kalle Valo, Sasha Levin,
stas.yakovlev, linux-wireless
From: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
[ Upstream commit 4fa4f049dc0d9741b16c96bcbf0108c85368a2b9 ]
This patch fixes incorrect code alignment.
./drivers/net/wireless/intel/ipw2x00/libipw_rx.c:871:2-3: code aligned with following code on line 882.
./drivers/net/wireless/intel/ipw2x00/libipw_rx.c:886:2-3: code aligned with following code on line 900.
Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=11381
Signed-off-by: Jiapeng Chong <jiapeng.chong@linux.alibaba.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20241101060725.54640-1-jiapeng.chong@linux.alibaba.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/wireless/intel/ipw2x00/libipw_rx.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_rx.c b/drivers/net/wireless/intel/ipw2x00/libipw_rx.c
index 34cfd81628559..36831f4a2ea5e 100644
--- a/drivers/net/wireless/intel/ipw2x00/libipw_rx.c
+++ b/drivers/net/wireless/intel/ipw2x00/libipw_rx.c
@@ -870,8 +870,8 @@ void libipw_rx_any(struct libipw_device *ieee,
switch (ieee->iw_mode) {
case IW_MODE_ADHOC:
/* our BSS and not from/to DS */
- if (ether_addr_equal(hdr->addr3, ieee->bssid))
- if ((fc & (IEEE80211_FCTL_TODS+IEEE80211_FCTL_FROMDS)) == 0) {
+ if (ether_addr_equal(hdr->addr3, ieee->bssid) &&
+ ((fc & (IEEE80211_FCTL_TODS + IEEE80211_FCTL_FROMDS)) == 0)) {
/* promisc: get all */
if (ieee->dev->flags & IFF_PROMISC)
is_packet_for_us = 1;
@@ -885,8 +885,8 @@ void libipw_rx_any(struct libipw_device *ieee,
break;
case IW_MODE_INFRA:
/* our BSS (== from our AP) and from DS */
- if (ether_addr_equal(hdr->addr2, ieee->bssid))
- if ((fc & (IEEE80211_FCTL_TODS+IEEE80211_FCTL_FROMDS)) == IEEE80211_FCTL_FROMDS) {
+ if (ether_addr_equal(hdr->addr2, ieee->bssid) &&
+ ((fc & (IEEE80211_FCTL_TODS + IEEE80211_FCTL_FROMDS)) == IEEE80211_FCTL_FROMDS)) {
/* promisc: get all */
if (ieee->dev->flags & IFF_PROMISC)
is_packet_for_us = 1;
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 23/28] wifi: brcmfmac: Fix oops due to NULL pointer dereference in brcmf_sdiod_sglist_rw()
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (20 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 22/28] wifi: ipw2x00: libipw_rx_any(): fix bad alignment Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 24/28] Bluetooth: btusb: Add RTL8852BE device 0489:e123 to device tables Sasha Levin
` (4 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Norbert van Bolhuis, Kalle Valo, Sasha Levin, arend.vanspriel,
megi, saikrishnag, erick.archer, jacobe.zang, krzysztof.kozlowski,
linux-wireless, brcm80211, brcm80211-dev-list.pdl
From: Norbert van Bolhuis <nvbolhuis@gmail.com>
[ Upstream commit 857282b819cbaa0675aaab1e7542e2c0579f52d7 ]
This patch fixes a NULL pointer dereference bug in brcmfmac that occurs
when a high 'sd_sgentry_align' value applies (e.g. 512) and a lot of queued SKBs
are sent from the pkt queue.
The problem is the number of entries in the pre-allocated sgtable, it is
nents = max(rxglom_size, txglom_size) + max(rxglom_size, txglom_size) >> 4 + 1.
Given the default [rt]xglom_size=32 it's actually 35 which is too small.
Worst case, the pkt queue can end up with 64 SKBs. This occurs when a new SKB
is added for each original SKB if tailroom isn't enough to hold tail_pad.
At least one sg entry is needed for each SKB. So, eventually the "skb_queue_walk loop"
in brcmf_sdiod_sglist_rw may run out of sg entries. This makes sg_next return
NULL and this causes the oops.
The patch sets nents to max(rxglom_size, txglom_size) * 2 to be able handle
the worst-case.
Btw. this requires only 64-35=29 * 16 (or 20 if CONFIG_NEED_SG_DMA_LENGTH) = 464
additional bytes of memory.
Signed-off-by: Norbert van Bolhuis <nvbolhuis@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20241107132903.13513-1-nvbolhuis@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index c492d2d2db1df..32ac1fa5bdecf 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -770,7 +770,7 @@ void brcmf_sdiod_sgtable_alloc(struct brcmf_sdio_dev *sdiodev)
nents = max_t(uint, BRCMF_DEFAULT_RXGLOM_SIZE,
sdiodev->settings->bus.sdio.txglomsz);
- nents += (nents >> 4) + 1;
+ nents *= 2;
WARN_ON(nents > sdiodev->max_segment_count);
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 24/28] Bluetooth: btusb: Add RTL8852BE device 0489:e123 to device tables
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (21 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 23/28] wifi: brcmfmac: Fix oops due to NULL pointer dereference in brcmf_sdiod_sglist_rw() Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 25/28] ASoC: hdmi-codec: reorder channel allocation list Sasha Levin
` (3 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Hilda Wu, Luiz Augusto von Dentz, Sasha Levin, marcel, luiz.dentz,
linux-bluetooth
From: Hilda Wu <hildawu@realtek.com>
[ Upstream commit 69b84ffce260ff13826dc10aeb3c3e5c2288a552 ]
Add the support ID 0489:e123 to usb_device_id table for
Realtek RTL8852B chip.
The device info from /sys/kernel/debug/usb/devices as below.
T: Bus=01 Lev=01 Prnt=01 Port=07 Cnt=04 Dev#= 7 Spd=12 MxCh= 0
D: Ver= 1.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0489 ProdID=e123 Rev= 0.00
S: Manufacturer=Realtek
S: Product=Bluetooth Radio
S: SerialNumber=00e04c000001
C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
Signed-off-by: Hilda Wu <hildawu@realtek.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/bluetooth/btusb.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 6616671dfd32f..9f71f9135f9e3 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -372,6 +372,8 @@ static const struct usb_device_id blacklist_table[] = {
BTUSB_WIDEBAND_SPEECH },
{ USB_DEVICE(0x13d3, 0x3591), .driver_info = BTUSB_REALTEK |
BTUSB_WIDEBAND_SPEECH },
+ { USB_DEVICE(0x0489, 0xe123), .driver_info = BTUSB_REALTEK |
+ BTUSB_WIDEBAND_SPEECH },
{ USB_DEVICE(0x0489, 0xe125), .driver_info = BTUSB_REALTEK |
BTUSB_WIDEBAND_SPEECH },
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 25/28] ASoC: hdmi-codec: reorder channel allocation list
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (22 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 24/28] Bluetooth: btusb: Add RTL8852BE device 0489:e123 to device tables Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 26/28] rocker: fix link status detection in rocker_carrier_init() Sasha Levin
` (2 subsequent siblings)
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Jonas Karlman, Christian Hewitt, Mark Brown, Sasha Levin,
lgirdwood, perex, tiwai, krzysztof.kozlowski, jbrunet,
herve.codina, linux-sound
From: Jonas Karlman <jonas@kwiboo.se>
[ Upstream commit 82ff5abc2edcfba0c0f1a1be807795e2876f46e9 ]
The ordering in hdmi_codec_get_ch_alloc_table_idx() results in
wrong channel allocation for a number of cases, e.g. when ELD
reports FL|FR|LFE|FC|RL|RR or FL|FR|LFE|FC|RL|RR|RC|RLC|RRC:
ca_id 0x01 with speaker mask FL|FR|LFE is selected instead of
ca_id 0x03 with speaker mask FL|FR|LFE|FC for 4 channels
and
ca_id 0x04 with speaker mask FL|FR|RC gets selected instead of
ca_id 0x0b with speaker mask FL|FR|LFE|FC|RL|RR for 6 channels
Fix this by reordering the channel allocation list with most
specific speaker masks at the top.
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
Link: https://patch.msgid.link/20241115044344.3510979-1-christianshewitt@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/codecs/hdmi-codec.c | 140 +++++++++++++++++++---------------
1 file changed, 77 insertions(+), 63 deletions(-)
diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c
index f8b5b960e5970..cc6ae76e2132f 100644
--- a/sound/soc/codecs/hdmi-codec.c
+++ b/sound/soc/codecs/hdmi-codec.c
@@ -189,84 +189,97 @@ static const struct snd_pcm_chmap_elem hdmi_codec_8ch_chmaps[] = {
/*
* hdmi_codec_channel_alloc: speaker configuration available for CEA
*
- * This is an ordered list that must match with hdmi_codec_8ch_chmaps struct
+ * This is an ordered list where ca_id must exist in hdmi_codec_8ch_chmaps
* The preceding ones have better chances to be selected by
* hdmi_codec_get_ch_alloc_table_idx().
*/
static const struct hdmi_codec_cea_spk_alloc hdmi_codec_channel_alloc[] = {
{ .ca_id = 0x00, .n_ch = 2,
- .mask = FL | FR},
- /* 2.1 */
- { .ca_id = 0x01, .n_ch = 4,
- .mask = FL | FR | LFE},
- /* Dolby Surround */
+ .mask = FL | FR },
+ { .ca_id = 0x03, .n_ch = 4,
+ .mask = FL | FR | LFE | FC },
{ .ca_id = 0x02, .n_ch = 4,
.mask = FL | FR | FC },
- /* surround51 */
+ { .ca_id = 0x01, .n_ch = 4,
+ .mask = FL | FR | LFE },
{ .ca_id = 0x0b, .n_ch = 6,
- .mask = FL | FR | LFE | FC | RL | RR},
- /* surround40 */
- { .ca_id = 0x08, .n_ch = 6,
- .mask = FL | FR | RL | RR },
- /* surround41 */
- { .ca_id = 0x09, .n_ch = 6,
- .mask = FL | FR | LFE | RL | RR },
- /* surround50 */
+ .mask = FL | FR | LFE | FC | RL | RR },
{ .ca_id = 0x0a, .n_ch = 6,
.mask = FL | FR | FC | RL | RR },
- /* 6.1 */
- { .ca_id = 0x0f, .n_ch = 8,
- .mask = FL | FR | LFE | FC | RL | RR | RC },
- /* surround71 */
+ { .ca_id = 0x09, .n_ch = 6,
+ .mask = FL | FR | LFE | RL | RR },
+ { .ca_id = 0x08, .n_ch = 6,
+ .mask = FL | FR | RL | RR },
+ { .ca_id = 0x07, .n_ch = 6,
+ .mask = FL | FR | LFE | FC | RC },
+ { .ca_id = 0x06, .n_ch = 6,
+ .mask = FL | FR | FC | RC },
+ { .ca_id = 0x05, .n_ch = 6,
+ .mask = FL | FR | LFE | RC },
+ { .ca_id = 0x04, .n_ch = 6,
+ .mask = FL | FR | RC },
{ .ca_id = 0x13, .n_ch = 8,
.mask = FL | FR | LFE | FC | RL | RR | RLC | RRC },
- /* others */
- { .ca_id = 0x03, .n_ch = 8,
- .mask = FL | FR | LFE | FC },
- { .ca_id = 0x04, .n_ch = 8,
- .mask = FL | FR | RC},
- { .ca_id = 0x05, .n_ch = 8,
- .mask = FL | FR | LFE | RC },
- { .ca_id = 0x06, .n_ch = 8,
- .mask = FL | FR | FC | RC },
- { .ca_id = 0x07, .n_ch = 8,
- .mask = FL | FR | LFE | FC | RC },
- { .ca_id = 0x0c, .n_ch = 8,
- .mask = FL | FR | RC | RL | RR },
- { .ca_id = 0x0d, .n_ch = 8,
- .mask = FL | FR | LFE | RL | RR | RC },
- { .ca_id = 0x0e, .n_ch = 8,
- .mask = FL | FR | FC | RL | RR | RC },
- { .ca_id = 0x10, .n_ch = 8,
- .mask = FL | FR | RL | RR | RLC | RRC },
- { .ca_id = 0x11, .n_ch = 8,
- .mask = FL | FR | LFE | RL | RR | RLC | RRC },
+ { .ca_id = 0x1f, .n_ch = 8,
+ .mask = FL | FR | LFE | FC | RL | RR | FLC | FRC },
{ .ca_id = 0x12, .n_ch = 8,
.mask = FL | FR | FC | RL | RR | RLC | RRC },
- { .ca_id = 0x14, .n_ch = 8,
- .mask = FL | FR | FLC | FRC },
- { .ca_id = 0x15, .n_ch = 8,
- .mask = FL | FR | LFE | FLC | FRC },
- { .ca_id = 0x16, .n_ch = 8,
- .mask = FL | FR | FC | FLC | FRC },
- { .ca_id = 0x17, .n_ch = 8,
- .mask = FL | FR | LFE | FC | FLC | FRC },
- { .ca_id = 0x18, .n_ch = 8,
- .mask = FL | FR | RC | FLC | FRC },
- { .ca_id = 0x19, .n_ch = 8,
- .mask = FL | FR | LFE | RC | FLC | FRC },
- { .ca_id = 0x1a, .n_ch = 8,
- .mask = FL | FR | RC | FC | FLC | FRC },
- { .ca_id = 0x1b, .n_ch = 8,
- .mask = FL | FR | LFE | RC | FC | FLC | FRC },
- { .ca_id = 0x1c, .n_ch = 8,
- .mask = FL | FR | RL | RR | FLC | FRC },
- { .ca_id = 0x1d, .n_ch = 8,
- .mask = FL | FR | LFE | RL | RR | FLC | FRC },
{ .ca_id = 0x1e, .n_ch = 8,
.mask = FL | FR | FC | RL | RR | FLC | FRC },
- { .ca_id = 0x1f, .n_ch = 8,
- .mask = FL | FR | LFE | FC | RL | RR | FLC | FRC },
+ { .ca_id = 0x11, .n_ch = 8,
+ .mask = FL | FR | LFE | RL | RR | RLC | RRC },
+ { .ca_id = 0x1d, .n_ch = 8,
+ .mask = FL | FR | LFE | RL | RR | FLC | FRC },
+ { .ca_id = 0x10, .n_ch = 8,
+ .mask = FL | FR | RL | RR | RLC | RRC },
+ { .ca_id = 0x1c, .n_ch = 8,
+ .mask = FL | FR | RL | RR | FLC | FRC },
+ { .ca_id = 0x0f, .n_ch = 8,
+ .mask = FL | FR | LFE | FC | RL | RR | RC },
+ { .ca_id = 0x1b, .n_ch = 8,
+ .mask = FL | FR | LFE | RC | FC | FLC | FRC },
+ { .ca_id = 0x0e, .n_ch = 8,
+ .mask = FL | FR | FC | RL | RR | RC },
+ { .ca_id = 0x1a, .n_ch = 8,
+ .mask = FL | FR | RC | FC | FLC | FRC },
+ { .ca_id = 0x0d, .n_ch = 8,
+ .mask = FL | FR | LFE | RL | RR | RC },
+ { .ca_id = 0x19, .n_ch = 8,
+ .mask = FL | FR | LFE | RC | FLC | FRC },
+ { .ca_id = 0x0c, .n_ch = 8,
+ .mask = FL | FR | RC | RL | RR },
+ { .ca_id = 0x18, .n_ch = 8,
+ .mask = FL | FR | RC | FLC | FRC },
+ { .ca_id = 0x17, .n_ch = 8,
+ .mask = FL | FR | LFE | FC | FLC | FRC },
+ { .ca_id = 0x16, .n_ch = 8,
+ .mask = FL | FR | FC | FLC | FRC },
+ { .ca_id = 0x15, .n_ch = 8,
+ .mask = FL | FR | LFE | FLC | FRC },
+ { .ca_id = 0x14, .n_ch = 8,
+ .mask = FL | FR | FLC | FRC },
+ { .ca_id = 0x0b, .n_ch = 8,
+ .mask = FL | FR | LFE | FC | RL | RR },
+ { .ca_id = 0x0a, .n_ch = 8,
+ .mask = FL | FR | FC | RL | RR },
+ { .ca_id = 0x09, .n_ch = 8,
+ .mask = FL | FR | LFE | RL | RR },
+ { .ca_id = 0x08, .n_ch = 8,
+ .mask = FL | FR | RL | RR },
+ { .ca_id = 0x07, .n_ch = 8,
+ .mask = FL | FR | LFE | FC | RC },
+ { .ca_id = 0x06, .n_ch = 8,
+ .mask = FL | FR | FC | RC },
+ { .ca_id = 0x05, .n_ch = 8,
+ .mask = FL | FR | LFE | RC },
+ { .ca_id = 0x04, .n_ch = 8,
+ .mask = FL | FR | RC },
+ { .ca_id = 0x03, .n_ch = 8,
+ .mask = FL | FR | LFE | FC },
+ { .ca_id = 0x02, .n_ch = 8,
+ .mask = FL | FR | FC },
+ { .ca_id = 0x01, .n_ch = 8,
+ .mask = FL | FR | LFE },
};
struct hdmi_codec_priv {
@@ -372,7 +385,8 @@ static int hdmi_codec_chmap_ctl_get(struct snd_kcontrol *kcontrol,
struct snd_pcm_chmap *info = snd_kcontrol_chip(kcontrol);
struct hdmi_codec_priv *hcp = info->private_data;
- map = info->chmap[hcp->chmap_idx].map;
+ if (hcp->chmap_idx != HDMI_CODEC_CHMAP_IDX_UNKNOWN)
+ map = info->chmap[hcp->chmap_idx].map;
for (i = 0; i < info->max_channels; i++) {
if (hcp->chmap_idx == HDMI_CODEC_CHMAP_IDX_UNKNOWN)
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 26/28] rocker: fix link status detection in rocker_carrier_init()
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (23 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 25/28] ASoC: hdmi-codec: reorder channel allocation list Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 27/28] net/neighbor: clear error in case strict check is not set Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 28/28] netpoll: Use rcu_access_pointer() in __netpoll_setup Sasha Levin
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Dmitry Antipov, Jakub Kicinski, Sasha Levin, jiri, andrew+netdev,
davem, edumazet, pabeni, netdev
From: Dmitry Antipov <dmantipov@yandex.ru>
[ Upstream commit e64285ff41bb7a934bd815bd38f31119be62ac37 ]
Since '1 << rocker_port->pport' may be undefined for port >= 32,
cast the left operand to 'unsigned long long' like it's done in
'rocker_port_set_enable()' above. Compile tested only.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Link: https://patch.msgid.link/20241114151946.519047-1-dmantipov@yandex.ru
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/rocker/rocker_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c
index 5abb3f9684ffd..6bee5055559fe 100644
--- a/drivers/net/ethernet/rocker/rocker_main.c
+++ b/drivers/net/ethernet/rocker/rocker_main.c
@@ -2542,7 +2542,7 @@ static void rocker_carrier_init(const struct rocker_port *rocker_port)
u64 link_status = rocker_read64(rocker, PORT_PHYS_LINK_STATUS);
bool link_up;
- link_up = link_status & (1 << rocker_port->pport);
+ link_up = link_status & (1ULL << rocker_port->pport);
if (link_up)
netif_carrier_on(rocker_port->dev);
else
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 27/28] net/neighbor: clear error in case strict check is not set
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (24 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 26/28] rocker: fix link status detection in rocker_carrier_init() Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 28/28] netpoll: Use rcu_access_pointer() in __netpoll_setup Sasha Levin
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Jakub Kicinski, Simon Horman, Sasha Levin, davem, edumazet,
pabeni, kuniyu, gnaaman, joel.granados, linux, netdev
From: Jakub Kicinski <kuba@kernel.org>
[ Upstream commit 0de6a472c3b38432b2f184bd64eb70d9ea36d107 ]
Commit 51183d233b5a ("net/neighbor: Update neigh_dump_info for strict
data checking") added strict checking. The err variable is not cleared,
so if we find no table to dump we will return the validation error even
if user did not want strict checking.
I think the only way to hit this is to send an buggy request, and ask
for a table which doesn't exist, so there's no point treating this
as a real fix. I only noticed it because a syzbot repro depended on it
to trigger another bug.
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20241115003221.733593-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/core/neighbour.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index e571007d083cc..4dfe17f1a76aa 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -2734,6 +2734,7 @@ static int neigh_dump_info(struct sk_buff *skb, struct netlink_callback *cb)
err = neigh_valid_dump_req(nlh, cb->strict_check, &filter, cb->extack);
if (err < 0 && cb->strict_check)
return err;
+ err = 0;
s_t = cb->args[0];
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread* [PATCH AUTOSEL 5.4 28/28] netpoll: Use rcu_access_pointer() in __netpoll_setup
2024-11-24 13:55 [PATCH AUTOSEL 5.4 01/28] drm: panel-orientation-quirks: Add quirk for AYA NEO 2 model Sasha Levin
` (25 preceding siblings ...)
2024-11-24 13:55 ` [PATCH AUTOSEL 5.4 27/28] net/neighbor: clear error in case strict check is not set Sasha Levin
@ 2024-11-24 13:55 ` Sasha Levin
26 siblings, 0 replies; 30+ messages in thread
From: Sasha Levin @ 2024-11-24 13:55 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Breno Leitao, Michal Kubiak, Jakub Kicinski, Sasha Levin, davem,
edumazet, pabeni, horms, viro, netdev
From: Breno Leitao <leitao@debian.org>
[ Upstream commit c69c5e10adb903ae2438d4f9c16eccf43d1fcbc1 ]
The ndev->npinfo pointer in __netpoll_setup() is RCU-protected but is being
accessed directly for a NULL check. While no RCU read lock is held in this
context, we should still use proper RCU primitives for consistency and
correctness.
Replace the direct NULL check with rcu_access_pointer(), which is the
appropriate primitive when only checking for NULL without dereferencing
the pointer. This function provides the necessary ordering guarantees
without requiring RCU read-side protection.
Reviewed-by: Michal Kubiak <michal.kubiak@intel.com>
Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20241118-netpoll_rcu-v1-1-a1888dcb4a02@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/core/netpoll.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index 9b263a5c0f36f..9a67aa989d606 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -615,7 +615,7 @@ int __netpoll_setup(struct netpoll *np, struct net_device *ndev)
goto out;
}
- if (!ndev->npinfo) {
+ if (!rcu_access_pointer(ndev->npinfo)) {
npinfo = kmalloc(sizeof(*npinfo), GFP_KERNEL);
if (!npinfo) {
err = -ENOMEM;
--
2.43.0
^ permalink raw reply related [flat|nested] 30+ messages in thread