File tree Expand file tree Collapse file tree 1 file changed +12
-2
lines changed
arch/powerpc/platforms/pseries Expand file tree Collapse file tree 1 file changed +12
-2
lines changed Original file line number Diff line number Diff line change @@ -784,9 +784,13 @@ static void xics_set_cpu_priority(unsigned char cppr)
784
784
{
785
785
struct xics_cppr * os_cppr = & __get_cpu_var (xics_cppr );
786
786
787
- BUG_ON (os_cppr -> index != 0 );
787
+ /*
788
+ * we only really want to set the priority when there's
789
+ * just one cppr value on the stack
790
+ */
791
+ WARN_ON (os_cppr -> index != 0 );
788
792
789
- os_cppr -> stack [os_cppr -> index ] = cppr ;
793
+ os_cppr -> stack [0 ] = cppr ;
790
794
791
795
if (firmware_has_feature (FW_FEATURE_LPAR ))
792
796
lpar_cppr_info (cppr );
@@ -821,8 +825,14 @@ void xics_setup_cpu(void)
821
825
822
826
void xics_teardown_cpu (void )
823
827
{
828
+ struct xics_cppr * os_cppr = & __get_cpu_var (xics_cppr );
824
829
int cpu = smp_processor_id ();
825
830
831
+ /*
832
+ * we have to reset the cppr index to 0 because we're
833
+ * not going to return from the IPI
834
+ */
835
+ os_cppr -> index = 0 ;
826
836
xics_set_cpu_priority (0 );
827
837
828
838
/* Clear any pending IPI request */
You can’t perform that action at this time.
0 commit comments