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