base/node.c: initialize the accessor list before registering
authorGregory Price <gourry.memverge@gmail.com>
Mon, 30 Oct 2023 04:42:39 +0000 (00:42 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 Dec 2023 02:35:23 +0000 (11:35 +0900)
commit48b5928e18dc27e05cab3dc4c78cd8a15baaf1e5
treeebbe607758b8c89e04cf84cecf28e5b3f1d846aa
parent5bb03d0dd76700a830243776a99275575cbb2ee1
base/node.c: initialize the accessor list before registering

The current code registers the node as available in the node array
before initializing the accessor list.  This makes it so that
anything which might access the accessor list as a result of
allocations will cause an undefined memory access.

In one example, an extension to access hmat data during interleave
caused this undefined access as a result of a bulk allocation
that occurs during node initialization but before the accessor
list is initialized.

Initialize the accessor list before making the node generally
available to the global system.

Fixes: 08d9dbe72b1f ("node: Link memory nodes to their compute nodes")
Signed-off-by: Gregory Price <gregory.price@memverge.com>
Link: https://lore.kernel.org/r/20231030044239.971756-1-gregory.price@memverge.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/node.c