summaryrefslogtreecommitdiffstats
path: root/scripts/livepatch
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2026-08-17 22:44:33 +0200
committerVinod Koul <vkoul@kernel.org>2026-09-10 18:09:53 +0530
commitf6504be006aa4bb4bd26285f410a885c17920d65 (patch)
treefb1a694c732548f4c4dfc1f08f00da8c688b47a6 /scripts/livepatch
parent9096bdc8d930147f7c39a493a859acbd3a8485d8 (diff)
downloadlinux-stable-f6504be006aa4bb4bd26285f410a885c17920d65.tar.gz
linux-stable-f6504be006aa4bb4bd26285f410a885c17920d65.zip
dmaengine: pxa: fix double counting of the hw descriptors
pxad_alloc_desc() was converted from kzalloc(struct_size(sw_desc, hw_desc, nb_hw_desc), GFP_NOWAIT) to kzalloc_flex(), which sets the __counted_by() counter sw_desc->nb_desc itself - but only where the compiler has __builtin_counted_by_ref(), so from gcc 15.1 or clang 22.1 on. The loop below it still increments nb_desc, which makes it come out doubled there and correct elsewhere. nb_desc is what pxad_free_desc() iterates over and what set_updater_desc() indexes from, so set it explicitly and drop the increment. The error path has to lower it to the number of descriptors allocated so far, otherwise pxad_free_desc() would free entries that were never allocated. Fixes: 69050f8d6d075 ("treewide: Replace kmalloc with kmalloc_obj for non-scalar types") Assisted-by: Claude:claude-opus-5 Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Reviewed-by: Frank Li <Frank.Li@nxp.com> Link: https://lore.kernel.org/r/20260817-dmaengine-pxa-v1-1-850c215c1196@pengutronix.de Link: https://patch.msgid.link/20260817-dmaengine-pxa-v2-1-f42ab0569a48@pengutronix.de Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'scripts/livepatch')
0 files changed, 0 insertions, 0 deletions