public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] irqchip: or1k-pic: Undefine mask_ack for level triggered hardware
@ 2022-06-28  1:28 Stafford Horne
  2022-06-28  8:25 ` Marc Zyngier
  0 siblings, 1 reply; 3+ messages in thread
From: Stafford Horne @ 2022-06-28  1:28 UTC (permalink / raw)
  To: LKML
  Cc: Openrisc, Stafford Horne, Jonas Bonn, Stefan Kristiansson,
	Thomas Gleixner, Marc Zyngier

The mask_ack operation clears the interrupt by writing to the PICSR
register.  This we don't want for level triggered interrupt because
it does not actually clear the interrupt on the source hardware.

This was causing issues in qemu with multi core setups where
interrupts would continue to fire even though they had been cleared in
PICSR.

Just remove the mask_ack operation.

Signed-off-by: Stafford Horne <shorne@gmail.com>
---
Note,

I currently have this queued with openrisc fixes for 5.19-rcX.  If this is ok
with the IRQ maintainers I would like to have this merged via the OpenRISC
queue.

 drivers/irqchip/irq-or1k-pic.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/irqchip/irq-or1k-pic.c b/drivers/irqchip/irq-or1k-pic.c
index 49b47e787644..f289ccd95291 100644
--- a/drivers/irqchip/irq-or1k-pic.c
+++ b/drivers/irqchip/irq-or1k-pic.c
@@ -66,7 +66,6 @@ static struct or1k_pic_dev or1k_pic_level = {
 		.name = "or1k-PIC-level",
 		.irq_unmask = or1k_pic_unmask,
 		.irq_mask = or1k_pic_mask,
-		.irq_mask_ack = or1k_pic_mask_ack,
 	},
 	.handle = handle_level_irq,
 	.flags = IRQ_LEVEL | IRQ_NOPROBE,
-- 
2.36.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] irqchip: or1k-pic: Undefine mask_ack for level triggered hardware
  2022-06-28  1:28 [PATCH] irqchip: or1k-pic: Undefine mask_ack for level triggered hardware Stafford Horne
@ 2022-06-28  8:25 ` Marc Zyngier
  2022-06-28  8:30   ` Stafford Horne
  0 siblings, 1 reply; 3+ messages in thread
From: Marc Zyngier @ 2022-06-28  8:25 UTC (permalink / raw)
  To: Stafford Horne
  Cc: LKML, Openrisc, Jonas Bonn, Stefan Kristiansson, Thomas Gleixner

On Tue, 28 Jun 2022 02:28:54 +0100,
Stafford Horne <shorne@gmail.com> wrote:
> 
> The mask_ack operation clears the interrupt by writing to the PICSR
> register.  This we don't want for level triggered interrupt because
> it does not actually clear the interrupt on the source hardware.
> 
> This was causing issues in qemu with multi core setups where
> interrupts would continue to fire even though they had been cleared in
> PICSR.
> 
> Just remove the mask_ack operation.
> 
> Signed-off-by: Stafford Horne <shorne@gmail.com>
> ---
> Note,
> 
> I currently have this queued with openrisc fixes for 5.19-rcX.  If this is ok
> with the IRQ maintainers I would like to have this merged via the OpenRISC
> queue.
> 
>  drivers/irqchip/irq-or1k-pic.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/drivers/irqchip/irq-or1k-pic.c b/drivers/irqchip/irq-or1k-pic.c
> index 49b47e787644..f289ccd95291 100644
> --- a/drivers/irqchip/irq-or1k-pic.c
> +++ b/drivers/irqchip/irq-or1k-pic.c
> @@ -66,7 +66,6 @@ static struct or1k_pic_dev or1k_pic_level = {
>  		.name = "or1k-PIC-level",
>  		.irq_unmask = or1k_pic_unmask,
>  		.irq_mask = or1k_pic_mask,
> -		.irq_mask_ack = or1k_pic_mask_ack,
>  	},
>  	.handle = handle_level_irq,
>  	.flags = IRQ_LEVEL | IRQ_NOPROBE,

Acked-by: Marc Zyngier <maz@kernel.org>

Feel free to take this via your tree.

	M.

-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] irqchip: or1k-pic: Undefine mask_ack for level triggered hardware
  2022-06-28  8:25 ` Marc Zyngier
@ 2022-06-28  8:30   ` Stafford Horne
  0 siblings, 0 replies; 3+ messages in thread
From: Stafford Horne @ 2022-06-28  8:30 UTC (permalink / raw)
  To: Marc Zyngier
  Cc: LKML, Openrisc, Jonas Bonn, Stefan Kristiansson, Thomas Gleixner

On Tue, Jun 28, 2022 at 09:25:25AM +0100, Marc Zyngier wrote:
> On Tue, 28 Jun 2022 02:28:54 +0100,
> Stafford Horne <shorne@gmail.com> wrote:
> > 
> > The mask_ack operation clears the interrupt by writing to the PICSR
> > register.  This we don't want for level triggered interrupt because
> > it does not actually clear the interrupt on the source hardware.
> > 
> > This was causing issues in qemu with multi core setups where
> > interrupts would continue to fire even though they had been cleared in
> > PICSR.
> > 
> > Just remove the mask_ack operation.
> > 
> > Signed-off-by: Stafford Horne <shorne@gmail.com>
> > ---
> > Note,
> > 
> > I currently have this queued with openrisc fixes for 5.19-rcX.  If this is ok
> > with the IRQ maintainers I would like to have this merged via the OpenRISC
> > queue.
> > 
> >  drivers/irqchip/irq-or1k-pic.c | 1 -
> >  1 file changed, 1 deletion(-)
> > 
> > diff --git a/drivers/irqchip/irq-or1k-pic.c b/drivers/irqchip/irq-or1k-pic.c
> > index 49b47e787644..f289ccd95291 100644
> > --- a/drivers/irqchip/irq-or1k-pic.c
> > +++ b/drivers/irqchip/irq-or1k-pic.c
> > @@ -66,7 +66,6 @@ static struct or1k_pic_dev or1k_pic_level = {
> >  		.name = "or1k-PIC-level",
> >  		.irq_unmask = or1k_pic_unmask,
> >  		.irq_mask = or1k_pic_mask,
> > -		.irq_mask_ack = or1k_pic_mask_ack,
> >  	},
> >  	.handle = handle_level_irq,
> >  	.flags = IRQ_LEVEL | IRQ_NOPROBE,
> 
> Acked-by: Marc Zyngier <maz@kernel.org>
> 
> Feel free to take this via your tree.

Thanks,

-Stafford

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-06-28  8:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-28  1:28 [PATCH] irqchip: or1k-pic: Undefine mask_ack for level triggered hardware Stafford Horne
2022-06-28  8:25 ` Marc Zyngier
2022-06-28  8:30   ` Stafford Horne

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox