From: Sasha Levin Date: Tue, 14 Apr 2026 17:25:00 +0000 (-0400) Subject: drop 5 patches from queue-5.15 and queue-5.10 based on RC review feedback X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Fmaster;p=thirdparty%2Fkernel%2Fstable-queue.git drop 5 patches from queue-5.15 and queue-5.10 based on RC review feedback Dropped patches: - "bus: omap-ocp2scp: Convert to platform remove callback returning void" Queues: 5.15, 5.10 Reason: build failure on ARM — .remove_new field not available before v6.3 Report: https://lore.kernel.org/stable/39e878af-7418-4538-9e1f-8b62de3d1e3f@nvidia.com/ - "bus: omap-ocp2scp: fix OF populate on driver rebind" [dependency] Queues: 5.15, 5.10 Reason: depends on dropped patch above (Stable-dep-of: 5eb63e9bb65d) - "octeontx2-af: devlink health: use retained error fmsg API" Queues: 5.15 Reason: missing dependency — struct devlink_fmsg has no 'err' field in 5.15 Report: https://lore.kernel.org/stable/d4d9973d-ef50-4b4c-9c70-44d7f30f1201@oracle.com/ - "octeontx2-af: devlink: fix NIX RAS reporter to use RAS interrupt status" [dependency] Queues: 5.15 Reason: depends on dropped patch above (Stable-dep-of: 87f7dff3ec75) - "scsi: core: Fix error handling for scsi_alloc_sdev()" Queues: 5.15 Reason: missing dependency — put_device() called before device_initialize() without 21008cabc5d9 Report: https://lore.kernel.org/stable/ed7ab018-9a77-4e8f-8480-cdd92c4758c5@oracle.com/ --- diff --git a/queue-5.10/bus-omap-ocp2scp-convert-to-platform-remove-callback.patch b/queue-5.10/bus-omap-ocp2scp-convert-to-platform-remove-callback.patch deleted file mode 100644 index 945c6c2e3a..0000000000 --- a/queue-5.10/bus-omap-ocp2scp-convert-to-platform-remove-callback.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 76576ce6682202789cc90ab4f56f4625c1eb43dd Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 9 Nov 2023 21:28:32 +0100 -Subject: bus: omap-ocp2scp: Convert to platform remove callback returning void -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Uwe Kleine-König - -[ Upstream commit 854f89a5b56354ba4135e0e1f0e57ab2caee59ee ] - -The .remove() callback for a platform driver returns an int which makes -many driver authors wrongly assume it's possible to do error handling by -returning an error code. However the value returned is ignored (apart -from emitting a warning) and this typically results in resource leaks. - -To improve here there is a quest to make the remove callback return -void. In the first step of this quest all drivers are converted to -.remove_new(), which already returns void. Eventually after all drivers -are converted, .remove_new() will be renamed to .remove(). - -Trivially convert this driver from always returning zero in the remove -callback to the void returning variant. - -Link: https://lore.kernel.org/r/20231109202830.4124591-3-u.kleine-koenig@pengutronix.de -Signed-off-by: Uwe Kleine-König -Stable-dep-of: 5eb63e9bb65d ("bus: omap-ocp2scp: fix OF populate on driver rebind") -Signed-off-by: Sasha Levin ---- - drivers/bus/omap-ocp2scp.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/drivers/bus/omap-ocp2scp.c b/drivers/bus/omap-ocp2scp.c -index e02d0656242b8..7d7479ba0a759 100644 ---- a/drivers/bus/omap-ocp2scp.c -+++ b/drivers/bus/omap-ocp2scp.c -@@ -84,12 +84,10 @@ static int omap_ocp2scp_probe(struct platform_device *pdev) - return ret; - } - --static int omap_ocp2scp_remove(struct platform_device *pdev) -+static void omap_ocp2scp_remove(struct platform_device *pdev) - { - pm_runtime_disable(&pdev->dev); - device_for_each_child(&pdev->dev, NULL, ocp2scp_remove_devices); -- -- return 0; - } - - #ifdef CONFIG_OF -@@ -103,7 +101,7 @@ MODULE_DEVICE_TABLE(of, omap_ocp2scp_id_table); - - static struct platform_driver omap_ocp2scp_driver = { - .probe = omap_ocp2scp_probe, -- .remove = omap_ocp2scp_remove, -+ .remove_new = omap_ocp2scp_remove, - .driver = { - .name = "omap-ocp2scp", - .of_match_table = of_match_ptr(omap_ocp2scp_id_table), --- -2.51.0 - diff --git a/queue-5.10/bus-omap-ocp2scp-fix-of-populate-on-driver-rebind.patch b/queue-5.10/bus-omap-ocp2scp-fix-of-populate-on-driver-rebind.patch deleted file mode 100644 index 1015efaf3f..0000000000 --- a/queue-5.10/bus-omap-ocp2scp-fix-of-populate-on-driver-rebind.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 32d30b8d8607eeb29992f09d25982520a059dfcb Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 19 Dec 2025 12:01:19 +0100 -Subject: bus: omap-ocp2scp: fix OF populate on driver rebind - -From: Johan Hovold - -[ Upstream commit 5eb63e9bb65d88abde647ced50fe6ad40c11de1a ] - -Since commit c6e126de43e7 ("of: Keep track of populated platform -devices") child devices will not be created by of_platform_populate() -if the devices had previously been deregistered individually so that the -OF_POPULATED flag is still set in the corresponding OF nodes. - -Switch to using of_platform_depopulate() instead of open coding so that -the child devices are created if the driver is rebound. - -Fixes: c6e126de43e7 ("of: Keep track of populated platform devices") -Cc: stable@vger.kernel.org # 3.16 -Signed-off-by: Johan Hovold -Link: https://patch.msgid.link/20251219110119.23507-1-johan@kernel.org -Signed-off-by: Kevin Hilman -Signed-off-by: Sasha Levin ---- - drivers/bus/omap-ocp2scp.c | 13 ++----------- - 1 file changed, 2 insertions(+), 11 deletions(-) - -diff --git a/drivers/bus/omap-ocp2scp.c b/drivers/bus/omap-ocp2scp.c -index 7d7479ba0a759..87e290a3dc817 100644 ---- a/drivers/bus/omap-ocp2scp.c -+++ b/drivers/bus/omap-ocp2scp.c -@@ -17,15 +17,6 @@ - #define OCP2SCP_TIMING 0x18 - #define SYNC2_MASK 0xf - --static int ocp2scp_remove_devices(struct device *dev, void *c) --{ -- struct platform_device *pdev = to_platform_device(dev); -- -- platform_device_unregister(pdev); -- -- return 0; --} -- - static int omap_ocp2scp_probe(struct platform_device *pdev) - { - int ret; -@@ -79,7 +70,7 @@ static int omap_ocp2scp_probe(struct platform_device *pdev) - pm_runtime_disable(&pdev->dev); - - err0: -- device_for_each_child(&pdev->dev, NULL, ocp2scp_remove_devices); -+ of_platform_depopulate(&pdev->dev); - - return ret; - } -@@ -87,7 +78,7 @@ static int omap_ocp2scp_probe(struct platform_device *pdev) - static void omap_ocp2scp_remove(struct platform_device *pdev) - { - pm_runtime_disable(&pdev->dev); -- device_for_each_child(&pdev->dev, NULL, ocp2scp_remove_devices); -+ of_platform_depopulate(&pdev->dev); - } - - #ifdef CONFIG_OF --- -2.51.0 - diff --git a/queue-5.10/series b/queue-5.10/series index ea3dcccf61..f4314592cc 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -9,8 +9,6 @@ arm-omap2-fix-reference-count-leaks-in-omap_control_.patch bus-fsl-mc-replace-snprintf-and-sprintf-with-sysfs_e.patch bus-fsl-mc-fix-use-after-free-in-driver_override_sho.patch drm-tegra-dsi-fix-device-leak-on-probe.patch -bus-omap-ocp2scp-convert-to-platform-remove-callback.patch -bus-omap-ocp2scp-fix-of-populate-on-driver-rebind.patch clk-tegra-tegra124-emc-fix-device-leak-on-set_rate.patch alsa-hda-conexant-add-quirk-for-hp-zbook-studio-g4.patch hwmon-max16065-use-read-write_once-to-avoid-compiler.patch diff --git a/queue-5.15/bus-omap-ocp2scp-convert-to-platform-remove-callback.patch b/queue-5.15/bus-omap-ocp2scp-convert-to-platform-remove-callback.patch deleted file mode 100644 index e0236253f0..0000000000 --- a/queue-5.15/bus-omap-ocp2scp-convert-to-platform-remove-callback.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 427524382d4aeb9b90dcd8bf93b2d37361ab818c Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 9 Nov 2023 21:28:32 +0100 -Subject: bus: omap-ocp2scp: Convert to platform remove callback returning void -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Uwe Kleine-König - -[ Upstream commit 854f89a5b56354ba4135e0e1f0e57ab2caee59ee ] - -The .remove() callback for a platform driver returns an int which makes -many driver authors wrongly assume it's possible to do error handling by -returning an error code. However the value returned is ignored (apart -from emitting a warning) and this typically results in resource leaks. - -To improve here there is a quest to make the remove callback return -void. In the first step of this quest all drivers are converted to -.remove_new(), which already returns void. Eventually after all drivers -are converted, .remove_new() will be renamed to .remove(). - -Trivially convert this driver from always returning zero in the remove -callback to the void returning variant. - -Link: https://lore.kernel.org/r/20231109202830.4124591-3-u.kleine-koenig@pengutronix.de -Signed-off-by: Uwe Kleine-König -Stable-dep-of: 5eb63e9bb65d ("bus: omap-ocp2scp: fix OF populate on driver rebind") -Signed-off-by: Sasha Levin ---- - drivers/bus/omap-ocp2scp.c | 6 ++---- - 1 file changed, 2 insertions(+), 4 deletions(-) - -diff --git a/drivers/bus/omap-ocp2scp.c b/drivers/bus/omap-ocp2scp.c -index e02d0656242b8..7d7479ba0a759 100644 ---- a/drivers/bus/omap-ocp2scp.c -+++ b/drivers/bus/omap-ocp2scp.c -@@ -84,12 +84,10 @@ static int omap_ocp2scp_probe(struct platform_device *pdev) - return ret; - } - --static int omap_ocp2scp_remove(struct platform_device *pdev) -+static void omap_ocp2scp_remove(struct platform_device *pdev) - { - pm_runtime_disable(&pdev->dev); - device_for_each_child(&pdev->dev, NULL, ocp2scp_remove_devices); -- -- return 0; - } - - #ifdef CONFIG_OF -@@ -103,7 +101,7 @@ MODULE_DEVICE_TABLE(of, omap_ocp2scp_id_table); - - static struct platform_driver omap_ocp2scp_driver = { - .probe = omap_ocp2scp_probe, -- .remove = omap_ocp2scp_remove, -+ .remove_new = omap_ocp2scp_remove, - .driver = { - .name = "omap-ocp2scp", - .of_match_table = of_match_ptr(omap_ocp2scp_id_table), --- -2.51.0 - diff --git a/queue-5.15/bus-omap-ocp2scp-fix-of-populate-on-driver-rebind.patch b/queue-5.15/bus-omap-ocp2scp-fix-of-populate-on-driver-rebind.patch deleted file mode 100644 index 8bf17bc6a6..0000000000 --- a/queue-5.15/bus-omap-ocp2scp-fix-of-populate-on-driver-rebind.patch +++ /dev/null @@ -1,68 +0,0 @@ -From fedd7cf1f800b62554dfe502ed13119305cb5c13 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Fri, 19 Dec 2025 12:01:19 +0100 -Subject: bus: omap-ocp2scp: fix OF populate on driver rebind - -From: Johan Hovold - -[ Upstream commit 5eb63e9bb65d88abde647ced50fe6ad40c11de1a ] - -Since commit c6e126de43e7 ("of: Keep track of populated platform -devices") child devices will not be created by of_platform_populate() -if the devices had previously been deregistered individually so that the -OF_POPULATED flag is still set in the corresponding OF nodes. - -Switch to using of_platform_depopulate() instead of open coding so that -the child devices are created if the driver is rebound. - -Fixes: c6e126de43e7 ("of: Keep track of populated platform devices") -Cc: stable@vger.kernel.org # 3.16 -Signed-off-by: Johan Hovold -Link: https://patch.msgid.link/20251219110119.23507-1-johan@kernel.org -Signed-off-by: Kevin Hilman -Signed-off-by: Sasha Levin ---- - drivers/bus/omap-ocp2scp.c | 13 ++----------- - 1 file changed, 2 insertions(+), 11 deletions(-) - -diff --git a/drivers/bus/omap-ocp2scp.c b/drivers/bus/omap-ocp2scp.c -index 7d7479ba0a759..87e290a3dc817 100644 ---- a/drivers/bus/omap-ocp2scp.c -+++ b/drivers/bus/omap-ocp2scp.c -@@ -17,15 +17,6 @@ - #define OCP2SCP_TIMING 0x18 - #define SYNC2_MASK 0xf - --static int ocp2scp_remove_devices(struct device *dev, void *c) --{ -- struct platform_device *pdev = to_platform_device(dev); -- -- platform_device_unregister(pdev); -- -- return 0; --} -- - static int omap_ocp2scp_probe(struct platform_device *pdev) - { - int ret; -@@ -79,7 +70,7 @@ static int omap_ocp2scp_probe(struct platform_device *pdev) - pm_runtime_disable(&pdev->dev); - - err0: -- device_for_each_child(&pdev->dev, NULL, ocp2scp_remove_devices); -+ of_platform_depopulate(&pdev->dev); - - return ret; - } -@@ -87,7 +78,7 @@ static int omap_ocp2scp_probe(struct platform_device *pdev) - static void omap_ocp2scp_remove(struct platform_device *pdev) - { - pm_runtime_disable(&pdev->dev); -- device_for_each_child(&pdev->dev, NULL, ocp2scp_remove_devices); -+ of_platform_depopulate(&pdev->dev); - } - - #ifdef CONFIG_OF --- -2.51.0 - diff --git a/queue-5.15/octeontx2-af-devlink-fix-nix-ras-reporter-to-use-ras.patch b/queue-5.15/octeontx2-af-devlink-fix-nix-ras-reporter-to-use-ras.patch deleted file mode 100644 index b95e772619..0000000000 --- a/queue-5.15/octeontx2-af-devlink-fix-nix-ras-reporter-to-use-ras.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 87256b879d4c37ae6204013327e9e77672ed7899 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 10 Mar 2026 11:48:17 -0700 -Subject: octeontx2-af: devlink: fix NIX RAS reporter to use RAS interrupt - status - -From: Alok Tiwari - -[ Upstream commit 87f7dff3ec75b91def0024ebaaf732457f47a63b ] - -The NIX RAS health report path uses nix_af_rvu_err when handling the -NIX_AF_RVU_RAS case, so the report prints the ERR interrupt status rather -than the RAS interrupt status. - -Use nix_af_rvu_ras for the NIX_AF_RVU_RAS report. - -Fixes: 5ed66306eab6 ("octeontx2-af: Add devlink health reporters for NIX") -Signed-off-by: Alok Tiwari -Link: https://patch.msgid.link/20260310184824.1183651-2-alok.a.tiwari@oracle.com -Signed-off-by: Jakub Kicinski -Signed-off-by: Sasha Levin ---- - drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c -index 8a63277aab1af..4991fafd04bad 100644 ---- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c -+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c -@@ -326,10 +326,10 @@ static int rvu_nix_report_show(struct devlink_fmsg *fmsg, void *ctx, - rvu_report_pair_end(fmsg); - break; - case NIX_AF_RVU_RAS: -- intr_val = nix_event_context->nix_af_rvu_err; -+ intr_val = nix_event_context->nix_af_rvu_ras; - rvu_report_pair_start(fmsg, "NIX_AF_RAS"); - devlink_fmsg_u64_pair_put(fmsg, "\tNIX RAS Interrupt Reg ", -- nix_event_context->nix_af_rvu_err); -+ nix_event_context->nix_af_rvu_ras); - devlink_fmsg_string_put(fmsg, "\n\tPoison Data on:"); - if (intr_val & BIT_ULL(34)) - devlink_fmsg_string_put(fmsg, "\n\tNIX_AQ_INST_S"); --- -2.51.0 - diff --git a/queue-5.15/octeontx2-af-devlink-health-use-retained-error-fmsg-.patch b/queue-5.15/octeontx2-af-devlink-health-use-retained-error-fmsg-.patch deleted file mode 100644 index 8da3bbc93e..0000000000 --- a/queue-5.15/octeontx2-af-devlink-health-use-retained-error-fmsg-.patch +++ /dev/null @@ -1,550 +0,0 @@ -From b4f7a750e8fc4dd71b7cec0d80d902c46eb10cbe Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 18 Oct 2023 22:26:42 +0200 -Subject: octeontx2-af: devlink health: use retained error fmsg API - -From: Przemek Kitszel - -[ Upstream commit d8cf03fca3411de8a493dae5e9fcf815a4f0977e ] - -Drop unneeded error checking. - -devlink_fmsg_*() family of functions is now retaining errors, -so there is no need to check for them after each call. - -Reviewed-by: Jesse Brandeburg -Reviewed-by: Jiri Pirko -Signed-off-by: Przemek Kitszel -Reviewed-by: Simon Horman -Signed-off-by: David S. Miller -Stable-dep-of: 87f7dff3ec75 ("octeontx2-af: devlink: fix NIX RAS reporter to use RAS interrupt status") -Signed-off-by: Sasha Levin ---- - .../marvell/octeontx2/af/rvu_devlink.c | 464 +++++------------- - 1 file changed, 133 insertions(+), 331 deletions(-) - -diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c -index c3da400e87eba..8a63277aab1af 100644 ---- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c -+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c -@@ -13,26 +13,16 @@ - - #define DRV_NAME "octeontx2-af" - --static int rvu_report_pair_start(struct devlink_fmsg *fmsg, const char *name) -+static void rvu_report_pair_start(struct devlink_fmsg *fmsg, const char *name) - { -- int err; -- -- err = devlink_fmsg_pair_nest_start(fmsg, name); -- if (err) -- return err; -- -- return devlink_fmsg_obj_nest_start(fmsg); -+ devlink_fmsg_pair_nest_start(fmsg, name); -+ devlink_fmsg_obj_nest_start(fmsg); - } - --static int rvu_report_pair_end(struct devlink_fmsg *fmsg) -+static void rvu_report_pair_end(struct devlink_fmsg *fmsg) - { -- int err; -- -- err = devlink_fmsg_obj_nest_end(fmsg); -- if (err) -- return err; -- -- return devlink_fmsg_pair_nest_end(fmsg); -+ devlink_fmsg_obj_nest_end(fmsg); -+ devlink_fmsg_pair_nest_end(fmsg); - } - - static bool rvu_common_request_irq(struct rvu *rvu, int offset, -@@ -283,175 +273,81 @@ static int rvu_nix_report_show(struct devlink_fmsg *fmsg, void *ctx, - { - struct rvu_nix_event_ctx *nix_event_context; - u64 intr_val; -- int err; - - nix_event_context = ctx; - switch (health_reporter) { - case NIX_AF_RVU_INTR: - intr_val = nix_event_context->nix_af_rvu_int; -- err = rvu_report_pair_start(fmsg, "NIX_AF_RVU"); -- if (err) -- return err; -- err = devlink_fmsg_u64_pair_put(fmsg, "\tNIX RVU Interrupt Reg ", -- nix_event_context->nix_af_rvu_int); -- if (err) -- return err; -- if (intr_val & BIT_ULL(0)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tUnmap Slot Error"); -- if (err) -- return err; -- } -- err = rvu_report_pair_end(fmsg); -- if (err) -- return err; -+ rvu_report_pair_start(fmsg, "NIX_AF_RVU"); -+ devlink_fmsg_u64_pair_put(fmsg, "\tNIX RVU Interrupt Reg ", -+ nix_event_context->nix_af_rvu_int); -+ if (intr_val & BIT_ULL(0)) -+ devlink_fmsg_string_put(fmsg, "\n\tUnmap Slot Error"); -+ rvu_report_pair_end(fmsg); - break; - case NIX_AF_RVU_GEN: - intr_val = nix_event_context->nix_af_rvu_gen; -- err = rvu_report_pair_start(fmsg, "NIX_AF_GENERAL"); -- if (err) -- return err; -- err = devlink_fmsg_u64_pair_put(fmsg, "\tNIX General Interrupt Reg ", -- nix_event_context->nix_af_rvu_gen); -- if (err) -- return err; -- if (intr_val & BIT_ULL(0)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tRx multicast pkt drop"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(1)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tRx mirror pkt drop"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(4)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tSMQ flush done"); -- if (err) -- return err; -- } -- err = rvu_report_pair_end(fmsg); -- if (err) -- return err; -+ rvu_report_pair_start(fmsg, "NIX_AF_GENERAL"); -+ devlink_fmsg_u64_pair_put(fmsg, "\tNIX General Interrupt Reg ", -+ nix_event_context->nix_af_rvu_gen); -+ if (intr_val & BIT_ULL(0)) -+ devlink_fmsg_string_put(fmsg, "\n\tRx multicast pkt drop"); -+ if (intr_val & BIT_ULL(1)) -+ devlink_fmsg_string_put(fmsg, "\n\tRx mirror pkt drop"); -+ if (intr_val & BIT_ULL(4)) -+ devlink_fmsg_string_put(fmsg, "\n\tSMQ flush done"); -+ rvu_report_pair_end(fmsg); - break; - case NIX_AF_RVU_ERR: - intr_val = nix_event_context->nix_af_rvu_err; -- err = rvu_report_pair_start(fmsg, "NIX_AF_ERR"); -- if (err) -- return err; -- err = devlink_fmsg_u64_pair_put(fmsg, "\tNIX Error Interrupt Reg ", -- nix_event_context->nix_af_rvu_err); -- if (err) -- return err; -- if (intr_val & BIT_ULL(14)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFault on NIX_AQ_INST_S read"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(13)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFault on NIX_AQ_RES_S write"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(12)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tAQ Doorbell Error"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(6)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tRx on unmapped PF_FUNC"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(5)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tRx multicast replication error"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(4)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFault on NIX_RX_MCE_S read"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(3)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFault on multicast WQE read"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(2)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFault on mirror WQE read"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(1)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFault on mirror pkt write"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(0)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFault on multicast pkt write"); -- if (err) -- return err; -- } -- err = rvu_report_pair_end(fmsg); -- if (err) -- return err; -+ rvu_report_pair_start(fmsg, "NIX_AF_ERR"); -+ devlink_fmsg_u64_pair_put(fmsg, "\tNIX Error Interrupt Reg ", -+ nix_event_context->nix_af_rvu_err); -+ if (intr_val & BIT_ULL(14)) -+ devlink_fmsg_string_put(fmsg, "\n\tFault on NIX_AQ_INST_S read"); -+ if (intr_val & BIT_ULL(13)) -+ devlink_fmsg_string_put(fmsg, "\n\tFault on NIX_AQ_RES_S write"); -+ if (intr_val & BIT_ULL(12)) -+ devlink_fmsg_string_put(fmsg, "\n\tAQ Doorbell Error"); -+ if (intr_val & BIT_ULL(6)) -+ devlink_fmsg_string_put(fmsg, "\n\tRx on unmapped PF_FUNC"); -+ if (intr_val & BIT_ULL(5)) -+ devlink_fmsg_string_put(fmsg, "\n\tRx multicast replication error"); -+ if (intr_val & BIT_ULL(4)) -+ devlink_fmsg_string_put(fmsg, "\n\tFault on NIX_RX_MCE_S read"); -+ if (intr_val & BIT_ULL(3)) -+ devlink_fmsg_string_put(fmsg, "\n\tFault on multicast WQE read"); -+ if (intr_val & BIT_ULL(2)) -+ devlink_fmsg_string_put(fmsg, "\n\tFault on mirror WQE read"); -+ if (intr_val & BIT_ULL(1)) -+ devlink_fmsg_string_put(fmsg, "\n\tFault on mirror pkt write"); -+ if (intr_val & BIT_ULL(0)) -+ devlink_fmsg_string_put(fmsg, "\n\tFault on multicast pkt write"); -+ rvu_report_pair_end(fmsg); - break; - case NIX_AF_RVU_RAS: - intr_val = nix_event_context->nix_af_rvu_err; -- err = rvu_report_pair_start(fmsg, "NIX_AF_RAS"); -- if (err) -- return err; -- err = devlink_fmsg_u64_pair_put(fmsg, "\tNIX RAS Interrupt Reg ", -- nix_event_context->nix_af_rvu_err); -- if (err) -- return err; -- err = devlink_fmsg_string_put(fmsg, "\n\tPoison Data on:"); -- if (err) -- return err; -- if (intr_val & BIT_ULL(34)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tNIX_AQ_INST_S"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(33)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tNIX_AQ_RES_S"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(32)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tHW ctx"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(4)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tPacket from mirror buffer"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(3)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tPacket from multicast buffer"); -- -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(2)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tWQE read from mirror buffer"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(1)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tWQE read from multicast buffer"); -- if (err) -- return err; -- } -- if (intr_val & BIT_ULL(0)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tNIX_RX_MCE_S read"); -- if (err) -- return err; -- } -- err = rvu_report_pair_end(fmsg); -- if (err) -- return err; -+ rvu_report_pair_start(fmsg, "NIX_AF_RAS"); -+ devlink_fmsg_u64_pair_put(fmsg, "\tNIX RAS Interrupt Reg ", -+ nix_event_context->nix_af_rvu_err); -+ devlink_fmsg_string_put(fmsg, "\n\tPoison Data on:"); -+ if (intr_val & BIT_ULL(34)) -+ devlink_fmsg_string_put(fmsg, "\n\tNIX_AQ_INST_S"); -+ if (intr_val & BIT_ULL(33)) -+ devlink_fmsg_string_put(fmsg, "\n\tNIX_AQ_RES_S"); -+ if (intr_val & BIT_ULL(32)) -+ devlink_fmsg_string_put(fmsg, "\n\tHW ctx"); -+ if (intr_val & BIT_ULL(4)) -+ devlink_fmsg_string_put(fmsg, "\n\tPacket from mirror buffer"); -+ if (intr_val & BIT_ULL(3)) -+ devlink_fmsg_string_put(fmsg, "\n\tPacket from multicast buffer"); -+ if (intr_val & BIT_ULL(2)) -+ devlink_fmsg_string_put(fmsg, "\n\tWQE read from mirror buffer"); -+ if (intr_val & BIT_ULL(1)) -+ devlink_fmsg_string_put(fmsg, "\n\tWQE read from multicast buffer"); -+ if (intr_val & BIT_ULL(0)) -+ devlink_fmsg_string_put(fmsg, "\n\tNIX_RX_MCE_S read"); -+ rvu_report_pair_end(fmsg); - break; - default: - return -EINVAL; -@@ -918,181 +814,87 @@ static int rvu_npa_report_show(struct devlink_fmsg *fmsg, void *ctx, - struct rvu_npa_event_ctx *npa_event_context; - unsigned int alloc_dis, free_dis; - u64 intr_val; -- int err; - - npa_event_context = ctx; - switch (health_reporter) { - case NPA_AF_RVU_GEN: - intr_val = npa_event_context->npa_af_rvu_gen; -- err = rvu_report_pair_start(fmsg, "NPA_AF_GENERAL"); -- if (err) -- return err; -- err = devlink_fmsg_u64_pair_put(fmsg, "\tNPA General Interrupt Reg ", -- npa_event_context->npa_af_rvu_gen); -- if (err) -- return err; -- if (intr_val & BIT_ULL(32)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tUnmap PF Error"); -- if (err) -- return err; -- } -+ rvu_report_pair_start(fmsg, "NPA_AF_GENERAL"); -+ devlink_fmsg_u64_pair_put(fmsg, "\tNPA General Interrupt Reg ", -+ npa_event_context->npa_af_rvu_gen); -+ if (intr_val & BIT_ULL(32)) -+ devlink_fmsg_string_put(fmsg, "\n\tUnmap PF Error"); - - free_dis = FIELD_GET(GENMASK(15, 0), intr_val); -- if (free_dis & BIT(NPA_INPQ_NIX0_RX)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tNIX0: free disabled RX"); -- if (err) -- return err; -- } -- if (free_dis & BIT(NPA_INPQ_NIX0_TX)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tNIX0:free disabled TX"); -- if (err) -- return err; -- } -- if (free_dis & BIT(NPA_INPQ_NIX1_RX)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tNIX1: free disabled RX"); -- if (err) -- return err; -- } -- if (free_dis & BIT(NPA_INPQ_NIX1_TX)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tNIX1:free disabled TX"); -- if (err) -- return err; -- } -- if (free_dis & BIT(NPA_INPQ_SSO)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFree Disabled for SSO"); -- if (err) -- return err; -- } -- if (free_dis & BIT(NPA_INPQ_TIM)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFree Disabled for TIM"); -- if (err) -- return err; -- } -- if (free_dis & BIT(NPA_INPQ_DPI)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFree Disabled for DPI"); -- if (err) -- return err; -- } -- if (free_dis & BIT(NPA_INPQ_AURA_OP)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFree Disabled for AURA"); -- if (err) -- return err; -- } -+ if (free_dis & BIT(NPA_INPQ_NIX0_RX)) -+ devlink_fmsg_string_put(fmsg, "\n\tNIX0: free disabled RX"); -+ if (free_dis & BIT(NPA_INPQ_NIX0_TX)) -+ devlink_fmsg_string_put(fmsg, "\n\tNIX0:free disabled TX"); -+ if (free_dis & BIT(NPA_INPQ_NIX1_RX)) -+ devlink_fmsg_string_put(fmsg, "\n\tNIX1: free disabled RX"); -+ if (free_dis & BIT(NPA_INPQ_NIX1_TX)) -+ devlink_fmsg_string_put(fmsg, "\n\tNIX1:free disabled TX"); -+ if (free_dis & BIT(NPA_INPQ_SSO)) -+ devlink_fmsg_string_put(fmsg, "\n\tFree Disabled for SSO"); -+ if (free_dis & BIT(NPA_INPQ_TIM)) -+ devlink_fmsg_string_put(fmsg, "\n\tFree Disabled for TIM"); -+ if (free_dis & BIT(NPA_INPQ_DPI)) -+ devlink_fmsg_string_put(fmsg, "\n\tFree Disabled for DPI"); -+ if (free_dis & BIT(NPA_INPQ_AURA_OP)) -+ devlink_fmsg_string_put(fmsg, "\n\tFree Disabled for AURA"); - - alloc_dis = FIELD_GET(GENMASK(31, 16), intr_val); -- if (alloc_dis & BIT(NPA_INPQ_NIX0_RX)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tNIX0: alloc disabled RX"); -- if (err) -- return err; -- } -- if (alloc_dis & BIT(NPA_INPQ_NIX0_TX)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tNIX0:alloc disabled TX"); -- if (err) -- return err; -- } -- if (alloc_dis & BIT(NPA_INPQ_NIX1_RX)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tNIX1: alloc disabled RX"); -- if (err) -- return err; -- } -- if (alloc_dis & BIT(NPA_INPQ_NIX1_TX)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tNIX1:alloc disabled TX"); -- if (err) -- return err; -- } -- if (alloc_dis & BIT(NPA_INPQ_SSO)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tAlloc Disabled for SSO"); -- if (err) -- return err; -- } -- if (alloc_dis & BIT(NPA_INPQ_TIM)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tAlloc Disabled for TIM"); -- if (err) -- return err; -- } -- if (alloc_dis & BIT(NPA_INPQ_DPI)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tAlloc Disabled for DPI"); -- if (err) -- return err; -- } -- if (alloc_dis & BIT(NPA_INPQ_AURA_OP)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tAlloc Disabled for AURA"); -- if (err) -- return err; -- } -- err = rvu_report_pair_end(fmsg); -- if (err) -- return err; -+ if (alloc_dis & BIT(NPA_INPQ_NIX0_RX)) -+ devlink_fmsg_string_put(fmsg, "\n\tNIX0: alloc disabled RX"); -+ if (alloc_dis & BIT(NPA_INPQ_NIX0_TX)) -+ devlink_fmsg_string_put(fmsg, "\n\tNIX0:alloc disabled TX"); -+ if (alloc_dis & BIT(NPA_INPQ_NIX1_RX)) -+ devlink_fmsg_string_put(fmsg, "\n\tNIX1: alloc disabled RX"); -+ if (alloc_dis & BIT(NPA_INPQ_NIX1_TX)) -+ devlink_fmsg_string_put(fmsg, "\n\tNIX1:alloc disabled TX"); -+ if (alloc_dis & BIT(NPA_INPQ_SSO)) -+ devlink_fmsg_string_put(fmsg, "\n\tAlloc Disabled for SSO"); -+ if (alloc_dis & BIT(NPA_INPQ_TIM)) -+ devlink_fmsg_string_put(fmsg, "\n\tAlloc Disabled for TIM"); -+ if (alloc_dis & BIT(NPA_INPQ_DPI)) -+ devlink_fmsg_string_put(fmsg, "\n\tAlloc Disabled for DPI"); -+ if (alloc_dis & BIT(NPA_INPQ_AURA_OP)) -+ devlink_fmsg_string_put(fmsg, "\n\tAlloc Disabled for AURA"); -+ -+ rvu_report_pair_end(fmsg); - break; - case NPA_AF_RVU_ERR: -- err = rvu_report_pair_start(fmsg, "NPA_AF_ERR"); -- if (err) -- return err; -- err = devlink_fmsg_u64_pair_put(fmsg, "\tNPA Error Interrupt Reg ", -- npa_event_context->npa_af_rvu_err); -- if (err) -- return err; -- -- if (npa_event_context->npa_af_rvu_err & BIT_ULL(14)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFault on NPA_AQ_INST_S read"); -- if (err) -- return err; -- } -- if (npa_event_context->npa_af_rvu_err & BIT_ULL(13)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tFault on NPA_AQ_RES_S write"); -- if (err) -- return err; -- } -- if (npa_event_context->npa_af_rvu_err & BIT_ULL(12)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tAQ Doorbell Error"); -- if (err) -- return err; -- } -- err = rvu_report_pair_end(fmsg); -- if (err) -- return err; -+ rvu_report_pair_start(fmsg, "NPA_AF_ERR"); -+ devlink_fmsg_u64_pair_put(fmsg, "\tNPA Error Interrupt Reg ", -+ npa_event_context->npa_af_rvu_err); -+ if (npa_event_context->npa_af_rvu_err & BIT_ULL(14)) -+ devlink_fmsg_string_put(fmsg, "\n\tFault on NPA_AQ_INST_S read"); -+ if (npa_event_context->npa_af_rvu_err & BIT_ULL(13)) -+ devlink_fmsg_string_put(fmsg, "\n\tFault on NPA_AQ_RES_S write"); -+ if (npa_event_context->npa_af_rvu_err & BIT_ULL(12)) -+ devlink_fmsg_string_put(fmsg, "\n\tAQ Doorbell Error"); -+ rvu_report_pair_end(fmsg); - break; - case NPA_AF_RVU_RAS: -- err = rvu_report_pair_start(fmsg, "NPA_AF_RVU_RAS"); -- if (err) -- return err; -- err = devlink_fmsg_u64_pair_put(fmsg, "\tNPA RAS Interrupt Reg ", -- npa_event_context->npa_af_rvu_ras); -- if (err) -- return err; -- if (npa_event_context->npa_af_rvu_ras & BIT_ULL(34)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tPoison data on NPA_AQ_INST_S"); -- if (err) -- return err; -- } -- if (npa_event_context->npa_af_rvu_ras & BIT_ULL(33)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tPoison data on NPA_AQ_RES_S"); -- if (err) -- return err; -- } -- if (npa_event_context->npa_af_rvu_ras & BIT_ULL(32)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tPoison data on HW context"); -- if (err) -- return err; -- } -- err = rvu_report_pair_end(fmsg); -- if (err) -- return err; -+ rvu_report_pair_start(fmsg, "NPA_AF_RVU_RAS"); -+ devlink_fmsg_u64_pair_put(fmsg, "\tNPA RAS Interrupt Reg ", -+ npa_event_context->npa_af_rvu_ras); -+ if (npa_event_context->npa_af_rvu_ras & BIT_ULL(34)) -+ devlink_fmsg_string_put(fmsg, "\n\tPoison data on NPA_AQ_INST_S"); -+ if (npa_event_context->npa_af_rvu_ras & BIT_ULL(33)) -+ devlink_fmsg_string_put(fmsg, "\n\tPoison data on NPA_AQ_RES_S"); -+ if (npa_event_context->npa_af_rvu_ras & BIT_ULL(32)) -+ devlink_fmsg_string_put(fmsg, "\n\tPoison data on HW context"); -+ rvu_report_pair_end(fmsg); - break; - case NPA_AF_RVU_INTR: -- err = rvu_report_pair_start(fmsg, "NPA_AF_RVU"); -- if (err) -- return err; -- err = devlink_fmsg_u64_pair_put(fmsg, "\tNPA RVU Interrupt Reg ", -- npa_event_context->npa_af_rvu_int); -- if (err) -- return err; -- if (npa_event_context->npa_af_rvu_int & BIT_ULL(0)) { -- err = devlink_fmsg_string_put(fmsg, "\n\tUnmap Slot Error"); -- if (err) -- return err; -- } -- return rvu_report_pair_end(fmsg); -+ rvu_report_pair_start(fmsg, "NPA_AF_RVU"); -+ devlink_fmsg_u64_pair_put(fmsg, "\tNPA RVU Interrupt Reg ", -+ npa_event_context->npa_af_rvu_int); -+ if (npa_event_context->npa_af_rvu_int & BIT_ULL(0)) -+ devlink_fmsg_string_put(fmsg, "\n\tUnmap Slot Error"); -+ rvu_report_pair_end(fmsg); -+ break; - default: - return -EINVAL; - } --- -2.51.0 - diff --git a/queue-5.15/scsi-core-fix-error-handling-for-scsi_alloc_sdev.patch b/queue-5.15/scsi-core-fix-error-handling-for-scsi_alloc_sdev.patch deleted file mode 100644 index a9808c0ab3..0000000000 --- a/queue-5.15/scsi-core-fix-error-handling-for-scsi_alloc_sdev.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 4ce7ada40c008fa21b7e52ab9d04e8746e2e9325 Mon Sep 17 00:00:00 2001 -From: Junxiao Bi -Date: Wed, 4 Mar 2026 08:46:03 -0800 -Subject: scsi: core: Fix error handling for scsi_alloc_sdev() - -From: Junxiao Bi - -commit 4ce7ada40c008fa21b7e52ab9d04e8746e2e9325 upstream. - -After scsi_sysfs_device_initialize() was called, error paths must call -__scsi_remove_device(). - -Fixes: 1ac22c8eae81 ("scsi: core: Fix refcount leak for tagset_refcnt") -Cc: stable@vger.kernel.org -Signed-off-by: Junxiao Bi -Reviewed-by: John Garry -Reviewed-by: Bart Van Assche -Link: https://patch.msgid.link/20260304164603.51528-1-junxiao.bi@oracle.com -Signed-off-by: Martin K. Petersen -Signed-off-by: Greg Kroah-Hartman ---- - drivers/scsi/scsi_scan.c | 8 ++------ - 1 file changed, 2 insertions(+), 6 deletions(-) - ---- a/drivers/scsi/scsi_scan.c -+++ b/drivers/scsi/scsi_scan.c -@@ -339,12 +339,8 @@ static struct scsi_device *scsi_alloc_sd - * default device queue depth to figure out sbitmap shift - * since we use this queue depth most of times. - */ -- if (scsi_realloc_sdev_budget_map(sdev, depth)) { -- kref_put(&sdev->host->tagset_refcnt, scsi_mq_free_tags); -- put_device(&starget->dev); -- kfree(sdev); -- goto out; -- } -+ if (scsi_realloc_sdev_budget_map(sdev, depth)) -+ goto out_device_destroy; - - scsi_change_queue_depth(sdev, depth); - diff --git a/queue-5.15/series b/queue-5.15/series index 2b2a4430d4..b2724a344e 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -16,8 +16,6 @@ ata-libata-scsi-drop-dprintk-calls-for-cdb-translati.patch ata-libata-remove-pointless-vprintk-calls.patch ata-libata-scsi-refactor-ata_scsi_translate.patch drm-tegra-dsi-fix-device-leak-on-probe.patch -bus-omap-ocp2scp-convert-to-platform-remove-callback.patch -bus-omap-ocp2scp-fix-of-populate-on-driver-rebind.patch mfd-qcom-pm8xxx-switch-away-from-using-chained-irq-h.patch mfd-qcom-pm8xxx-convert-to-platform-remove-callback-.patch mfd-qcom-pm8xxx-fix-of-populate-on-driver-rebind.patch @@ -123,8 +121,6 @@ acpi-osl-fix-__iomem-type-on-return-from-acpi_os_map.patch asoc-amd-acp3x-rt5682-max9836-add-missing-error-chec.patch asoc-detect-empty-dmi-strings.patch octeontx2-af-devlink-fix-nix-ras-reporter-recovery-c.patch -octeontx2-af-devlink-health-use-retained-error-fmsg-.patch -octeontx2-af-devlink-fix-nix-ras-reporter-to-use-ras.patch revert-arm64-dts-qcom-sdm845-oneplus-mark-l14a-regul.patch cgroup-fix-race-between-task-migration-and-iteration.patch net-usb-lan78xx-fix-silent-drop-of-packets-with-checksum-errors.patch @@ -172,7 +168,6 @@ drm-amdgpu-fix-use-after-free-race-in-vm-acquire.patch tracing-fix-trace_buf_size-cmdline-parameter-with-sizes-2g.patch xfs-fix-undersized-l_iclog_roundoff-values.patch lib-bootconfig-fix-off-by-one-in-xbc_verify_tree-unclosed-brace-error.patch -scsi-core-fix-error-handling-for-scsi_alloc_sdev.patch x86-apic-disable-x2apic-on-resume-if-the-kernel-expects-so.patch lib-bootconfig-fix-snprintf-truncation-check-in-xbc_node_compose_key_after.patch lib-bootconfig-check-bounds-before-writing-in-__xbc_open_brace.patch