Author: kib
Date: Thu Jan 31 19:05:56 2019
New Revision: 343617
URL: https://svnweb.freebsd.org/changeset/base/343617

Log:
  Make iflib a loadable module.
  
  iflib is already a module, but it is unconditionally compiled into the
  kernel.  There are drivers which do not need iflib(4), and there are
  situations where somebody might not want iflib in kernel because of
  using the corresponding driver as module.
  
  Reviewed by:  marius
  Discussed with:       erj
  Sponsored by: The FreeBSD Foundation
  MFC after:    2 weeks
  Differential revision:        https://reviews.freebsd.org/D19041

Added:
  head/sys/modules/iflib/
  head/sys/modules/iflib/Makefile   (contents, props changed)
Modified:
  head/UPDATING
  head/share/man/man4/bnxt.4
  head/share/man/man4/em.4
  head/share/man/man4/iavf.4
  head/share/man/man4/ixgbe.4
  head/share/man/man4/ixl.4
  head/share/man/man4/vmx.4
  head/sys/amd64/conf/GENERIC
  head/sys/arm64/conf/GENERIC
  head/sys/conf/NOTES
  head/sys/conf/files
  head/sys/dev/ixgbe/if_ixv.c
  head/sys/i386/conf/GENERIC
  head/sys/mips/conf/OCTEON1
  head/sys/mips/conf/std.XLP
  head/sys/modules/Makefile
  head/sys/powerpc/conf/GENERIC64
  head/sys/powerpc/conf/MPC85XX
  head/sys/powerpc/conf/MPC85XXSPE
  head/sys/powerpc/conf/QORIQ64
  head/sys/powerpc/conf/dpaa/DPAA
  head/sys/sparc64/conf/GENERIC

Modified: head/UPDATING
==============================================================================
--- head/UPDATING       Thu Jan 31 17:52:48 2019        (r343616)
+++ head/UPDATING       Thu Jan 31 19:05:56 2019        (r343617)
@@ -31,6 +31,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
        disable the most expensive debugging functionality run
        "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
 
+20190131:
+       Iflib is no longer unconditionally compiled into the kernel.  Drivers
+       using iflib and statically compiled into the kernel, now require
+       the 'device iflib' config option.  For the same drivers loaded as
+       modules on kernels not having 'device iflib', the iflib.ko module
+       is loaded automatically.
+
 20181230:
        r342635 changes the way efibootmgr(8) works by requiring users to add
        the -b (bootnum) parameter for commands where the bootnum was previously

Modified: head/share/man/man4/bnxt.4
==============================================================================
--- head/share/man/man4/bnxt.4  Thu Jan 31 17:52:48 2019        (r343616)
+++ head/share/man/man4/bnxt.4  Thu Jan 31 19:05:56 2019        (r343617)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 20, 2018
+.Dd January 30, 2019
 .Dt BNXT 4
 .Os
 .Sh NAME
@@ -36,6 +36,7 @@ To compile this driver into the kernel,
 place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device bnxt"
 .Ed
 .Pp

Modified: head/share/man/man4/em.4
==============================================================================
--- head/share/man/man4/em.4    Thu Jan 31 17:52:48 2019        (r343616)
+++ head/share/man/man4/em.4    Thu Jan 31 19:05:56 2019        (r343617)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd September 20, 2018
+.Dd January 30, 2019
 .Dt EM 4
 .Os
 .Sh NAME
@@ -39,9 +39,10 @@
 .Nd "Intel(R) PRO/1000 Gigabit Ethernet adapter driver"
 .Sh SYNOPSIS
 To compile this driver into the kernel,
-place the following line in your
+place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device em"
 .Ed
 .Pp

Modified: head/share/man/man4/iavf.4
==============================================================================
--- head/share/man/man4/iavf.4  Thu Jan 31 17:52:48 2019        (r343616)
+++ head/share/man/man4/iavf.4  Thu Jan 31 19:05:56 2019        (r343617)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 5, 2018
+.Dd January 30, 2019
 .Dt IAVF 4
 .Os
 .Sh NAME
