git: b02a39778952 - main - hyperv: purge EOL release compatibility

From: Warner Losh <imp_at_FreeBSD.org>
Date: Sat, 04 Feb 2023 16:20:29 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=b02a39778952a36fec868e94b249244d7394300f

commit b02a39778952a36fec868e94b249244d7394300f
Author:     Elliott Mitchell <ehem+freebsd@m5p.com>
AuthorDate: 2022-06-23 00:53:47 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2023-02-04 16:13:09 +0000

    hyperv: purge EOL release compatibility
    
    Remove FreeBSD 11 and earlier support
    
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/603
    Differential Revision: https://reviews.freebsd.org/D35560
---
 sys/dev/hyperv/netvsc/if_hn.c    |  72 ----------------------
 sys/dev/hyperv/pcib/vmbus_pcib.c | 128 ---------------------------------------
 sys/dev/hyperv/vmbus/vmbus.c     |   2 -
 sys/dev/hyperv/vmbus/vmbus_var.h |   4 --
 4 files changed, 206 deletions(-)

diff --git a/sys/dev/hyperv/netvsc/if_hn.c b/sys/dev/hyperv/netvsc/if_hn.c
index 63795261b21c..bd64d64963de 100644
--- a/sys/dev/hyperv/netvsc/if_hn.c
+++ b/sys/dev/hyperv/netvsc/if_hn.c
@@ -325,17 +325,11 @@ static void			hn_nvs_handle_rxbuf(struct hn_rx_ring *,
 static void			hn_nvs_ack_rxbuf(struct hn_rx_ring *,
 				    struct vmbus_channel *, uint64_t);
 
-#if __FreeBSD_version >= 1100099
 static int			hn_lro_lenlim_sysctl(SYSCTL_HANDLER_ARGS);
 static int			hn_lro_ackcnt_sysctl(SYSCTL_HANDLER_ARGS);
-#endif
 static int			hn_trust_hcsum_sysctl(SYSCTL_HANDLER_ARGS);
 static int			hn_chim_size_sysctl(SYSCTL_HANDLER_ARGS);
-#if __FreeBSD_version < 1100095
-static int			hn_rx_stat_int_sysctl(SYSCTL_HANDLER_ARGS);
-#else
 static int			hn_rx_stat_u64_sysctl(SYSCTL_HANDLER_ARGS);
-#endif
 static int			hn_rx_stat_ulong_sysctl(SYSCTL_HANDLER_ARGS);
 static int			hn_tx_stat_ulong_sysctl(SYSCTL_HANDLER_ARGS);
 static int			hn_tx_conf_int_sysctl(SYSCTL_HANDLER_ARGS);
@@ -526,12 +520,10 @@ SYSCTL_INT(_hw_hn, OID_AUTO, direct_tx_size, CTLFLAG_RDTUN,
 
 /* # of LRO entries per RX ring */
 #if defined(INET) || defined(INET6)
-#if __FreeBSD_version >= 1100095
 static int			hn_lro_entry_count = HN_LROENT_CNT_DEF;
 SYSCTL_INT(_hw_hn, OID_AUTO, lro_entry_count, CTLFLAG_RDTUN,
     &hn_lro_entry_count, 0, "LRO entry count");
 #endif
-#endif
 
 static int			hn_tx_taskq_cnt = 1;
 SYSCTL_INT(_hw_hn, OID_AUTO, tx_taskq_cnt, CTLFLAG_RDTUN,
@@ -578,11 +570,9 @@ SYSCTL_INT(_hw_hn, OID_AUTO, tx_swq_depth, CTLFLAG_RDTUN,
     &hn_tx_swq_depth, 0, "Depth of IFQ or BUFRING");
 
 /* Enable sorted LRO, and the depth of the per-channel mbuf queue */
-#if __FreeBSD_version >= 1100095
 static u_int			hn_lro_mbufq_depth = 0;
 SYSCTL_UINT(_hw_hn, OID_AUTO, lro_mbufq_depth, CTLFLAG_RDTUN,
     &hn_lro_mbufq_depth, 0, "Depth of LRO mbuf queue");
-#endif
 
 /* Packet transmission aggregation size limit */
 static int			hn_tx_agg_size = -1;
@@ -665,7 +655,6 @@ DRIVER_MODULE(hn, vmbus, hn_driver, 0, 0);
 MODULE_VERSION(hn, 1);
 MODULE_DEPEND(hn, vmbus, 1, 1, 1);
 
-#if __FreeBSD_version >= 1100099
 static void
 hn_set_lro_lenlim(struct hn_softc *sc, int lenlim)
 {
@@ -674,7 +663,6 @@ hn_set_lro_lenlim(struct hn_softc *sc, int lenlim)
 	for (i = 0; i < sc->hn_rx_ring_cnt; ++i)
 		sc->hn_rx_ring[i].hn_lro.lro_length_lim = lenlim;
 }
-#endif
 
 static int
 hn_txpkt_sglist(struct hn_tx_ring *txr, struct hn_txdesc *txd)
@@ -1430,10 +1418,8 @@ hn_mtu_change_fixup(struct hn_softc *sc)
 	ifp = sc->hn_ifp;
 
 	hn_set_tso_maxsize(sc, hn_tso_maxlen, ifp->if_mtu);
-#if __FreeBSD_version >= 1100099
 	if (sc->hn_rx_ring[0].hn_lro.lro_length_lim < HN_LRO_LENLIM_MIN(ifp))
 		hn_set_lro_lenlim(sc, HN_LRO_LENLIM_MIN(ifp));
-#endif
 }
 
 static uint32_t
@@ -2268,7 +2254,6 @@ hn_attach(device_t dev)
 	else if (bootverbose)
 		device_printf(dev, "RNDIS mtu %u\n", mtu);
 
-#if __FreeBSD_version >= 1100099
 	if (sc->hn_rx_ring_inuse > 1) {
 		/*
 		 * Reduce TCP segment aggregation limit for multiple
@@ -2276,7 +2261,6 @@ hn_attach(device_t dev)
 		 */
 		hn_set_lro_lenlim(sc, HN_LRO_LENLIM_MULTIRX_DEF);
 	}
-#endif
 
 	/*
 	 * Fixup TX/RX stuffs after synthetic parts are attached.
@@ -3421,12 +3405,10 @@ hv_m_append(struct mbuf *m0, int len, c_caddr_t cp)
 static __inline int
 hn_lro_rx(struct lro_ctrl *lc, struct mbuf *m)
 {
-#if __FreeBSD_version >= 1100095
 	if (hn_lro_mbufq_depth) {
 		tcp_lro_queue_mbuf(lc, m);
 		return 0;
 	}
-#endif
 	return tcp_lro_rx(lc, m, 0);
 }
 #endif
@@ -4166,8 +4148,6 @@ hn_init(void *xsc)
 	HN_UNLOCK(sc);
 }
 
-#if __FreeBSD_version >= 1100099
-
 static int
 hn_lro_lenlim_sysctl(SYSCTL_HANDLER_ARGS)
 {
@@ -4222,8 +4202,6 @@ hn_lro_ackcnt_sysctl(SYSCTL_HANDLER_ARGS)
 	return 0;
 }
 
-#endif
-
 static int
 hn_trust_hcsum_sysctl(SYSCTL_HANDLER_ARGS)
 {
@@ -4272,33 +4250,6 @@ hn_chim_size_sysctl(SYSCTL_HANDLER_ARGS)
 	return 0;
 }
 
-#if __FreeBSD_version < 1100095
-static int
-hn_rx_stat_int_sysctl(SYSCTL_HANDLER_ARGS)
-{
-	struct hn_softc *sc = arg1;
-	int ofs = arg2, i, error;
-	struct hn_rx_ring *rxr;
-	uint64_t stat;
-
-	stat = 0;
-	for (i = 0; i < sc->hn_rx_ring_cnt; ++i) {
-		rxr = &sc->hn_rx_ring[i];
-		stat += *((int *)((uint8_t *)rxr + ofs));
-	}
-
-	error = sysctl_handle_64(oidp, &stat, 0, req);
-	if (error || req->newptr == NULL)
-		return error;
-
-	/* Zero out this stat. */
-	for (i = 0; i < sc->hn_rx_ring_cnt; ++i) {
-		rxr = &sc->hn_rx_ring[i];
-		*((int *)((uint8_t *)rxr + ofs)) = 0;
-	}
-	return 0;
-}
-#else
 static int
 hn_rx_stat_u64_sysctl(SYSCTL_HANDLER_ARGS)
 {
@@ -4325,8 +4276,6 @@ hn_rx_stat_u64_sysctl(SYSCTL_HANDLER_ARGS)
 	return 0;
 }
 
-#endif
-
 static int
 hn_rx_stat_ulong_sysctl(SYSCTL_HANDLER_ARGS)
 {
@@ -4986,9 +4935,7 @@ hn_create_rx_data(struct hn_softc *sc, int ring_cnt)
 	struct sysctl_ctx_list *ctx;
 	device_t dev = sc->hn_dev;
 #if defined(INET) || defined(INET6)
-#if __FreeBSD_version >= 1100095
 	int lroent_cnt;
-#endif
 #endif
 	int i;
 
@@ -5015,13 +4962,11 @@ hn_create_rx_data(struct hn_softc *sc, int ring_cnt)
 	    M_DEVBUF, M_WAITOK | M_ZERO);
 
 #if defined(INET) || defined(INET6)
-#if __FreeBSD_version >= 1100095
 	lroent_cnt = hn_lro_entry_count;
 	if (lroent_cnt < TCP_LRO_ENTRIES)
 		lroent_cnt = TCP_LRO_ENTRIES;
 	if (bootverbose)
 		device_printf(dev, "LRO: entry count %d\n", lroent_cnt);
-#endif
 #endif	/* INET || INET6 */
 
 	ctx = device_get_sysctl_ctx(dev);
@@ -5061,17 +5006,10 @@ hn_create_rx_data(struct hn_softc *sc, int ring_cnt)
 		 * Initialize LRO.
 		 */
 #if defined(INET) || defined(INET6)
-#if __FreeBSD_version >= 1100095
 		tcp_lro_init_args(&rxr->hn_lro, sc->hn_ifp, lroent_cnt,
 		    hn_lro_mbufq_depth);
-#else
-		tcp_lro_init(&rxr->hn_lro);
-		rxr->hn_lro.ifp = sc->hn_ifp;
-#endif
-#if __FreeBSD_version >= 1100099
 		rxr->hn_lro.lro_length_lim = HN_LRO_LENLIM_DEF;
 		rxr->hn_lro.lro_ackcnt_lim = HN_LRO_ACKCNT_DEF;
-#endif
 #endif	/* INET || INET6 */
 
 		if (sc->hn_rx_sysctl_tree != NULL) {
@@ -5122,26 +5060,17 @@ hn_create_rx_data(struct hn_softc *sc, int ring_cnt)
 	SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "lro_queued",
 	    CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE | CTLFLAG_STATS , sc,
 	    __offsetof(struct hn_rx_ring, hn_lro.lro_queued),
-#if __FreeBSD_version < 1100095
-	    hn_rx_stat_int_sysctl,
-#else
 	    hn_rx_stat_u64_sysctl,
-#endif
 	    "LU", "LRO queued");
 	SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "lro_flushed",
 	    CTLTYPE_U64 | CTLFLAG_RW | CTLFLAG_MPSAFE | CTLFLAG_STATS , sc,
 	    __offsetof(struct hn_rx_ring, hn_lro.lro_flushed),
-#if __FreeBSD_version < 1100095
-	    hn_rx_stat_int_sysctl,
-#else
 	    hn_rx_stat_u64_sysctl,
-#endif
 	    "LU", "LRO flushed");
 	SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "lro_tried",
 	    CTLTYPE_ULONG | CTLFLAG_RW | CTLFLAG_MPSAFE | CTLFLAG_STATS , sc,
 	    __offsetof(struct hn_rx_ring, hn_lro_tried),
 	    hn_rx_stat_ulong_sysctl, "LU", "# of LRO tries");
