Fix missing check for netq->netq_stopping in vioif_rx_intr()

Reported-by: syzbot+5120b7a1f97a3f5ca052@syzkaller.appspotmail.com
https://syzkaller.appspot.com/bug?id=243cf4115808e49774a49294f63200770399660b
This commit is contained in:
yamaguchi 2023-05-11 05:50:18 +00:00
parent 1b3c330bb0
commit 2b696ab4fd
1 changed files with 5 additions and 2 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_vioif.c,v 1.107 2023/03/27 14:56:40 nakayama Exp $ */ /* $NetBSD: if_vioif.c,v 1.108 2023/05/11 05:50:18 yamaguchi Exp $ */
/* /*
* Copyright (c) 2020 The NetBSD Foundation, Inc. * Copyright (c) 2020 The NetBSD Foundation, Inc.
@ -27,7 +27,7 @@
*/ */
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: if_vioif.c,v 1.107 2023/03/27 14:56:40 nakayama Exp $"); __KERNEL_RCSID(0, "$NetBSD: if_vioif.c,v 1.108 2023/05/11 05:50:18 yamaguchi Exp $");
#ifdef _KERNEL_OPT #ifdef _KERNEL_OPT
#include "opt_net_mpsafe.h" #include "opt_net_mpsafe.h"
@ -1924,6 +1924,9 @@ vioif_rx_intr(void *arg)
if (netq->netq_running_handle) if (netq->netq_running_handle)
goto done; goto done;
if (netq->netq_stopping)
goto done;
netq->netq_running_handle = true; netq->netq_running_handle = true;
limit = sc->sc_rx_intr_process_limit; limit = sc->sc_rx_intr_process_limit;