Author: rwatson
Date: Sat Aug 15 23:07:43 2009
New Revision: 196267
URL: http://svn.freebsd.org/changeset/base/196267

Log:
  Rather than fix questionable ifnet list locking in the implementation of
  the kern.polling.enable sysctl, remove the sysctl.  It has been deprecated
  since FreeBSD 6 in favour of per-ifnet polling flags.
  
  Reviewed by:  luigi
  Approved by:  re (kib)

Modified:
  head/share/man/man4/polling.4
  head/sys/kern/kern_poll.c

Modified: head/share/man/man4/polling.4
==============================================================================
--- head/share/man/man4/polling.4       Sat Aug 15 22:51:11 2009        
(r196266)
+++ head/share/man/man4/polling.4       Sat Aug 15 23:07:43 2009        
(r196267)
@@ -87,6 +87,16 @@ feature.
 It is turned on and off with help of
 .Xr ifconfig 8
 command.
+.Pp
+The historic
+.Va kern.polling.enable ,
+which enabled polling for all interfaces, can be replaced with the following
+code:
+.Bd -literal
+for i in `ifconfig -l` ;
+  do ifconfig $i polling; # use -polling to disable
+done
+.Ed
 .Ss MIB Variables
 The operation of
 .Nm
@@ -156,15 +166,6 @@ Default is 20.
 How many active devices have registered for
 .Nm .
 .Pp
-.It Va kern.polling.enable
-Legacy MIB, that was used to enable or disable polling globally.
-Currently if set to 1,
-.Nm
-is enabled on all capable interfaces.
-If set to 0,
-.Nm
-is disabled on all interfaces.
-.Pp
 .It Va kern.polling.short_ticks
 .It Va kern.polling.lost_polls
 .It Va kern.polling.pending_polls

Modified: head/sys/kern/kern_poll.c
==============================================================================
--- head/sys/kern/kern_poll.c   Sat Aug 15 22:51:11 2009        (r196266)
+++ head/sys/kern/kern_poll.c   Sat Aug 15 23:07:43 2009        (r196267)
@@ -46,8 +46,6 @@ __FBSDID("$FreeBSD$");
 #include <net/netisr.h>                        /* for NETISR_POLL              
*/
 #include <net/vnet.h>
 
-static int poll_switch(SYSCTL_HANDLER_ARGS);
-
 void hardclock_device_poll(void);      /* hook from hardclock          */
 
 static struct mtx      poll_mtx;
@@ -230,10 +228,6 @@ static uint32_t poll_handlers; /* next f
 SYSCTL_UINT(_kern_polling, OID_AUTO, handlers, CTLFLAG_RD,
        &poll_handlers, 0, "Number of registered poll handlers");
 
-static int polling = 0;
-SYSCTL_PROC(_kern_polling, OID_AUTO, enable, CTLTYPE_UINT | CTLFLAG_RW,
-       0, sizeof(int), poll_switch, "I", "Switch polling for all interfaces");
-
 static uint32_t phase;
 SYSCTL_UINT(_kern_polling, OID_AUTO, phase, CTLFLAG_RD,
        &phase, 0, "Polling phase");
@@ -538,49 +532,6 @@ ether_poll_deregister(struct ifnet *ifp)
        return (0);
 }
 
-/*
- * Legacy interface for turning polling on all interfaces at one time.
- */
-static int
-poll_switch(SYSCTL_HANDLER_ARGS)
-{
-       struct ifnet *ifp;
-       int error;
-       int val = polling;
-
-       error = sysctl_handle_int(oidp, &val, 0, req);
-       if (error || !req->newptr )
-               return (error);
-
-       if (val == polling)
-               return (0);
-
-       if (val < 0 || val > 1)
-               return (EINVAL);
-
-       polling = val;
-
-       IFNET_RLOCK();
-       TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
-               if (ifp->if_capabilities & IFCAP_POLLING) {
-                       struct ifreq ifr;
-
-                       if (val == 1)
-                               ifr.ifr_reqcap =
-                                   ifp->if_capenable | IFCAP_POLLING;
-                       else
-                               ifr.ifr_reqcap =
-                                   ifp->if_capenable & ~IFCAP_POLLING;
-                       (void) (*ifp->if_ioctl)(ifp, SIOCSIFCAP, (caddr_t)&ifr);
-               }
-       }
-       IFNET_RUNLOCK();
-
-       log(LOG_ERR, "kern.polling.enable is deprecated. Use ifconfig(8)");
-
-       return (0);
-}
-
 static void
 poll_idle(void)
 {
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to