Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/pci Do IXL_AQ_OP_SET_VSI_PROMISC in ixl_ifflags_cb()...



details:   https://anonhg.NetBSD.org/src/rev/e35fd8b604d0
branches:  trunk
changeset: 967733:e35fd8b604d0
user:      yamaguchi <yamaguchi%NetBSD.org@localhost>
date:      Fri Dec 20 01:54:39 2019 +0000

description:
Do IXL_AQ_OP_SET_VSI_PROMISC in ixl_ifflags_cb() for
applying IFF_PROMISC

diffstat:

 sys/dev/pci/if_ixl.c |  21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

diffs (57 lines):

diff -r 2877aff65337 -r e35fd8b604d0 sys/dev/pci/if_ixl.c
--- a/sys/dev/pci/if_ixl.c      Fri Dec 20 01:49:30 2019 +0000
+++ b/sys/dev/pci/if_ixl.c      Fri Dec 20 01:54:39 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_ixl.c,v 1.8 2019/12/20 01:49:30 yamaguchi Exp $     */
+/*     $NetBSD: if_ixl.c,v 1.9 2019/12/20 01:54:39 yamaguchi Exp $     */
 
 /*
  * Copyright (c) 2013-2015, Intel Corporation
@@ -3414,6 +3414,8 @@
        unsigned int prod;
        unsigned int t = 0;
 
+       mutex_enter(&sc->sc_atq_lock);
+
        atq = IXL_DMA_KVA(&sc->sc_atq);
        prod = sc->sc_atq_prod;
        slot = atq + prod;
@@ -3435,8 +3437,10 @@
        while (ixl_rd(sc, sc->sc_aq_regs->atq_head) != prod) {
                delaymsec(1);
 
-               if (t++ > tm)
+               if (t++ > tm) {
+                       mutex_exit(&sc->sc_atq_lock);
                        return ETIMEDOUT;
+               }
        }
 
        bus_dmamap_sync(sc->sc_dmat, IXL_DMA_MAP(&sc->sc_atq),
@@ -3448,6 +3452,8 @@
 
        sc->sc_atq_cons = prod;
 
+       mutex_exit(&sc->sc_atq_lock);
+
        return 0;
 }
 
@@ -4820,8 +4826,15 @@
 static int
 ixl_ifflags_cb(struct ethercom *ec)
 {
-
-       return 0;
+       struct ifnet *ifp = &ec->ec_if;
+       struct ixl_softc *sc = ifp->if_softc;
+       int rv;
+
+       mutex_enter(&sc->sc_cfg_lock);
+       rv = ixl_iff(sc);
+       mutex_exit(&sc->sc_cfg_lock);
+
+       return rv;
 }
 
 static int



Home | Main Index | Thread Index | Old Index