diff options
Diffstat (limited to 'arch/x86/kernel/cpu/amd.c')
| -rw-r--r-- | arch/x86/kernel/cpu/amd.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index a5ece6ebe8a7..a6f88ca1a6b4 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -1326,8 +1326,8 @@ static const char * const s5_reset_reason_txt[] = {  static __init int print_s5_reset_status_mmio(void)  { -	unsigned long value;  	void __iomem *addr; +	u32 value;  	int i;  	if (!cpu_feature_enabled(X86_FEATURE_ZEN)) @@ -1340,12 +1340,16 @@ static __init int print_s5_reset_status_mmio(void)  	value = ioread32(addr);  	iounmap(addr); +	/* Value with "all bits set" is an error response and should be ignored. */ +	if (value == U32_MAX) +		return 0; +  	for (i = 0; i < ARRAY_SIZE(s5_reset_reason_txt); i++) {  		if (!(value & BIT(i)))  			continue;  		if (s5_reset_reason_txt[i]) { -			pr_info("x86/amd: Previous system reset reason [0x%08lx]: %s\n", +			pr_info("x86/amd: Previous system reset reason [0x%08x]: %s\n",  				value, s5_reset_reason_txt[i]);  		}  	} | 
