Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc: Decode correct MSR bits in oops output

On a 64bit book3s machine I have an oops from a system reset that
claims the book3e CE bit was set:

MSR: 8000000000021032 <ME,CE,IR,DR> CR: 24004082 XER: 00000010

On a book3s machine system reset sets IBM bit 46 and 47 depending on
the power saving mode. Separate the definitions by type and for
completeness add the rest of the bits in.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

authored by

Anton Blanchard and committed by
Benjamin Herrenschmidt
3bfd0c9c e1fc235d

+19 -3
+19 -3
arch/powerpc/kernel/process.c
··· 584 584 unsigned long bit; 585 585 const char *name; 586 586 } msr_bits[] = { 587 + #if defined(CONFIG_PPC64) && !defined(CONFIG_BOOKE) 588 + {MSR_SF, "SF"}, 589 + {MSR_HV, "HV"}, 590 + #endif 591 + {MSR_VEC, "VEC"}, 592 + {MSR_VSX, "VSX"}, 593 + #ifdef CONFIG_BOOKE 594 + {MSR_CE, "CE"}, 595 + #endif 587 596 {MSR_EE, "EE"}, 588 597 {MSR_PR, "PR"}, 589 598 {MSR_FP, "FP"}, 590 - {MSR_VEC, "VEC"}, 591 - {MSR_VSX, "VSX"}, 592 599 {MSR_ME, "ME"}, 593 - {MSR_CE, "CE"}, 600 + #ifdef CONFIG_BOOKE 594 601 {MSR_DE, "DE"}, 602 + #else 603 + {MSR_SE, "SE"}, 604 + {MSR_BE, "BE"}, 605 + #endif 595 606 {MSR_IR, "IR"}, 596 607 {MSR_DR, "DR"}, 608 + {MSR_PMM, "PMM"}, 609 + #ifndef CONFIG_BOOKE 610 + {MSR_RI, "RI"}, 611 + {MSR_LE, "LE"}, 612 + #endif 597 613 {0, NULL} 598 614 }; 599 615