@@ -41,6 +41,7 @@
 To compile this driver into the kernel, place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device iavf"
 .Ed
 .Pp

Modified: head/share/man/man4/ixgbe.4
==============================================================================
--- head/share/man/man4/ixgbe.4 Thu Jan 31 17:52:48 2019        (r343616)
+++ head/share/man/man4/ixgbe.4 Thu Jan 31 19:05:56 2019        (r343617)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd December 19, 2010
+.Dd January 30, 2019
 .Dt IXGBE 4
 .Os
 .Sh NAME
@@ -39,9 +39,10 @@
 .Nd "Intel(R) 10Gb Ethernet driver for the FreeBSD operating system"
 .Sh SYNOPSIS
 To compile this driver into the kernel,
-place the following line in your
+place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device ixgbe"
 .Ed
 .Pp

Modified: head/share/man/man4/ixl.4
==============================================================================
--- head/share/man/man4/ixl.4   Thu Jan 31 17:52:48 2019        (r343616)
+++ head/share/man/man4/ixl.4   Thu Jan 31 19:05:56 2019        (r343617)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 5, 2018
+.Dd January 30, 2019
 .Dt IXL 4
 .Os
 .Sh NAME
@@ -41,6 +41,7 @@
 To compile this driver into the kernel, place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device ixl"
 .Ed
 .Pp

Modified: head/share/man/man4/vmx.4
==============================================================================
--- head/share/man/man4/vmx.4   Thu Jan 31 17:52:48 2019        (r343616)
+++ head/share/man/man4/vmx.4   Thu Jan 31 19:05:56 2019        (r343617)
@@ -17,7 +17,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 17, 2014
+.Dd January 30, 2019
 .Dt VMX 4
 .Os
 .Sh NAME
@@ -25,9 +25,10 @@
 .Nd VMware VMXNET3 Virtual Interface Controller device
 .Sh SYNOPSIS
 To compile this driver into the kernel,
-place the following line in your
+place the following lines in your
 kernel configuration file:
 .Bd -ragged -offset indent
+.Cd "device iflib"
 .Cd "device vmx"
 .Ed
 .Pp

Modified: head/sys/amd64/conf/GENERIC
==============================================================================
--- head/sys/amd64/conf/GENERIC Thu Jan 31 17:52:48 2019        (r343616)
+++ head/sys/amd64/conf/GENERIC Thu Jan 31 19:05:56 2019        (r343617)
@@ -234,14 +234,18 @@ device            ppi                     # Parallel port 
interface device
 
 device         puc                     # Multi I/O cards and multi-channel 
UARTs
 
-# PCI Ethernet NICs.
-device         bxe                     # Broadcom NetXtreme II 
BCM5771X/BCM578XX 10GbE
-device         de                      # DEC/Intel DC21x4x (``Tulip'')
+# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
+device         iflib
 device         em                      # Intel PRO/1000 Gigabit Ethernet Family
 device         ix                      # Intel PRO/10GbE PCIE PF Ethernet
 device         ixv                     # Intel PRO/10GbE PCIE VF Ethernet
 device         ixl                     # Intel 700 Series Physical Function
 device         iavf                    # Intel Adaptive Virtual Function
+device         vmx                     # VMware VMXNET3 Ethernet
+
+# PCI Ethernet NICs.
+device         bxe                     # Broadcom NetXtreme II 
BCM5771X/BCM578XX 10GbE
+device         de                      # DEC/Intel DC21x4x (``Tulip'')
 device         le                      # AMD Am7900 LANCE and Am79C9xx PCnet
 device         ti                      # Alteon Networks Tigon I/II gigabit 
Ethernet
 device         txp                     # 3Com 3cR990 (``Typhoon'')
@@ -368,9 +372,6 @@ device              hyperv                  # HyperV 
drivers 
 # NOTE: XENHVM depends on xenpci.  They must be added or removed together.
 options        XENHVM                  # Xen HVM kernel infrastructure
 device         xenpci                  # Xen HVM Hypervisor services driver