-#if __FreeBSD_version >= 1100099
 	SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "lro_length_lim",
 	    CTLTYPE_UINT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, 0,
 	    hn_lro_lenlim_sysctl, "IU",
@@ -5150,7 +5079,6 @@ hn_create_rx_data(struct hn_softc *sc, int ring_cnt)
 	    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, 0,
 	    hn_lro_ackcnt_sysctl, "I",
 	    "Max # of ACKs to be aggregated by LRO");
-#endif
 	SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "trust_hosttcp",
 	    CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, sc, HN_TRUST_HCSUM_TCP,
 	    hn_trust_hcsum_sysctl, "I",
diff --git a/sys/dev/hyperv/pcib/vmbus_pcib.c b/sys/dev/hyperv/pcib/vmbus_pcib.c
index 6d0601fd2d3f..d68ad6821ad8 100644
--- a/sys/dev/hyperv/pcib/vmbus_pcib.c
+++ b/sys/dev/hyperv/pcib/vmbus_pcib.c
@@ -84,11 +84,6 @@ __FBSDID("$FreeBSD$");
 
 #include "vmbus_if.h"
 
-#if __FreeBSD_version < 1100000
-typedef u_long rman_res_t;
-#define RM_MAX_END	(~(rman_res_t)0)
-#endif
-
 struct completion {
 	unsigned int done;
 	struct mtx lock;
@@ -718,131 +713,12 @@ err:
 	return (NULL);
 }
 
