[Midnightbsd-cvs] src: if_cx.c: merge

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sun Nov 30 11:15:01 EST 2008


Log Message:
-----------
merge

Modified Files:
--------------
    src/sys/dev/cx:
        if_cx.c (r1.2 -> r1.3)

-------------- next part --------------
Index: if_cx.c
===================================================================
RCS file: /home/cvs/src/sys/dev/cx/if_cx.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -L sys/dev/cx/if_cx.c -L sys/dev/cx/if_cx.c -u -r1.2 -r1.3
--- sys/dev/cx/if_cx.c
+++ sys/dev/cx/if_cx.c
@@ -23,13 +23,14 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/cx/if_cx.c,v 1.45.2.2 2006/03/10 19:37:31 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cx/if_cx.c,v 1.57 2007/07/27 11:59:56 rwatson Exp $");
 
 #include <sys/param.h>
 
 #include <sys/systm.h>
 #include <sys/kernel.h>
 #include <sys/module.h>
+#include <sys/priv.h>
 #include <sys/proc.h>
 #include <sys/mbuf.h>
 #include <sys/sockio.h>
@@ -51,7 +52,6 @@
 #include <net/if.h>
 #include <machine/cpufunc.h>
 #include <machine/cserial.h>
-#include <machine/clock.h>
 #include <machine/resource.h>
 #include <dev/cx/machdep.h>
 #include <dev/cx/cxddk.h>
@@ -229,7 +229,18 @@
 static drv_t *channel [NCX*NCHAN];
 static struct callout led_timo [NCX];
 static struct callout timeout_handle;
-extern struct cdevsw cx_cdevsw;
+
+static int cx_open (struct cdev *dev, int flag, int mode, struct thread *td);
+static int cx_close (struct cdev *dev, int flag, int mode, struct thread *td);
+static int cx_ioctl (struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td);
+static struct cdevsw cx_cdevsw = {
+	.d_version  = D_VERSION,
+	.d_open     = cx_open,
+	.d_close    = cx_close,
+	.d_ioctl    = cx_ioctl,
+	.d_name     = "cx",
+	.d_flags    = D_TTY | D_NEEDGIANT,
+};
 
 static int MY_SOFT_INTR;
 
@@ -769,7 +780,7 @@
 	s = splhigh ();
 	if (bus_setup_intr (dev, bd->irq_res,
 			   INTR_TYPE_NET|(cx_mpsafenet?INTR_MPSAFE:0),
-			   cx_intr, bd, &bd->intrhand)) {
+			   NULL, cx_intr, bd, &bd->intrhand)) {
 		printf ("cx%d: Can't setup irq %ld\n", unit, irq);
 		bd->board = 0;
 		b->sys = 0;
@@ -887,8 +898,7 @@
 		cx_register_modem (c, &cx_modem);
 		CX_UNLOCK (bd);
 
-		ttycreate(d->tty, NULL, 0, MINOR_CALLOUT,
-		    "x%r%r", b->num, c->num);
+		ttycreate(d->tty, TS_CALLOUT, "x%r%r", b->num, c->num);
 		d->devt = make_dev (&cx_cdevsw, b->num*NCHAN + c->num + 64, UID_ROOT, GID_WHEEL, 0600, "cx%d", b->num*NCHAN + c->num);
 		d->devt->si_drv1 = d;
 		callout_init (&d->dcd_timeout_handle,
@@ -947,13 +957,10 @@
 	}
 	CX_UNLOCK (bd);
 	bus_teardown_intr (dev, bd->irq_res, bd->intrhand);
-	bus_deactivate_resource (dev, SYS_RES_IRQ, bd->irq_rid, bd->irq_res);
 	bus_release_resource (dev, SYS_RES_IRQ, bd->irq_rid, bd->irq_res);
 	
-	bus_deactivate_resource (dev, SYS_RES_DRQ, bd->drq_rid, bd->drq_res);
 	bus_release_resource (dev, SYS_RES_DRQ, bd->drq_rid, bd->drq_res);
 	
-	bus_deactivate_resource (dev, SYS_RES_IOPORT, bd->base_rid, bd->irq_res);
 	bus_release_resource (dev, SYS_RES_IOPORT, bd->base_rid, bd->base_res);
 
 	CX_LOCK (bd);
@@ -1185,8 +1192,7 @@
 		if (! m)
 			return;
 #ifndef NETGRAPH
-		if (d->ifp->if_bpf)
-			BPF_MTAP (d->ifp, m);
+		BPF_MTAP (d->ifp, m);
 #endif
 		len = m_length (m, NULL);
 		if (! m->m_next)
@@ -1342,8 +1348,7 @@
 	m->m_pkthdr.rcvif = d->ifp;
 	/* Check if there's a BPF listener on this interface.
 	 * If so, hand off the raw packet to bpf. */
-	if (d->ifp->if_bpf)
-		BPF_TAP (d->ifp, data, len);
+	BPF_TAP (d->ifp, data, len);
 	IF_ENQUEUE (&d->queue, m);
 #endif
 }
@@ -1623,7 +1628,7 @@
 	case SERIAL_SETPORT:
 		CX_DEBUG2 (d, ("ioctl: setproto\n"));
 		/* Only for superuser! */
-		error = suser (td);
+		error = priv_check (td, PRIV_DRIVER);
 		if (error)
 			return error;
 
@@ -1649,7 +1654,7 @@
 	case SERIAL_SETPROTO:
 		CX_DEBUG2 (d, ("ioctl: setproto\n"));
 		/* Only for superuser! */
-		error = suser (td);
+		error = priv_check (td, PRIV_DRIVER);
 		if (error)
 			return error;
 		if (c->mode == M_ASYNC)
@@ -1686,7 +1691,7 @@
 	case SERIAL_SETKEEPALIVE:
 		CX_DEBUG2 (d, ("ioctl: setkeepalive\n"));
 		/* Only for superuser! */
-		error = suser (td);
+		error = priv_check (td, PRIV_DRIVER);
 		if (error)
 			return error;
 		if ((IFP2SP(d->ifp)->pp_flags & PP_FR) ||
@@ -1716,7 +1721,7 @@
 	case SERIAL_SETMODE:
 		CX_DEBUG2 (d, ("ioctl: setmode\n"));
 		/* Only for superuser! */
-		error = suser (td);
+		error = priv_check (td, PRIV_DRIVER);
 		if (error)
 			return error;
 
@@ -1769,7 +1774,7 @@
 	case SERIAL_CLRSTAT:
 		CX_DEBUG2 (d, ("ioctl: clrstat\n"));
 		/* Only for superuser! */
-		error = suser (td);
+		error = priv_check (td, PRIV_DRIVER);
 		if (error)
 			return error;
 		s = splhigh ();
@@ -1801,7 +1806,7 @@
 	case SERIAL_SETBAUD:
 		CX_DEBUG2 (d, ("ioctl: setbaud\n"));
 		/* Only for superuser! */
-		error = suser (td);
+		error = priv_check (td, PRIV_DRIVER);
 		if (error)
 			return error;
 		if (c->mode == M_ASYNC)
@@ -1827,7 +1832,7 @@
 	case SERIAL_SETLOOP:
 		CX_DEBUG2 (d, ("ioctl: setloop\n"));
 		/* Only for superuser! */
-		error = suser (td);
+		error = priv_check (td, PRIV_DRIVER);
 		if (error)
 			return error;
 		if (c->mode == M_ASYNC)
@@ -1853,7 +1858,7 @@
 	case SERIAL_SETDPLL:
 		CX_DEBUG2 (d, ("ioctl: setdpll\n"));
 		/* Only for superuser! */
-		error = suser (td);
+		error = priv_check (td, PRIV_DRIVER);
 		if (error)
 			return error;
 		if (c->mode == M_ASYNC)
@@ -1879,7 +1884,7 @@
 	case SERIAL_SETNRZI:
 		CX_DEBUG2 (d, ("ioctl: setnrzi\n"));
 		/* Only for superuser! */
-		error = suser (td);
+		error = priv_check (td, PRIV_DRIVER);
 		if (error)
 			return error;
 		if (c->mode == M_ASYNC)
@@ -1903,7 +1908,7 @@
 	case SERIAL_SETDEBUG:
 		CX_DEBUG2 (d, ("ioctl: setdebug\n"));
 		/* Only for superuser! */
-		error = suser (td);
+		error = priv_check (td, PRIV_DRIVER);
 		if (error)
 			return error;
 		s = splhigh ();
@@ -2265,15 +2270,6 @@
 	callout_reset (&d->dcd_timeout_handle, hz/2, cx_carrier, d);
 }
 
-static struct cdevsw cx_cdevsw = {
-	.d_version  = D_VERSION,
-	.d_open     = cx_open,
-	.d_close    = cx_close,
-	.d_ioctl    = cx_ioctl,
-	.d_name     = "cx",
-	.d_flags    = D_TTY | D_NEEDGIANT,
-};
-
 #ifdef NETGRAPH
 static int ng_cx_constructor (node_p node)
 {
@@ -2527,11 +2523,6 @@
 {
 	static int load_count = 0;
 
-	if (!debug_mpsafenet && cx_mpsafenet) {
-		printf ("WORNING! Network stack is not MPSAFE. "
-			"Turning off debug.cx.mpsafenet.\n");
-		cx_mpsafenet = 0;
-	}
 	if (cx_mpsafenet)
 		cx_cdevsw.d_flags &= ~D_NEEDGIANT;
 


More information about the Midnightbsd-cvs mailing list