+++ /dev/null
-From 9119ceb76e987c2ec2b549ea100e3268ce3a1c7c Mon Sep 17 00:00:00 2001
-From: Tze Yee Ng <tze.yee.ng@altera.com>
-Date: Wed, 24 Jun 2026 03:06:35 -0700
-Subject: firmware: stratix10-svc: fix memory leaks and list corruption bugs
-
-From: Tze Yee Ng <tze.yee.ng@altera.com>
-
-commit 9119ceb76e987c2ec2b549ea100e3268ce3a1c7c upstream.
-
-Fix a memory leak when gen_pool_alloc() fails by freeing pmem on the error
-path. Switch pmem allocation from devm_kzalloc() to kzalloc() with
-explicit kfree() in the free path to match its list-managed lifetime.
-Remove the erroneous list_del(&svc_data_mem) which corrupted the list head
-on failed lookups.
-
-Fixes: 7ca5ce896524 ("firmware: add Intel Stratix10 service layer driver")
-Cc: stable@vger.kernel.org # 5.0+
-Signed-off-by: Tze Yee Ng <tze.yee.ng@altera.com>
-Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/firmware/stratix10-svc.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
---- a/drivers/firmware/stratix10-svc.c
-+++ b/drivers/firmware/stratix10-svc.c
-@@ -1065,14 +1065,16 @@ void *stratix10_svc_allocate_memory(stru
- struct gen_pool *genpool = chan->ctrl->genpool;
- size_t s = roundup(size, 1 << genpool->min_alloc_order);
-
-- pmem = devm_kzalloc(chan->ctrl->dev, sizeof(*pmem), GFP_KERNEL);
-+ pmem = kzalloc_obj(*pmem);
- if (!pmem)
- return ERR_PTR(-ENOMEM);
-
- guard(mutex)(&svc_mem_lock);
- va = gen_pool_alloc(genpool, s);
-- if (!va)
-+ if (!va) {
-+ kfree(pmem);
- return ERR_PTR(-ENOMEM);
-+ }
-
- memset((void *)va, 0, s);
- pa = gen_pool_virt_to_phys(genpool, va);
-@@ -1098,6 +1100,7 @@ EXPORT_SYMBOL_GPL(stratix10_svc_allocate
- void stratix10_svc_free_memory(struct stratix10_svc_chan *chan, void *kaddr)
- {
- struct stratix10_svc_data_mem *pmem;
-+
- guard(mutex)(&svc_mem_lock);
-
- list_for_each_entry(pmem, &svc_data_mem, node)
-@@ -1106,10 +1109,9 @@ void stratix10_svc_free_memory(struct st
- (unsigned long)kaddr, pmem->size);
- pmem->vaddr = NULL;
- list_del(&pmem->node);
-+ kfree(pmem);
- return;
- }
--
-- list_del(&svc_data_mem);
- }
- EXPORT_SYMBOL_GPL(stratix10_svc_free_memory);
-
binfmt_misc-set-have_execfd-only-once-the-interpreter-is-opened.patch
platform-loongarch-laptop-explicitly-reset-bl_powered-state-when-suspend.patch
cdrom-fix-stack-out-of-bounds-read-in-cdromvolctrl.patch
-firmware-stratix10-svc-fix-memory-leaks-and-list-corruption-bugs.patch
x86-boot-compressed-disable-jump-tables.patch
comedi-comedi_parport-deal-with-premature-interrupt.patch
serial-sc16is7xx-implement-gpio-get_direction-callback.patch
+++ /dev/null
-From 9119ceb76e987c2ec2b549ea100e3268ce3a1c7c Mon Sep 17 00:00:00 2001
-From: Tze Yee Ng <tze.yee.ng@altera.com>
-Date: Wed, 24 Jun 2026 03:06:35 -0700
-Subject: firmware: stratix10-svc: fix memory leaks and list corruption bugs
-
-From: Tze Yee Ng <tze.yee.ng@altera.com>
-
-commit 9119ceb76e987c2ec2b549ea100e3268ce3a1c7c upstream.
-
-Fix a memory leak when gen_pool_alloc() fails by freeing pmem on the error
-path. Switch pmem allocation from devm_kzalloc() to kzalloc() with
-explicit kfree() in the free path to match its list-managed lifetime.
-Remove the erroneous list_del(&svc_data_mem) which corrupted the list head
-on failed lookups.
-
-Fixes: 7ca5ce896524 ("firmware: add Intel Stratix10 service layer driver")
-Cc: stable@vger.kernel.org # 5.0+
-Signed-off-by: Tze Yee Ng <tze.yee.ng@altera.com>
-Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/firmware/stratix10-svc.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
---- a/drivers/firmware/stratix10-svc.c
-+++ b/drivers/firmware/stratix10-svc.c
-@@ -1083,14 +1083,16 @@ void *stratix10_svc_allocate_memory(stru
- struct gen_pool *genpool = chan->ctrl->genpool;
- size_t s = roundup(size, 1 << genpool->min_alloc_order);
-
-- pmem = devm_kzalloc(chan->ctrl->dev, sizeof(*pmem), GFP_KERNEL);
-+ pmem = kzalloc_obj(*pmem);
- if (!pmem)
- return ERR_PTR(-ENOMEM);
-
- guard(mutex)(&svc_mem_lock);
- va = gen_pool_alloc(genpool, s);
-- if (!va)
-+ if (!va) {
-+ kfree(pmem);
- return ERR_PTR(-ENOMEM);
-+ }
-
- memset((void *)va, 0, s);
- pa = gen_pool_virt_to_phys(genpool, va);
-@@ -1116,6 +1118,7 @@ EXPORT_SYMBOL_GPL(stratix10_svc_allocate
- void stratix10_svc_free_memory(struct stratix10_svc_chan *chan, void *kaddr)
- {
- struct stratix10_svc_data_mem *pmem;
-+
- guard(mutex)(&svc_mem_lock);
-
- list_for_each_entry(pmem, &svc_data_mem, node)
-@@ -1124,10 +1127,9 @@ void stratix10_svc_free_memory(struct st
- (unsigned long)kaddr, pmem->size);
- pmem->vaddr = NULL;
- list_del(&pmem->node);
-+ kfree(pmem);
- return;
- }
--
-- list_del(&svc_data_mem);
- }
- EXPORT_SYMBOL_GPL(stratix10_svc_free_memory);
-
platform-loongarch-laptop-explicitly-reset-bl_powered-state-when-suspend.patch
loongarch-fix-oops-during-single-step-debugging.patch
cdrom-fix-stack-out-of-bounds-read-in-cdromvolctrl.patch
-firmware-stratix10-svc-fix-memory-leaks-and-list-corruption-bugs.patch
x86-boot-compressed-disable-jump-tables.patch
comedi-comedi_parport-deal-with-premature-interrupt.patch
serial-sc16is7xx-implement-gpio-get_direction-callback.patch