-#if __FreeBSD_version < 1100000
-
-/* Old versions don't have BUS_RESCAN(). Let's copy it from FreeBSD 11. */
-
-static struct pci_devinfo *
-pci_identify_function(device_t pcib, device_t dev, int domain, int busno,
-    int slot, int func, size_t dinfo_size)
-{
-	struct pci_devinfo *dinfo;
-
-	dinfo = pci_read_device(pcib, domain, busno, slot, func, dinfo_size);
-	if (dinfo != NULL)
-		pci_add_child(dev, dinfo);
-
-	return (dinfo);
-}
-
-static int
-pci_rescan(device_t dev)
-{
-#define	REG(n, w)	PCIB_READ_CONFIG(pcib, busno, s, f, n, w)
-	device_t pcib = device_get_parent(dev);
-	struct pci_softc *sc;
-	device_t child, *devlist, *unchanged;
-	int devcount, error, i, j, maxslots, oldcount;
-	int busno, domain, s, f, pcifunchigh;
-	uint8_t hdrtype;
-
-	/* No need to check for ARI on a rescan. */
-	error = device_get_children(dev, &devlist, &devcount);
-	if (error)
-		return (error);
-	if (devcount != 0) {
-		unchanged = malloc(devcount * sizeof(device_t), M_TEMP,
-		    M_NOWAIT | M_ZERO);
-		if (unchanged == NULL) {
-			free(devlist, M_TEMP);
-			return (ENOMEM);
-		}
-	} else
-		unchanged = NULL;
-
-	sc = device_get_softc(dev);
-	domain = pcib_get_domain(dev);
-	busno = pcib_get_bus(dev);
-	maxslots = PCIB_MAXSLOTS(pcib);
-	for (s = 0; s <= maxslots; s++) {
-		/* If function 0 is not present, skip to the next slot. */
-		f = 0;
-		if (REG(PCIR_VENDOR, 2) == 0xffff)
-			continue;
-		pcifunchigh = 0;
-		hdrtype = REG(PCIR_HDRTYPE, 1);
-		if ((hdrtype & PCIM_HDRTYPE) > PCI_MAXHDRTYPE)
-			continue;
-		if (hdrtype & PCIM_MFDEV)
-			pcifunchigh = PCIB_MAXFUNCS(pcib);
-		for (f = 0; f <= pcifunchigh; f++) {
-			if (REG(PCIR_VENDOR, 2) == 0xffff)
-				continue;
-
-			/*
-			 * Found a valid function.  Check if a
-			 * device_t for this device already exists.
-			 */
-			for (i = 0; i < devcount; i++) {
-				child = devlist[i];
-				if (child == NULL)
-					continue;
-				if (pci_get_slot(child) == s &&
-				    pci_get_function(child) == f) {
-					unchanged[i] = child;
-					goto next_func;
-				}
-			}
-
-			pci_identify_function(pcib, dev, domain, busno, s, f,
-			    sizeof(struct pci_devinfo));
-		next_func:;
-		}
-	}
-
-	/* Remove devices that are no longer present. */
-	for (i = 0; i < devcount; i++) {
-		if (unchanged[i] != NULL)
-			continue;
-		device_delete_child(dev, devlist[i]);
-	}
-
-	free(devlist, M_TEMP);
-	oldcount = devcount;
-
-	/* Try to attach the devices just added. */
-	error = device_get_children(dev, &devlist, &devcount);
-	if (error) {
-		free(unchanged, M_TEMP);
-		return (error);
-	}
-
-	for (i = 0; i < devcount; i++) {
-		for (j = 0; j < oldcount; j++) {
-			if (devlist[i] == unchanged[j])
-				goto next_device;
-		}
-
-		device_probe_and_attach(devlist[i]);
-	next_device:;
-	}
-
-	free(unchanged, M_TEMP);
-	free(devlist, M_TEMP);
-	return (0);
-#undef REG
-}
-
-#else
-
 static int
 pci_rescan(device_t dev)
 {
 	return (BUS_RESCAN(dev));
 }
 
-#endif
-
 static void
 pci_devices_present_work(void *arg, int pending __unused)
 {
@@ -1854,14 +1730,12 @@ vmbus_pcib_release_resource(device_t dev, device_t child, int type, int rid,
 	return (bus_generic_release_resource(dev, child, type, rid, r));
 }
 
-#if __FreeBSD_version >= 1100000
 static int
 vmbus_pcib_get_cpus(device_t pcib, device_t dev, enum cpu_sets op,
     size_t setsize, cpuset_t *cpuset)
 {
 	return (bus_get_cpus(pcib, op, setsize, cpuset));
 }
-#endif
 
 static uint32_t
 vmbus_pcib_read_config(device_t dev, u_int bus, u_int slot, u_int func,
@@ -2104,9 +1978,7 @@ static device_method_t vmbus_pcib_methods[] = {
 	DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
 	DEVMETHOD(bus_setup_intr,	   bus_generic_setup_intr),
 	DEVMETHOD(bus_teardown_intr,	   bus_generic_teardown_intr),
-#if __FreeBSD_version >= 1100000
 	DEVMETHOD(bus_get_cpus,			vmbus_pcib_get_cpus),
-#endif
 
 	/* pcib interface */
 	DEVMETHOD(pcib_maxslots,		pcib_maxslots),
diff --git a/sys/dev/hyperv/vmbus/vmbus.c b/sys/dev/hyperv/vmbus/vmbus.c
index f370f2a75b99..c349f862d378 100644
--- a/sys/dev/hyperv/vmbus/vmbus.c
+++ b/sys/dev/hyperv/vmbus/vmbus.c
@@ -183,9 +183,7 @@ static device_method_t vmbus_methods[] = {
 	DEVMETHOD(bus_deactivate_resource,	bus_generic_deactivate_resource),
 	DEVMETHOD(bus_setup_intr,		bus_generic_setup_intr),
 	DEVMETHOD(bus_teardown_intr,		bus_generic_teardown_intr),
-#if __FreeBSD_version >= 1100000
 	DEVMETHOD(bus_get_cpus,			bus_generic_get_cpus),
-#endif
 
 	/* pcib interface */
 	DEVMETHOD(pcib_alloc_msi,		vmbus_alloc_msi),
diff --git a/sys/dev/hyperv/vmbus/vmbus_var.h b/sys/dev/hyperv/vmbus/vmbus_var.h
index 664d5538faa7..c89d26d7aaf5 100644
--- a/sys/dev/hyperv/vmbus/vmbus_var.h
+++ b/sys/dev/hyperv/vmbus/vmbus_var.h
@@ -81,10 +81,6 @@ struct vmbus_pcpu_data {
 	struct task		message_task;	/* message task */
 } __aligned(CACHE_LINE_SIZE);
 
-#if __FreeBSD_version < 1100000
-typedef u_long rman_res_t;
-#endif
-
 struct vmbus_softc {
 	void			(*vmbus_event_proc)(struct vmbus_softc *, int);
 	u_long			*vmbus_tx_evtflags;