The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Brendan Jackman" <jackmanb@google.com>
Cc: linux-rt-devel@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 11/18] sgi-xp: Use higher-level allocator API
Date: Fri, 03 Jul 2026 12:48:48 +0000	[thread overview]
Message-ID: <20260703124848.96CBA1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260703-alloc-trylock-v5-11-c87b714e19d3@google.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [High] In `xpc_init_mq_node()`, the loop iterates over CPUs but mistakenly passes the `nid` (node ID) variable to `xpc_create_gru_mq_uv()` instead of the `cpu` iterator.
--

commit 60dc55f94c78f2b8722b9d132aa85a4603393bdd
Author: Brendan Jackman <jackmanb@google.com>

sgi-xp: Use higher-level allocator API

The difference between __alloc_pages_node() and alloc_pages_node() is
that the latter allows you to pass NUMA_NO_NODE.

The former is going away and the latter works fine here so switch over.

No functional change intended.

> diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c
> index 772c787268932..79c2f00ed4d70 100644
> --- a/drivers/misc/sgi-xp/xpc_uv.c
> +++ b/drivers/misc/sgi-xp/xpc_uv.c
> @@ -170,9 +170,8 @@ xpc_create_gru_mq_uv(unsigned int mq_size, int cpu, char *irq_name,
>  	mq->mmr_blade = uv_cpu_to_blade_id(cpu);
>  
>  	nid = cpu_to_node(cpu);

[Severity: High]
This isn't a bug introduced by this patch, but while looking at how the cpu
argument is handled here in xpc_create_gru_mq_uv(), I noticed an issue in
its caller.

In xpc_init_mq_node():

	for_each_cpu(cpu, cpumask_of_node(nid)) {
		xpc_activate_mq_uv =
			xpc_create_gru_mq_uv(XPC_ACTIVATE_MQ_SIZE_UV, nid,
					     XPC_ACTIVATE_IRQ_NAME,
					     xpc_handle_activate_IRQ_uv);

Is it possible that the node ID (nid) is mistakenly passed into
xpc_create_gru_mq_uv() instead of the cpu iterator? This also happens a few
lines later when allocating xpc_notify_mq_uv.

Passing a node ID where a CPU index is expected will cause per-CPU lookups
like uv_cpu_to_blade_id() and cpu_to_node() to access data for the wrong CPU.
If the node ID exceeds nr_cpu_ids, this could also cause out of bounds memory
accesses.

> -	page = __alloc_pages_node(nid,
> -				      GFP_KERNEL | __GFP_ZERO | __GFP_THISNODE,
> -				      pg_order);
> +	page = alloc_pages_node(nid, GFP_KERNEL | __GFP_ZERO | __GFP_THISNODE,
> +				pg_order);
>  	if (page == NULL) {
>  		dev_err(xpc_part, "xpc_create_gru_mq_uv() failed to alloc %d "
>  			"bytes of memory on nid=%d for GRU mq\n", mq_size, nid);

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260703-alloc-trylock-v5-0-c87b714e19d3@google.com?part=11

  reply	other threads:[~2026-07-03 12:48 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-03 12:31 [PATCH v5 00/18] mm: Some cleanups for page allocator APIs Brendan Jackman
2026-07-03 12:31 ` [PATCH v5 01/18] mm/page_alloc: rename ALLOC_TRYLOCK -> ALLOC_NOLOCK Brendan Jackman
2026-07-03 13:59   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 02/18] mm/page_alloc: some renames to clarify alloc_flags scopes Brendan Jackman
2026-07-03 14:01   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 03/18] mm: name some args in a function declaration Brendan Jackman
2026-07-03 14:02   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 04/18] mm: Split out internal page_alloc.h Brendan Jackman
2026-07-03 14:07   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 05/18] mm/page_alloc: unify __alloc_frozen_pages[_nolock]_noprof() Brendan Jackman
2026-07-03 14:42   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 06/18] mm/page_alloc: relax GFP WARN in nolock allocs Brendan Jackman
2026-07-03 12:43   ` sashiko-bot
2026-07-03 14:44   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 07/18] mm: move some stuff to mm/page_alloc.h Brendan Jackman
2026-07-03 14:46   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 08/18] perf/x86/intel: Use higher-level allocator API Brendan Jackman
2026-07-03 14:49   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 09/18] KVM: VMX: " Brendan Jackman
2026-07-03 14:49   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 10/18] x86/virt: " Brendan Jackman
2026-07-03 14:50   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 11/18] sgi-xp: " Brendan Jackman
2026-07-03 12:48   ` sashiko-bot [this message]
2026-07-03 14:51   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 12/18] net/funeth: Switch to " Brendan Jackman
2026-07-03 12:53   ` sashiko-bot
2026-07-03 14:52   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 13/18] mm: Remove __alloc_pages_node() Brendan Jackman
2026-07-03 12:54   ` sashiko-bot
2026-07-03 14:57   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 14/18] mm: Move __alloc_pages() to mm/page_alloc.h Brendan Jackman
2026-07-03 15:05   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 15/18] mm: replace __GFP_NO_CODETAG with ALLOC_NO_CODETAG Brendan Jackman
2026-07-03 12:31 ` [PATCH v5 16/18] mm: remove the __GFP_NO_OBJ_EXT flag Brendan Jackman
2026-07-03 12:31 ` [PATCH v5 17/18] mm/page_alloc: drop alloc_flags arg from alloc_flags_cma() Brendan Jackman
2026-07-03 15:10   ` Zi Yan
2026-07-03 12:31 ` [PATCH v5 18/18] mm: factor out can_spin_trylock() Brendan Jackman
2026-07-03 12:55   ` sashiko-bot
2026-07-03 15:12   ` Zi Yan
2026-07-03 12:47 ` [PATCH v5 00/18] mm: Some cleanups for page allocator APIs Vlastimil Babka (SUSE)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260703124848.96CBA1F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=jackmanb@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-devel@lists.linux.dev \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox