PPC: Set MPIC IDE for IPI to 0
We use the IDE register with IPIs as a mask to keep track which processors have already acknowledged the respective interrupt. So we need to initialize it to 0 to make sure that it doesn't accidently fire an IPI on CPU0 when the first IPI is triggered. Reported-by: Elie Richa <richa@adacore.com> Signed-off-by: Alexander Graf <agraf@suse.de> --- v2 -> v3: - fix IDE IPI reset
This commit is contained in:
		
							parent
							
								
									a675155e2d
								
							
						
					
					
						commit
						9250fd24a9
					
				@ -1299,6 +1299,10 @@ static void mpic_reset (void *opaque)
 | 
				
			|||||||
        mpp->src[i].ipvp = 0x80800000;
 | 
					        mpp->src[i].ipvp = 0x80800000;
 | 
				
			||||||
        mpp->src[i].ide  = 0x00000001;
 | 
					        mpp->src[i].ide  = 0x00000001;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    /* Set IDE for IPIs to 0 so we don't get spurious interrupts */
 | 
				
			||||||
 | 
					    for (i = mpp->irq_ipi0; i < (mpp->irq_ipi0 + MAX_IPI); i++) {
 | 
				
			||||||
 | 
					        mpp->src[i].ide = 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    /* Initialise IRQ destinations */
 | 
					    /* Initialise IRQ destinations */
 | 
				
			||||||
    for (i = 0; i < MAX_CPU; i++) {
 | 
					    for (i = 0; i < MAX_CPU; i++) {
 | 
				
			||||||
        mpp->dst[i].pctp      = 0x0000000F;
 | 
					        mpp->dst[i].pctp      = 0x0000000F;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user