All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 5.15.y 0/6] Few missing CVE fixes
@ 2025-04-14 18:50 Harshit Mogalapalli
  2025-04-14 18:50 ` [PATCH 5.15.y 1/6] net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup Harshit Mogalapalli
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Harshit Mogalapalli @ 2025-04-14 18:50 UTC (permalink / raw)
  To: stable; +Cc: vegard.nossum, Harshit Mogalapalli

Hi stable maintainers,

I have tried backporting some fixes to stable kernel 5.15.y which also
have CVE numbers and are fixing commits in 5.15.y.

I am not a subsystem expert and have only done overall testing that we
do for stable release candidate testing and not any patch specific testing.

Note: All these patches are present in 6.1.y.

Patch 1 -- minor conflicts resolved due to few missing commits.

Patch 2, 3, 4 -- clean cherry-picks from 6.1.y commits and will
therefore have additional SOBs from backporter/stable maintainers

Patch 5 -- Minor conflict resolved as 5.15.y don't have folios.

Patch 6 -- Resolve conflicts due to missing unrcu_pointer() helper and
other commit

Please let me know if there are any comments.

Thanks,
Harshit

Michal Schmidt (1):
  bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq

Paolo Abeni (1):
  ipv6: release nexthop on device removal

Rémi Denis-Courmont (1):
  phonet/pep: fix racy skb_queue_empty() use

Souradeep Chakrabarti (1):
  net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup

Trond Myklebust (1):
  filemap: Fix bounds checking in filemap_read()

Wang Liang (1):
  net: fix crash when config small gso_max_size/gso_ipv4_max_size

 drivers/infiniband/hw/bnxt_re/qplib_fp.c      |  3 +-
 drivers/net/ethernet/microsoft/mana/mana.h    |  2 +
 drivers/net/ethernet/microsoft/mana/mana_en.c | 21 ++++++----
 mm/filemap.c                                  |  2 +-
 net/core/rtnetlink.c                          |  2 +-
 net/ipv6/route.c                              |  6 +--
 net/phonet/pep.c                              | 41 +++++++++++++++----
 7 files changed, 54 insertions(+), 23 deletions(-)

-- 
2.47.1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 5.15.y 1/6] net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup
  2025-04-14 18:50 [PATCH 5.15.y 0/6] Few missing CVE fixes Harshit Mogalapalli
@ 2025-04-14 18:50 ` Harshit Mogalapalli
  2025-04-15 21:43   ` Sasha Levin
  2025-04-14 18:50 ` [PATCH 5.15.y 2/6] bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq Harshit Mogalapalli
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Harshit Mogalapalli @ 2025-04-14 18:50 UTC (permalink / raw)
  To: stable
  Cc: vegard.nossum, Souradeep Chakrabarti, Haiyang Zhang,
	Shradha Gupta, David S. Miller, Harshit Mogalapalli

From: Souradeep Chakrabarti <schakrabarti@linux.microsoft.com>

[ Upstream commit b6ecc662037694488bfff7c9fd21c405df8411f2 ]

Currently napi_disable() gets called during rxq and txq cleanup,
even before napi is enabled and hrtimer is initialized. It causes
kernel panic.

? page_fault_oops+0x136/0x2b0
  ? page_counter_cancel+0x2e/0x80
  ? do_user_addr_fault+0x2f2/0x640
  ? refill_obj_stock+0xc4/0x110
  ? exc_page_fault+0x71/0x160
  ? asm_exc_page_fault+0x27/0x30
  ? __mmdrop+0x10/0x180
  ? __mmdrop+0xec/0x180
  ? hrtimer_active+0xd/0x50
  hrtimer_try_to_cancel+0x2c/0xf0
  hrtimer_cancel+0x15/0x30
  napi_disable+0x65/0x90
  mana_destroy_rxq+0x4c/0x2f0
  mana_create_rxq.isra.0+0x56c/0x6d0
  ? mana_uncfg_vport+0x50/0x50
  mana_alloc_queues+0x21b/0x320
  ? skb_dequeue+0x5f/0x80

