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...
Attilio Rao
attilio at FreeBSD.org
Wed Jun 4 13:12:11 UTC 2014
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 at 44e0b000 {
pmic at 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 at 44e0b000 {
pmic at 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 ***
More information about the svn-src-user
mailing list