Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Mar 2021 12:04:49 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Hans Petter Selasky <hselasky@freebsd.org>
Cc:        src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: git: d1cbe7908986 - main - Allocating the LinuxKPI current structure from an interrupt thread must be done using the M_NOWAIT flag after 1ae20f7c70ea .
Message-ID:  <YEiZwWT28AeXzQjA@kib.kiev.ua>
In-Reply-To: <202103100952.12A9qRKR040117@gitrepo.freebsd.org>
References:  <202103100952.12A9qRKR040117@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Mar 10, 2021 at 09:52:27AM +0000, Hans Petter Selasky wrote:
> The branch main has been updated by hselasky:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=d1cbe79089868226625c12ef49f51214d79aa427
> 
> commit d1cbe79089868226625c12ef49f51214d79aa427
> Author:     Hans Petter Selasky <hselasky@FreeBSD.org>
> AuthorDate: 2021-03-10 09:50:01 +0000
> Commit:     Hans Petter Selasky <hselasky@FreeBSD.org>
> CommitDate: 2021-03-10 09:51:04 +0000
> 
>     Allocating the LinuxKPI current structure from an interrupt thread must be
>     done using the M_NOWAIT flag after 1ae20f7c70ea .
>     
>     MFC after:      1 week
>     Sponsored by:   Mellanox Technologies // NVIDIA Networking
> ---
>  sys/compat/linuxkpi/common/src/linux_compat.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/sys/compat/linuxkpi/common/src/linux_compat.c b/sys/compat/linuxkpi/common/src/linux_compat.c
> index 2ad936311204..707c5e47512e 100644
> --- a/sys/compat/linuxkpi/common/src/linux_compat.c
> +++ b/sys/compat/linuxkpi/common/src/linux_compat.c
> @@ -2384,7 +2384,8 @@ linux_irq_handler(void *ent)
>  {
>  	struct irq_ent *irqe;
>  
> -	linux_set_current(curthread);
> +	if (linux_set_current_flags(curthread, M_NOWAIT))
> +		return;
>  
>  	irqe = ent;
>  	irqe->handler(irqe->irq, irqe->arg);
This probably hangs machine instead of panicing.  In low memory condition,
you do not handle interrupt, which probably mean that the source is not
silenced, and after EOI the same interrupt will be generated again.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YEiZwWT28AeXzQjA>