Patch "ARM: vexpress/spc: Avoid negative array index when !SMP" has been added to the 5.17-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ARM: vexpress/spc: Avoid negative array index when !SMP

to the 5.17-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     arm-vexpress-spc-avoid-negative-array-index-when-smp.patch
and it can be found in the queue-5.17 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 399668ab9a6d863dcbceb03c25569a09733d2fe3
Author: Kees Cook <keescook@xxxxxxxxxxxx>
Date:   Thu Mar 31 12:04:43 2022 -0700

    ARM: vexpress/spc: Avoid negative array index when !SMP
    
    [ Upstream commit b3f1dd52c991d79118f35e6d1bf4d7cb09882e38 ]
    
    When building multi_v7_defconfig+CONFIG_SMP=n, -Warray-bounds exposes
    a couple negative array index accesses:
    
    arch/arm/mach-vexpress/spc.c: In function 've_spc_clk_init':
    arch/arm/mach-vexpress/spc.c:583:21: warning: array subscript -1 is below array bounds of 'bool[2]' {aka '_Bool[2]'} [-Warray-bounds]
      583 |   if (init_opp_table[cluster])
          |       ~~~~~~~~~~~~~~^~~~~~~~~
    arch/arm/mach-vexpress/spc.c:556:7: note: while referencing 'init_opp_table'
      556 |  bool init_opp_table[MAX_CLUSTERS] = { false };
          |       ^~~~~~~~~~~~~~
    arch/arm/mach-vexpress/spc.c:592:18: warning: array subscript -1 is below array bounds of 'bool[2]' {aka '_Bool[2]'} [-Warray-bounds]
      592 |    init_opp_table[cluster] = true;
          |    ~~~~~~~~~~~~~~^~~~~~~~~
    arch/arm/mach-vexpress/spc.c:556:7: note: while referencing 'init_opp_table'
      556 |  bool init_opp_table[MAX_CLUSTERS] = { false };
          |       ^~~~~~~~~~~~~~
    
    Skip this logic when built !SMP.
    
    Link: https://lore.kernel.org/r/20220331190443.851661-1-keescook@xxxxxxxxxxxx
    Cc: Liviu Dudau <liviu.dudau@xxxxxxx>
    Cc: Sudeep Holla <sudeep.holla@xxxxxxx>
    Cc: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>
    Cc: Russell King <linux@xxxxxxxxxxxxxxx>
    Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
    Acked-by: Liviu Dudau <liviu.dudau@xxxxxxx>
    Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
    Signed-off-by: Sudeep Holla <sudeep.holla@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/arm/mach-vexpress/spc.c b/arch/arm/mach-vexpress/spc.c
index 1da11bdb1dfb..1c6500c4e6a1 100644
--- a/arch/arm/mach-vexpress/spc.c
+++ b/arch/arm/mach-vexpress/spc.c
@@ -580,7 +580,7 @@ static int __init ve_spc_clk_init(void)
 		}
 
 		cluster = topology_physical_package_id(cpu_dev->id);
-		if (init_opp_table[cluster])
+		if (cluster < 0 || init_opp_table[cluster])
 			continue;
 
 		if (ve_init_opp_table(cpu_dev))



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux