svn commit: r307208 - stable/10/sys/dev/hyperv/netvsc
Sepherosa Ziehau
sephe at FreeBSD.org
Thu Oct 13 08:56:54 UTC 2016
Author: sephe
Date: Thu Oct 13 08:56:52 2016
New Revision: 307208
URL: https://svnweb.freebsd.org/changeset/base/307208
Log:
MFC 305790-305793
305790
hyperv/hn: Remove unused softc field
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7866
305791
hyperv/hn: Deprecate hn_softc_t
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7867
305792
hyperv/hn: Function renaming: hn_ifinit -> hn_init
No functional changes.
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7868
305793
hyperv/hn: Cleanup hn_ioctl.
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7869
Modified:
stable/10/sys/dev/hyperv/netvsc/hv_net_vsc.h
stable/10/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/dev/hyperv/netvsc/hv_net_vsc.h
==============================================================================
--- stable/10/sys/dev/hyperv/netvsc/hv_net_vsc.h Thu Oct 13 08:50:18 2016 (r307207)
+++ stable/10/sys/dev/hyperv/netvsc/hv_net_vsc.h Thu Oct 13 08:56:52 2016 (r307208)
@@ -198,12 +198,11 @@ struct hn_tx_ring {
/*
* Device-specific softc structure
*/
-typedef struct hn_softc {
+struct hn_softc {
struct ifnet *hn_ifp;
struct arpcom arpcom;
struct ifmedia hn_media;
device_t hn_dev;
- uint8_t hn_unit;
int hn_carrier;
int hn_if_flags;
struct mtx hn_lock;
@@ -245,7 +244,7 @@ typedef struct hn_softc {
uint32_t hn_ndis_ver;
struct ndis_rssprm_toeplitz hn_rss;
-} hn_softc_t;
+};
#define HN_FLAG_RXBUF_CONNECTED 0x0001
#define HN_FLAG_CHIM_CONNECTED 0x0002
Modified: stable/10/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
==============================================================================
--- stable/10/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Thu Oct 13 08:50:18 2016 (r307207)
+++ stable/10/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Thu Oct 13 08:56:52 2016 (r307208)
@@ -312,9 +312,9 @@ static u_int hn_cpu_index;
/*
* Forward declarations
*/
-static void hn_stop(hn_softc_t *sc);
-static void hn_ifinit_locked(hn_softc_t *sc);
-static void hn_ifinit(void *xsc);
+static void hn_stop(struct hn_softc *sc);
+static void hn_init_locked(struct hn_softc *sc);
+static void hn_init(void *xsc);
static int hn_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
static int hn_start_locked(struct hn_tx_ring *txr, int len);
static void hn_start(struct ifnet *ifp);
@@ -467,19 +467,15 @@ hn_cpuset_setthread_task(void *xmask, in
static int
netvsc_attach(device_t dev)
{
+ struct hn_softc *sc = device_get_softc(dev);
struct sysctl_oid_list *child;
struct sysctl_ctx_list *ctx;
uint8_t eaddr[ETHER_ADDR_LEN];
uint32_t link_status;
- hn_softc_t *sc;
- int unit = device_get_unit(dev);
struct ifnet *ifp = NULL;
int error, ring_cnt, tx_ring_cnt;
int tso_maxlen;
- sc = device_get_softc(dev);
-
- sc->hn_unit = unit;
sc->hn_dev = dev;
sc->hn_prichan = vmbus_get_channel(dev);
@@ -564,7 +560,7 @@ netvsc_attach(device_t dev)
ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
ifp->if_ioctl = hn_ioctl;
- ifp->if_init = hn_ifinit;
+ ifp->if_init = hn_init;
ifp->if_mtu = ETHERMTU;
if (hn_use_if_start) {
int qdepth = hn_get_txswq_depth(&sc->hn_tx_ring[0]);
@@ -1513,29 +1509,13 @@ skip:
static int
hn_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
{
- hn_softc_t *sc = ifp->if_softc;
+ struct hn_softc *sc = ifp->if_softc;
struct ifreq *ifr = (struct ifreq *)data;
-#ifdef INET
- struct ifaddr *ifa = (struct ifaddr *)data;
-#endif
int mask, error = 0;
int retry_cnt = 500;
- switch(cmd) {
-
- case SIOCSIFADDR:
-#ifdef INET
- if (ifa->ifa_addr->sa_family == AF_INET) {
- ifp->if_flags |= IFF_UP;
- if (!(ifp->if_drv_flags & IFF_DRV_RUNNING))
- hn_ifinit(sc);
- arp_ifinit(ifp, ifa);
- } else
-#endif
- error = ether_ioctl(ifp, cmd, data);
- break;
+ switch (cmd) {
case SIOCSIFMTU:
- /* Check MTU value change */
if (ifp->if_mtu == ifr->ifr_mtu)
break;
@@ -1603,12 +1583,13 @@ hn_ioctl(struct ifnet *ifp, u_long cmd,
if (sc->hn_tx_ring[0].hn_chim_size > sc->hn_chim_szmax)
hn_set_chim_size(sc, sc->hn_chim_szmax);
- hn_ifinit_locked(sc);
+ hn_init_locked(sc);
NV_LOCK(sc);
sc->temp_unusable = FALSE;
NV_UNLOCK(sc);
break;
+
case SIOCSIFFLAGS:
do {
NV_LOCK(sc);
@@ -1649,7 +1630,7 @@ hn_ioctl(struct ifnet *ifp, u_long cmd,
/* do something here for Hyper-V */
} else
#endif
- hn_ifinit_locked(sc);
+ hn_init_locked(sc);
} else {
if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
hn_stop(sc);
@@ -1659,8 +1640,8 @@ hn_ioctl(struct ifnet *ifp, u_long cmd,
sc->temp_unusable = FALSE;
NV_UNLOCK(sc);
sc->hn_if_flags = ifp->if_flags;
- error = 0;
break;
+
case SIOCSIFCAP:
NV_LOCK(sc);
@@ -1699,38 +1680,32 @@ hn_ioctl(struct ifnet *ifp, u_long cmd,
}
NV_UNLOCK(sc);
- error = 0;
break;
+
case SIOCADDMULTI:
case SIOCDELMULTI:
-#ifdef notyet
- /* Fixme: Multicast mode? */
- if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
- NV_LOCK(sc);
- netvsc_setmulti(sc);
- NV_UNLOCK(sc);
- error = 0;
- }
-#endif
- error = EINVAL;
+ /* Always all-multi */
+ /*
+ * TODO:
+ * Enable/disable all-multi according to the emptiness of
+ * the mcast address list.
+ */
break;
+
case SIOCSIFMEDIA:
case SIOCGIFMEDIA:
error = ifmedia_ioctl(ifp, ifr, &sc->hn_media, cmd);
break;
+
default:
error = ether_ioctl(ifp, cmd, data);
break;
}
-
return (error);
}
-/*
- *
- */
static void
-hn_stop(hn_softc_t *sc)
+hn_stop(struct hn_softc *sc)
{
struct ifnet *ifp;
int ret, i;
@@ -1809,11 +1784,8 @@ do_sched:
}
}
-/*
- *
- */
static void
-hn_ifinit_locked(hn_softc_t *sc)
+hn_init_locked(struct hn_softc *sc)
{
struct ifnet *ifp;
int ret, i;
@@ -1845,9 +1817,9 @@ hn_ifinit_locked(hn_softc_t *sc)
*
*/
static void
-hn_ifinit(void *xsc)
+hn_init(void *xsc)
{
- hn_softc_t *sc = xsc;
+ struct hn_softc *sc = xsc;
NV_LOCK(sc);
if (sc->temp_unusable) {
@@ -1857,7 +1829,7 @@ hn_ifinit(void *xsc)
sc->temp_unusable = TRUE;
NV_UNLOCK(sc);
- hn_ifinit_locked(sc);
+ hn_init_locked(sc);
NV_LOCK(sc);
sc->temp_unusable = FALSE;
@@ -1871,11 +1843,9 @@ hn_ifinit(void *xsc)
static void
hn_watchdog(struct ifnet *ifp)
{
- hn_softc_t *sc;
- sc = ifp->if_softc;
- printf("hn%d: watchdog timeout -- resetting\n", sc->hn_unit);
- hn_ifinit(sc); /*???*/
+ if_printf(ifp, "watchdog timeout -- resetting\n");
+ hn_init(ifp->if_softc); /* XXX */
ifp->if_oerrors++;
}
#endif
@@ -3545,7 +3515,7 @@ static device_method_t netvsc_methods[]
static driver_t netvsc_driver = {
NETVSC_DEVNAME,
netvsc_methods,
- sizeof(hn_softc_t)
+ sizeof(struct hn_softc)
};
static devclass_t netvsc_devclass;
More information about the svn-src-all
mailing list