Module Name:    src
Committed By:   sevan
Date:           Sun Jan 12 23:22:12 UTC 2020

Modified Files:
        src/sys/dev/pci: if_rge.c if_rgereg.h

Log Message:
Start to switch from OpenBSD timeout(9) API to callout(9) and workqueue(9)
Replace functions with NetBSD counterparts.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/dev/pci/if_rge.c src/sys/dev/pci/if_rgereg.h

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_rge.c
diff -u src/sys/dev/pci/if_rge.c:1.2 src/sys/dev/pci/if_rge.c:1.3
--- src/sys/dev/pci/if_rge.c:1.2	Sat Jan 11 21:05:45 2020
+++ src/sys/dev/pci/if_rge.c	Sun Jan 12 23:22:12 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_rge.c,v 1.2 2020/01/11 21:05:45 sevan Exp $	*/
+/*	$NetBSD: if_rge.c,v 1.3 2020/01/12 23:22:12 sevan Exp $	*/
 /*	$OpenBSD: if_rge.c,v 1.2 2020/01/02 09:00:45 kevlo Exp $	*/
 
 /*
@@ -18,7 +18,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_rge.c,v 1.2 2020/01/11 21:05:45 sevan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_rge.c,v 1.3 2020/01/12 23:22:12 sevan Exp $");
 
 /* #include "bpfilter.h" Sevan */
 /* #include "vlan.h" Sevan */
@@ -34,6 +34,8 @@ __KERNEL_RCSID(0, "$NetBSD: if_rge.c,v 1
 #include <sys/socket.h>
 #include <sys/device.h>
 #include <sys/endian.h>
+#include <sys/callout.h>
+#include <sys/workqueue.h>
 
 #include <net/if.h>
 
@@ -69,6 +71,12 @@ struct mbuf_list {
 	struct mbuf 	*ml_tail;
 	u_int 	ml_len;
 };
+#ifdef NET_MPSAFE
+#define 	RGE_MPSAFE	1
+#define 	CALLOUT_FLAGS	CALLOUT_MPSAFE
+#else
+#define 	CALLOUT_FLAGS	0
+#endif
 #endif
 
 static int		rge_match(device_t, cfdata_t, void *);
@@ -113,7 +121,7 @@ void		rge_write_phy(struct rge_softc *, 
 void		rge_write_phy_ocp(struct rge_softc *, uint16_t, uint16_t);
 uint16_t	rge_read_phy_ocp(struct rge_softc *, uint16_t);
 int		rge_get_link_status(struct rge_softc *);
-void		rge_txstart(void *);
+void		rge_txstart(struct work *, void *);
 void		rge_tick(void *);
 void		rge_link_state(struct rge_softc *);
 
@@ -284,8 +292,9 @@ rge_attach(device_t parent, device_t sel
 	ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING;
 #endif
 
-	timeout_set(&sc->sc_timeout, rge_tick, sc);
-	task_set(&sc->sc_task, rge_txstart, sc);
+	callout_init(&sc->sc_timeout, CALLOUT_FLAGS);
+	callout_setfunc(&sc->sc_timeout, rge_tick, sc);
+	rge_txstart(&sc->sc_task, sc);
 
 	/* Initialize ifmedia structures. */
 	ifmedia_init(&sc->sc_media, IFM_IMASK, rge_ifmedia_upd,
@@ -521,9 +530,8 @@ rge_ioctl(struct ifnet *ifp, u_long cmd,
 }
 
 void
-rge_start(struct ifnet *ifq)
+rge_start(struct ifnet *ifp)
 {
-	struct ifnet *ifp = ifq->ifq_if;
 	struct rge_softc *sc = ifp->if_softc;
 	struct mbuf *m;
 	int free, idx, used;
@@ -546,11 +554,11 @@ rge_start(struct ifnet *ifq)
 
 	for (;;) {
 		if (RGE_TX_NSEGS >= free + 2) {
-			ifq_set_oactive(&ifp->if_snd);
+			SET(ifp->if_flags, IFF_OACTIVE);
 			break;
 		}
 
-		m = ifq_dequeue(ifq);
+		IFQ_DEQUEUE(&ifp->if_snd, m);
 		if (m == NULL)
 			break;
 
@@ -763,9 +771,9 @@ rge_init(struct ifnet *ifp)
 	rge_setup_intr(sc, RGE_IMTYPE_SIM);
 
 	ifp->if_flags |= IFF_RUNNING;
-	ifq_clr_oactive(&ifp->if_snd);
+	CLR(ifp->if_flags, IFF_OACTIVE);
 
-	timeout_add_sec(&sc->sc_timeout, 1);
+	callout_schedule(&sc->sc_timeout, 1);
 
 	return (0);
 }
@@ -2004,7 +2012,7 @@ rge_get_link_status(struct rge_softc *sc
 }
 
 void
-rge_txstart(void *arg)
+rge_txstart(struct work *wk, void *arg)
 {
 	struct rge_softc *sc = arg;
 
Index: src/sys/dev/pci/if_rgereg.h
diff -u src/sys/dev/pci/if_rgereg.h:1.2 src/sys/dev/pci/if_rgereg.h:1.3
--- src/sys/dev/pci/if_rgereg.h:1.2	Sat Jan 11 21:05:45 2020
+++ src/sys/dev/pci/if_rgereg.h	Sun Jan 12 23:22:12 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_rgereg.h,v 1.2 2020/01/11 21:05:45 sevan Exp $	*/
+/*	$NetBSD: if_rgereg.h,v 1.3 2020/01/12 23:22:12 sevan Exp $	*/
 /*	$OpenBSD: if_rgereg.h,v 1.1 2019/11/18 03:03:37 kevlo Exp $	*/
 
 /*
@@ -291,7 +291,7 @@ struct rge_softc {
 
 	struct rge_list_data	rge_ldata;
 
-/*	struct task		sc_task; Sevan */
+	struct work		sc_task;
 
 	callout_t		sc_timeout;	/* tick timeout */
 

Reply via email to