firmware: smccc: Fix use of uninitialised results structure

Message ID 20230717171702.424253-1-punit.agrawal@bytedance.com
State New
Headers
Series firmware: smccc: Fix use of uninitialised results structure |

Commit Message

Punit Agrawal July 17, 2023, 5:17 p.m. UTC
  Commit 35727af2b15d ("irqchip/gicv3: Workaround for NVIDIA erratum
T241-FABRIC-4") moved the initialisation of the SoC version to
arm_smccc_version_init() but forgot to update the results structure
and it's usage.

Fix the use of the uninitialised results structure and update the
error strings.

Fixes: 35727af2b15d ("irqchip/gicv3: Workaround for NVIDIA erratum T241-FABRIC-4")
Signed-off-by: Punit Agrawal <punit.agrawal@bytedance.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Vikram Sethi <vsethi@nvidia.com>
Cc: Shanker Donthineni <sdonthineni@nvidia.com>
---
 drivers/firmware/smccc/soc_id.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
  

Comments

Marc Zyngier July 18, 2023, 8:38 a.m. UTC | #1
On Mon, 17 Jul 2023 18:17:02 +0100,
Punit Agrawal <punit.agrawal@bytedance.com> wrote:
> 
> Commit 35727af2b15d ("irqchip/gicv3: Workaround for NVIDIA erratum
> T241-FABRIC-4") moved the initialisation of the SoC version to
> arm_smccc_version_init() but forgot to update the results structure
> and it's usage.
> 
> Fix the use of the uninitialised results structure and update the
> error strings.
> 
> Fixes: 35727af2b15d ("irqchip/gicv3: Workaround for NVIDIA erratum T241-FABRIC-4")
> Signed-off-by: Punit Agrawal <punit.agrawal@bytedance.com>
> Cc: Sudeep Holla <sudeep.holla@arm.com>
> Cc: Marc Zyngier <maz@kernel.org>
> Cc: Vikram Sethi <vsethi@nvidia.com>
> Cc: Shanker Donthineni <sdonthineni@nvidia.com>
> ---
>  drivers/firmware/smccc/soc_id.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/firmware/smccc/soc_id.c b/drivers/firmware/smccc/soc_id.c
> index 890eb454599a..1990263fbba0 100644
> --- a/drivers/firmware/smccc/soc_id.c
> +++ b/drivers/firmware/smccc/soc_id.c
> @@ -34,7 +34,6 @@ static struct soc_device_attribute *soc_dev_attr;
>  
>  static int __init smccc_soc_init(void)
>  {
> -	struct arm_smccc_res res;
>  	int soc_id_rev, soc_id_version;
>  	static char soc_id_str[20], soc_id_rev_str[12];
>  	static char soc_id_jep106_id_str[12];
> @@ -49,13 +48,13 @@ static int __init smccc_soc_init(void)
>  	}
>  
>  	if (soc_id_version < 0) {
> -		pr_err("ARCH_SOC_ID(0) returned error: %lx\n", res.a0);
> +		pr_err("Invalid SoC Version: %x\n", soc_id_version);
>  		return -EINVAL;
>  	}
>  
>  	soc_id_rev = arm_smccc_get_soc_id_revision();
>  	if (soc_id_rev < 0) {
> -		pr_err("ARCH_SOC_ID(1) returned error: %lx\n", res.a0);
> +		pr_err("Invalid SoC Revision: %x\n", soc_id_rev);
>  		return -EINVAL;
>  	}
>  

Ah, indeed. Well caught. FWIW:

Acked-by: Marc Zyngier <maz@kernel.org>

Sudeep, I assume you'll take that one directly?

Thanks,

	M.
  
Sudeep Holla July 18, 2023, 8:48 a.m. UTC | #2
On Tue, Jul 18, 2023 at 09:38:26AM +0100, Marc Zyngier wrote:
> On Mon, 17 Jul 2023 18:17:02 +0100,
> Punit Agrawal <punit.agrawal@bytedance.com> wrote:
> > 
> > Commit 35727af2b15d ("irqchip/gicv3: Workaround for NVIDIA erratum
> > T241-FABRIC-4") moved the initialisation of the SoC version to
> > arm_smccc_version_init() but forgot to update the results structure
> > and it's usage.
> > 
> > Fix the use of the uninitialised results structure and update the
> > error strings.
> > 
> > Fixes: 35727af2b15d ("irqchip/gicv3: Workaround for NVIDIA erratum T241-FABRIC-4")
> > Signed-off-by: Punit Agrawal <punit.agrawal@bytedance.com>
> > Cc: Sudeep Holla <sudeep.holla@arm.com>
> > Cc: Marc Zyngier <maz@kernel.org>
> > Cc: Vikram Sethi <vsethi@nvidia.com>
> > Cc: Shanker Donthineni <sdonthineni@nvidia.com>
> > ---
> >  drivers/firmware/smccc/soc_id.c | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/firmware/smccc/soc_id.c b/drivers/firmware/smccc/soc_id.c
> > index 890eb454599a..1990263fbba0 100644
> > --- a/drivers/firmware/smccc/soc_id.c
> > +++ b/drivers/firmware/smccc/soc_id.c
> > @@ -34,7 +34,6 @@ static struct soc_device_attribute *soc_dev_attr;
> >  
> >  static int __init smccc_soc_init(void)
> >  {
> > -	struct arm_smccc_res res;
> >  	int soc_id_rev, soc_id_version;
> >  	static char soc_id_str[20], soc_id_rev_str[12];
> >  	static char soc_id_jep106_id_str[12];
> > @@ -49,13 +48,13 @@ static int __init smccc_soc_init(void)
> >  	}
> >  
> >  	if (soc_id_version < 0) {
> > -		pr_err("ARCH_SOC_ID(0) returned error: %lx\n", res.a0);
> > +		pr_err("Invalid SoC Version: %x\n", soc_id_version);
> >  		return -EINVAL;
> >  	}
> >  
> >  	soc_id_rev = arm_smccc_get_soc_id_revision();
> >  	if (soc_id_rev < 0) {
> > -		pr_err("ARCH_SOC_ID(1) returned error: %lx\n", res.a0);
> > +		pr_err("Invalid SoC Revision: %x\n", soc_id_rev);
> >  		return -EINVAL;
> >  	}
> >  
> 
> Ah, indeed. Well caught. FWIW:
> 
> Acked-by: Marc Zyngier <maz@kernel.org>
> 
> Sudeep, I assume you'll take that one directly?
> 

Sure I will route it via (arm-)soc team.
  
Punit Agrawal July 19, 2023, 8:10 a.m. UTC | #3
Sudeep Holla <sudeep.holla@arm.com> writes:

> On Tue, Jul 18, 2023 at 09:38:26AM +0100, Marc Zyngier wrote:
>> On Mon, 17 Jul 2023 18:17:02 +0100,
>> Punit Agrawal <punit.agrawal@bytedance.com> wrote:
>> > 
>> > Commit 35727af2b15d ("irqchip/gicv3: Workaround for NVIDIA erratum
>> > T241-FABRIC-4") moved the initialisation of the SoC version to
>> > arm_smccc_version_init() but forgot to update the results structure
>> > and it's usage.
>> > 
>> > Fix the use of the uninitialised results structure and update the
>> > error strings.
>> > 
>> > Fixes: 35727af2b15d ("irqchip/gicv3: Workaround for NVIDIA erratum T241-FABRIC-4")
>> > Signed-off-by: Punit Agrawal <punit.agrawal@bytedance.com>
>> > Cc: Sudeep Holla <sudeep.holla@arm.com>
>> > Cc: Marc Zyngier <maz@kernel.org>
>> > Cc: Vikram Sethi <vsethi@nvidia.com>
>> > Cc: Shanker Donthineni <sdonthineni@nvidia.com>
>> > ---
>> >  drivers/firmware/smccc/soc_id.c | 5 ++---
>> >  1 file changed, 2 insertions(+), 3 deletions(-)
>> > 
>> > diff --git a/drivers/firmware/smccc/soc_id.c b/drivers/firmware/smccc/soc_id.c
>> > index 890eb454599a..1990263fbba0 100644
>> > --- a/drivers/firmware/smccc/soc_id.c
>> > +++ b/drivers/firmware/smccc/soc_id.c
>> > @@ -34,7 +34,6 @@ static struct soc_device_attribute *soc_dev_attr;
>> >  
>> >  static int __init smccc_soc_init(void)
>> >  {
>> > -	struct arm_smccc_res res;
>> >  	int soc_id_rev, soc_id_version;
>> >  	static char soc_id_str[20], soc_id_rev_str[12];
>> >  	static char soc_id_jep106_id_str[12];
>> > @@ -49,13 +48,13 @@ static int __init smccc_soc_init(void)
>> >  	}
>> >  
>> >  	if (soc_id_version < 0) {
>> > -		pr_err("ARCH_SOC_ID(0) returned error: %lx\n", res.a0);
>> > +		pr_err("Invalid SoC Version: %x\n", soc_id_version);
>> >  		return -EINVAL;
>> >  	}
>> >  
>> >  	soc_id_rev = arm_smccc_get_soc_id_revision();
>> >  	if (soc_id_rev < 0) {
>> > -		pr_err("ARCH_SOC_ID(1) returned error: %lx\n", res.a0);
>> > +		pr_err("Invalid SoC Revision: %x\n", soc_id_rev);
>> >  		return -EINVAL;
>> >  	}
>> >  
>> 
>> Ah, indeed. Well caught. FWIW:
>> 
>> Acked-by: Marc Zyngier <maz@kernel.org>

Thanks Marc.

>> Sudeep, I assume you'll take that one directly?
>> 
>
> Sure I will route it via (arm-)soc team.

Sudeep, hope you can add the tag while applying. Let me know if you'd
like me to resend.
  
Sudeep Holla July 19, 2023, 10:01 a.m. UTC | #4
On Mon, 17 Jul 2023 18:17:02 +0100, Punit Agrawal wrote:
> Commit 35727af2b15d ("irqchip/gicv3: Workaround for NVIDIA erratum
> T241-FABRIC-4") moved the initialisation of the SoC version to
> arm_smccc_version_init() but forgot to update the results structure
> and it's usage.
>
> Fix the use of the uninitialised results structure and update the
> error strings.
>
> [...]

Applied to sudeep.holla/linux (for-next/scmi/fixes), thanks!

[1/1] firmware: smccc: Fix use of uninitialised results structure
      https://git.kernel.org/sudeep.holla/c/d05799d7b4a3
--
Regards,
Sudeep
  

Patch

diff --git a/drivers/firmware/smccc/soc_id.c b/drivers/firmware/smccc/soc_id.c
index 890eb454599a..1990263fbba0 100644
--- a/drivers/firmware/smccc/soc_id.c
+++ b/drivers/firmware/smccc/soc_id.c
@@ -34,7 +34,6 @@  static struct soc_device_attribute *soc_dev_attr;
 
 static int __init smccc_soc_init(void)
 {
-	struct arm_smccc_res res;
 	int soc_id_rev, soc_id_version;
 	static char soc_id_str[20], soc_id_rev_str[12];
 	static char soc_id_jep106_id_str[12];
@@ -49,13 +48,13 @@  static int __init smccc_soc_init(void)
 	}
 
 	if (soc_id_version < 0) {
-		pr_err("ARCH_SOC_ID(0) returned error: %lx\n", res.a0);
+		pr_err("Invalid SoC Version: %x\n", soc_id_version);
 		return -EINVAL;
 	}
 
 	soc_id_rev = arm_smccc_get_soc_id_revision();
 	if (soc_id_rev < 0) {
-		pr_err("ARCH_SOC_ID(1) returned error: %lx\n", res.a0);
+		pr_err("Invalid SoC Revision: %x\n", soc_id_rev);
 		return -EINVAL;
 	}