Re: [PATCH 2/2] parisc: Delay until next timer irq in __cpu_disable()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 25 Mar 2022 17:40:40 +0100
Helge Deller <deller@xxxxxx> wrote:

> Wait for next timer irq to trigger, then clear all pending external
> irqs before jumping into rendevous PDC loop.

*rendezvous

> 
> Signed-off-by: Helge Deller <deller@xxxxxx>
> ---
>  arch/parisc/kernel/smp.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c
> index 60cc33fd345c..564442ac74c9 100644
> --- a/arch/parisc/kernel/smp.c
> +++ b/arch/parisc/kernel/smp.c
> @@ -491,6 +491,15 @@ int __cpu_disable(void)
> 
>  	/* disable all irqs, including timer irq */
>  	local_irq_disable();
> +
> +	/* wait for next timer irq ... */
> +	mdelay(1000/HZ+100);
> +
> +	/* ... and then clear all pending external irqs */
> +	set_eiem(0);
> +	mtctl(~0UL, CR_EIRR);
> +	mfctl(CR_EIRR);
> +	mtctl(0, CR_EIRR);
>  #endif
>  	return 0;
>  }
> --
> 2.35.1
> 

Kind regards,
     jer



[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux