Date: Sat, 30 Mar 2019 17:24:56 +0000 (UTC) From: Enji Cooper <ngie@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r345737 - in projects/capsicum-test: sbin/devd sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/dev/usb/wlan sys/dev/xen/blkfront sys/geom sys/kern Message-ID: <201903301724.x2UHOuoQ009160@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ngie Date: Sat Mar 30 17:24:56 2019 New Revision: 345737 URL: https://svnweb.freebsd.org/changeset/base/345737 Log: MFhead@r345735 Modified: projects/capsicum-test/sbin/devd/devd.conf.5 projects/capsicum-test/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c projects/capsicum-test/sys/dev/usb/wlan/if_urtw.c projects/capsicum-test/sys/dev/usb/wlan/if_urtwvar.h projects/capsicum-test/sys/dev/xen/blkfront/blkfront.c projects/capsicum-test/sys/geom/geom_dev.c projects/capsicum-test/sys/kern/imgact_elf.c Directory Properties: projects/capsicum-test/ (props changed) projects/capsicum-test/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/capsicum-test/sbin/devd/devd.conf.5 ============================================================================== --- projects/capsicum-test/sbin/devd/devd.conf.5 Sat Mar 30 17:24:11 2019 (r345736) +++ projects/capsicum-test/sbin/devd/devd.conf.5 Sat Mar 30 17:24:56 2019 (r345737) @@ -41,7 +41,7 @@ .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" -.Dd July 20, 2018 +.Dd March 29, 2019 .Dt DEVD.CONF 5 .Os .Sh NAME @@ -432,15 +432,19 @@ only includes disk-like devices. .It Li CREATE A .Xr geom 4 -device node is created. +provider is created. .It Li DESTROY A .Xr geom 4 -device node is destroyed. +provider is destroyed. .It Li GEOM::physpath The physical path of a device has changed. .It Li MEDIACHANGE Physical media has changed. +.It Li SIZECHANGE +A +.Xr geom 4 +provider size has changed. .El .El .Pp Modified: projects/capsicum-test/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c ============================================================================== --- projects/capsicum-test/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Sat Mar 30 17:24:11 2019 (r345736) +++ projects/capsicum-test/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Sat Mar 30 17:24:56 2019 (r345737) @@ -158,6 +158,29 @@ vdev_geom_attrchanged(struct g_consumer *cp, const cha } static void +vdev_geom_resize(struct g_consumer *cp) +{ + struct consumer_priv_t *priv; + struct consumer_vdev_elem *elem; + spa_t *spa; + vdev_t *vd; + + priv = (struct consumer_priv_t *)&cp->private; + if (SLIST_EMPTY(priv)) + return; + + SLIST_FOREACH(elem, priv, elems) { + vd = elem->vd; + if (vd->vdev_state != VDEV_STATE_HEALTHY) + continue; + spa = vd->vdev_spa; + if (!spa->spa_autoexpand) + continue; + vdev_online(spa, vd->vdev_guid, ZFS_ONLINE_EXPAND, NULL); + } +} + +static void vdev_geom_orphan(struct g_consumer *cp) { struct consumer_priv_t *priv; @@ -229,6 +252,7 @@ vdev_geom_attach(struct g_provider *pp, vdev_t *vd, bo gp = g_new_geomf(&zfs_vdev_class, "zfs::vdev"); gp->orphan = vdev_geom_orphan; gp->attrchanged = vdev_geom_attrchanged; + gp->resize = vdev_geom_resize; cp = g_new_consumer(gp); error = g_attach(cp, pp); if (error != 0) { Modified: projects/capsicum-test/sys/dev/usb/wlan/if_urtw.c ============================================================================== --- projects/capsicum-test/sys/dev/usb/wlan/if_urtw.c Sat Mar 30 17:24:11 2019 (r345736) +++ projects/capsicum-test/sys/dev/usb/wlan/if_urtw.c Sat Mar 30 17:24:56 2019 (r345737) @@ -3932,6 +3932,7 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da struct urtw_softc *sc = data->sc; struct ieee80211com *ic = &sc->sc_ic; uint8_t noise = 0, rate; + uint64_t mactime; usbd_xfer_status(xfer, &actlen, NULL, NULL, NULL); @@ -3951,6 +3952,9 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da /* XXX correct? */ rssi = rx->rssi & URTW_RX_RSSI_MASK; noise = rx->noise; + + if (ieee80211_radiotap_active(ic)) + mactime = rx->mactime; } else { struct urtw_8187l_rxhdr *rx; @@ -3967,6 +3971,9 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da /* XXX correct? */ rssi = rx->rssi & URTW_RX_8187L_RSSI_MASK; noise = rx->noise; + + if (ieee80211_radiotap_active(ic)) + mactime = rx->mactime; } if (flen < IEEE80211_ACK_LEN) @@ -3986,6 +3993,7 @@ urtw_rxeof(struct usb_xfer *xfer, struct urtw_data *da if (ieee80211_radiotap_active(ic)) { struct urtw_rx_radiotap_header *tap = &sc->sc_rxtap; + tap->wr_tsf = mactime; tap->wr_flags = 0; tap->wr_dbm_antsignal = (int8_t)rssi; } Modified: projects/capsicum-test/sys/dev/usb/wlan/if_urtwvar.h ============================================================================== --- projects/capsicum-test/sys/dev/usb/wlan/if_urtwvar.h Sat Mar 30 17:24:11 2019 (r345736) +++ projects/capsicum-test/sys/dev/usb/wlan/if_urtwvar.h Sat Mar 30 17:24:56 2019 (r345737) @@ -55,6 +55,7 @@ typedef STAILQ_HEAD(, urtw_data) urtw_datahead; struct urtw_rx_radiotap_header { struct ieee80211_radiotap_header wr_ihdr; + uint64_t wr_tsf; uint8_t wr_flags; uint8_t wr_pad; uint16_t wr_chan_freq; @@ -63,7 +64,8 @@ struct urtw_rx_radiotap_header { } __packed __aligned(8); #define URTW_RX_RADIOTAP_PRESENT \ - ((1 << IEEE80211_RADIOTAP_FLAGS) | \ + ((1 << IEEE80211_RADIOTAP_TSFT) | \ + (1 << IEEE80211_RADIOTAP_FLAGS) | \ (1 << IEEE80211_RADIOTAP_CHANNEL) | \ (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL)) Modified: projects/capsicum-test/sys/dev/xen/blkfront/blkfront.c ============================================================================== --- projects/capsicum-test/sys/dev/xen/blkfront/blkfront.c Sat Mar 30 17:24:11 2019 (r345736) +++ projects/capsicum-test/sys/dev/xen/blkfront/blkfront.c Sat Mar 30 17:24:56 2019 (r345737) @@ -1227,11 +1227,40 @@ xbd_connect(struct xbd_softc *sc) int err, feature_barrier, feature_flush; int i, j; - if (sc->xbd_state == XBD_STATE_CONNECTED || - sc->xbd_state == XBD_STATE_SUSPENDED) + DPRINTK("blkfront.c:connect:%s.\n", xenbus_get_otherend_path(dev)); + + if (sc->xbd_state == XBD_STATE_SUSPENDED) { return; + } - DPRINTK("blkfront.c:connect:%s.\n", xenbus_get_otherend_path(dev)); + if (sc->xbd_state == XBD_STATE_CONNECTED) { + struct disk *disk; + + disk = sc->xbd_disk; + if (disk == NULL) { + return; + } + err = xs_gather(XST_NIL, xenbus_get_otherend_path(dev), + "sectors", "%lu", §ors, NULL); + if (err != 0) { + xenbus_dev_error(dev, err, + "reading sectors at %s", + xenbus_get_otherend_path(dev)); + return; + } + disk->d_mediasize = disk->d_sectorsize * sectors; + err = disk_resize(disk, M_NOWAIT); + if (err) { + xenbus_dev_error(dev, err, + "unable to resize disk %s%u", + disk->d_name, disk->d_unit); + return; + } + device_printf(sc->xbd_dev, + "changed capacity to %jd\n", + (intmax_t)disk->d_mediasize); + return; + } err = xs_gather(XST_NIL, xenbus_get_otherend_path(dev), "sectors", "%lu", §ors, Modified: projects/capsicum-test/sys/geom/geom_dev.c ============================================================================== --- projects/capsicum-test/sys/geom/geom_dev.c Sat Mar 30 17:24:11 2019 (r345736) +++ projects/capsicum-test/sys/geom/geom_dev.c Sat Mar 30 17:24:56 2019 (r345737) @@ -92,6 +92,7 @@ static g_fini_t g_dev_fini; static g_taste_t g_dev_taste; static g_orphan_t g_dev_orphan; static g_attrchanged_t g_dev_attrchanged; +static g_resize_t g_dev_resize; static struct g_class g_dev_class = { .name = "DEV", @@ -100,7 +101,8 @@ static struct g_class g_dev_class = { .fini = g_dev_fini, .taste = g_dev_taste, .orphan = g_dev_orphan, - .attrchanged = g_dev_attrchanged + .attrchanged = g_dev_attrchanged, + .resize = g_dev_resize }; /* @@ -300,6 +302,15 @@ g_dev_attrchanged(struct g_consumer *cp, const char *a g_dev_set_physpath(cp); return; } +} + +static void +g_dev_resize(struct g_consumer *cp) +{ + char buf[SPECNAMELEN + 6]; + + snprintf(buf, sizeof(buf), "cdev=%s", cp->provider->name); + devctl_notify_f("GEOM", "DEV", "SIZECHANGE", buf, M_WAITOK); } struct g_provider * Modified: projects/capsicum-test/sys/kern/imgact_elf.c ============================================================================== --- projects/capsicum-test/sys/kern/imgact_elf.c Sat Mar 30 17:24:11 2019 (r345736) +++ projects/capsicum-test/sys/kern/imgact_elf.c Sat Mar 30 17:24:56 2019 (r345737) @@ -279,7 +279,7 @@ __elfN(get_brandinfo)(struct image_params *imgp, const boolean_t ret; int i, interp_name_len; - interp_name_len = interp != NULL ? strlen(interp) : 0; + interp_name_len = interp != NULL ? strlen(interp) + 1 : 0; /* * We support four types of branding -- (1) the ELF EI_OSABI field
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201903301724.x2UHOuoQ009160>