linux-next: build failure after merge of the edac tree

Stephen Rothwell posted 1 patch 1 year, 11 months ago
drivers/ras/amd/atl/umc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
linux-next: build failure after merge of the edac tree
Posted by Stephen Rothwell 1 year, 11 months ago
Hi all,

After merging the edac tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/ras/amd/atl/umc.c: In function 'get_die_id':
drivers/ras/amd/atl/umc.c:318:44: error: implicit declaration of function 'amd_get_nodes_per_socket' [-Werror=implicit-function-declaration]
  318 |         return topology_die_id(err->cpu) % amd_get_nodes_per_socket();
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~

Caused by commit

  3f3174996be6 ("RAS: Introduce AMD Address Translation Library")

interacting with commit

  c749ce393b8f ("x86/cpu: Use common topology code for AMD")

from the tip tree.

I applied the following merge resolution patch.

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Tue, 27 Feb 2024 13:22:56 +1100
Subject: [PATCH] fix up for "RAS: Introduce AMD Address Translation Library"

interacting with "x86/cpu: Use common topology code for AMD"

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/ras/amd/atl/umc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/ras/amd/atl/umc.c b/drivers/ras/amd/atl/umc.c
index 08c6dbd44c62..65a0ab651ee2 100644
--- a/drivers/ras/amd/atl/umc.c
+++ b/drivers/ras/amd/atl/umc.c
@@ -315,7 +315,7 @@ static u8 get_die_id(struct atl_err *err)
 	 * For CPUs, this is the AMD Node ID modulo the number
 	 * of AMD Nodes per socket.
 	 */
-	return topology_die_id(err->cpu) % amd_get_nodes_per_socket();
+	return topology_die_id(err->cpu) % topology_amd_nodes_per_pkg();
 }
 
 #define UMC_CHANNEL_NUM	GENMASK(31, 20)
-- 
2.43.0

-- 
Cheers,
Stephen Rothwell
Re: linux-next: build failure after merge of the edac tree
Posted by Yazen Ghannam 1 year, 11 months ago
On 2/26/2024 9:43 PM, Stephen Rothwell wrote:
> Hi all,
> 
> After merging the edac tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> drivers/ras/amd/atl/umc.c: In function 'get_die_id':
> drivers/ras/amd/atl/umc.c:318:44: error: implicit declaration of function 'amd_get_nodes_per_socket' [-Werror=implicit-function-declaration]
>    318 |         return topology_die_id(err->cpu) % amd_get_nodes_per_socket();
>        |                                            ^~~~~~~~~~~~~~~~~~~~~~~~
> 
> Caused by commit
> 
>    3f3174996be6 ("RAS: Introduce AMD Address Translation Library")
> 
> interacting with commit
> 
>    c749ce393b8f ("x86/cpu: Use common topology code for AMD")
> 
> from the tip tree.
> 
> I applied the following merge resolution patch.
> 
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Tue, 27 Feb 2024 13:22:56 +1100
> Subject: [PATCH] fix up for "RAS: Introduce AMD Address Translation Library"
> 
> interacting with "x86/cpu: Use common topology code for AMD"
> 
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
>   drivers/ras/amd/atl/umc.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/ras/amd/atl/umc.c b/drivers/ras/amd/atl/umc.c
> index 08c6dbd44c62..65a0ab651ee2 100644
> --- a/drivers/ras/amd/atl/umc.c
> +++ b/drivers/ras/amd/atl/umc.c
> @@ -315,7 +315,7 @@ static u8 get_die_id(struct atl_err *err)
>   	 * For CPUs, this is the AMD Node ID modulo the number
>   	 * of AMD Nodes per socket.
>   	 */
> -	return topology_die_id(err->cpu) % amd_get_nodes_per_socket();
> +	return topology_die_id(err->cpu) % topology_amd_nodes_per_pkg();

"topology_die_id -> topology_amd_node_id" is also needed.

Does this need to be fixed up in the RAS tree?

Thanks,
Yazen
Re: linux-next: build failure after merge of the edac tree
Posted by Borislav Petkov 1 year, 11 months ago
On Fri, Mar 08, 2024 at 05:43:26PM -0500, Yazen Ghannam wrote:
> > diff --git a/drivers/ras/amd/atl/umc.c b/drivers/ras/amd/atl/umc.c
> > index 08c6dbd44c62..65a0ab651ee2 100644
> > --- a/drivers/ras/amd/atl/umc.c
> > +++ b/drivers/ras/amd/atl/umc.c
> > @@ -315,7 +315,7 @@ static u8 get_die_id(struct atl_err *err)
> >   	 * For CPUs, this is the AMD Node ID modulo the number
> >   	 * of AMD Nodes per socket.
> >   	 */
> > -	return topology_die_id(err->cpu) % amd_get_nodes_per_socket();
> > +	return topology_die_id(err->cpu) % topology_amd_nodes_per_pkg();
> 
> "topology_die_id -> topology_amd_node_id" is also needed.

Are you saying topology_die_id() was already wrong?

Because even before the topo rewrite, this was

  - cpuinfo_x86.topo.die_id:

    The physical ID of the die. This information is retrieved via CPUID.

while this code talks about the AMD node thing.

> Does this need to be fixed up in the RAS tree?

I'll give a diff to Linus when I send the pull request.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette
Re: linux-next: build failure after merge of the edac tree
Posted by Yazen Ghannam 1 year, 11 months ago

On 3/9/2024 4:46 AM, Borislav Petkov wrote:
> On Fri, Mar 08, 2024 at 05:43:26PM -0500, Yazen Ghannam wrote:
>>> diff --git a/drivers/ras/amd/atl/umc.c b/drivers/ras/amd/atl/umc.c
>>> index 08c6dbd44c62..65a0ab651ee2 100644
>>> --- a/drivers/ras/amd/atl/umc.c
>>> +++ b/drivers/ras/amd/atl/umc.c
>>> @@ -315,7 +315,7 @@ static u8 get_die_id(struct atl_err *err)
>>>    	 * For CPUs, this is the AMD Node ID modulo the number
>>>    	 * of AMD Nodes per socket.
>>>    	 */
>>> -	return topology_die_id(err->cpu) % amd_get_nodes_per_socket();
>>> +	return topology_die_id(err->cpu) % topology_amd_nodes_per_pkg();
>>
>> "topology_die_id -> topology_amd_node_id" is also needed.
> 
> Are you saying topology_die_id() was already wrong?
> 
> Because even before the topo rewrite, this was
> 
>    - cpuinfo_x86.topo.die_id:
> 
>      The physical ID of the die. This information is retrieved via CPUID.
> 
> while this code talks about the AMD node thing.
> 

We used to save AMD Node ID into topology_die_id() before the following:
03fa6bea5a3e ("x86/cpu: Make topology_amd_node_id() use the actual node info")

>> Does this need to be fixed up in the RAS tree?
> 
> I'll give a diff to Linus when I send the pull request.
> 

Thanks,
Yazen