Module Name:    src
Committed By:   yamaguchi
Date:           Wed Jan  8 09:12:11 UTC 2020

Modified Files:
        src/sys/dev/pci: if_ixl.c

Log Message:
Not stop kpreempt if unnecessary, ixl(4)


To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/dev/pci/if_ixl.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/pci/if_ixl.c
diff -u src/sys/dev/pci/if_ixl.c:1.15 src/sys/dev/pci/if_ixl.c:1.16
--- src/sys/dev/pci/if_ixl.c:1.15	Thu Dec 26 03:55:00 2019
+++ src/sys/dev/pci/if_ixl.c	Wed Jan  8 09:12:11 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_ixl.c,v 1.15 2019/12/26 03:55:00 yamaguchi Exp $	*/
+/*	$NetBSD: if_ixl.c,v 1.16 2020/01/08 09:12:11 yamaguchi Exp $	*/
 
 /*
  * Copyright (c) 2013-2015, Intel Corporation
@@ -3337,6 +3337,8 @@ ixl_link_state_update(struct ixl_softc *
 	struct ifnet *ifp = &sc->sc_ec.ec_if;
 	int link_state;
 
+	KASSERT(kpreempt_disabled());
+
 	link_state = ixl_set_link_status(sc, iaq);
 
 	if (ifp->if_link_state != link_state)
@@ -3405,7 +3407,9 @@ ixl_arq(void *xsc)
 
 		switch (iaq->iaq_opcode) {
 		case htole16(IXL_AQ_OP_PHY_LINK_STATUS):
+			kpreempt_disable();
 			ixl_link_state_update(sc, iaq);
+			kpreempt_enable();
 			break;
 		}
 
@@ -5665,9 +5669,7 @@ ixl_workq_work(struct work *wk, void *co
 	work = container_of(wk, struct ixl_work, ixw_cookie);
 
 	atomic_swap_uint(&work->ixw_added, 0);
-	kpreempt_disable();
 	work->ixw_func(work->ixw_arg);
-	kpreempt_enable();
 }
 
 static int

Reply via email to