-
-# VMware support
-device         vmx                     # VMware VMXNET3 Ethernet
 
 # Netmap provides direct access to TX/RX rings on supported NICs
 device         netmap                  # netmap(4) support

Modified: head/sys/arm64/conf/GENERIC
==============================================================================
--- head/sys/arm64/conf/GENERIC Thu Jan 31 17:52:48 2019        (r343616)
+++ head/sys/arm64/conf/GENERIC Thu Jan 31 19:05:56 2019        (r343617)
@@ -145,14 +145,17 @@ device            al_pci          # Annapurna Alpine PCI-E
 options        PCI_HP                  # PCI-Express native HotPlug
 options        PCI_IOV         # PCI SR-IOV support
 
+# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
+device         iflib
+device         em              # Intel PRO/1000 Gigabit Ethernet Family
+device         ix              # Intel 10Gb Ethernet Family
+
 # Ethernet NICs
 device         mdio
 device         mii
 device         miibus          # MII bus support
 device         awg             # Allwinner EMAC Gigabit Ethernet
 device         axgbe           # AMD Opteron A1100 integrated NIC
-device         em              # Intel PRO/1000 Gigabit Ethernet Family
-device         ix              # Intel 10Gb Ethernet Family
 device         msk             # Marvell/SysKonnect Yukon II Gigabit Ethernet
 device         neta            # Marvell Armada 370/38x/XP/3700 NIC
 device         smc             # SMSC LAN91C111

Modified: head/sys/conf/NOTES
==============================================================================
--- head/sys/conf/NOTES Thu Jan 31 17:52:48 2019        (r343616)
+++ head/sys/conf/NOTES Thu Jan 31 19:05:56 2019        (r343617)
@@ -2092,15 +2092,18 @@ device          vte             # DM&P Vortex86 RDC 
R6040 Fast Ethernet
 device         wb              # Winbond W89C840F
 device         xl              # 3Com 3c90x (``Boomerang'', ``Cyclone'')
 
+# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
+device         iflib
+device         em              # Intel Pro/1000 Gigabit Ethernet
+device         ix              # Intel Pro/10Gbe PCIE Ethernet
+device         ixv             # Intel Pro/10Gbe PCIE Ethernet VF
+
 # PCI Ethernet NICs.
 device         cxgb            # Chelsio T3 10 Gigabit Ethernet
 device         cxgb_t3fw       # Chelsio T3 10 Gigabit Ethernet firmware
 device         cxgbe           # Chelsio T4-T6 1/10/25/40/100 Gigabit Ethernet
 device         cxgbev          # Chelsio T4-T6 Virtual Functions
 device         de              # DEC/Intel DC21x4x (``Tulip'')
-device         em              # Intel Pro/1000 Gigabit Ethernet
-device         ix              # Intel Pro/10Gbe PCIE Ethernet
-device         ixv             # Intel Pro/10Gbe PCIE Ethernet VF
 device         le              # AMD Am7900 LANCE and Am79C9xx PCnet
 device         mxge            # Myricom Myri-10G 10GbE NIC
 device         oce             # Emulex 10 GbE (OneConnect Ethernet)

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files Thu Jan 31 17:52:48 2019        (r343616)
+++ head/sys/conf/files Thu Jan 31 19:05:56 2019        (r343617)
@@ -4132,10 +4132,10 @@ net/if_tun.c                    optional tun
 net/if_tap.c                   optional tap
 net/if_vlan.c                  optional vlan
 net/if_vxlan.c                 optional vxlan inet | vxlan inet6
-net/ifdi_if.m                  optional ether pci
-net/iflib.c                    optional ether pci
-net/iflib_clone.c              optional ether pci
-net/mp_ring.c                  optional ether
+net/ifdi_if.m                  optional ether pci iflib
+net/iflib.c                    optional ether pci iflib
+net/iflib_clone.c              optional ether pci iflib
+net/mp_ring.c                  optional ether iflib
 net/mppcc.c                    optional netgraph_mppc_compression
 net/mppcd.c                    optional netgraph_mppc_compression
 net/netisr.c                   standard

