On Mon, 19 Dec 2016 13:37:08 +0530
Madhavan Srinivasan <ma...@linux.vnet.ibm.com> wrote:

> Rename the paca->soft_enabled to paca->soft_disabled_mask as
> it is no more used as a flag for interrupt state.
> 

This makes it much more readable, thanks. I have a question which
isn't part of this patch but I just notice it now:


> @@ -193,8 +193,8 @@ static inline bool arch_irqs_disabled(void)
>  #define hard_irq_disable()   do {                    \
>       u8 _was_enabled;                                \
>       __hard_irq_disable();                           \
> -     _was_enabled = local_paca->soft_enabled;        \
> -     local_paca->soft_enabled = IRQ_DISABLE_MASK_LINUX;\
> +     _was_enabled = local_paca->soft_disabled_mask;  \
> +     local_paca->soft_disabled_mask = IRQ_DISABLE_MASK_LINUX;\
>       local_paca->irq_happened |= PACA_IRQ_HARD_DIS;  \
>       if (_was_enabled == IRQ_DISABLE_MASK_NONE)      \
>               trace_hardirqs_off();                   \

trace_hardirqs_off() is the Linux interrupt disable, i.e., the MASK_LINUX
bit. So I think the test should be:

if (!(_was_enabled & IRQ_DISABLE_MASK_LINUX))

After your rename it should be called _was_masked instead  I guess.

Also I suppose the new soft disable mask should include all interrupt
bits, shouldn't it? It would be confusing to get the situation where
hard_irq_disable() strips the PMU bit off the mask. If you agree, then
it would be good to add IRQ_DISABLE_MASK_ALL define where the bits are
defined.

Thanks,
Nick

Reply via email to