Cc: stable@vger.kernel.org
Fixes: e1b5683ff62e ("net: mana: Move NAPI from EQ to CQ")
Signed-off-by: Souradeep Chakrabarti <schakrabarti@linux.microsoft.com>
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Reviewed-by: Shradha Gupta <shradhagupta@linux.microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit b6ecc662037694488bfff7c9fd21c405df8411f2)
[Harshit: conflicts resolved due to missing commit: ed5356b53f07 ("net:
mana: Add XDP support") and commit: d356abb95b98 ("net: mana: Add
counter for XDP_TX") in 5.15.y]
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
---
 drivers/net/ethernet/microsoft/mana/mana.h    |  2 ++
 drivers/net/ethernet/microsoft/mana/mana_en.c | 21 ++++++++++++-------
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/microsoft/mana/mana.h b/drivers/net/ethernet/microsoft/mana/mana.h
index 35e937a7079c..6aac4824090c 100644
--- a/drivers/net/ethernet/microsoft/mana/mana.h
+++ b/drivers/net/ethernet/microsoft/mana/mana.h
@@ -76,6 +76,8 @@ struct mana_txq {
 
 	atomic_t pending_sends;
 
+	bool napi_initialized;
+
 	struct mana_stats stats;
 };
 
diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index b0963fda4d9f..3c754b31c30d 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -1154,10 +1154,12 @@ static void mana_destroy_txq(struct mana_port_context *apc)
 
 	for (i = 0; i < apc->num_queues; i++) {
 		napi = &apc->tx_qp[i].tx_cq.napi;
-		napi_synchronize(napi);
-		napi_disable(napi);
-		netif_napi_del(napi);
-
+		if (apc->tx_qp[i].txq.napi_initialized) {
+			napi_synchronize(napi);
+			napi_disable(napi);
+			netif_napi_del(napi);
+			apc->tx_qp[i].txq.napi_initialized = false;
+		}
 		mana_destroy_wq_obj(apc, GDMA_SQ, apc->tx_qp[i].tx_object);
 
 		mana_deinit_cq(apc, &apc->tx_qp[i].tx_cq);
@@ -1213,6 +1215,7 @@ static int mana_create_txq(struct mana_port_context *apc,
 		txq->ndev = net;
 		txq->net_txq = netdev_get_tx_queue(net, i);
 		txq->vp_offset = apc->tx_vp_offset;
+		txq->napi_initialized = false;
 		skb_queue_head_init(&txq->pending_skbs);
 
 		memset(&spec, 0, sizeof(spec));
@@ -1277,6 +1280,7 @@ static int mana_create_txq(struct mana_port_context *apc,
 
 		netif_tx_napi_add(net, &cq->napi, mana_poll, NAPI_POLL_WEIGHT);
 		napi_enable(&cq->napi);
+		txq->napi_initialized = true;
 
 		mana_gd_ring_cq(cq->gdma_cq, SET_ARM_BIT);
 	}
@@ -1288,7 +1292,7 @@ static int mana_create_txq(struct mana_port_context *apc,
 }
 
 static void mana_destroy_rxq(struct mana_port_context *apc,
-			     struct mana_rxq *rxq, bool validate_state)
+			     struct mana_rxq *rxq, bool napi_initialized)
 
 {
 	struct gdma_context *gc = apc->ac->gdma_dev->gdma_context;
@@ -1302,12 +1306,13 @@ static void mana_destroy_rxq(struct mana_port_context *apc,
 
 	napi = &rxq->rx_cq.napi;
 
-	if (validate_state)
+	if (napi_initialized) {
 		napi_synchronize(napi);
 
-	napi_disable(napi);
-	netif_napi_del(napi);
+		napi_disable(napi);
 
+		netif_napi_del(napi);
+	}
 	mana_destroy_wq_obj(apc, GDMA_RQ, rxq->rxobj);
 
 	mana_deinit_cq(apc, &rxq->rx_cq);
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 5.15.y 2/6] bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq
  2025-04-14 18:50 [PATCH 5.15.y 0/6] Few missing CVE fixes Harshit Mogalapalli
  2025-04-14 18:50 ` [PATCH 5.15.y 1/6] net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup Harshit Mogalapalli
@ 2025-04-14 18:50 ` Harshit Mogalapalli
  2025-04-15 21:43   ` Sasha Levin
  2025-04-14 18:50 ` [PATCH 5.15.y 3/6] phonet/pep: fix racy skb_queue_empty() use Harshit Mogalapalli
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Harshit Mogalapalli @ 2025-04-14 18:50 UTC (permalink / raw)
  To: stable
  Cc: vegard.nossum, Michal Schmidt, Selvin Xavier, Leon Romanovsky,
	Xiangyu Chen, Greg Kroah-Hartman, Harshit Mogalapalli

From: Michal Schmidt <mschmidt@redhat.com>

commit 78cfd17142ef70599d6409cbd709d94b3da58659 upstream.

Undefined behavior is triggered when bnxt_qplib_alloc_init_hwq is called
with hwq_attr->aux_depth != 0 and hwq_attr->aux_stride == 0.
In that case, "roundup_pow_of_two(hwq_attr->aux_stride)" gets called.
roundup_pow_of_two is documented as undefined for 0.

Fix it in the one caller that had this combination.

The undefined behavior was detected by UBSAN:
  UBSAN: shift-out-of-bounds in ./include/linux/log2.h:57:13
  shift exponent 64 is too large for 64-bit type 'long unsigned int'
  CPU: 24 PID: 1075 Comm: (udev-worker) Not tainted 6.9.0-rc6+ #4
  Hardware name: Abacus electric, s.r.o. - servis@abacus.cz Super Server/H12SSW-iN, BIOS 2.7 10/25/2023
  Call Trace:
   <TASK>
   dump_stack_lvl+0x5d/0x80
   ubsan_epilogue+0x5/0x30
   __ubsan_handle_shift_out_of_bounds.cold+0x61/0xec
   __roundup_pow_of_two+0x25/0x35 [bnxt_re]
   bnxt_qplib_alloc_init_hwq+0xa1/0x470 [bnxt_re]
   bnxt_qplib_create_qp+0x19e/0x840 [bnxt_re]
   bnxt_re_create_qp+0x9b1/0xcd0 [bnxt_re]
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? __kmalloc+0x1b6/0x4f0
   ? create_qp.part.0+0x128/0x1c0 [ib_core]
   ? __pfx_bnxt_re_create_qp+0x10/0x10 [bnxt_re]
   create_qp.part.0+0x128/0x1c0 [ib_core]
   ib_create_qp_kernel+0x50/0xd0 [ib_core]
   create_mad_qp+0x8e/0xe0 [ib_core]
   ? __pfx_qp_event_handler+0x10/0x10 [ib_core]
   ib_mad_init_device+0x2be/0x680 [ib_core]
   add_client_context+0x10d/0x1a0 [ib_core]
   enable_device_and_get+0xe0/0x1d0 [ib_core]
   ib_register_device+0x53c/0x630 [ib_core]
   ? srso_alias_return_thunk+0x5/0xfbef5
   bnxt_re_probe+0xbd8/0xe50 [bnxt_re]
   ? __pfx_bnxt_re_probe+0x10/0x10 [bnxt_re]
   auxiliary_bus_probe+0x49/0x80
   ? driver_sysfs_add+0x57/0xc0
   really_probe+0xde/0x340
   ? pm_runtime_barrier+0x54/0x90
   ? __pfx___driver_attach+0x10/0x10
   __driver_probe_device+0x78/0x110
   driver_probe_device+0x1f/0xa0
   __driver_attach+0xba/0x1c0
   bus_for_each_dev+0x8f/0xe0
   bus_add_driver+0x146/0x220
   driver_register+0x72/0xd0
   __auxiliary_driver_register+0x6e/0xd0
   ? __pfx_bnxt_re_mod_init+0x10/0x10 [bnxt_re]
   bnxt_re_mod_init+0x3e/0xff0 [bnxt_re]
   ? __pfx_bnxt_re_mod_init+0x10/0x10 [bnxt_re]
   do_one_initcall+0x5b/0x310
   do_init_module+0x90/0x250
   init_module_from_file+0x86/0xc0
   idempotent_init_module+0x121/0x2b0
   __x64_sys_finit_module+0x5e/0xb0
   do_syscall_64+0x82/0x160
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? syscall_exit_to_user_mode_prepare+0x149/0x170
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? syscall_exit_to_user_mode+0x75/0x230
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? do_syscall_64+0x8e/0x160
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? __count_memcg_events+0x69/0x100
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? count_memcg_events.constprop.0+0x1a/0x30
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? handle_mm_fault+0x1f0/0x300
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? do_user_addr_fault+0x34e/0x640
   ? srso_alias_return_thunk+0x5/0xfbef5
   ? srso_alias_return_thunk+0x5/0xfbef5
   entry_SYSCALL_64_after_hwframe+0x76/0x7e
  RIP: 0033:0x7f4e5132821d
  Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d e3 db 0c 00 f7 d8 64 89 01 48
  RSP: 002b:00007ffca9c906a8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
  RAX: ffffffffffffffda RBX: 0000563ec8a8f130 RCX: 00007f4e5132821d
  RDX: 0000000000000000 RSI: 00007f4e518fa07d RDI: 000000000000003b
  RBP: 00007ffca9c90760 R08: 00007f4e513f6b20 R09: 00007ffca9c906f0
  R10: 0000563ec8a8faa0 R11: 0000000000000246 R12: 00007f4e518fa07d
  R13: 0000000000020000 R14: 0000563ec8409e90 R15: 0000563ec8a8fa60
   </TASK>
  ---[ end trace ]---

Fixes: 0c4dcd602817 ("RDMA/bnxt_re: Refactor hardware queue memory allocation")
Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
Link: https://lore.kernel.org/r/20240507103929.30003-1-mschmidt@redhat.com
Acked-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[Harshit: backport to 5.15.y, this is a clean cherrypick from 6.1.y
commit ]
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
---
 drivers/infiniband/hw/bnxt_re/qplib_fp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/bnxt_re/qplib_fp.c b/drivers/infiniband/hw/bnxt_re/qplib_fp.c
index 3725f05ad297..be895398df09 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_fp.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_fp.c
@@ -1013,7 +1013,8 @@ int bnxt_qplib_create_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp)
 	hwq_attr.stride = sizeof(struct sq_sge);
 	hwq_attr.depth = bnxt_qplib_get_depth(sq);
 	hwq_attr.aux_stride = psn_sz;
-	hwq_attr.aux_depth = bnxt_qplib_set_sq_size(sq, qp->wqe_mode);
+	hwq_attr.aux_depth = psn_sz ? bnxt_qplib_set_sq_size(sq, qp->wqe_mode)
+				    : 0;
 	hwq_attr.type = HWQ_TYPE_QUEUE;
 	rc = bnxt_qplib_alloc_init_hwq(&sq->hwq, &hwq_attr);
 	if (rc)
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 5.15.y 3/6] phonet/pep: fix racy skb_queue_empty() use
  2025-04-14 18:50 [PATCH 5.15.y 0/6] Few missing CVE fixes Harshit Mogalapalli
  2025-04-14 18:50 ` [PATCH 5.15.y 1/6] net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup Harshit Mogalapalli
  2025-04-14 18:50 ` [PATCH 5.15.y 2/6] bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq Harshit Mogalapalli
@ 2025-04-14 18:50 ` Harshit Mogalapalli
  2025-04-15 21:43   ` Sasha Levin
  2025-04-14 18:50 ` [PATCH 5.15.y 4/6] net: fix crash when config small gso_max_size/gso_ipv4_max_size Harshit Mogalapalli
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Harshit Mogalapalli @ 2025-04-14 18:50 UTC (permalink / raw)
  To: stable
  Cc: vegard.nossum, Rémi Denis-Courmont, Paolo Abeni, Sasha Levin,
	Harshit Mogalapalli

From: Rémi Denis-Courmont <courmisch@gmail.com>

[ Upstream commit 7d2a894d7f487dcb894df023e9d3014cf5b93fe5 ]

The receive queues are protected by their respective spin-lock, not
the socket lock. This could lead to skb_peek() unexpectedly
returning NULL or a pointer to an already dequeued socket buffer.

Fixes: 9641458d3ec4 ("Phonet: Pipe End Point for Phonet Pipes protocol")
Signed-off-by: Rémi Denis-Courmont <courmisch@gmail.com>
Link: https://lore.kernel.org/r/20240218081214.4806-2-remi@remlab.net
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
[Harshit: backport to 5.15.y, clean cherrypick from 6.1.y commit]
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
---
 net/phonet/pep.c | 41 ++++++++++++++++++++++++++++++++---------
 1 file changed, 32 insertions(+), 9 deletions(-)

diff --git a/net/phonet/pep.c b/net/phonet/pep.c
index 65d463ad8770..3ea23e7caab6 100644
--- a/net/phonet/pep.c
+++ b/net/phonet/pep.c
@@ -916,6 +916,37 @@ static int pep_sock_enable(struct sock *sk, struct sockaddr *addr, int len)
 	return 0;
 }
 
+static unsigned int pep_first_packet_length(struct sock *sk)
+{
+	struct pep_sock *pn = pep_sk(sk);
+	struct sk_buff_head *q;
+	struct sk_buff *skb;
+	unsigned int len = 0;
+	bool found = false;
+
+	if (sock_flag(sk, SOCK_URGINLINE)) {
+		q = &pn->ctrlreq_queue;
+		spin_lock_bh(&q->lock);
+		skb = skb_peek(q);
+		if (skb) {
+			len = skb->len;
+			found = true;
+		}
+		spin_unlock_bh(&q->lock);
+	}
+
+	if (likely(!found)) {
+		q = &sk->sk_receive_queue;
+		spin_lock_bh(&q->lock);
+		skb = skb_peek(q);
+		if (skb)
+			len = skb->len;
+		spin_unlock_bh(&q->lock);
+	}
+
+	return len;
+}
+
 static int pep_ioctl(struct sock *sk, int cmd, unsigned long arg)
 {
 	struct pep_sock *pn = pep_sk(sk);
@@ -929,15 +960,7 @@ static int pep_ioctl(struct sock *sk, int cmd, unsigned long arg)
 			break;
 		}
 
-		lock_sock(sk);
-		if (sock_flag(sk, SOCK_URGINLINE) &&
-		    !skb_queue_empty(&pn->ctrlreq_queue))
-			answ = skb_peek(&pn->ctrlreq_queue)->len;
-		else if (!skb_queue_empty(&sk->sk_receive_queue))
-			answ = skb_peek(&sk->sk_receive_queue)->len;
-		else
-			answ = 0;
-		release_sock(sk);
+		answ = pep_first_packet_length(sk);
 		ret = put_user(answ, (int __user *)arg);
 		break;
 
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 5.15.y 4/6] net: fix crash when config small gso_max_size/gso_ipv4_max_size
  2025-04-14 18:50 [PATCH 5.15.y 0/6] Few missing CVE fixes Harshit Mogalapalli
                   ` (2 preceding siblings ...)
  2025-04-14 18:50 ` [PATCH 5.15.y 3/6] phonet/pep: fix racy skb_queue_empty() use Harshit Mogalapalli
@ 2025-04-14 18:50 ` Harshit Mogalapalli
  2025-04-15 21:43   ` Sasha Levin
  2025-04-14 18:50 ` [PATCH 5.15.y 5/6] filemap: Fix bounds checking in filemap_read() Harshit Mogalapalli
  2025-04-14 18:50 ` [PATCH 5.15.y 6/6] ipv6: release nexthop on device removal Harshit Mogalapalli
  5 siblings, 1 reply; 13+ messages in thread
From: Harshit Mogalapalli @ 2025-04-14 18:50 UTC (permalink / raw)
  To: stable
  Cc: vegard.nossum, Wang Liang, Eric Dumazet, Jakub Kicinski, Bin Lan,
	Sasha Levin, Harshit Mogalapalli

From: Wang Liang <wangliang74@huawei.com>

[ Upstream commit 9ab5cf19fb0e4680f95e506d6c544259bf1111c4 ]

Config a small gso_max_size/gso_ipv4_max_size will lead to an underflow
in sk_dst_gso_max_size(), which may trigger a BUG_ON crash,
because sk->sk_gso_max_size would be much bigger than device limits.
Call Trace:
tcp_write_xmit
    tso_segs = tcp_init_tso_segs(skb, mss_now);
        tcp_set_skb_tso_segs
            tcp_skb_pcount_set
                // skb->len = 524288, mss_now = 8
                // u16 tso_segs = 524288/8 = 65535 -> 0
                tso_segs = DIV_ROUND_UP(skb->len, mss_now)
    BUG_ON(!tso_segs)
Add check for the minimum value of gso_max_size and gso_ipv4_max_size.

Fixes: 46e6b992c250 ("rtnetlink: allow GSO maximums to be set on device creation")
Fixes: 9eefedd58ae1 ("net: add gso_ipv4_max_size and gro_ipv4_max_size per device")
Signed-off-by: Wang Liang <wangliang74@huawei.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20241023035213.517386-1-wangliang74@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
[ Resolve minor conflicts to fix CVE-2024-50258 ]
Signed-off-by: Bin Lan <bin.lan.cn@windriver.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
[Harshit: Clean cherrypick from 6.1.y commit]
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
---
 net/core/rtnetlink.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 46a97c915e93..e8e67429e437 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1899,7 +1899,7 @@ static const struct nla_policy ifla_policy[IFLA_MAX+1] = {
 	[IFLA_NUM_TX_QUEUES]	= { .type = NLA_U32 },
 	[IFLA_NUM_RX_QUEUES]	= { .type = NLA_U32 },
 	[IFLA_GSO_MAX_SEGS]	= { .type = NLA_U32 },
-	[IFLA_GSO_MAX_SIZE]	= { .type = NLA_U32 },
+	[IFLA_GSO_MAX_SIZE]	= NLA_POLICY_MIN(NLA_U32, MAX_TCP_HEADER + 1),
 	[IFLA_PHYS_PORT_ID]	= { .type = NLA_BINARY, .len = MAX_PHYS_ITEM_ID_LEN },
 	[IFLA_CARRIER_CHANGES]	= { .type = NLA_U32 },  /* ignored */
 	[IFLA_PHYS_SWITCH_ID]	= { .type = NLA_BINARY, .len = MAX_PHYS_ITEM_ID_LEN },
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 5.15.y 5/6] filemap: Fix bounds checking in filemap_read()
  2025-04-14 18:50 [PATCH 5.15.y 0/6] Few missing CVE fixes Harshit Mogalapalli
                   ` (3 preceding siblings ...)
  2025-04-14 18:50 ` [PATCH 5.15.y 4/6] net: fix crash when config small gso_max_size/gso_ipv4_max_size Harshit Mogalapalli
@ 2025-04-14 18:50 ` Harshit Mogalapalli
  2025-04-15 21:43   ` Sasha Levin
  2025-04-14 18:50 ` [PATCH 5.15.y 6/6] ipv6: release nexthop on device removal Harshit Mogalapalli
  5 siblings, 1 reply; 13+ messages in thread
From: Harshit Mogalapalli @ 2025-04-14 18:50 UTC (permalink / raw)
  To: stable
  Cc: vegard.nossum, Trond Myklebust, Mike Snitzer, Linus Torvalds,
	Harshit Mogalapalli

From: Trond Myklebust <trond.myklebust@hammerspace.com>

[ Upstream commit ace149e0830c380ddfce7e466fe860ca502fe4ee ]

If the caller supplies an iocb->ki_pos value that is close to the
filesystem upper limit, and an iterator with a count that causes us to
overflow that limit, then filemap_read() enters an infinite loop.

This behaviour was discovered when testing xfstests generic/525 with the
"localio" optimisation for loopback NFS mounts.

Reported-by: Mike Snitzer <snitzer@kernel.org>
Fixes: c2a9737f45e2 ("vfs,mm: fix a dead loop in truncate_inode_pages_range()")
Tested-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit ace149e0830c380ddfce7e466fe860ca502fe4ee)
[Harshit: Minor conflict resolved due to missing commit: 25d6a23e8d28
("filemap: Convert filemap_get_read_batch() to use a folio_batch") in
5.15.y]
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
---
 mm/filemap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/filemap.c b/mm/filemap.c
index c71e86c12418..cc86c5a127b9 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -2617,7 +2617,7 @@ ssize_t filemap_read(struct kiocb *iocb, struct iov_iter *iter,
 	if (unlikely(!iov_iter_count(iter)))
 		return 0;
 
-	iov_iter_truncate(iter, inode->i_sb->s_maxbytes);
+	iov_iter_truncate(iter, inode->i_sb->s_maxbytes - iocb->ki_pos);
 	pagevec_init(&pvec);
 
 	do {
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 5.15.y 6/6] ipv6: release nexthop on device removal
  2025-04-14 18:50 [PATCH 5.15.y 0/6] Few missing CVE fixes Harshit Mogalapalli
                   ` (4 preceding siblings ...)
  2025-04-14 18:50 ` [PATCH 5.15.y 5/6] filemap: Fix bounds checking in filemap_read() Harshit Mogalapalli
@ 2025-04-14 18:50 ` Harshit Mogalapalli
  2025-04-15 21:44   ` Sasha Levin
  5 siblings, 1 reply; 13+ messages in thread
From: Harshit Mogalapalli @ 2025-04-14 18:50 UTC (permalink / raw)
  To: stable
  Cc: vegard.nossum, Paolo Abeni, Eric Dumazet, David Ahern,
	Jakub Kicinski, Harshit Mogalapalli

From: Paolo Abeni <pabeni@redhat.com>

[ Upstream commit eb02688c5c45c3e7af7e71f036a7144f5639cbfe ]

The CI is hitting some aperiodic hangup at device removal time in the
pmtu.sh self-test:

unregister_netdevice: waiting for veth_A-R1 to become free. Usage count = 6
ref_tracker: veth_A-R1@ffff888013df15d8 has 1/5 users at
	dst_init+0x84/0x4a0
	dst_alloc+0x97/0x150
	ip6_dst_alloc+0x23/0x90
	ip6_rt_pcpu_alloc+0x1e6/0x520
	ip6_pol_route+0x56f/0x840
	fib6_rule_lookup+0x334/0x630
	ip6_route_output_flags+0x259/0x480
	ip6_dst_lookup_tail.constprop.0+0x5c2/0x940
	ip6_dst_lookup_flow+0x88/0x190
	udp_tunnel6_dst_lookup+0x2a7/0x4c0
	vxlan_xmit_one+0xbde/0x4a50 [vxlan]
	vxlan_xmit+0x9ad/0xf20 [vxlan]
	dev_hard_start_xmit+0x10e/0x360
	__dev_queue_xmit+0xf95/0x18c0
	arp_solicit+0x4a2/0xe00
	neigh_probe+0xaa/0xf0

While the first suspect is the dst_cache, explicitly tracking the dst
owing the last device reference via probes proved such dst is held by
the nexthop in the originating fib6_info.

Similar to commit f5b51fe804ec ("ipv6: route: purge exception on
removal"), we need to explicitly release the originating fib info when
disconnecting a to-be-removed device from a live ipv6 dst: move the
fib6_info cleanup into ip6_dst_ifdown().

Tested running:

./pmtu.sh cleanup_ipv6_exception

in a tight loop for more than 400 iterations with no spat, running an
unpatched kernel  I observed a splat every ~10 iterations.

Fixes: f88d8ea67fbd ("ipv6: Plumb support for nexthop object in a fib6_info")
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://patch.msgid.link/604c45c188c609b732286b47ac2a451a40f6cf6d.1730828007.git.pabeni@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit eb02688c5c45c3e7af7e71f036a7144f5639cbfe)
[Harshit: Resolved conflict due to missing commit: e5f80fcf869a ("ipv6:
give an IPv6 dev to blackhole_netdev") and commit: b4cb4a1391dc ("net:
use unrcu_pointer() helper") in linux-5.15.y]
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
---
 net/ipv6/route.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index f8b2fdaef67f..f30a5b7d93f4 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -377,6 +377,7 @@ static void ip6_dst_ifdown(struct dst_entry *dst, struct net_device *dev,
 	struct inet6_dev *idev = rt->rt6i_idev;
 	struct net_device *loopback_dev =
 		dev_net(dev)->loopback_dev;
+	struct fib6_info *from;
 
 	if (idev && idev->dev != loopback_dev) {
 		struct inet6_dev *loopback_idev = in6_dev_get(loopback_dev);
@@ -385,6 +386,8 @@ static void ip6_dst_ifdown(struct dst_entry *dst, struct net_device *dev,
 			in6_dev_put(idev);
 		}
 	}
+	from = xchg((__force struct fib6_info **)&rt->from, NULL);
+	fib6_info_release(from);
 }
 
 static bool __rt6_check_expired(const struct rt6_info *rt)
@@ -1443,7 +1446,6 @@ static DEFINE_SPINLOCK(rt6_exception_lock);
 static void rt6_remove_exception(struct rt6_exception_bucket *bucket,
 				 struct rt6_exception *rt6_ex)
 {
-	struct fib6_info *from;
 	struct net *net;
 
 	if (!bucket || !rt6_ex)
@@ -1455,8 +1457,6 @@ static void rt6_remove_exception(struct rt6_exception_bucket *bucket,
 	/* purge completely the exception to allow releasing the held resources:
 	 * some [sk] cache may keep the dst around for unlimited time
 	 */
-	from = xchg((__force struct fib6_info **)&rt6_ex->rt6i->from, NULL);
-	fib6_info_release(from);
 	dst_dev_put(&rt6_ex->rt6i->dst);
 
 	hlist_del_rcu(&rt6_ex->hlist);
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 5.15.y 2/6] bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq
  2025-04-14 18:50 ` [PATCH 5.15.y 2/6] bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq Harshit Mogalapalli
@ 2025-04-15 21:43   ` Sasha Levin
  0 siblings, 0 replies; 13+ messages in thread
From: Sasha Levin @ 2025-04-15 21:43 UTC (permalink / raw)
  To: stable; +Cc: Harshit Mogalapalli, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

✅ All tests passed successfully. No issues detected.
No action required from the submitter.

The upstream commit SHA1 provided is correct: 78cfd17142ef70599d6409cbd709d94b3da58659

WARNING: Author mismatch between patch and upstream commit:
Backport author: Harshit Mogalapalli<harshit.m.mogalapalli@oracle.com>
Commit author: Michal Schmidt<mschmidt@redhat.com>

Status in newer kernel trees:
6.14.y | Present (exact SHA1)
6.13.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: a658f011d89d)
6.1.y | Present (different SHA1: 84d2f2915218)

Note: The patch differs from the upstream commit:
---
1:  78cfd17142ef7 ! 1:  2baf62a035300 bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq
    @@ Metadata
      ## Commit message ##
         bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq
     
    +    commit 78cfd17142ef70599d6409cbd709d94b3da58659 upstream.
    +
         Undefined behavior is triggered when bnxt_qplib_alloc_init_hwq is called
         with hwq_attr->aux_depth != 0 and hwq_attr->aux_stride == 0.
         In that case, "roundup_pow_of_two(hwq_attr->aux_stride)" gets called.
    @@ Commit message
         Link: https://lore.kernel.org/r/20240507103929.30003-1-mschmidt@redhat.com
         Acked-by: Selvin Xavier <selvin.xavier@broadcom.com>
         Signed-off-by: Leon Romanovsky <leon@kernel.org>
    +    Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
    +    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    +    [Harshit: backport to 5.15.y, this is a clean cherrypick from 6.1.y
    +    commit ]
    +    Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
     
      ## drivers/infiniband/hw/bnxt_re/qplib_fp.c ##
     @@ drivers/infiniband/hw/bnxt_re/qplib_fp.c: int bnxt_qplib_create_qp(struct bnxt_qplib_res *res, struct bnxt_qplib_qp *qp)
    @@ drivers/infiniband/hw/bnxt_re/qplib_fp.c: int bnxt_qplib_create_qp(struct bnxt_q
     -	hwq_attr.aux_depth = bnxt_qplib_set_sq_size(sq, qp->wqe_mode);
     +	hwq_attr.aux_depth = psn_sz ? bnxt_qplib_set_sq_size(sq, qp->wqe_mode)
     +				    : 0;
    - 	/* Update msn tbl size */
    - 	if (BNXT_RE_HW_RETX(qp->dev_cap_flags) && psn_sz) {
    - 		hwq_attr.aux_depth = roundup_pow_of_two(bnxt_qplib_set_sq_size(sq, qp->wqe_mode));
    + 	hwq_attr.type = HWQ_TYPE_QUEUE;
    + 	rc = bnxt_qplib_alloc_init_hwq(&sq->hwq, &hwq_attr);
    + 	if (rc)
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y        |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 5.15.y 4/6] net: fix crash when config small gso_max_size/gso_ipv4_max_size
  2025-04-14 18:50 ` [PATCH 5.15.y 4/6] net: fix crash when config small gso_max_size/gso_ipv4_max_size Harshit Mogalapalli
@ 2025-04-15 21:43   ` Sasha Levin
  0 siblings, 0 replies; 13+ messages in thread
From: Sasha Levin @ 2025-04-15 21:43 UTC (permalink / raw)
  To: stable; +Cc: Harshit Mogalapalli, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

✅ All tests passed successfully. No issues detected.
No action required from the submitter.

The upstream commit SHA1 provided is correct: 9ab5cf19fb0e4680f95e506d6c544259bf1111c4

WARNING: Author mismatch between patch and upstream commit:
Backport author: Harshit Mogalapalli<harshit.m.mogalapalli@oracle.com>
Commit author: Wang Liang<wangliang74@huawei.com>

Status in newer kernel trees:
6.14.y | Present (exact SHA1)
6.13.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: ac5977001eee)
6.1.y | Present (different SHA1: e9365368b483)

Note: The patch differs from the upstream commit:
---
1:  9ab5cf19fb0e4 ! 1:  92a2aab3e8a99 net: fix crash when config small gso_max_size/gso_ipv4_max_size
    @@ Metadata
      ## Commit message ##
         net: fix crash when config small gso_max_size/gso_ipv4_max_size
     
    +    [ Upstream commit 9ab5cf19fb0e4680f95e506d6c544259bf1111c4 ]
    +
         Config a small gso_max_size/gso_ipv4_max_size will lead to an underflow
         in sk_dst_gso_max_size(), which may trigger a BUG_ON crash,
         because sk->sk_gso_max_size would be much bigger than device limits.
    @@ Commit message
         Reviewed-by: Eric Dumazet <edumazet@google.com>
         Link: https://patch.msgid.link/20241023035213.517386-1-wangliang74@huawei.com
         Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    +    [ Resolve minor conflicts to fix CVE-2024-50258 ]
    +    Signed-off-by: Bin Lan <bin.lan.cn@windriver.com>
    +    Signed-off-by: Sasha Levin <sashal@kernel.org>
    +    [Harshit: Clean cherrypick from 6.1.y commit]
    +    Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
     
      ## net/core/rtnetlink.c ##
     @@ net/core/rtnetlink.c: static const struct nla_policy ifla_policy[IFLA_MAX+1] = {
    @@ net/core/rtnetlink.c: static const struct nla_policy ifla_policy[IFLA_MAX+1] = {
      	[IFLA_PHYS_PORT_ID]	= { .type = NLA_BINARY, .len = MAX_PHYS_ITEM_ID_LEN },
      	[IFLA_CARRIER_CHANGES]	= { .type = NLA_U32 },  /* ignored */
      	[IFLA_PHYS_SWITCH_ID]	= { .type = NLA_BINARY, .len = MAX_PHYS_ITEM_ID_LEN },
    -@@ net/core/rtnetlink.c: static const struct nla_policy ifla_policy[IFLA_MAX+1] = {
    - 	[IFLA_TSO_MAX_SIZE]	= { .type = NLA_REJECT },
    - 	[IFLA_TSO_MAX_SEGS]	= { .type = NLA_REJECT },
    - 	[IFLA_ALLMULTI]		= { .type = NLA_REJECT },
    --	[IFLA_GSO_IPV4_MAX_SIZE]	= { .type = NLA_U32 },
    -+	[IFLA_GSO_IPV4_MAX_SIZE]	= NLA_POLICY_MIN(NLA_U32, MAX_TCP_HEADER + 1),
    - 	[IFLA_GRO_IPV4_MAX_SIZE]	= { .type = NLA_U32 },
    - };
    - 
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y        |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 5.15.y 1/6] net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup
  2025-04-14 18:50 ` [PATCH 5.15.y 1/6] net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup Harshit Mogalapalli
@ 2025-04-15 21:43   ` Sasha Levin
  0 siblings, 0 replies; 13+ messages in thread
From: Sasha Levin @ 2025-04-15 21:43 UTC (permalink / raw)
  To: stable; +Cc: Harshit Mogalapalli, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

✅ All tests passed successfully. No issues detected.
No action required from the submitter.

The upstream commit SHA1 provided is correct: b6ecc662037694488bfff7c9fd21c405df8411f2

WARNING: Author mismatch between patch and upstream commit:
Backport author: Harshit Mogalapalli<harshit.m.mogalapalli@oracle.com>
Commit author: Souradeep Chakrabarti<schakrabarti@linux.microsoft.com>

Status in newer kernel trees:
6.14.y | Present (exact SHA1)
6.13.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: 9e0bff4900b5)
6.1.y | Present (different SHA1: 9178eb8ebcd8)

Note: The patch differs from the upstream commit:
---
1:  b6ecc66203769 ! 1:  63ebacf9b41b2 net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup
    @@ Metadata
      ## Commit message ##
         net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup
     
    +    [ Upstream commit b6ecc662037694488bfff7c9fd21c405df8411f2 ]
    +
         Currently napi_disable() gets called during rxq and txq cleanup,
         even before napi is enabled and hrtimer is initialized. It causes
         kernel panic.
    @@ Commit message
         Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
         Reviewed-by: Shradha Gupta <shradhagupta@linux.microsoft.com>
         Signed-off-by: David S. Miller <davem@davemloft.net>
    +    (cherry picked from commit b6ecc662037694488bfff7c9fd21c405df8411f2)
    +    [Harshit: conflicts resolved due to missing commit: ed5356b53f07 ("net:
    +    mana: Add XDP support") and commit: d356abb95b98 ("net: mana: Add
    +    counter for XDP_TX") in 5.15.y]
    +    Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    +
    + ## drivers/net/ethernet/microsoft/mana/mana.h ##
    +@@ drivers/net/ethernet/microsoft/mana/mana.h: struct mana_txq {
    + 
    + 	atomic_t pending_sends;
    + 
    ++	bool napi_initialized;
    ++
    + 	struct mana_stats stats;
    + };
    + 
     
      ## drivers/net/ethernet/microsoft/mana/mana_en.c ##
     @@ drivers/net/ethernet/microsoft/mana/mana_en.c: static void mana_destroy_txq(struct mana_port_context *apc)
    @@ drivers/net/ethernet/microsoft/mana/mana_en.c: static int mana_create_txq(struct
      		memset(&spec, 0, sizeof(spec));
     @@ drivers/net/ethernet/microsoft/mana/mana_en.c: static int mana_create_txq(struct mana_port_context *apc,
      
    - 		netif_napi_add_tx(net, &cq->napi, mana_poll);
    + 		netif_tx_napi_add(net, &cq->napi, mana_poll, NAPI_POLL_WEIGHT);
      		napi_enable(&cq->napi);
     +		txq->napi_initialized = true;
      
    @@ drivers/net/ethernet/microsoft/mana/mana_en.c: static void mana_destroy_rxq(stru
      		napi_synchronize(napi);
      
     -	napi_disable(napi);
    +-	netif_napi_del(napi);
     +		napi_disable(napi);
      
     +		netif_napi_del(napi);
     +	}
    - 	xdp_rxq_info_unreg(&rxq->xdp_rxq);
    - 
    --	netif_napi_del(napi);
    --
      	mana_destroy_wq_obj(apc, GDMA_RQ, rxq->rxobj);
      
      	mana_deinit_cq(apc, &rxq->rx_cq);
    -
    - ## include/net/mana/mana.h ##
    -@@ include/net/mana/mana.h: struct mana_txq {
    - 
    - 	atomic_t pending_sends;
    - 
    -+	bool napi_initialized;
    -+
    - 	struct mana_stats_tx stats;
    - };
    - 
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-5.15.y       |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 5.15.y 5/6] filemap: Fix bounds checking in filemap_read()
  2025-04-14 18:50 ` [PATCH 5.15.y 5/6] filemap: Fix bounds checking in filemap_read() Harshit Mogalapalli
@ 2025-04-15 21:43   ` Sasha Levin
  0 siblings, 0 replies; 13+ messages in thread
From: Sasha Levin @ 2025-04-15 21:43 UTC (permalink / raw)
  To: stable; +Cc: Harshit Mogalapalli, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

✅ All tests passed successfully. No issues detected.
No action required from the submitter.

The upstream commit SHA1 provided is correct: ace149e0830c380ddfce7e466fe860ca502fe4ee

WARNING: Author mismatch between patch and upstream commit:
Backport author: Harshit Mogalapalli<harshit.m.mogalapalli@oracle.com>
Commit author: Trond Myklebust<trond.myklebust@hammerspace.com>

Status in newer kernel trees:
6.14.y | Present (exact SHA1)
6.13.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: a2746ab3bbc9)
6.1.y | Present (different SHA1: 26530b757c81)

Note: The patch differs from the upstream commit:
---
1:  ace149e0830c3 ! 1:  dea76eb0a8d6e filemap: Fix bounds checking in filemap_read()
    @@ Metadata
      ## Commit message ##
         filemap: Fix bounds checking in filemap_read()
     
    +    [ Upstream commit ace149e0830c380ddfce7e466fe860ca502fe4ee ]
    +
         If the caller supplies an iocb->ki_pos value that is close to the
         filesystem upper limit, and an iterator with a count that causes us to
         overflow that limit, then filemap_read() enters an infinite loop.
    @@ Commit message
         Tested-by: Mike Snitzer <snitzer@kernel.org>
         Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
         Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    +    (cherry picked from commit ace149e0830c380ddfce7e466fe860ca502fe4ee)
    +    [Harshit: Minor conflict resolved due to missing commit: 25d6a23e8d28
    +    ("filemap: Convert filemap_get_read_batch() to use a folio_batch") in
    +    5.15.y]
    +    Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
     
      ## mm/filemap.c ##
     @@ mm/filemap.c: ssize_t filemap_read(struct kiocb *iocb, struct iov_iter *iter,
    @@ mm/filemap.c: ssize_t filemap_read(struct kiocb *iocb, struct iov_iter *iter,
      
     -	iov_iter_truncate(iter, inode->i_sb->s_maxbytes);
     +	iov_iter_truncate(iter, inode->i_sb->s_maxbytes - iocb->ki_pos);
    - 	folio_batch_init(&fbatch);
    + 	pagevec_init(&pvec);
      
      	do {
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y        |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 5.15.y 3/6] phonet/pep: fix racy skb_queue_empty() use
  2025-04-14 18:50 ` [PATCH 5.15.y 3/6] phonet/pep: fix racy skb_queue_empty() use Harshit Mogalapalli
@ 2025-04-15 21:43   ` Sasha Levin
  0 siblings, 0 replies; 13+ messages in thread
From: Sasha Levin @ 2025-04-15 21:43 UTC (permalink / raw)
  To: stable; +Cc: Harshit Mogalapalli, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

✅ All tests passed successfully. No issues detected.
No action required from the submitter.

The upstream commit SHA1 provided is correct: 7d2a894d7f487dcb894df023e9d3014cf5b93fe5

WARNING: Author mismatch between patch and upstream commit:
Backport author: Harshit Mogalapalli<harshit.m.mogalapalli@oracle.com>
Commit author: Rémi Denis-Courmont<courmisch@gmail.com>

Status in newer kernel trees:
6.14.y | Present (exact SHA1)
6.13.y | Present (exact SHA1)
6.12.y | Present (exact SHA1)
6.6.y | Present (different SHA1: 0a9f558c72c4)
6.1.y | Present (different SHA1: 9d5523e065b5)

Note: The patch differs from the upstream commit:
---
1:  7d2a894d7f487 ! 1:  cf507fe643590 phonet/pep: fix racy skb_queue_empty() use
    @@ Metadata
      ## Commit message ##
         phonet/pep: fix racy skb_queue_empty() use
     
    +    [ Upstream commit 7d2a894d7f487dcb894df023e9d3014cf5b93fe5 ]
    +
         The receive queues are protected by their respective spin-lock, not
         the socket lock. This could lead to skb_peek() unexpectedly
         returning NULL or a pointer to an already dequeued socket buffer.
    @@ Commit message
         Signed-off-by: Rémi Denis-Courmont <courmisch@gmail.com>
         Link: https://lore.kernel.org/r/20240218081214.4806-2-remi@remlab.net
         Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    +    Signed-off-by: Sasha Levin <sashal@kernel.org>
    +    [Harshit: backport to 5.15.y, clean cherrypick from 6.1.y commit]
    +    Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
     
      ## net/phonet/pep.c ##
     @@ net/phonet/pep.c: static int pep_sock_enable(struct sock *sk, struct sockaddr *addr, int len)
    @@ net/phonet/pep.c: static int pep_sock_enable(struct sock *sk, struct sockaddr *a
     +	return len;
     +}
     +
    - static int pep_ioctl(struct sock *sk, int cmd, int *karg)
    + static int pep_ioctl(struct sock *sk, int cmd, unsigned long arg)
      {
      	struct pep_sock *pn = pep_sk(sk);
    -@@ net/phonet/pep.c: static int pep_ioctl(struct sock *sk, int cmd, int *karg)
    +@@ net/phonet/pep.c: static int pep_ioctl(struct sock *sk, int cmd, unsigned long arg)
      			break;
      		}
      
     -		lock_sock(sk);
     -		if (sock_flag(sk, SOCK_URGINLINE) &&
     -		    !skb_queue_empty(&pn->ctrlreq_queue))
    --			*karg = skb_peek(&pn->ctrlreq_queue)->len;
    +-			answ = skb_peek(&pn->ctrlreq_queue)->len;
     -		else if (!skb_queue_empty(&sk->sk_receive_queue))
    --			*karg = skb_peek(&sk->sk_receive_queue)->len;
    +-			answ = skb_peek(&sk->sk_receive_queue)->len;
     -		else
    --			*karg = 0;
    +-			answ = 0;
     -		release_sock(sk);
    -+		*karg = pep_first_packet_length(sk);
    - 		ret = 0;
    ++		answ = pep_first_packet_length(sk);
    + 		ret = put_user(answ, (int __user *)arg);
      		break;
      
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y        |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 5.15.y 6/6] ipv6: release nexthop on device removal
  2025-04-14 18:50 ` [PATCH 5.15.y 6/6] ipv6: release nexthop on device removal Harshit Mogalapalli
@ 2025-04-15 21:44   ` Sasha Levin
  0 siblings, 0 replies; 13+ messages in thread
From: Sasha Levin @ 2025-04-15 21:44 UTC (permalink / raw)
  To: stable; +Cc: Harshit Mogalapalli, Sasha Levin

[ Sasha's backport helper bot ]

Hi,

✅ All tests passed successfully. No issues detected.
No action required from the submitter.

The upstream commit SHA1 provided is correct: eb02688c5c45c3e7af7e71f036a7144f5639cbfe

WARNING: Author mismatch between patch and upstream commit:
Backport author: Harshit Mogalapalli<harshit.m.mogalapalli@oracle.com>
Commit author: Paolo Abeni<pabeni@redhat.com>

Status in newer kernel trees:
6.14.y | Present (exact SHA1)
6.13.y | Present (exact SHA1)
6.12.y | Present (different SHA1: 0e4c6faaef8a)
6.6.y | Present (different SHA1: 43e25adc8026)
6.1.y | Present (different SHA1: b2f26a27ea3f)

Note: The patch differs from the upstream commit:
---
1:  eb02688c5c45c ! 1:  47cc8122c9644 ipv6: release nexthop on device removal
    @@ Metadata
      ## Commit message ##
         ipv6: release nexthop on device removal
     
    +    [ Upstream commit eb02688c5c45c3e7af7e71f036a7144f5639cbfe ]
    +
         The CI is hitting some aperiodic hangup at device removal time in the
         pmtu.sh self-test:
     
    @@ Commit message
         Reviewed-by: David Ahern <dsahern@kernel.org>
         Link: https://patch.msgid.link/604c45c188c609b732286b47ac2a451a40f6cf6d.1730828007.git.pabeni@redhat.com
         Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    +    (cherry picked from commit eb02688c5c45c3e7af7e71f036a7144f5639cbfe)
    +    [Harshit: Resolved conflict due to missing commit: e5f80fcf869a ("ipv6:
    +    give an IPv6 dev to blackhole_netdev") and commit: b4cb4a1391dc ("net:
    +    use unrcu_pointer() helper") in linux-5.15.y]
    +    Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
     
      ## net/ipv6/route.c ##
    -@@ net/ipv6/route.c: static void ip6_dst_ifdown(struct dst_entry *dst, struct net_device *dev)
    - {
    - 	struct rt6_info *rt = dst_rt6_info(dst);
    +@@ net/ipv6/route.c: static void ip6_dst_ifdown(struct dst_entry *dst, struct net_device *dev,
      	struct inet6_dev *idev = rt->rt6i_idev;
    + 	struct net_device *loopback_dev =
    + 		dev_net(dev)->loopback_dev;
     +	struct fib6_info *from;
      
    - 	if (idev && idev->dev != blackhole_netdev) {
    - 		struct inet6_dev *blackhole_idev = in6_dev_get(blackhole_netdev);
    -@@ net/ipv6/route.c: static void ip6_dst_ifdown(struct dst_entry *dst, struct net_device *dev)
    + 	if (idev && idev->dev != loopback_dev) {
    + 		struct inet6_dev *loopback_idev = in6_dev_get(loopback_dev);
    +@@ net/ipv6/route.c: static void ip6_dst_ifdown(struct dst_entry *dst, struct net_device *dev,
      			in6_dev_put(idev);
      		}
      	}
    -+	from = unrcu_pointer(xchg(&rt->from, NULL));
    ++	from = xchg((__force struct fib6_info **)&rt->from, NULL);
     +	fib6_info_release(from);
      }
      
    @@ net/ipv6/route.c: static void rt6_remove_exception(struct rt6_exception_bucket *
      	/* purge completely the exception to allow releasing the held resources:
      	 * some [sk] cache may keep the dst around for unlimited time
      	 */
    --	from = unrcu_pointer(xchg(&rt6_ex->rt6i->from, NULL));
    +-	from = xchg((__force struct fib6_info **)&rt6_ex->rt6i->from, NULL);
     -	fib6_info_release(from);
      	dst_dev_put(&rt6_ex->rt6i->dst);
      
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y        |  Success    |  Success   |

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2025-04-15 21:44 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-14 18:50 [PATCH 5.15.y 0/6] Few missing CVE fixes Harshit Mogalapalli
2025-04-14 18:50 ` [PATCH 5.15.y 1/6] net: mana: Fix error handling in mana_create_txq/rxq's NAPI cleanup Harshit Mogalapalli
2025-04-15 21:43   ` Sasha Levin
2025-04-14 18:50 ` [PATCH 5.15.y 2/6] bnxt_re: avoid shift undefined behavior in bnxt_qplib_alloc_init_hwq Harshit Mogalapalli
2025-04-15 21:43   ` Sasha Levin
2025-04-14 18:50 ` [PATCH 5.15.y 3/6] phonet/pep: fix racy skb_queue_empty() use Harshit Mogalapalli
2025-04-15 21:43   ` Sasha Levin
2025-04-14 18:50 ` [PATCH 5.15.y 4/6] net: fix crash when config small gso_max_size/gso_ipv4_max_size Harshit Mogalapalli
2025-04-15 21:43   ` Sasha Levin
2025-04-14 18:50 ` [PATCH 5.15.y 5/6] filemap: Fix bounds checking in filemap_read() Harshit Mogalapalli
2025-04-15 21:43   ` Sasha Levin
2025-04-14 18:50 ` [PATCH 5.15.y 6/6] ipv6: release nexthop on device removal Harshit Mogalapalli
2025-04-15 21:44   ` Sasha Levin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.