Modified: head/sys/dev/ixgbe/if_ixv.c
==============================================================================
--- head/sys/dev/ixgbe/if_ixv.c Thu Jan 31 17:52:48 2019        (r343616)
+++ head/sys/dev/ixgbe/if_ixv.c Thu Jan 31 19:05:56 2019        (r343617)
@@ -144,11 +144,9 @@ static driver_t ixv_driver = {
 devclass_t ixv_devclass;
 DRIVER_MODULE(ixv, pci, ixv_driver, ixv_devclass, 0, 0);
 IFLIB_PNP_INFO(pci, ixv_driver, ixv_vendor_info_array);
+MODULE_DEPEND(ixv, iflib, 1, 1, 1);
 MODULE_DEPEND(ixv, pci, 1, 1, 1);
 MODULE_DEPEND(ixv, ether, 1, 1, 1);
-#ifdef DEV_NETMAP
-MODULE_DEPEND(ixv, netmap, 1, 1, 1);
-#endif /* DEV_NETMAP */
 
 static device_method_t ixv_if_methods[] = {
        DEVMETHOD(ifdi_attach_pre, ixv_if_attach_pre),

Modified: head/sys/i386/conf/GENERIC
==============================================================================
--- head/sys/i386/conf/GENERIC  Thu Jan 31 17:52:48 2019        (r343616)
+++ head/sys/i386/conf/GENERIC  Thu Jan 31 19:05:56 2019        (r343617)
@@ -220,10 +220,14 @@ device            ppi                     # Parallel port 
interface device
 
 device         puc                     # Multi I/O cards and multi-channel 
UARTs
 
+# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
+device         iflib
+device         em                      # Intel PRO/1000 Gigabit Ethernet Family
+device         vmx                     # VMware VMXNET3 Ethernet
+
 # PCI Ethernet NICs.
 device         bxe                     # Broadcom NetXtreme II 
BCM5771X/BCM578XX 10GbE
 device         de                      # DEC/Intel DC21x4x (``Tulip'')
-device         em                      # Intel PRO/1000 Gigabit Ethernet Family
 device         le                      # AMD Am7900 LANCE and Am79C9xx PCnet
 device         ti                      # Alteon Networks Tigon I/II gigabit 
Ethernet
 device         txp                     # 3Com 3cR990 (``Typhoon'')
@@ -361,9 +365,6 @@ device              hyperv                  # HyperV 
drivers 
 # NOTE: XENHVM depends on xenpci.  They must be added or removed together.
 options        XENHVM                  # Xen HVM kernel infrastructure
 device         xenpci                  # Xen HVM Hypervisor services driver
-
-# VMware support
-device         vmx                     # VMware VMXNET3 Ethernet
 
 # evdev interface
 options        EVDEV_SUPPORT           # evdev support in legacy drivers

Modified: head/sys/mips/conf/OCTEON1
==============================================================================
--- head/sys/mips/conf/OCTEON1  Thu Jan 31 17:52:48 2019        (r343616)
+++ head/sys/mips/conf/OCTEON1  Thu Jan 31 19:05:56 2019        (r343617)
@@ -155,6 +155,8 @@ device              octm
 # physical port, but may eventually provide support for DSA or similar instead.
 #device                mv88e61xxphy    # Marvell 88E61XX
 
+device         iflib
+
 # PCI Ethernet NICs.
 device         em              # Intel PRO/1000 Gigabit Ethernet Family
 device         ix              # Intel PRO/10GbE PF PCIE Ethernet Family

Modified: head/sys/mips/conf/std.XLP
==============================================================================
--- head/sys/mips/conf/std.XLP  Thu Jan 31 17:52:48 2019        (r343616)
+++ head/sys/mips/conf/std.XLP  Thu Jan 31 19:05:56 2019        (r343617)
@@ -75,6 +75,7 @@ device                ether
 device         xlpge
 #device                re
 device         msk
+device         iflib
 device         em
 
 # Disks

Modified: head/sys/modules/Makefile
==============================================================================
--- head/sys/modules/Makefile   Thu Jan 31 17:52:48 2019        (r343616)
+++ head/sys/modules/Makefile   Thu Jan 31 19:05:56 2019        (r343617)
@@ -169,6 +169,7 @@ SUBDIR=     \
        if_tun \
        if_vlan \
        if_vxlan \
+       iflib \
        ${_iir} \
        imgact_binmisc \
        ${_intelspi} \

Added: head/sys/modules/iflib/Makefile
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/modules/iflib/Makefile     Thu Jan 31 19:05:56 2019        
(r343617)
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+.PATH: ${SRCTOP}/sys/net
+
+KMOD=  iflib
+SRCS= \
+       iflib.c \
+       iflib_clone.c \
+       mp_ring.c
+SRCS+= ifdi_if.c
+SRCS+= device_if.h bus_if.h pci_if.h ifdi_if.h
+
+.include <bsd.kmod.mk>

Modified: head/sys/powerpc/conf/GENERIC64
==============================================================================
--- head/sys/powerpc/conf/GENERIC64     Thu Jan 31 17:52:48 2019        
(r343616)
+++ head/sys/powerpc/conf/GENERIC64     Thu Jan 31 19:05:56 2019        
(r343617)
@@ -159,6 +159,8 @@ device              scc
 device         uart
 device         uart_z8530
 
+device         iflib
+
 # Ethernet hardware
 device         em              # Intel PRO/1000 Gigabit Ethernet Family
 device         ix              # Intel PRO/10GbE PCIE PF Ethernet Family

Modified: head/sys/powerpc/conf/MPC85XX
==============================================================================
--- head/sys/powerpc/conf/MPC85XX       Thu Jan 31 17:52:48 2019        
(r343616)
+++ head/sys/powerpc/conf/MPC85XX       Thu Jan 31 19:05:56 2019        
(r343617)
@@ -74,6 +74,7 @@ device                cryptodev
 device         da
 device         ds1307
 device         ds1553
+device         iflib
 device         em
 device         alc
 device         ether

Modified: head/sys/powerpc/conf/MPC85XXSPE
==============================================================================
--- head/sys/powerpc/conf/MPC85XXSPE    Thu Jan 31 17:52:48 2019        
(r343616)
+++ head/sys/powerpc/conf/MPC85XXSPE    Thu Jan 31 19:05:56 2019        
(r343617)
@@ -74,6 +74,7 @@ device                cryptodev
 device         da
 device         ds1307
 device         ds1553
+device         iflib
 device         em
 device         alc
 device         ether

Modified: head/sys/powerpc/conf/QORIQ64
==============================================================================
--- head/sys/powerpc/conf/QORIQ64       Thu Jan 31 17:52:48 2019        
(r343616)
+++ head/sys/powerpc/conf/QORIQ64       Thu Jan 31 19:05:56 2019        
(r343617)
@@ -81,6 +81,7 @@ device                cryptodev
 device         da
 device         ds1307
 device         ds1553
+device         iflib
 device         em
 device         alc
 device         dpaa

Modified: head/sys/powerpc/conf/dpaa/DPAA
==============================================================================
--- head/sys/powerpc/conf/dpaa/DPAA     Thu Jan 31 17:52:48 2019        
(r343616)
+++ head/sys/powerpc/conf/dpaa/DPAA     Thu Jan 31 19:05:56 2019        
(r343617)
@@ -74,6 +74,7 @@ device                sdhci
 
 # Network devices
 device         miibus          # MII bus support
+device         iflib
 device         em
 
 

Modified: head/sys/sparc64/conf/GENERIC
==============================================================================
--- head/sys/sparc64/conf/GENERIC       Thu Jan 31 17:52:48 2019        
(r343616)
+++ head/sys/sparc64/conf/GENERIC       Thu Jan 31 19:05:56 2019        
(r343617)
@@ -181,6 +181,8 @@ device              uart            # Multi-uart driver
 #device                ppi             # Parallel port interface device
 #device                vpo             # Requires scbus and da
 
+device         iflib
+
 # PCI Ethernet NICs.
 #device                de              # DEC/Intel DC21x4x (``Tulip'')
 device         em              # Intel PRO/1000 adapter Gigabit Ethernet Card
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to