All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mario Limonciello <superm1@kernel.org>
To: Yazen Ghannam <yazen.ghannam@amd.com>,
	Jason Andryuk <jason.andryuk@amd.com>
Cc: Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
	Thomas Gleixner <tglx@kernel.org>,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	Penny Zheng <penny.zheng@amd.com>,
	stable@vger.kernel.org
Subject: Re: [PATCH 1/2] x86/amd_node: Remove smn_exclusive
Date: Tue, 11 Aug 2026 09:19:05 -0500	[thread overview]
Message-ID: <2022e782-099f-4b93-9968-30931a46101d@kernel.org> (raw)
In-Reply-To: <20260810140747.GB57095@yaz-khff2.amd.com>



On 8/10/26 09:07, Yazen Ghannam wrote:
> On Thu, Aug 06, 2026 at 12:01:56PM -0400, Jason Andryuk wrote:
>> amd_smn_read/write() are exported functions around __amd_smn_rw(), so
>> they are always available even if amd_smn_init() fails.  smn_exclusive
>> would prevent access __amd_smn_rw(), but it is placed too late.  If
>> amd_smn_init() failed, amd_roots is NULL and __amd_smn_rw() will fault
>> over it.  Replace smn_exclusive with directly checking amd_roots to
>> avoid the NULL pointer dereference.
>>
>> Fixes: 77466b798d59 ("x86/amd_node: Remove dependency on AMD_NB")
>> Cc: stable@vger.kernel.org
>> Signed-off-by: Jason Andryuk <jason.andryuk@amd.com>
>> ---
>> Fixes is the introduction of amd_roots
>> ---
>>   arch/x86/kernel/amd_node.c | 9 +++------
>>   1 file changed, 3 insertions(+), 6 deletions(-)
>>
>> diff --git a/arch/x86/kernel/amd_node.c b/arch/x86/kernel/amd_node.c
>> index 0be01725a2a4..ea553267e5fa 100644
>> --- a/arch/x86/kernel/amd_node.c
>> +++ b/arch/x86/kernel/amd_node.c
>> @@ -38,7 +38,6 @@ static struct pci_dev **amd_roots;
>>   
>>   /* Protect the PCI config register pairs used for SMN. */
>>   static DEFINE_MUTEX(smn_mutex);
>> -static bool smn_exclusive;
>>   
>>   #define SMN_INDEX_OFFSET	0x60
>>   #define SMN_DATA_OFFSET		0x64
>> @@ -91,11 +90,11 @@ static int __amd_smn_rw(u8 i_off, u8 d_off, u16 node, u32 address, u32 *value, b
>>   	if (node >= amd_num_nodes())
>>   		return err;
>>   
>> -	root = amd_roots[node];
>> -	if (!root)
>> +	if (!amd_roots)
>>   		return err;
>>   
>> -	if (!smn_exclusive)
>> +	root = amd_roots[node];
>> +	if (!root)
>>   		return err;
>>   
>>   	guard(mutex)(&smn_mutex);
>> @@ -308,8 +307,6 @@ static int __init amd_smn_init(void)
>>   		debugfs_create_file("value",	0600, debugfs_dir, NULL, &smn_value_fops);
>>   	}
>>   
>> -	smn_exclusive = true;
>> -
>>   	return 0;
>>   }
>>   
> 
> 'smn_exclusive' wasn't originally intended to be used for bounds
> checking the array. But the original use is no longer needed, so it can
> be removed.
> 
> Reviewed-by: Yazen Ghannam <yazen.ghannam@amd.com>
> 
> Thanks,
> Yazen

Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>

  reply	other threads:[~2026-08-11 14:19 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-06 16:01 [PATCH 0/2] x86/amd_node: Fixes for virtualized systems Jason Andryuk
2026-08-06 16:01 ` [PATCH 1/2] x86/amd_node: Remove smn_exclusive Jason Andryuk
2026-08-10 14:07   ` Yazen Ghannam
2026-08-11 14:19     ` Mario Limonciello [this message]
2026-08-12 19:28     ` Borislav Petkov
2026-08-13 13:40       ` Jason Andryuk
2026-08-13 23:58         ` Borislav Petkov
2026-08-14 13:37           ` Jason Andryuk
2026-08-14 18:18             ` Borislav Petkov
2026-08-06 16:01 ` [PATCH 2/2] x86/amd_node: Avoid divide by zero on virtualized systems Jason Andryuk
2026-08-10 14:47   ` Yazen Ghannam
2026-08-10 20:16     ` Jason Andryuk
2026-08-11  8:21     ` David Laight
2026-08-11 21:23       ` Jason Andryuk
2026-08-12  7:11         ` David Laight
2026-08-12 19:31     ` Borislav Petkov
2026-08-13 15:56       ` Yazen Ghannam
2026-08-13 17:23         ` Borislav Petkov

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=2022e782-099f-4b93-9968-30931a46101d@kernel.org \
    --to=superm1@kernel.org \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=jason.andryuk@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=penny.zheng@amd.com \
    --cc=stable@vger.kernel.org \
    --cc=tglx@kernel.org \
    --cc=x86@kernel.org \
    --cc=yazen.ghannam@amd.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.