Module Name:    src
Committed By:   yamaguchi
Date:           Fri Jul 31 09:34:34 UTC 2020

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

Log Message:
Use if_initialize() and if_register()


To generate a diff of this commit:
cvs rdiff -u -r1.70 -r1.71 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.70 src/sys/dev/pci/if_ixl.c:1.71
--- src/sys/dev/pci/if_ixl.c:1.70	Fri Jul 31 09:25:42 2020
+++ src/sys/dev/pci/if_ixl.c	Fri Jul 31 09:34:33 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_ixl.c,v 1.70 2020/07/31 09:25:42 yamaguchi Exp $	*/
+/*	$NetBSD: if_ixl.c,v 1.71 2020/07/31 09:34:33 yamaguchi Exp $	*/
 
 /*
  * Copyright (c) 2013-2015, Intel Corporation
@@ -74,7 +74,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ixl.c,v 1.70 2020/07/31 09:25:42 yamaguchi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ixl.c,v 1.71 2020/07/31 09:34:33 yamaguchi Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_net_mpsafe.h"
@@ -701,6 +701,7 @@ struct ixl_softc {
 	struct ixl_dmamem	 sc_hmc_pd;
 	struct ixl_hmc_entry	 sc_hmc_entries[IXL_HMC_COUNT];
 
+	struct if_percpuq	*sc_ipq;
 	unsigned int		 sc_tx_ring_ndescs;
 	unsigned int		 sc_rx_ring_ndescs;
 	unsigned int		 sc_nqueue_pairs;
@@ -1418,7 +1419,13 @@ ixl_attach(device_t parent, device_t sel
 	ifmedia_add(&sc->sc_media, IFM_ETHER | IFM_NONE, 0, NULL);
 	ifmedia_set(&sc->sc_media, IFM_ETHER | IFM_AUTO);
 
-	if_attach(ifp);
+	rv = if_initialize(ifp);
+	if (rv != 0) {
+		aprint_error_dev(self, "if_initialize failed=%d\n", rv);
+		goto teardown_wqs;
+	}
+
+	sc->sc_ipq = if_percpuq_create(ifp);
 	if_deferred_start_init(ifp, NULL);
 	ether_ifattach(ifp, sc->sc_enaddr);
 	ether_set_ifflags_cb(&sc->sc_ec, ixl_ifflags_cb);
@@ -1470,6 +1477,8 @@ ixl_attach(device_t parent, device_t sel
 	sc->sc_itr_rx = IXL_ITR_RX;
 	sc->sc_itr_tx = IXL_ITR_TX;
 	sc->sc_attached = true;
+	if_register(ifp);
+
 	return;
 
 teardown_wqs:
@@ -1556,6 +1565,7 @@ ixl_detach(device_t self, int flags)
 		sc->sc_workq_txrx = NULL;
 	}
 
+	if_percpuq_destroy(sc->sc_ipq);
 	ether_ifdetach(ifp);
 	if_detach(ifp);
 	ifmedia_fini(&sc->sc_media);
@@ -3332,7 +3342,7 @@ ixl_rxeof(struct ixl_softc *sc, struct i
 				if_statinc_ref(nsr, if_ipackets);
 				if_statadd_ref(nsr, if_ibytes,
 				    m->m_pkthdr.len);
-				if_percpuq_enqueue(ifp->if_percpuq, m);
+				if_percpuq_enqueue(sc->sc_ipq, m);
 			} else {
 				if_statinc_ref(nsr, if_ierrors);
 				m_freem(m);

Reply via email to