@@ -73,53 +73,26 @@ static void parse_cpu_architecture(
7373 }
7474
7575 switch (arch_version ) {
76- case 7 : /* POWER7 */
77- if (* cpu_arch_ptr == ' ' ) {
78- processor -> core .uarch = cpuinfo_uarch_power7 ;
79- } else if (* cpu_arch_ptr == '+' ) {
80- processor -> core .uarch = cpuinfo_uarch_power7p ;
81- cpu_arch_ptr ++ ;
82- } else {
83- goto unsupported ;
84- }
85- break ;
86- case 8 : /* POWER8 */
87- if (* cpu_arch_ptr == ' ' ) {
88- processor -> core .uarch = cpuinfo_uarch_power8 ;
89- } else if (* cpu_arch_ptr == 'E' ) {
90- processor -> core .uarch = cpuinfo_uarch_power8e ;
91- cpu_arch_ptr ++ ;
92- } else if (* cpu_arch_ptr == 'N' ) {
93- cpu_arch_ptr ++ ;
94- if (* cpu_arch_ptr == 'V' ) {
95- cpu_arch_ptr ++ ;
96- }
97- if (* cpu_arch_ptr == 'L' ) {
98- processor -> core .uarch = cpuinfo_uarch_power8nvl ;
99- cpu_arch_ptr ++ ;
100- }
101- }
102- if (* cpu_arch_ptr != ' ' ) {
103- goto unsupported ;
104- }
105- break ;
10676 case 9 : /* POWER9 */
10777 processor -> core .uarch = cpuinfo_uarch_power9 ;
10878 break ;
10979 case 10 : /* POWER10 */
11080 processor -> core .uarch = cpuinfo_uarch_power10 ;
11181 break ;
82+ case 11 : /* POWER11 */
83+ processor -> core .uarch = cpuinfo_uarch_power11 ;
84+ break ;
11285 default :
11386 unsupported :
114- cpuinfo_log_warning (
87+ cpuinfo_log_error (
11588 "CPU architecture %.*s in /proc/cpuinfo is ignored due to a unsupported architecture version" ,
11689 (int )(cpu_architecture_end - cpu_architecture_start ),
11790 cpu_architecture_start );
11891 }
11992 processor -> flags |= CPUINFO_POWERPC_LINUX_VALID_PROCESSOR ;
12093 } else {
12194 cpuinfo_log_warning (
122- "processor %.*s in /proc/cpuinfo is ignored due not a Power processor" ,
95+ "processor %.*s in /proc/cpuinfo is ignored due to not a Power processor" ,
12396 (int )(cpu_architecture_end - cpu_architecture_start ),
12497 cpu_architecture_start );
12598 }
@@ -281,33 +254,36 @@ static bool parse_line(
281254 if (memcmp (line_start , "cpu" , key_length ) == 0 ) {
282255 parse_cpu_architecture (value_start , value_end , processor );
283256 } else {
284- goto unknown ;
257+ cpuinfo_log_debug ( " unknown /proc/cpuinfo key: %.*s" , ( int ) key_length , line_start ) ;
285258 }
286259 break ;
287260 case 5 :
288261 if (memcmp (line_start , "clock" , key_length ) == 0 ) {
289262 parse_cpu_architecture (value_start , value_end , processor );
290263 } else {
291- goto unknown ;
264+ cpuinfo_log_debug ( " unknown /proc/cpuinfo key: %.*s" , ( int ) key_length , line_start ) ;
292265 }
266+ break ;
293267 case 7 :
294268 if (memcmp (line_start , "machine" , key_length ) == 0 ) {
295269 parse_cpu_architecture (value_start , value_end , processor );
296270 } else {
297- goto unknown ;
271+ cpuinfo_log_debug ( " unknown /proc/cpuinfo key: %.*s" , ( int ) key_length , line_start ) ;
298272 }
273+ break ;
299274 case 8 :
300275 if (memcmp (line_start , "revision" , key_length ) == 0 ) {
301276 parse_cpu_pvr (value_start , value_end , processor );
302277 } else {
303- goto unknown ;
278+ cpuinfo_log_debug ( " unknown /proc/cpuinfo key: %.*s" , ( int ) key_length , line_start ) ;
304279 }
280+ break ;
305281 case 9 :
306282 if (memcmp (line_start , "processor" , key_length ) == 0 ) {
307283 state -> processor_index = parse_processor_number (value_start , value_end );
308284 return true;
309285 } else {
310- goto unknown ;
286+ cpuinfo_log_debug ( " unknown /proc/cpuinfo key: %.*s" , ( int ) key_length , line_start ) ;
311287 }
312288 break ;
313289 default :
0 commit comments