diff options
Diffstat (limited to 'arch/powerpc/sysdev/xive/common.c')
| -rw-r--r-- | arch/powerpc/sysdev/xive/common.c | 3 | 
1 files changed, 2 insertions, 1 deletions
| diff --git a/arch/powerpc/sysdev/xive/common.c b/arch/powerpc/sysdev/xive/common.c index c732ce5a3e1a..c5d75c02ad8b 100644 --- a/arch/powerpc/sysdev/xive/common.c +++ b/arch/powerpc/sysdev/xive/common.c @@ -945,7 +945,8 @@ static int xive_get_irqchip_state(struct irq_data *data,  		 * interrupt to be inactive in that case.  		 */  		*state = (pq != XIVE_ESB_INVALID) && !xd->stale_p && -			(xd->saved_p || !!(pq & XIVE_ESB_VAL_P)); +			(xd->saved_p || (!!(pq & XIVE_ESB_VAL_P) && +			 !irqd_irq_disabled(data)));  		return 0;  	default:  		return -EINVAL; |