Date: Sun, 26 Apr 2015 15:42:15 +0000 (UTC) From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r282022 - projects/ifnet/sys/dev/virtio/network Message-ID: <201504261542.t3QFgFii000980@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: glebius Date: Sun Apr 26 15:42:14 2015 New Revision: 282022 URL: https://svnweb.freebsd.org/changeset/base/282022 Log: Convert vtnet(4) to new ifmedia KPI. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: projects/ifnet/sys/dev/virtio/network/if_vtnet.c projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h Modified: projects/ifnet/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- projects/ifnet/sys/dev/virtio/network/if_vtnet.c Sun Apr 26 15:40:58 2015 (r282021) +++ projects/ifnet/sys/dev/virtio/network/if_vtnet.c Sun Apr 26 15:42:14 2015 (r282022) @@ -194,7 +194,7 @@ static void vtnet_unregister_vlan(void * static int vtnet_is_link_up(struct vtnet_softc *); static void vtnet_update_link_status(struct vtnet_softc *); -static int vtnet_ifmedia_upd(if_t); +static int vtnet_ifmedia_upd(if_t, if_media_t); static void vtnet_ifmedia_sts(if_t, struct ifmediareq *); static void vtnet_get_hwaddr(struct vtnet_softc *); static void vtnet_set_hwaddr(struct vtnet_softc *); @@ -294,12 +294,16 @@ DRIVER_MODULE(vtnet, virtio_pci, vtnet_d MODULE_VERSION(vtnet, 1); MODULE_DEPEND(vtnet, virtio, 1, 1, 1); +static if_media_t vtnet_mediae[] = { VTNET_MEDIATYPE, 0 }; + static struct ifdriver vtnet_ifdrv = { .ifdrv_ops = { .ifop_ioctl = vtnet_ioctl, .ifop_get_counter = vtnet_get_counter, .ifop_transmit = vtnet_txq_mq_start, .ifop_qflush = vtnet_qflush, + .ifop_media_change = vtnet_ifmedia_upd, + .ifop_media_status = vtnet_ifmedia_sts, }, .ifdrv_name = "vtnet", .ifdrv_type = IFT_ETHER, @@ -440,8 +444,6 @@ vtnet_detach(device_t dev) sc->vtnet_vlan_detach = NULL; } - ifmedia_removeall(&sc->vtnet_media); - vtnet_free_rxtx_queues(sc); vtnet_free_rx_filters(sc); @@ -891,6 +893,8 @@ vtnet_setup_interface(struct vtnet_softc .ifat_baudrate = IF_Gbps(10), /* Approx. */ .ifat_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, .ifat_capabilities = IFCAP_JUMBO_MTU | IFCAP_VLAN_MTU, + .ifat_mediae = vtnet_mediae, + .ifat_media = VTNET_MEDIATYPE, }; device_t dev; @@ -960,11 +964,6 @@ vtnet_setup_interface(struct vtnet_softc vtnet_set_rx_process_limit(sc); vtnet_set_tx_intr_threshold(sc); - ifmedia_init(&sc->vtnet_media, IFM_IMASK, vtnet_ifmedia_upd, - vtnet_ifmedia_sts); - ifmedia_add(&sc->vtnet_media, VTNET_MEDIATYPE, 0, NULL); - ifmedia_set(&sc->vtnet_media, VTNET_MEDIATYPE); - sc->vtnet_ifp = if_attach(&ifat); } @@ -1055,11 +1054,6 @@ vtnet_ioctl(if_t ifp, u_long cmd, void * VTNET_CORE_UNLOCK(sc); break; - case SIOCSIFMEDIA: - case SIOCGIFMEDIA: - error = ifmedia_ioctl(ifp, ifr, &sc->vtnet_media, cmd); - break; - case SIOCSIFCAP: sc->vtnet_capenable = ifr->ifr_reqcap; /* These Rx features require us to renegotiate. */ @@ -3350,15 +3344,10 @@ vtnet_update_link_status(struct vtnet_so } static int -vtnet_ifmedia_upd(if_t ifp) +vtnet_ifmedia_upd(if_t ifp, if_media_t media) { - struct vtnet_softc *sc; - struct ifmedia *ifm; - - sc = if_getsoftc(ifp, IF_DRIVER_SOFTC); - ifm = &sc->vtnet_media; - if (IFM_TYPE(ifm->ifm_media) != IFM_ETHER) + if (IFM_TYPE(media) != IFM_ETHER) return (EINVAL); return (0); Modified: projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h ============================================================================== --- projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h Sun Apr 26 15:40:58 2015 (r282021) +++ projects/ifnet/sys/dev/virtio/network/if_vtnetvar.h Sun Apr 26 15:42:14 2015 (r282022) @@ -166,7 +166,6 @@ struct vtnet_softc { uint64_t vtnet_features; struct vtnet_statistics vtnet_stats; struct callout vtnet_tick_ch; - struct ifmedia vtnet_media; eventhandler_tag vtnet_vlan_attach; eventhandler_tag vtnet_vlan_detach;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201504261542.t3QFgFii000980>