Date: Wed, 4 Jun 2014 13:12:07 +0000 (UTC) From: Attilio Rao <attilio@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r267054 - in user/attilio/rm_vmobj_cache: contrib/openpam/lib/libpam share/man/man5 sys/arm/broadcom/bcm2835 sys/arm/ti sys/boot/fdt/dts/arm sys/cam/scsi sys/cddl/contrib/opensolaris/ut... Message-ID: <201406041312.s54DC7Xt097895@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: attilio Date: Wed Jun 4 13:12:07 2014 New Revision: 267054 URL: http://svnweb.freebsd.org/changeset/base/267054 Log: Merge from HEAD. Deleted: user/attilio/rm_vmobj_cache/tools/build/options/WITHOUT_TESTS Modified: user/attilio/rm_vmobj_cache/contrib/openpam/lib/libpam/openpam_configure.c user/attilio/rm_vmobj_cache/share/man/man5/src.conf.5 user/attilio/rm_vmobj_cache/sys/arm/broadcom/bcm2835/bcm2835_bsc.c user/attilio/rm_vmobj_cache/sys/arm/ti/ti_i2c.c user/attilio/rm_vmobj_cache/sys/boot/fdt/dts/arm/beaglebone-black.dts user/attilio/rm_vmobj_cache/sys/boot/fdt/dts/arm/beaglebone.dts user/attilio/rm_vmobj_cache/sys/cam/scsi/scsi_sg.c user/attilio/rm_vmobj_cache/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c user/attilio/rm_vmobj_cache/sys/compat/linux/linux_ioctl.c user/attilio/rm_vmobj_cache/sys/dev/hpt27xx/hpt27xx_osm_bsd.c user/attilio/rm_vmobj_cache/sys/dev/usb/controller/dwc_otg.c user/attilio/rm_vmobj_cache/sys/dev/usb/wlan/if_rsu.c user/attilio/rm_vmobj_cache/sys/dev/usb/wlan/if_rsureg.h user/attilio/rm_vmobj_cache/sys/ufs/ffs/ffs_vfsops.c user/attilio/rm_vmobj_cache/tools/build/options/WITH_TESTS user/attilio/rm_vmobj_cache/tools/tools/vt/fontcvt/fontcvt.c user/attilio/rm_vmobj_cache/usr.bin/netstat/main.c user/attilio/rm_vmobj_cache/usr.bin/netstat/netstat.1 user/attilio/rm_vmobj_cache/usr.bin/users/users.c Directory Properties: user/attilio/rm_vmobj_cache/ (props changed) user/attilio/rm_vmobj_cache/contrib/openpam/ (props changed) user/attilio/rm_vmobj_cache/share/ (props changed) user/attilio/rm_vmobj_cache/sys/ (props changed) user/attilio/rm_vmobj_cache/sys/boot/ (props changed) user/attilio/rm_vmobj_cache/sys/cddl/contrib/opensolaris/ (props changed) Modified: user/attilio/rm_vmobj_cache/contrib/openpam/lib/libpam/openpam_configure.c ============================================================================== --- user/attilio/rm_vmobj_cache/contrib/openpam/lib/libpam/openpam_configure.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/contrib/openpam/lib/libpam/openpam_configure.c Wed Jun 4 13:12:07 2014 (r267054) @@ -1,6 +1,6 @@ /*- * Copyright (c) 2001-2003 Networks Associates Technology, Inc. - * Copyright (c) 2004-2012 Dag-Erling Smørgrav + * Copyright (c) 2004-2014 Dag-Erling Smørgrav * All rights reserved. * * This software was developed for the FreeBSD Project by ThinkSec AS and @@ -193,6 +193,7 @@ openpam_parse_chain(pam_handle_t *pamh, openpam_log(PAM_LOG_ERROR, "%s(%d): missing or invalid facility", filename, lineno); + errno = EINVAL; goto fail; } if (facility != fclt && facility != PAM_FACILITY_ANY) { @@ -208,18 +209,28 @@ openpam_parse_chain(pam_handle_t *pamh, openpam_log(PAM_LOG_ERROR, "%s(%d): missing or invalid service name", filename, lineno); + errno = EINVAL; goto fail; } if (wordv[i] != NULL) { openpam_log(PAM_LOG_ERROR, "%s(%d): garbage at end of line", filename, lineno); + errno = EINVAL; goto fail; } ret = openpam_load_chain(pamh, servicename, fclt); FREEV(wordc, wordv); - if (ret < 0) + if (ret < 0) { + /* + * Bogus errno, but this ensures that the + * outer loop does not just ignore the + * error and keep searching. + */ + if (errno == ENOENT) + errno = EINVAL; goto fail; + } continue; } @@ -229,6 +240,7 @@ openpam_parse_chain(pam_handle_t *pamh, openpam_log(PAM_LOG_ERROR, "%s(%d): missing or invalid control flag", filename, lineno); + errno = EINVAL; goto fail; } @@ -238,6 +250,7 @@ openpam_parse_chain(pam_handle_t *pamh, openpam_log(PAM_LOG_ERROR, "%s(%d): missing or invalid module name", filename, lineno); + errno = EINVAL; goto fail; } @@ -247,8 +260,11 @@ openpam_parse_chain(pam_handle_t *pamh, this->flag = ctlf; /* load module */ - if ((this->module = openpam_load_module(modulename)) == NULL) + if ((this->module = openpam_load_module(modulename)) == NULL) { + if (errno == ENOENT) + errno = ENOEXEC; goto fail; + } /* * The remaining items in wordv are the module's @@ -281,7 +297,11 @@ openpam_parse_chain(pam_handle_t *pamh, * The loop ended because openpam_readword() returned NULL, which * can happen for four different reasons: an I/O error (ferror(f) * is true), a memory allocation failure (ferror(f) is false, - * errno is non-zero) + * feof(f) is false, errno is non-zero), the file ended with an + * unterminated quote or backslash escape (ferror(f) is false, + * feof(f) is true, errno is non-zero), or the end of the file was + * reached without error (ferror(f) is false, feof(f) is true, + * errno is zero). */ if (ferror(f) || errno != 0) goto syserr; @@ -402,6 +422,9 @@ openpam_load_chain(pam_handle_t *pamh, } ret = openpam_load_file(pamh, service, facility, filename, style); + /* success */ + if (ret > 0) + RETURNN(ret); /* the file exists, but an error occurred */ if (ret == -1 && errno != ENOENT) RETURNN(ret); @@ -411,7 +434,8 @@ openpam_load_chain(pam_handle_t *pamh, } /* no hit */ - RETURNN(0); + errno = ENOENT; + RETURNN(-1); } /* @@ -432,8 +456,10 @@ openpam_configure(pam_handle_t *pamh, openpam_log(PAM_LOG_ERROR, "invalid service name"); RETURNC(PAM_SYSTEM_ERR); } - if (openpam_load_chain(pamh, service, PAM_FACILITY_ANY) < 0) - goto load_err; + if (openpam_load_chain(pamh, service, PAM_FACILITY_ANY) < 0) { + if (errno != ENOENT) + goto load_err; + } for (fclt = 0; fclt < PAM_NUM_FACILITIES; ++fclt) { if (pamh->chains[fclt] != NULL) continue; Modified: user/attilio/rm_vmobj_cache/share/man/man5/src.conf.5 ============================================================================== --- user/attilio/rm_vmobj_cache/share/man/man5/src.conf.5 Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/share/man/man5/src.conf.5 Wed Jun 4 13:12:07 2014 (r267054) @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 255964 2013-10-01 07:22:04Z des .\" $FreeBSD$ -.Dd May 27, 2014 +.Dd June 3, 2014 .Dt SRC.CONF 5 .Os .Sh NAME @@ -1022,7 +1022,8 @@ and related programs. .\" from FreeBSD: head/tools/build/options/WITH_TESTS 264408 2014-04-13 11:29:52Z jmmv Set to install the .Fx -Test Suite. +Test Suite in +.Pa /usr/tests/ . See .Xr tests 7 for more details. Modified: user/attilio/rm_vmobj_cache/sys/arm/broadcom/bcm2835/bcm2835_bsc.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/arm/broadcom/bcm2835/bcm2835_bsc.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/arm/broadcom/bcm2835/bcm2835_bsc.c Wed Jun 4 13:12:07 2014 (r267054) @@ -407,7 +407,7 @@ bcm_bsc_transfer(device_t dev, struct ii for (i = 0; i < nmsgs; i++) { /* Write the slave address. */ - BCM_BSC_WRITE(sc, BCM_BSC_SLAVE, msgs[i].slave); + BCM_BSC_WRITE(sc, BCM_BSC_SLAVE, msgs[i].slave >> 1); /* Write the data length. */ BCM_BSC_WRITE(sc, BCM_BSC_DLEN, msgs[i].len); Modified: user/attilio/rm_vmobj_cache/sys/arm/ti/ti_i2c.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/arm/ti/ti_i2c.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/arm/ti/ti_i2c.c Wed Jun 4 13:12:07 2014 (r267054) @@ -92,7 +92,6 @@ struct ti_i2c_softc volatile uint16_t sc_stat_flags; /* contains the status flags last IRQ */ - uint16_t sc_i2c_addr; uint16_t sc_rev; }; @@ -310,10 +309,6 @@ ti_i2c_reset(device_t dev, u_char speed, TI_I2C_LOCK(sc); - if (oldaddr) - *oldaddr = sc->sc_i2c_addr; - sc->sc_i2c_addr = addr; - /* First disable the controller while changing the clocks */ con_reg = ti_i2c_read_reg(sc, I2C_REG_CON); ti_i2c_write_reg(sc, I2C_REG_CON, 0x0000); @@ -325,9 +320,6 @@ ti_i2c_reset(device_t dev, u_char speed, ti_i2c_write_reg(sc, I2C_REG_SCLL, clkcfg->scll | (clkcfg->hsscll<<8)); ti_i2c_write_reg(sc, I2C_REG_SCLH, clkcfg->sclh | (clkcfg->hssclh<<8)); - /* Set the remote slave address */ - ti_i2c_write_reg(sc, I2C_REG_SA, addr); - /* Check if we are dealing with high speed mode */ if ((clkcfg->hsscll + clkcfg->hssclh) > 0) con_reg = I2C_CON_OPMODE_HS; @@ -339,7 +331,7 @@ ti_i2c_reset(device_t dev, u_char speed, TI_I2C_UNLOCK(sc); - return 0; + return (IIC_ENOADDR); } /** @@ -771,7 +763,7 @@ ti_i2c_transfer(device_t dev, struct iic } /* set the slave address */ - ti_i2c_write_reg(sc, I2C_REG_SA, msgs[i].slave); + ti_i2c_write_reg(sc, I2C_REG_SA, msgs[i].slave >> 1); /* perform the read or write */ if (msgs[i].flags & IIC_M_RD) { Modified: user/attilio/rm_vmobj_cache/sys/boot/fdt/dts/arm/beaglebone-black.dts ============================================================================== --- user/attilio/rm_vmobj_cache/sys/boot/fdt/dts/arm/beaglebone-black.dts Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/boot/fdt/dts/arm/beaglebone-black.dts Wed Jun 4 13:12:07 2014 (r267054) @@ -149,7 +149,7 @@ i2c@44e0b000 { pmic@24 { compatible = "ti,am335x-pmic"; - reg = <0x24>; + reg = <0x48>; }; }; }; Modified: user/attilio/rm_vmobj_cache/sys/boot/fdt/dts/arm/beaglebone.dts ============================================================================== --- user/attilio/rm_vmobj_cache/sys/boot/fdt/dts/arm/beaglebone.dts Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/boot/fdt/dts/arm/beaglebone.dts Wed Jun 4 13:12:07 2014 (r267054) @@ -133,7 +133,7 @@ i2c@44e0b000 { pmic@24 { compatible = "ti,am335x-pmic"; - reg = <0x24>; + reg = <0x48>; }; }; }; Modified: user/attilio/rm_vmobj_cache/sys/cam/scsi/scsi_sg.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/cam/scsi/scsi_sg.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/cam/scsi/scsi_sg.c Wed Jun 4 13:12:07 2014 (r267054) @@ -627,6 +627,13 @@ sgioctl(struct cdev *dev, u_long cmd, ca break; } + case SG_GET_SG_TABLESIZE: + { + int *size = (int *)arg; + *size = 0; + break; + } + case SG_EMULATED_HOST: case SG_SET_TRANSFORM: case SG_GET_TRANSFORM: @@ -638,7 +645,6 @@ sgioctl(struct cdev *dev, u_long cmd, ca case SG_GET_ACCESS_COUNT: case SG_SET_FORCE_LOW_DMA: case SG_GET_LOW_DMA: - case SG_GET_SG_TABLESIZE: case SG_SET_FORCE_PACK_ID: case SG_GET_PACK_ID: case SG_SET_RESERVED_SIZE: @@ -684,6 +690,12 @@ sgwrite(struct cdev *dev, struct uio *ui if (error) goto out_hdr; + /* XXX: We don't support SG 3.x read/write API. */ + if (hdr->reply_len < 0) { + error = ENODEV; + goto out_hdr; + } + ccb = xpt_alloc_ccb(); if (ccb == NULL) { error = ENOMEM; Modified: user/attilio/rm_vmobj_cache/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Wed Jun 4 13:12:07 2014 (r267054) @@ -953,7 +953,11 @@ spa_taskq_dispatch_ent(spa_t *spa, zio_t if (tqs->stqs_count == 1) { tq = tqs->stqs_taskq[0]; } else { +#ifdef _KERNEL + tq = tqs->stqs_taskq[cpu_ticks() % tqs->stqs_count]; +#else tq = tqs->stqs_taskq[gethrtime() % tqs->stqs_count]; +#endif } taskq_dispatch_ent(tq, func, arg, flags, ent); Modified: user/attilio/rm_vmobj_cache/sys/compat/linux/linux_ioctl.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/compat/linux/linux_ioctl.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/compat/linux/linux_ioctl.c Wed Jun 4 13:12:07 2014 (r267054) @@ -2751,6 +2751,9 @@ linux_ioctl_sg(struct thread *td, struct case LINUX_SG_GET_SCSI_ID: args->cmd = SG_GET_SCSI_ID; break; + case LINUX_SG_GET_SG_TABLESIZE: + args->cmd = SG_GET_SG_TABLESIZE; + break; default: return (ENODEV); } Modified: user/attilio/rm_vmobj_cache/sys/dev/hpt27xx/hpt27xx_osm_bsd.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/dev/hpt27xx/hpt27xx_osm_bsd.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/dev/hpt27xx/hpt27xx_osm_bsd.c Wed Jun 4 13:12:07 2014 (r267054) @@ -1345,17 +1345,19 @@ static int hpt_rescan_bus(void) ldm_for_each_vbus(vbus, vbus_ext) { if ((ccb = xpt_alloc_ccb()) == NULL) { + mtx_unlock(&Giant); return(ENOMEM); } if (xpt_create_path(&ccb->ccb_h.path, NULL, cam_sim_path(vbus_ext->sim), CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { xpt_free_ccb(ccb); + mtx_unlock(&Giant); return(EIO); } xpt_rescan(ccb); } mtx_unlock(&Giant); - return(0); + return(0); } Modified: user/attilio/rm_vmobj_cache/sys/dev/usb/controller/dwc_otg.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/dev/usb/controller/dwc_otg.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/dev/usb/controller/dwc_otg.c Wed Jun 4 13:12:07 2014 (r267054) @@ -3161,11 +3161,20 @@ dwc_otg_setup_standard_chain(struct usb_ (xfer->max_packet_size << HCCHAR_MPS_SHIFT) | HCCHAR_CHENA; - /* XXX stability hack - possible HW issue */ - if (td->ep_type == UE_CONTROL) + /* + * XXX stability hack - possible HW issue + * + * Disable workaround when using a transaction + * translator, hence some TTs reject control endpoint + * traffic using BULK endpoint type: + */ + if (td->ep_type == UE_CONTROL && + (xfer->xroot->udev->speed == USB_SPEED_HIGH || + xfer->xroot->udev->parent_hs_hub == NULL)) { hcchar |= (UE_BULK << HCCHAR_EPTYPE_SHIFT); - else + } else { hcchar |= (td->ep_type << HCCHAR_EPTYPE_SHIFT); + } if (usbd_get_speed(xfer->xroot->udev) == USB_SPEED_LOW) hcchar |= HCCHAR_LSPDDEV; Modified: user/attilio/rm_vmobj_cache/sys/dev/usb/wlan/if_rsu.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/dev/usb/wlan/if_rsu.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/dev/usb/wlan/if_rsu.c Wed Jun 4 13:12:07 2014 (r267054) @@ -128,10 +128,8 @@ static const STRUCT_USB_HOST_ID rsu_devs static device_probe_t rsu_match; static device_attach_t rsu_attach; static device_detach_t rsu_detach; -static usb_callback_t rsu_bulk_tx_callback_0; -static usb_callback_t rsu_bulk_tx_callback_1; -static usb_callback_t rsu_bulk_tx_callback_2; -static usb_callback_t rsu_bulk_tx_callback_3; +static usb_callback_t rsu_bulk_tx_callback_be_bk; +static usb_callback_t rsu_bulk_tx_callback_vi_vo; static usb_callback_t rsu_bulk_rx_callback; static usb_error_t rsu_do_request(struct rsu_softc *, struct usb_device_request *, void *); @@ -221,6 +219,13 @@ MODULE_DEPEND(rsu, usb, 1, 1, 1); MODULE_DEPEND(rsu, firmware, 1, 1, 1); MODULE_VERSION(rsu, 1); +static uint8_t rsu_wme_ac_xfer_map[4] = { + [WME_AC_BE] = RSU_BULK_TX_BE_BK, + [WME_AC_BK] = RSU_BULK_TX_BE_BK, + [WME_AC_VI] = RSU_BULK_TX_VI_VO, + [WME_AC_VO] = RSU_BULK_TX_VI_VO, +}; + static const struct usb_config rsu_config[RSU_N_TRANSFER] = { [RSU_BULK_RX] = { .type = UE_BULK, @@ -233,20 +238,7 @@ static const struct usb_config rsu_confi }, .callback = rsu_bulk_rx_callback }, - [RSU_BULK_TX_BE] = { - .type = UE_BULK, - .endpoint = 0x06, - .direction = UE_DIR_OUT, - .bufsize = RSU_TXBUFSZ, - .flags = { - .ext_buffer = 1, - .pipe_bof = 1, - .force_short_xfer = 1 - }, - .callback = rsu_bulk_tx_callback_0, - .timeout = RSU_TX_TIMEOUT - }, - [RSU_BULK_TX_BK] = { + [RSU_BULK_TX_BE_BK] = { .type = UE_BULK, .endpoint = 0x06, .direction = UE_DIR_OUT, @@ -256,10 +248,10 @@ static const struct usb_config rsu_confi .pipe_bof = 1, .force_short_xfer = 1 }, - .callback = rsu_bulk_tx_callback_1, + .callback = rsu_bulk_tx_callback_be_bk, .timeout = RSU_TX_TIMEOUT }, - [RSU_BULK_TX_VI] = { + [RSU_BULK_TX_VI_VO] = { .type = UE_BULK, .endpoint = 0x04, .direction = UE_DIR_OUT, @@ -269,20 +261,7 @@ static const struct usb_config rsu_confi .pipe_bof = 1, .force_short_xfer = 1 }, - .callback = rsu_bulk_tx_callback_2, - .timeout = RSU_TX_TIMEOUT - }, - [RSU_BULK_TX_VO] = { - .type = UE_BULK, - .endpoint = 0x04, - .direction = UE_DIR_OUT, - .bufsize = RSU_TXBUFSZ, - .flags = { - .ext_buffer = 1, - .pipe_bof = 1, - .force_short_xfer = 1 - }, - .callback = rsu_bulk_tx_callback_3, + .callback = rsu_bulk_tx_callback_vi_vo, .timeout = RSU_TX_TIMEOUT }, }; @@ -614,7 +593,7 @@ rsu_alloc_tx_list(struct rsu_softc *sc) STAILQ_INIT(&sc->sc_tx_inactive); - for (i = 0; i != RSU_MAX_TX_EP; i++) { + for (i = 0; i != RSU_N_TRANSFER; i++) { STAILQ_INIT(&sc->sc_tx_active[i]); STAILQ_INIT(&sc->sc_tx_pending[i]); } @@ -634,7 +613,7 @@ rsu_free_tx_list(struct rsu_softc *sc) /* prevent further allocations from TX list(s) */ STAILQ_INIT(&sc->sc_tx_inactive); - for (i = 0; i != RSU_MAX_TX_EP; i++) { + for (i = 0; i != RSU_N_TRANSFER; i++) { STAILQ_INIT(&sc->sc_tx_active[i]); STAILQ_INIT(&sc->sc_tx_pending[i]); } @@ -874,7 +853,7 @@ rsu_read_rom(struct rsu_softc *sc) static int rsu_fw_cmd(struct rsu_softc *sc, uint8_t code, void *buf, int len) { - const uint8_t which = RSU_BULK_TX_VO - RSU_BULK_TX_BE; + const uint8_t which = rsu_wme_ac_xfer_map[WME_AC_VO]; struct rsu_data *data; struct r92s_tx_desc *txd; struct r92s_fw_cmd_hdr *cmd; @@ -913,7 +892,7 @@ rsu_fw_cmd(struct rsu_softc *sc, uint8_t DPRINTFN(2, "Tx cmd code=0x%x len=0x%x\n", code, cmdsz); data->buflen = xferlen; STAILQ_INSERT_TAIL(&sc->sc_tx_pending[which], data, next); - usbd_transfer_start(sc->sc_xfer[which + RSU_BULK_TX_BE]); + usbd_transfer_start(sc->sc_xfer[which]); return (0); } @@ -926,6 +905,7 @@ rsu_calib_task(void *arg, int pending __ uint32_t reg; DPRINTFN(6, "running calibration task\n"); + RSU_LOCK(sc); #ifdef notyet /* Read WPS PBC status. */ @@ -942,12 +922,9 @@ rsu_calib_task(void *arg, int pending __ reg = rsu_read_4(sc, R92S_IOCMD_DATA); DPRINTFN(8, "RSSI=%d%%\n", reg >> 4); } - if (sc->sc_calibrating) { - RSU_UNLOCK(sc); - taskqueue_enqueue_timeout(taskqueue_thread, &sc->calib_task, - hz * 2); - } else - RSU_UNLOCK(sc); + if (sc->sc_calibrating) + taskqueue_enqueue_timeout(taskqueue_thread, &sc->calib_task, hz); + RSU_UNLOCK(sc); } static int @@ -1001,11 +978,10 @@ rsu_newstate(struct ieee80211vap *vap, e break; } sc->sc_calibrating = 1; + /* Start periodic calibration. */ + taskqueue_enqueue_timeout(taskqueue_thread, &sc->calib_task, hz); RSU_UNLOCK(sc); IEEE80211_LOCK(ic); - /* Start periodic calibration. */ - taskqueue_enqueue_timeout(taskqueue_thread, &sc->calib_task, hz * 2); - return (uvp->newstate(vap, nstate, arg)); } @@ -1271,6 +1247,9 @@ rsu_rx_event(struct rsu_softc *sc, uint8 if (vap->iv_state == IEEE80211_S_AUTH) rsu_event_join_bss(sc, buf, len); break; +#if 0 +XXX This event is occurring regularly, possibly due to some power saving event +XXX and disrupts the WLAN traffic. Disable for now. case R92S_EVT_DEL_STA: DPRINTF("disassociated from %s\n", ether_sprintf(buf)); if (vap->iv_state == IEEE80211_S_RUN && @@ -1280,6 +1259,7 @@ rsu_rx_event(struct rsu_softc *sc, uint8 RSU_LOCK(sc); } break; +#endif case R92S_EVT_WPS_PBC: DPRINTF("WPS PBC pushed.\n"); break; @@ -1289,6 +1269,8 @@ rsu_rx_event(struct rsu_softc *sc, uint8 printf("FWDBG: %s\n", (char *)buf); } break; + default: + break; } } @@ -1662,27 +1644,15 @@ tr_setup: } static void -rsu_bulk_tx_callback_0(struct usb_xfer *xfer, usb_error_t error) +rsu_bulk_tx_callback_be_bk(struct usb_xfer *xfer, usb_error_t error) { - rsu_bulk_tx_callback_sub(xfer, error, 0); + rsu_bulk_tx_callback_sub(xfer, error, RSU_BULK_TX_BE_BK); } static void -rsu_bulk_tx_callback_1(struct usb_xfer *xfer, usb_error_t error) +rsu_bulk_tx_callback_vi_vo(struct usb_xfer *xfer, usb_error_t error) { - rsu_bulk_tx_callback_sub(xfer, error, 1); -} - -static void -rsu_bulk_tx_callback_2(struct usb_xfer *xfer, usb_error_t error) -{ - rsu_bulk_tx_callback_sub(xfer, error, 2); -} - -static void -rsu_bulk_tx_callback_3(struct usb_xfer *xfer, usb_error_t error) -{ - rsu_bulk_tx_callback_sub(xfer, error, 3); + rsu_bulk_tx_callback_sub(xfer, error, RSU_BULK_TX_VI_VO); } static int @@ -1720,12 +1690,10 @@ rsu_tx_start(struct rsu_softc *sc, struc switch (type) { case IEEE80211_FC0_TYPE_CTL: case IEEE80211_FC0_TYPE_MGT: - which = RSU_BULK_TX_VO - RSU_BULK_TX_BE; + which = rsu_wme_ac_xfer_map[WME_AC_VO]; break; default: - which = M_WME_GETAC(m0); - KASSERT(which < RSU_MAX_TX_EP, - ("unsupported WME pipe %d", which)); + which = rsu_wme_ac_xfer_map[M_WME_GETAC(m0)]; break; } hasqos = 0; @@ -1790,7 +1758,7 @@ rsu_tx_start(struct rsu_softc *sc, struc STAILQ_INSERT_TAIL(&sc->sc_tx_pending[which], data, next); /* start transfer, if any */ - usbd_transfer_start(sc->sc_xfer[which + RSU_BULK_TX_BE]); + usbd_transfer_start(sc->sc_xfer[which]); return (0); } @@ -2105,7 +2073,7 @@ rsu_power_off(struct rsu_softc *sc) static int rsu_fw_loadsection(struct rsu_softc *sc, const uint8_t *buf, int len) { - const uint8_t which = RSU_BULK_TX_VO - RSU_BULK_TX_BE; + const uint8_t which = rsu_wme_ac_xfer_map[WME_AC_VO]; struct rsu_data *data; struct r92s_tx_desc *txd; int mlen; @@ -2130,7 +2098,7 @@ rsu_fw_loadsection(struct rsu_softc *sc, buf += mlen; len -= mlen; } - usbd_transfer_start(sc->sc_xfer[RSU_BULK_TX_BE + which]); + usbd_transfer_start(sc->sc_xfer[which]); return (0); } @@ -2146,6 +2114,11 @@ rsu_load_firmware(struct rsu_softc *sc) uint32_t reg; int ntries, error; + if (rsu_read_1(sc, R92S_TCR) & R92S_TCR_FWRDY) { + DPRINTF("Firmware already loaded\n"); + return (0); + } + RSU_UNLOCK(sc); /* Read firmware image from the filesystem. */ if ((fw = firmware_get("rsu-rtl8712fw")) == NULL) { @@ -2202,7 +2175,7 @@ rsu_load_firmware(struct rsu_softc *sc) /* Wait for load to complete. */ for (ntries = 0; ntries != 50; ntries++) { usb_pause_mtx(&sc->sc_mtx, hz / 100); - reg = rsu_read_2(sc, R92S_TCR); + reg = rsu_read_1(sc, R92S_TCR); if (reg & R92S_TCR_IMEM_CODE_DONE) break; } @@ -2211,7 +2184,6 @@ rsu_load_firmware(struct rsu_softc *sc) error = ETIMEDOUT; goto fail; } - /* Load EMEM section. */ error = rsu_fw_loadsection(sc, emem, ememsz); if (error != 0) { @@ -2231,7 +2203,6 @@ rsu_load_firmware(struct rsu_softc *sc) error = ETIMEDOUT; goto fail; } - /* Enable CPU. */ rsu_write_1(sc, R92S_SYS_CLKR, rsu_read_1(sc, R92S_SYS_CLKR) | R92S_SYS_CPU_CLKSEL); @@ -2250,7 +2221,7 @@ rsu_load_firmware(struct rsu_softc *sc) } /* Wait for CPU to initialize. */ for (ntries = 0; ntries < 100; ntries++) { - if (rsu_read_2(sc, R92S_TCR) & R92S_TCR_IMEM_RDY) + if (rsu_read_1(sc, R92S_TCR) & R92S_TCR_IMEM_RDY) break; rsu_ms_delay(sc); } @@ -2282,7 +2253,7 @@ rsu_load_firmware(struct rsu_softc *sc) } /* Wait for load to complete. */ for (ntries = 0; ntries < 100; ntries++) { - if (rsu_read_2(sc, R92S_TCR) & R92S_TCR_DMEM_CODE_DONE) + if (rsu_read_1(sc, R92S_TCR) & R92S_TCR_DMEM_CODE_DONE) break; rsu_ms_delay(sc); } @@ -2294,7 +2265,7 @@ rsu_load_firmware(struct rsu_softc *sc) } /* Wait for firmware readiness. */ for (ntries = 0; ntries < 60; ntries++) { - if (!(rsu_read_2(sc, R92S_TCR) & R92S_TCR_FWRDY)) + if (!(rsu_read_1(sc, R92S_TCR) & R92S_TCR_FWRDY)) break; rsu_ms_delay(sc); } @@ -2372,6 +2343,7 @@ rsu_init_locked(struct rsu_softc *sc) rsu_power_on_acut(sc); else rsu_power_on_bcut(sc); + /* Load firmware. */ error = rsu_load_firmware(sc); if (error != 0) Modified: user/attilio/rm_vmobj_cache/sys/dev/usb/wlan/if_rsureg.h ============================================================================== --- user/attilio/rm_vmobj_cache/sys/dev/usb/wlan/if_rsureg.h Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/dev/usb/wlan/if_rsureg.h Wed Jun 4 13:12:07 2014 (r267054) @@ -698,11 +698,9 @@ struct rsu_host_cmd_ring { enum { RSU_BULK_RX, - RSU_BULK_TX_BE, /* = WME_AC_BE */ - RSU_BULK_TX_BK, /* = WME_AC_BK */ - RSU_BULK_TX_VI, /* = WME_AC_VI */ - RSU_BULK_TX_VO, /* = WME_AC_VI */ - RSU_N_TRANSFER = 5, + RSU_BULK_TX_BE_BK, /* = WME_AC_BE/BK */ + RSU_BULK_TX_VI_VO, /* = WME_AC_VI/VO */ + RSU_N_TRANSFER, }; struct rsu_data { @@ -727,8 +725,6 @@ struct rsu_vap { #define RSU_UNLOCK(sc) mtx_unlock(&(sc)->sc_mtx) #define RSU_ASSERT_LOCKED(sc) mtx_assert(&(sc)->sc_mtx, MA_OWNED) -#define RSU_MAX_TX_EP 4 - struct rsu_softc { struct ifnet *sc_ifp; device_t sc_dev; @@ -754,9 +750,9 @@ struct rsu_softc { STAILQ_HEAD(, rsu_data) sc_rx_active; STAILQ_HEAD(, rsu_data) sc_rx_inactive; - STAILQ_HEAD(, rsu_data) sc_tx_active[RSU_MAX_TX_EP]; + STAILQ_HEAD(, rsu_data) sc_tx_active[RSU_N_TRANSFER]; STAILQ_HEAD(, rsu_data) sc_tx_inactive; - STAILQ_HEAD(, rsu_data) sc_tx_pending[RSU_MAX_TX_EP]; + STAILQ_HEAD(, rsu_data) sc_tx_pending[RSU_N_TRANSFER]; union { struct rsu_rx_radiotap_header th; Modified: user/attilio/rm_vmobj_cache/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/ufs/ffs/ffs_vfsops.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/sys/ufs/ffs/ffs_vfsops.c Wed Jun 4 13:12:07 2014 (r267054) @@ -1931,13 +1931,13 @@ ffs_sbupdate(ump, waitfor, suspended) } bp = sbbp; if (fs->fs_magic == FS_UFS1_MAGIC && fs->fs_sblockloc != SBLOCK_UFS1 && - (fs->fs_flags & FS_FLAGS_UPDATED) == 0) { + (fs->fs_old_flags & FS_FLAGS_UPDATED) == 0) { printf("WARNING: %s: correcting fs_sblockloc from %jd to %d\n", fs->fs_fsmnt, fs->fs_sblockloc, SBLOCK_UFS1); fs->fs_sblockloc = SBLOCK_UFS1; } if (fs->fs_magic == FS_UFS2_MAGIC && fs->fs_sblockloc != SBLOCK_UFS2 && - (fs->fs_flags & FS_FLAGS_UPDATED) == 0) { + (fs->fs_old_flags & FS_FLAGS_UPDATED) == 0) { printf("WARNING: %s: correcting fs_sblockloc from %jd to %d\n", fs->fs_fsmnt, fs->fs_sblockloc, SBLOCK_UFS2); fs->fs_sblockloc = SBLOCK_UFS2; Modified: user/attilio/rm_vmobj_cache/tools/build/options/WITH_TESTS ============================================================================== --- user/attilio/rm_vmobj_cache/tools/build/options/WITH_TESTS Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/tools/build/options/WITH_TESTS Wed Jun 4 13:12:07 2014 (r267054) @@ -1,7 +1,8 @@ .\" $FreeBSD$ Set to install the .Fx -Test Suite. +Test Suite in +.Pa /usr/tests/ . See .Xr tests 7 for more details. Modified: user/attilio/rm_vmobj_cache/tools/tools/vt/fontcvt/fontcvt.c ============================================================================== --- user/attilio/rm_vmobj_cache/tools/tools/vt/fontcvt/fontcvt.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/tools/tools/vt/fontcvt/fontcvt.c Wed Jun 4 13:12:07 2014 (r267054) @@ -30,6 +30,8 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include <sys/types.h> +#include <sys/fnv_hash.h> #include <sys/endian.h> #include <sys/param.h> #include <sys/queue.h> @@ -39,20 +41,24 @@ __FBSDID("$FreeBSD$"); #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <unistd.h> #define VFNT_MAPS 4 #define VFNT_MAP_NORMAL 0 #define VFNT_MAP_BOLD 2 -static unsigned int width, wbytes, height; +static unsigned int width = 8, wbytes, height = 16; struct glyph { TAILQ_ENTRY(glyph) g_list; + SLIST_ENTRY(glyph) g_hash; uint8_t *g_data; unsigned int g_index; }; +#define FONTCVT_NHASH 4096 TAILQ_HEAD(glyph_list, glyph); +static SLIST_HEAD(, glyph) glyph_hash[FONTCVT_NHASH]; static struct glyph_list glyphs[VFNT_MAPS] = { TAILQ_HEAD_INITIALIZER(glyphs[0]), TAILQ_HEAD_INITIALIZER(glyphs[1]), @@ -83,7 +89,7 @@ usage(void) { fprintf(stderr, -"usage: fontcvt width height normal.bdf bold.bdf out.fnt\n"); +"usage: fontcvt [-w width] [-h height] normal.bdf [bold.bdf] out.fnt\n"); exit(1); } @@ -146,17 +152,16 @@ static struct glyph * add_glyph(const uint8_t *bytes, unsigned int map_idx, int fallback) { struct glyph *gl; - unsigned int i; + int hash; glyph_total++; glyph_count[map_idx]++; - for (i = 0; i < VFNT_MAPS; i++) { - TAILQ_FOREACH(gl, &glyphs[i], g_list) { - if (memcmp(gl->g_data, bytes, wbytes * height) == 0) { - glyph_dupe++; - return (gl); - } + hash = fnv_32_buf(bytes, wbytes * height, FNV1_32_INIT) % FONTCVT_NHASH; + SLIST_FOREACH(gl, &glyph_hash[hash], g_hash) { + if (memcmp(gl->g_data, bytes, wbytes * height) == 0) { + glyph_dupe++; + return (gl); } } @@ -167,6 +172,7 @@ add_glyph(const uint8_t *bytes, unsigned TAILQ_INSERT_HEAD(&glyphs[map_idx], gl, g_list); else TAILQ_INSERT_TAIL(&glyphs[map_idx], gl, g_list); + SLIST_INSERT_HEAD(&glyph_hash[hash], gl, g_hash); glyph_unique++; return (gl); @@ -384,27 +390,48 @@ write_fnt(const char *filename) int main(int argc, char *argv[]) { + int ch; assert(sizeof(struct file_header) == 32); assert(sizeof(struct file_mapping) == 8); - if (argc != 6) + while ((ch = getopt(argc, argv, "h:w:")) != -1) { + switch (ch) { + case 'h': + height = atoi(optarg); + break; + case 'w': + height = atoi(optarg); + break; + case '?': + default: + usage(); + } + } + argc -= optind; + argv += optind; + + if (argc < 2 || argc > 3) usage(); - - width = atoi(argv[1]); + wbytes = howmany(width, 8); - height = atoi(argv[2]); - if (parse_bdf(argv[3], VFNT_MAP_NORMAL) != 0) - return (1); - if (parse_bdf(argv[4], VFNT_MAP_BOLD) != 0) + if (parse_bdf(argv[0], VFNT_MAP_NORMAL) != 0) return (1); + argc--; + argv++; + if (argc == 2) { + if (parse_bdf(argv[0], VFNT_MAP_BOLD) != 0) + return (1); + argc--; + argv++; + } number_glyphs(); fold_mappings(0); fold_mappings(1); fold_mappings(2); fold_mappings(3); - if (write_fnt(argv[5]) != 0) + if (write_fnt(argv[0]) != 0) return (1); printf( Modified: user/attilio/rm_vmobj_cache/usr.bin/netstat/main.c ============================================================================== --- user/attilio/rm_vmobj_cache/usr.bin/netstat/main.c Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/usr.bin/netstat/main.c Wed Jun 4 13:12:07 2014 (r267054) @@ -828,14 +828,16 @@ usage(void) " [-M core] [-N system]", " netstat -i | -I interface [-46abdhnW] [-f address_family]\n" " [-M core] [-N system]", -" netstat -w wait [-I interface] [-46d] [-M core] [-N system] [-q howmany]", -" netstat -s [-s] [-46z] [-f protocol_family | -p protocol]\n" -" [-M core] [-N system]", -" netstat -i | -I interface [-46s] [-f protocol_family | -p protocol]\n" +" netstat -w wait [-I interface] [-46d] [-M core] [-N system]\n" +" [-q howmany]", +" netstat -s [-46sz] [-f protocol_family | -p protocol]\n" " [-M core] [-N system]", +" netstat -i | -I interface -s [-46s]\n" +" [-f protocol_family | -p protocol] [-M core] [-N system]", " netstat -m [-M core] [-N system]", -" netstat -B [-I interface]", -" netstat -r [-46AanW] [-f address_family] [-M core] [-N system]", +" netstat -B [-z] [-I interface]", +" netstat -r [-46AnW] [-F fibnum] [-f address_family]\n" +" [-M core] [-N system]", " netstat -rs [-s] [-M core] [-N system]", " netstat -g [-46W] [-f address_family] [-M core] [-N system]", " netstat -gs [-46s] [-f address_family] [-M core] [-N system]", Modified: user/attilio/rm_vmobj_cache/usr.bin/netstat/netstat.1 ============================================================================== --- user/attilio/rm_vmobj_cache/usr.bin/netstat/netstat.1 Wed Jun 4 12:26:53 2014 (r267053) +++ user/attilio/rm_vmobj_cache/usr.bin/netstat/netstat.1 Wed Jun 4 13:12:07 2014 (r267054) @@ -28,12 +28,70 @@ .\" @(#)netstat.1 8.8 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd January 11, 2014 +.Dd July 4, 2014 .Dt NETSTAT 1 .Os .Sh NAME .Nm netstat -.Nd show network status +.Nd show network status and statistics +.Sh SYNOPSIS +.Bk -words +.Bl -tag -width "netstat" +.It Nm +.Op Fl 46AaLnRSTWx +.Op Fl f Ar protocol_family | Fl p Ar protocol +.Op Fl M Ar core +.Op Fl N Ar system +.It Nm Fl i | I Ar interface +.Op Fl 46abdhnW +.Op Fl f Ar address_family +.Op Fl M Ar core +.Op Fl N Ar system +.It Nm Fl w Ar wait +.Op Fl I Ar interface +.Op Fl 46d +.Op Fl M Ar core +.Op Fl N Ar system +.Op Fl q Ar howmany +.It Nm Fl s +.Op Fl 46sz +.Op Fl f Ar protocol_family | Fl p Ar protocol +.Op Fl M Ar core +.Op Fl N Ar system +.It Nm Fl i | I Ar interface Fl s +.Op Fl 46s +.Op Fl f Ar protocol_family | Fl p Ar protocol +.Op Fl M Ar core +.Op Fl N Ar system +.It Nm Fl m +.Op Fl M Ar core +.Op Fl N Ar system +.It Nm Fl B +.Op Fl z +.Op Fl I Ar interface +.It Nm Fl r +.Op Fl 46AnW +.Op Fl F Ar fibnum +.Op Fl f Ar address_family +.Op Fl M Ar core +.Op Fl N Ar system +.It Nm Fl rs +.Op Fl s +.Op Fl M Ar core +.Op Fl N Ar system +.It Nm Fl g +.Op Fl 46W +.Op Fl f Ar address_family +.Op Fl M Ar core +.Op Fl N Ar system +.It Nm Fl gs +.Op Fl 46s +.Op Fl f Ar address_family +.Op Fl M Ar core +.Op Fl N Ar system +.It Nm Fl Q +.Ek +.El .Sh DESCRIPTION The .Nm @@ -45,7 +103,7 @@ depending on the options for the informa .It Xo .Bk -words .Nm -.Op Fl 46AaLnSTWxR +.Op Fl 46AaLnRSTWx .Op Fl f Ar protocol_family | Fl p Ar protocol .Op Fl M Ar core .Op Fl N Ar system @@ -53,50 +111,132 @@ depending on the options for the informa .Xc Display a list of active sockets (protocol control blocks) -for each network protocol, -for a particular -.Ar protocol_family , -or for a single -.Ar protocol . -If -.Fl A -is also present, -show the address of a protocol control block (PCB) +for each network protocol. +.Pp +The default display for active sockets shows the local +and remote addresses, send and receive queue sizes (in bytes), protocol, *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201406041312.s54DC7Xt097895>