From owner-svn-src-user@FreeBSD.ORG Sun Sep 12 00:08:07 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 94890106564A; Sun, 12 Sep 2010 00:08:07 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 69ACD8FC12; Sun, 12 Sep 2010 00:08:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8C087sn056224; Sun, 12 Sep 2010 00:08:07 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8C087xp056221; Sun, 12 Sep 2010 00:08:07 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009120008.o8C087xp056221@svn.freebsd.org> From: Weongyo Jeong Date: Sun, 12 Sep 2010 00:08:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212486 - user/weongyo/usb/sys/dev/usb X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Sep 2010 00:08:07 -0000 Author: weongyo Date: Sun Sep 12 00:08:07 2010 New Revision: 212486 URL: http://svn.freebsd.org/changeset/base/212486 Log: One of things to make USB stack hard to read is that I think there are too many places mtx_owned(9) used. Using mtx_owned(9) looks it makes code short but IMHO it leads for developers not to understand the code flow clearly. As further works I'd like to remove all mtx_owned(9) if it could be removed. Modified: user/weongyo/usb/sys/dev/usb/usb_hub.c user/weongyo/usb/sys/dev/usb/usb_hub.h Modified: user/weongyo/usb/sys/dev/usb/usb_hub.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_hub.c Sat Sep 11 23:09:25 2010 (r212485) +++ user/weongyo/usb/sys/dev/usb/usb_hub.c Sun Sep 12 00:08:07 2010 (r212486) @@ -540,7 +540,7 @@ uhub_root_intr(struct usb_bus *bus, cons { USB_BUS_LOCK_ASSERT(bus, MA_OWNED); - usb_needs_explore(bus, 0); + usb_needs_explore_locked(bus, 0); } /*------------------------------------------------------------------------* @@ -1587,7 +1587,20 @@ usb_bus_port_set_device(struct usb_bus * void usb_needs_explore(struct usb_bus *bus, uint8_t do_probe) { - uint8_t do_unlock; + + DPRINTF("\n"); + if (bus == NULL) { + DPRINTF("No bus pointer!\n"); + return; + } + USB_BUS_LOCK(bus); + usb_needs_explore_locked(bus, do_probe); + USB_BUS_UNLOCK(bus); +} + +void +usb_needs_explore_locked(struct usb_bus *bus, uint8_t do_probe) +{ DPRINTF("\n"); @@ -1595,17 +1608,14 @@ usb_needs_explore(struct usb_bus *bus, u DPRINTF("No bus pointer!\n"); return; } + + USB_BUS_LOCK_ASSERT(bus, MA_OWNED); + if ((bus->devices == NULL) || (bus->devices[USB_ROOT_HUB_ADDR] == NULL)) { DPRINTF("No root HUB\n"); return; } - if (mtx_owned(&bus->bus_mtx)) { - do_unlock = 0; - } else { - USB_BUS_LOCK(bus); - do_unlock = 1; - } if (do_probe) { bus->do_probe = 1; } @@ -1613,9 +1623,6 @@ usb_needs_explore(struct usb_bus *bus, u &bus->explore_msg[0], &bus->explore_msg[1])) { /* ignore */ } - if (do_unlock) { - USB_BUS_UNLOCK(bus); - } } /*------------------------------------------------------------------------* Modified: user/weongyo/usb/sys/dev/usb/usb_hub.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_hub.h Sat Sep 11 23:09:25 2010 (r212485) +++ user/weongyo/usb/sys/dev/usb/usb_hub.h Sun Sep 12 00:08:07 2010 (r212486) @@ -74,6 +74,7 @@ void usb_bus_port_set_device(struct usb_ struct usb_device *usb_bus_port_get_device(struct usb_bus *bus, struct usb_port *up); void usb_needs_explore(struct usb_bus *bus, uint8_t do_probe); +void usb_needs_explore_locked(struct usb_bus *bus, uint8_t do_probe); void usb_needs_explore_all(void); void usb_bus_power_update(struct usb_bus *bus); void usb_bus_powerd(struct usb_bus *bus); From owner-svn-src-user@FreeBSD.ORG Sun Sep 12 00:12:18 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 98C10106566B; Sun, 12 Sep 2010 00:12:18 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 883638FC08; Sun, 12 Sep 2010 00:12:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8C0CIwG056709; Sun, 12 Sep 2010 00:12:18 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8C0CIRD056707; Sun, 12 Sep 2010 00:12:18 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009120012.o8C0CIRD056707@svn.freebsd.org> From: Weongyo Jeong Date: Sun, 12 Sep 2010 00:12:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212487 - user/weongyo/usb/sys/dev/usb/controller X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Sep 2010 00:12:18 -0000 Author: weongyo Date: Sun Sep 12 00:12:18 2010 New Revision: 212487 URL: http://svn.freebsd.org/changeset/base/212487 Log: An experimental commit to change the USB bus lock from the recursive to the normal. It'd be best for HCD not to use the recursive lock to keep the code simple and readable. Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Sun Sep 12 00:08:07 2010 (r212486) +++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Sun Sep 12 00:12:18 2010 (r212487) @@ -582,7 +582,7 @@ usb_bus_struct_init(struct usb_bus *bus, bus->alloc_failed = 0; mtx_init(&bus->bus_mtx, device_get_nameunit(bus->parent), - NULL, MTX_DEF | MTX_RECURSE); + NULL, MTX_DEF); usb_callout_init_mtx(&bus->power_wdog, &bus->bus_mtx, 0); From owner-svn-src-user@FreeBSD.ORG Sun Sep 12 00:49:16 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EC4791065673; Sun, 12 Sep 2010 00:49:16 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DAC3B8FC16; Sun, 12 Sep 2010 00:49:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8C0nGx1060050; Sun, 12 Sep 2010 00:49:16 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8C0nGQm060045; Sun, 12 Sep 2010 00:49:16 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009120049.o8C0nGQm060045@svn.freebsd.org> From: Weongyo Jeong Date: Sun, 12 Sep 2010 00:49:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212488 - in user/weongyo/usb/sys/dev/usb: . controller X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Sep 2010 00:49:17 -0000 Author: weongyo Date: Sun Sep 12 00:49:16 2010 New Revision: 212488 URL: http://svn.freebsd.org/changeset/base/212488 Log: No more the USB explore process that it's replaced to the taskqueue. As further works other process contexts would be changed to taskqueues finally. Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c user/weongyo/usb/sys/dev/usb/usb_bus.h user/weongyo/usb/sys/dev/usb/usb_hub.c user/weongyo/usb/sys/dev/usb/usb_transfer.c Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Sun Sep 12 00:12:18 2010 (r212487) +++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Sun Sep 12 00:49:16 2010 (r212488) @@ -170,26 +170,15 @@ usb_detach(device_t dev) bus->bus_roothold = NULL; } - USB_BUS_LOCK(bus); - if (usb_proc_msignal(&bus->explore_proc, - &bus->detach_msg[0], &bus->detach_msg[1])) { - /* ignore */ - } - /* Wait for detach to complete */ - - usb_proc_mwait(&bus->explore_proc, - &bus->detach_msg[0], &bus->detach_msg[1]); - - USB_BUS_UNLOCK(bus); + taskqueue_enqueue(bus->explore_tq, &bus->detach_task); + taskqueue_drain(bus->explore_tq, &bus->detach_task); /* Get rid of USB callback processes */ usb_proc_free(&bus->giant_callback_proc); usb_proc_free(&bus->non_giant_callback_proc); - /* Get rid of USB explore process */ - - usb_proc_free(&bus->explore_proc); + taskqueue_free(bus->explore_tq); /* Get rid of control transfer process */ @@ -204,16 +193,13 @@ usb_detach(device_t dev) * This function is used to explore the device tree from the root. *------------------------------------------------------------------------*/ static void -usb_bus_explore(struct usb_proc_msg *pm) +usb_bus_explore(void *arg, int npending) { - struct usb_bus *bus; - struct usb_device *udev; - - bus = ((struct usb_bus_msg *)pm)->bus; - udev = bus->devices[USB_ROOT_HUB_ADDR]; + struct usb_bus *bus = arg; + struct usb_device *udev = bus->devices[USB_ROOT_HUB_ADDR]; + USB_BUS_LOCK(bus); if (udev && udev->hub) { - if (bus->do_probe) { bus->do_probe = 0; bus->driver_added_refcount++; @@ -249,6 +235,7 @@ usb_bus_explore(struct usb_proc_msg *pm) root_mount_rel(bus->bus_roothold); bus->bus_roothold = NULL; } + USB_BUS_UNLOCK(bus); } /*------------------------------------------------------------------------* @@ -257,15 +244,13 @@ usb_bus_explore(struct usb_proc_msg *pm) * This function is used to detach the device tree from the root. *------------------------------------------------------------------------*/ static void -usb_bus_detach(struct usb_proc_msg *pm) +usb_bus_detach(void *arg, int npending) { - struct usb_bus *bus; - struct usb_device *udev; - device_t dev; - - bus = ((struct usb_bus_msg *)pm)->bus; - udev = bus->devices[USB_ROOT_HUB_ADDR]; - dev = bus->bdev; + struct usb_bus *bus = arg; + struct usb_device *udev = bus->devices[USB_ROOT_HUB_ADDR]; + device_t dev = bus->bdev; + + USB_BUS_LOCK(bus); /* clear the softc */ device_set_softc(dev, NULL); USB_BUS_UNLOCK(bus); @@ -283,6 +268,7 @@ usb_bus_detach(struct usb_proc_msg *pm) USB_BUS_LOCK(bus); /* clear bdev variable last */ bus->bdev = NULL; + USB_BUS_UNLOCK(bus); } static void @@ -300,7 +286,7 @@ usb_power_wdog(void *arg) * The following line of code is only here to recover from * DDB: */ - usb_proc_rewakeup(&bus->explore_proc); /* recover from DDB */ + taskqueue_unblock(bus->explore_tq); /* recover from DDB */ #endif #if USB_HAVE_POWERD @@ -318,17 +304,14 @@ usb_power_wdog(void *arg) * This function attaches USB in context of the explore thread. *------------------------------------------------------------------------*/ static void -usb_bus_attach(struct usb_proc_msg *pm) +usb_bus_attach(void *arg, int npending) { - struct usb_bus *bus; + struct usb_bus *bus = arg; struct usb_device *child; - device_t dev; + device_t dev = bus->bdev; usb_error_t err; enum usb_dev_speed speed; - bus = ((struct usb_bus_msg *)pm)->bus; - dev = bus->bdev; - DPRINTF("\n"); switch (bus->usbrev) { @@ -357,8 +340,6 @@ usb_bus_attach(struct usb_proc_msg *pm) return; } - USB_BUS_UNLOCK(bus); - /* default power_mask value */ bus->hw_power_state = USB_HW_POWER_CONTROL | @@ -390,18 +371,17 @@ usb_bus_attach(struct usb_proc_msg *pm) err = USB_ERR_NOMEM; } - USB_BUS_LOCK(bus); - if (err) { device_printf(bus->bdev, "Root HUB problem, error=%s\n", usbd_errstr(err)); } + USB_BUS_LOCK(bus); /* set softc - we are ready */ device_set_softc(dev, bus); - /* start watchdog */ usb_power_wdog(bus); + USB_BUS_UNLOCK(bus); } /*------------------------------------------------------------------------* @@ -419,21 +399,14 @@ usb_attach_sub(device_t dev, struct usb_ usb_devclass_ptr = devclass_find("usbus"); mtx_unlock(&Giant); - /* Initialise USB process messages */ - bus->explore_msg[0].hdr.pm_callback = &usb_bus_explore; - bus->explore_msg[0].bus = bus; - bus->explore_msg[1].hdr.pm_callback = &usb_bus_explore; - bus->explore_msg[1].bus = bus; - - bus->detach_msg[0].hdr.pm_callback = &usb_bus_detach; - bus->detach_msg[0].bus = bus; - bus->detach_msg[1].hdr.pm_callback = &usb_bus_detach; - bus->detach_msg[1].bus = bus; - - bus->attach_msg[0].hdr.pm_callback = &usb_bus_attach; - bus->attach_msg[0].bus = bus; - bus->attach_msg[1].hdr.pm_callback = &usb_bus_attach; - bus->attach_msg[1].bus = bus; + /* Initialise USB explore taskqueue and tasks */ + bus->explore_tq = taskqueue_create("usb_explore_taskq", M_WAITOK, + taskqueue_thread_enqueue, &bus->explore_tq); + taskqueue_start_threads(&bus->explore_tq, 1, USB_PRI_MED, + "USB explore taskq"); + TASK_INIT(&bus->attach_task, 0, usb_bus_attach, bus); + TASK_INIT(&bus->detach_task, 0, usb_bus_detach, bus); + TASK_INIT(&bus->explore_task, 0, usb_bus_explore, bus); /* Create USB explore and callback processes */ @@ -445,22 +418,13 @@ usb_attach_sub(device_t dev, struct usb_ &bus->bus_mtx, pname, USB_PRI_HIGH)) { printf("WARNING: Creation of USB non-Giant " "callback process failed.\n"); - } else if (usb_proc_create(&bus->explore_proc, - &bus->bus_mtx, pname, USB_PRI_MED)) { - printf("WARNING: Creation of USB explore " - "process failed.\n"); } else if (usb_proc_create(&bus->control_xfer_proc, &bus->bus_mtx, pname, USB_PRI_MED)) { printf("WARNING: Creation of USB control transfer " "process failed.\n"); } else { /* Get final attach going */ - USB_BUS_LOCK(bus); - if (usb_proc_msignal(&bus->explore_proc, - &bus->attach_msg[0], &bus->attach_msg[1])) { - /* ignore */ - } - USB_BUS_UNLOCK(bus); + taskqueue_enqueue(bus->explore_tq, &bus->attach_task); /* Do initial explore */ usb_needs_explore(bus, 1); Modified: user/weongyo/usb/sys/dev/usb/usb_bus.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_bus.h Sun Sep 12 00:12:18 2010 (r212487) +++ user/weongyo/usb/sys/dev/usb/usb_bus.h Sun Sep 12 00:49:16 2010 (r212488) @@ -27,6 +27,8 @@ #ifndef _USB_BUS_H_ #define _USB_BUS_H_ +#include + /* * The following structure defines the USB explore message sent to the USB * explore process. @@ -60,15 +62,15 @@ struct usb_bus { struct usb_process giant_callback_proc; struct usb_process non_giant_callback_proc; - /* Explore process */ - struct usb_process explore_proc; - /* Control request process */ struct usb_process control_xfer_proc; - struct usb_bus_msg explore_msg[2]; - struct usb_bus_msg detach_msg[2]; - struct usb_bus_msg attach_msg[2]; + /* Explore taskqueue */ + struct taskqueue *explore_tq; + struct task attach_task; + struct task detach_task; + struct task explore_task; + /* * This mutex protects the USB hardware: */ Modified: user/weongyo/usb/sys/dev/usb/usb_hub.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_hub.c Sun Sep 12 00:12:18 2010 (r212487) +++ user/weongyo/usb/sys/dev/usb/usb_hub.c Sun Sep 12 00:49:16 2010 (r212488) @@ -1619,10 +1619,7 @@ usb_needs_explore_locked(struct usb_bus if (do_probe) { bus->do_probe = 1; } - if (usb_proc_msignal(&bus->explore_proc, - &bus->explore_msg[0], &bus->explore_msg[1])) { - /* ignore */ - } + taskqueue_enqueue(bus->explore_tq, &bus->explore_task); } /*------------------------------------------------------------------------* Modified: user/weongyo/usb/sys/dev/usb/usb_transfer.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_transfer.c Sun Sep 12 00:12:18 2010 (r212487) +++ user/weongyo/usb/sys/dev/usb/usb_transfer.c Sun Sep 12 00:49:16 2010 (r212488) @@ -2997,7 +2997,7 @@ usbd_transfer_poll(struct usb_xfer **ppx /* Make sure cv_signal() and cv_broadcast() is not called */ udev->bus->control_xfer_proc.up_msleep = 0; - udev->bus->explore_proc.up_msleep = 0; + taskqueue_block(udev->bus->explore_tq); udev->bus->giant_callback_proc.up_msleep = 0; udev->bus->non_giant_callback_proc.up_msleep = 0; From owner-svn-src-user@FreeBSD.ORG Sun Sep 12 00:53:10 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8B7341065672; Sun, 12 Sep 2010 00:53:10 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7ABBE8FC0C; Sun, 12 Sep 2010 00:53:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8C0rAVP060269; Sun, 12 Sep 2010 00:53:10 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8C0rARk060267; Sun, 12 Sep 2010 00:53:10 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009120053.o8C0rARk060267@svn.freebsd.org> From: Weongyo Jeong Date: Sun, 12 Sep 2010 00:53:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212489 - user/weongyo/usb/sys/dev/usb/controller X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Sep 2010 00:53:10 -0000 Author: weongyo Date: Sun Sep 12 00:53:10 2010 New Revision: 212489 URL: http://svn.freebsd.org/changeset/base/212489 Log: Adds a comment why the thread count should be 1. Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Sun Sep 12 00:49:16 2010 (r212488) +++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Sun Sep 12 00:53:10 2010 (r212489) @@ -402,6 +402,10 @@ usb_attach_sub(device_t dev, struct usb_ /* Initialise USB explore taskqueue and tasks */ bus->explore_tq = taskqueue_create("usb_explore_taskq", M_WAITOK, taskqueue_thread_enqueue, &bus->explore_tq); + /* + * NOTE: the thread count always should be 1. If more, it couldn't + * guarantee the serialization between attach, detach and explore. + */ taskqueue_start_threads(&bus->explore_tq, 1, USB_PRI_MED, "USB explore taskq"); TASK_INIT(&bus->attach_task, 0, usb_bus_attach, bus); From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 00:38:49 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 88AD01065670; Mon, 13 Sep 2010 00:38:49 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 738488FC1D; Mon, 13 Sep 2010 00:38:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8D0cnQS040109; Mon, 13 Sep 2010 00:38:49 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8D0clWN040057; Mon, 13 Sep 2010 00:38:47 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009130038.o8D0clWN040057@svn.freebsd.org> From: Warner Losh Date: Mon, 13 Sep 2010 00:38:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212509 - in user/imp/tbemd: . bin/expr bin/pax bin/sh bin/test cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libdtrace/common cddl/co... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 00:38:49 -0000 Author: imp Date: Mon Sep 13 00:38:46 2010 New Revision: 212509 URL: http://svn.freebsd.org/changeset/base/212509 Log: Merge head @r212508 Added: user/imp/tbemd/lib/libc/sys/sigwait.c - copied unchanged from r212508, head/lib/libc/sys/sigwait.c user/imp/tbemd/sbin/hastd/event.c - copied unchanged from r212508, head/sbin/hastd/event.c user/imp/tbemd/sbin/hastd/event.h - copied unchanged from r212508, head/sbin/hastd/event.h user/imp/tbemd/share/man/man4/aesni.4 - copied unchanged from r212508, head/share/man/man4/aesni.4 user/imp/tbemd/share/mk/bsd.dtrace.mk - copied unchanged from r212508, head/share/mk/bsd.dtrace.mk user/imp/tbemd/sys/arm/conf/DOCKSTAR - copied unchanged from r212508, head/sys/arm/conf/DOCKSTAR user/imp/tbemd/sys/boot/fdt/dts/dockstar.dts - copied unchanged from r212508, head/sys/boot/fdt/dts/dockstar.dts user/imp/tbemd/sys/dev/mps/ - copied from r212508, head/sys/dev/mps/ user/imp/tbemd/sys/mips/rmi/dev/xlr/debug.h - copied unchanged from r212508, head/sys/mips/rmi/dev/xlr/debug.h user/imp/tbemd/sys/mips/rmi/rmi_boot_info.h - copied unchanged from r212508, head/sys/mips/rmi/rmi_boot_info.h user/imp/tbemd/sys/modules/mps/ - copied from r212508, head/sys/modules/mps/ user/imp/tbemd/sys/powerpc/powermac/platform_powermac.c - copied unchanged from r212508, head/sys/powerpc/powermac/platform_powermac.c user/imp/tbemd/tools/regression/bin/Makefile - copied unchanged from r212508, head/tools/regression/bin/Makefile user/imp/tbemd/tools/regression/bin/pax/ - copied from r212508, head/tools/regression/bin/pax/ user/imp/tbemd/tools/regression/bin/sh/builtins/command4.0 - copied unchanged from r212508, head/tools/regression/bin/sh/builtins/command4.0 user/imp/tbemd/tools/regression/bin/sh/builtins/read2.0 - copied unchanged from r212508, head/tools/regression/bin/sh/builtins/read2.0 user/imp/tbemd/tools/regression/bin/sh/builtins/read3.0 - copied unchanged from r212508, head/tools/regression/bin/sh/builtins/read3.0 user/imp/tbemd/tools/regression/bin/sh/builtins/read3.0.stdout - copied unchanged from r212508, head/tools/regression/bin/sh/builtins/read3.0.stdout user/imp/tbemd/tools/regression/bin/sh/builtins/read4.0 - copied unchanged from r212508, head/tools/regression/bin/sh/builtins/read4.0 user/imp/tbemd/tools/regression/bin/sh/builtins/read4.0.stdout - copied unchanged from r212508, head/tools/regression/bin/sh/builtins/read4.0.stdout user/imp/tbemd/tools/regression/bin/sh/builtins/return6.4 - copied unchanged from r212508, head/tools/regression/bin/sh/builtins/return6.4 user/imp/tbemd/tools/regression/bin/sh/builtins/return7.4 - copied unchanged from r212508, head/tools/regression/bin/sh/builtins/return7.4 user/imp/tbemd/tools/regression/bin/sh/execution/var-assign1.0 - copied unchanged from r212508, head/tools/regression/bin/sh/execution/var-assign1.0 user/imp/tbemd/usr.sbin/pc-sysinstall/backend/installimage.sh - copied unchanged from r212508, head/usr.sbin/pc-sysinstall/backend/installimage.sh Deleted: user/imp/tbemd/sys/mips/rmi/clock.c user/imp/tbemd/sys/mips/rmi/clock.h user/imp/tbemd/sys/mips/rmi/debug.h user/imp/tbemd/sys/mips/rmi/shared_structs.h user/imp/tbemd/sys/mips/rmi/shared_structs_func.h user/imp/tbemd/sys/mips/rmi/shared_structs_offsets.h user/imp/tbemd/sys/mips/rmi/xlrconfig.h user/imp/tbemd/sys/powerpc/aim/platform_chrp.c user/imp/tbemd/sys/powerpc/aim/trap_subr.S user/imp/tbemd/tools/regression/bin/sh/builtins/command4.127 Modified: user/imp/tbemd/Makefile.inc1 user/imp/tbemd/ObsoleteFiles.inc user/imp/tbemd/bin/expr/expr.1 user/imp/tbemd/bin/pax/pax.1 user/imp/tbemd/bin/pax/tar.c user/imp/tbemd/bin/sh/eval.c user/imp/tbemd/bin/sh/expand.c user/imp/tbemd/bin/sh/miscbltin.c user/imp/tbemd/bin/sh/mksyntax.c user/imp/tbemd/bin/sh/parser.c user/imp/tbemd/bin/sh/sh.1 user/imp/tbemd/bin/sh/var.c user/imp/tbemd/bin/test/test.1 user/imp/tbemd/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c user/imp/tbemd/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/drti.c user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pid.c user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.c user/imp/tbemd/cddl/contrib/opensolaris/lib/pyzfs/common/ioctl.c user/imp/tbemd/etc/mtree/BSD.var.dist user/imp/tbemd/etc/rc.d/cleartmp user/imp/tbemd/games/fortune/datfiles/fortunes user/imp/tbemd/gnu/lib/libobjc/Makefile user/imp/tbemd/gnu/lib/libstdc++/Makefile user/imp/tbemd/gnu/lib/libstdc++/config.h user/imp/tbemd/include/limits.h user/imp/tbemd/lib/libc/db/man/dbopen.3 user/imp/tbemd/lib/libc/net/sctp_send.3 user/imp/tbemd/lib/libc/net/sctp_sendmsg.3 user/imp/tbemd/lib/libc/posix1e/acl_strip.c user/imp/tbemd/lib/libc/stdio/printf.3 user/imp/tbemd/lib/libc/stdlib/Makefile.inc user/imp/tbemd/lib/libc/stdlib/malloc.3 user/imp/tbemd/lib/libc/sys/Makefile.inc user/imp/tbemd/lib/libc/sys/Symbol.map user/imp/tbemd/lib/libc/sys/connect.2 user/imp/tbemd/lib/libc/sys/cpuset_getaffinity.2 user/imp/tbemd/lib/libc/sys/sigaltstack.2 user/imp/tbemd/lib/libedit/common.c user/imp/tbemd/lib/libedit/term.c user/imp/tbemd/lib/libedit/term.h user/imp/tbemd/lib/libelf/elf_update.c user/imp/tbemd/lib/libjail/jail.3 user/imp/tbemd/lib/libjail/jail.c user/imp/tbemd/lib/libpmc/libpmc.c user/imp/tbemd/lib/libstand/nfs.c user/imp/tbemd/lib/libthr/thread/thr_cancel.c user/imp/tbemd/lib/libthr/thread/thr_cond.c user/imp/tbemd/lib/libthr/thread/thr_create.c user/imp/tbemd/lib/libthr/thread/thr_exit.c user/imp/tbemd/lib/libthr/thread/thr_fork.c user/imp/tbemd/lib/libthr/thread/thr_init.c user/imp/tbemd/lib/libthr/thread/thr_join.c user/imp/tbemd/lib/libthr/thread/thr_kern.c user/imp/tbemd/lib/libthr/thread/thr_mutex.c user/imp/tbemd/lib/libthr/thread/thr_private.h user/imp/tbemd/lib/libthr/thread/thr_rtld.c user/imp/tbemd/lib/libthr/thread/thr_sig.c user/imp/tbemd/lib/libthr/thread/thr_syscalls.c user/imp/tbemd/lib/libthr/thread/thr_umtx.c user/imp/tbemd/lib/libthr/thread/thr_umtx.h user/imp/tbemd/libexec/rtld-elf/powerpc64/reloc.c user/imp/tbemd/libexec/rtld-elf/rtld.c user/imp/tbemd/libexec/rtld-elf/rtld.h user/imp/tbemd/release/doc/share/misc/dev.archlist.txt user/imp/tbemd/sbin/dhclient/dhclient-script.8 user/imp/tbemd/sbin/fdisk/fdisk.c user/imp/tbemd/sbin/geom/class/sched/gsched.8 user/imp/tbemd/sbin/geom/core/geom.8 user/imp/tbemd/sbin/hastd/Makefile user/imp/tbemd/sbin/hastd/control.c user/imp/tbemd/sbin/hastd/hast.conf.5 user/imp/tbemd/sbin/hastd/hast.h user/imp/tbemd/sbin/hastd/hast_proto.c user/imp/tbemd/sbin/hastd/hast_proto.h user/imp/tbemd/sbin/hastd/hastd.c user/imp/tbemd/sbin/hastd/hooks.c user/imp/tbemd/sbin/hastd/hooks.h user/imp/tbemd/sbin/hastd/pjdlog.c user/imp/tbemd/sbin/hastd/primary.c user/imp/tbemd/sbin/hastd/proto.c user/imp/tbemd/sbin/hastd/proto.h user/imp/tbemd/sbin/hastd/proto_socketpair.c user/imp/tbemd/sbin/hastd/secondary.c user/imp/tbemd/sbin/hastd/synch.h user/imp/tbemd/sbin/kldload/kldload.8 user/imp/tbemd/sbin/kldload/kldload.c user/imp/tbemd/sbin/mount_nfs/mount_nfs.c user/imp/tbemd/sbin/mount_unionfs/mount_unionfs.8 user/imp/tbemd/sbin/newfs/newfs.8 user/imp/tbemd/secure/lib/libcrypto/man/BIO_s_bio.3 user/imp/tbemd/share/examples/etc/make.conf user/imp/tbemd/share/man/man3/Makefile user/imp/tbemd/share/man/man3/siginfo.3 user/imp/tbemd/share/man/man4/Makefile user/imp/tbemd/share/man/man4/ata.4 user/imp/tbemd/share/man/man4/axe.4 user/imp/tbemd/share/man/man4/bwn.4 user/imp/tbemd/share/man/man4/crypto.4 user/imp/tbemd/share/man/man4/ddb.4 user/imp/tbemd/share/man/man4/man4.powerpc/powermac_nvram.4 user/imp/tbemd/share/man/man4/ng_hci.4 user/imp/tbemd/share/man/man4/psm.4 user/imp/tbemd/share/man/man4/sis.4 user/imp/tbemd/share/man/man5/rc.conf.5 user/imp/tbemd/share/man/man7/hier.7 user/imp/tbemd/share/man/man9/Makefile user/imp/tbemd/share/man/man9/devclass_get_maxunit.9 user/imp/tbemd/share/man/man9/locking.9 user/imp/tbemd/share/man/man9/make_dev.9 user/imp/tbemd/share/man/man9/rmlock.9 user/imp/tbemd/share/man/man9/sbuf.9 user/imp/tbemd/share/misc/committers-ports.dot user/imp/tbemd/share/misc/committers-src.dot user/imp/tbemd/share/mk/Makefile user/imp/tbemd/share/mk/bsd.lib.mk user/imp/tbemd/share/mk/bsd.prog.mk user/imp/tbemd/share/mk/sys.mk user/imp/tbemd/sys/amd64/amd64/cpu_switch.S user/imp/tbemd/sys/amd64/amd64/legacy.c user/imp/tbemd/sys/amd64/amd64/nexus.c user/imp/tbemd/sys/amd64/conf/GENERIC user/imp/tbemd/sys/amd64/include/cpufunc.h user/imp/tbemd/sys/arm/arm/nexus.c user/imp/tbemd/sys/arm/arm/pmap.c user/imp/tbemd/sys/arm/xscale/ixp425/ixp425.c user/imp/tbemd/sys/boot/forth/beastie.4th user/imp/tbemd/sys/boot/i386/boot2/Makefile user/imp/tbemd/sys/boot/i386/efi/Makefile user/imp/tbemd/sys/boot/i386/libi386/pxe.c user/imp/tbemd/sys/boot/i386/loader/Makefile user/imp/tbemd/sys/boot/i386/zfsloader/Makefile user/imp/tbemd/sys/boot/ofw/libofw/ofw_copy.c user/imp/tbemd/sys/boot/pc98/boot2/Makefile user/imp/tbemd/sys/boot/pc98/boot2/boot2.c user/imp/tbemd/sys/boot/zfs/zfsimpl.c user/imp/tbemd/sys/cam/ata/ata_da.c user/imp/tbemd/sys/cam/scsi/scsi_da.c user/imp/tbemd/sys/cddl/boot/zfs/zfsimpl.h user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c user/imp/tbemd/sys/cddl/dev/dtrace/dtrace_load.c user/imp/tbemd/sys/compat/linux/linux_ioctl.c user/imp/tbemd/sys/conf/files user/imp/tbemd/sys/conf/files.powerpc user/imp/tbemd/sys/contrib/pf/net/pf.c user/imp/tbemd/sys/dev/acpi_support/acpi_hp.c user/imp/tbemd/sys/dev/acpi_support/acpi_wmi.c user/imp/tbemd/sys/dev/acpica/acpi.c user/imp/tbemd/sys/dev/acpica/acpi_cpu.c user/imp/tbemd/sys/dev/acpica/acpi_hpet.c user/imp/tbemd/sys/dev/ata/ata-all.h user/imp/tbemd/sys/dev/ata/ata-lowlevel.c user/imp/tbemd/sys/dev/ata/chipsets/ata-ahci.c user/imp/tbemd/sys/dev/ata/chipsets/ata-serverworks.c user/imp/tbemd/sys/dev/ata/chipsets/ata-siliconimage.c user/imp/tbemd/sys/dev/atkbdc/atkbdc_isa.c user/imp/tbemd/sys/dev/atkbdc/psm.c user/imp/tbemd/sys/dev/bge/if_bge.c user/imp/tbemd/sys/dev/bge/if_bgereg.h user/imp/tbemd/sys/dev/cxgb/cxgb_sge.c user/imp/tbemd/sys/dev/e1000/if_em.c user/imp/tbemd/sys/dev/e1000/if_em.h user/imp/tbemd/sys/dev/fb/vesa.c user/imp/tbemd/sys/dev/firewire/firewire.c user/imp/tbemd/sys/dev/firewire/fwohci_pci.c user/imp/tbemd/sys/dev/hwpmc/hwpmc_core.c user/imp/tbemd/sys/dev/if_ndis/if_ndis_usb.c user/imp/tbemd/sys/dev/iicbus/iicbus.c user/imp/tbemd/sys/dev/iscsi/initiator/iscsi.c user/imp/tbemd/sys/dev/iscsi/initiator/iscsivar.h user/imp/tbemd/sys/dev/led/led.c user/imp/tbemd/sys/dev/malo/if_malo_pci.c user/imp/tbemd/sys/dev/mii/brgphy.c user/imp/tbemd/sys/dev/mii/brgphyreg.h user/imp/tbemd/sys/dev/msk/if_msk.c user/imp/tbemd/sys/dev/mwl/if_mwl_pci.c user/imp/tbemd/sys/dev/ofw/ofw_fdt.c user/imp/tbemd/sys/dev/ofw/ofw_if.m user/imp/tbemd/sys/dev/ofw/ofw_iicbus.c user/imp/tbemd/sys/dev/ofw/ofw_standard.c user/imp/tbemd/sys/dev/ofw/openfirm.c user/imp/tbemd/sys/dev/pci/pcireg.h user/imp/tbemd/sys/dev/powermac_nvram/powermac_nvram.c user/imp/tbemd/sys/dev/powermac_nvram/powermac_nvramvar.h user/imp/tbemd/sys/dev/ppbus/ppbconf.c user/imp/tbemd/sys/dev/siba/siba.c user/imp/tbemd/sys/dev/sis/if_sis.c user/imp/tbemd/sys/dev/sis/if_sisreg.h user/imp/tbemd/sys/dev/spibus/spibus.c user/imp/tbemd/sys/dev/twa/tw_cl.h user/imp/tbemd/sys/dev/twa/tw_cl_externs.h user/imp/tbemd/sys/dev/twa/tw_cl_fwif.h user/imp/tbemd/sys/dev/twa/tw_cl_init.c user/imp/tbemd/sys/dev/twa/tw_cl_intr.c user/imp/tbemd/sys/dev/twa/tw_cl_io.c user/imp/tbemd/sys/dev/twa/tw_cl_misc.c user/imp/tbemd/sys/dev/twa/tw_cl_share.h user/imp/tbemd/sys/dev/twa/tw_osl.h user/imp/tbemd/sys/dev/twa/tw_osl_cam.c user/imp/tbemd/sys/dev/twa/tw_osl_freebsd.c user/imp/tbemd/sys/dev/twa/tw_osl_share.h user/imp/tbemd/sys/dev/usb/controller/ehci.c user/imp/tbemd/sys/dev/usb/controller/ohci.c user/imp/tbemd/sys/dev/usb/controller/uhci.c user/imp/tbemd/sys/dev/usb/input/atp.c user/imp/tbemd/sys/dev/usb/input/uep.c user/imp/tbemd/sys/dev/usb/input/uhid.c user/imp/tbemd/sys/dev/usb/input/ukbd.c user/imp/tbemd/sys/dev/usb/input/ums.c user/imp/tbemd/sys/dev/usb/misc/udbp.c user/imp/tbemd/sys/dev/usb/misc/ufm.c user/imp/tbemd/sys/dev/usb/net/if_aue.c user/imp/tbemd/sys/dev/usb/net/if_axe.c user/imp/tbemd/sys/dev/usb/net/if_axereg.h user/imp/tbemd/sys/dev/usb/net/if_cdce.c user/imp/tbemd/sys/dev/usb/net/if_cue.c user/imp/tbemd/sys/dev/usb/net/if_kue.c user/imp/tbemd/sys/dev/usb/net/if_rue.c user/imp/tbemd/sys/dev/usb/net/if_udav.c user/imp/tbemd/sys/dev/usb/net/uhso.c user/imp/tbemd/sys/dev/usb/serial/u3g.c user/imp/tbemd/sys/dev/usb/serial/uark.c user/imp/tbemd/sys/dev/usb/serial/ubsa.c user/imp/tbemd/sys/dev/usb/serial/ubser.c user/imp/tbemd/sys/dev/usb/serial/uchcom.c user/imp/tbemd/sys/dev/usb/serial/ucycom.c user/imp/tbemd/sys/dev/usb/serial/ufoma.c user/imp/tbemd/sys/dev/usb/serial/uftdi.c user/imp/tbemd/sys/dev/usb/serial/ugensa.c user/imp/tbemd/sys/dev/usb/serial/uipaq.c user/imp/tbemd/sys/dev/usb/serial/ulpt.c user/imp/tbemd/sys/dev/usb/serial/umct.c user/imp/tbemd/sys/dev/usb/serial/umoscom.c user/imp/tbemd/sys/dev/usb/serial/uvisor.c user/imp/tbemd/sys/dev/usb/storage/umass.c user/imp/tbemd/sys/dev/usb/storage/urio.c user/imp/tbemd/sys/dev/usb/usb_compat_linux.c user/imp/tbemd/sys/dev/usb/usb_controller.h user/imp/tbemd/sys/dev/usb/usb_device.c user/imp/tbemd/sys/dev/usb/usb_generic.c user/imp/tbemd/sys/dev/usb/usb_hub.c user/imp/tbemd/sys/dev/usb/usb_transfer.c user/imp/tbemd/sys/dev/usb/usb_transfer.h user/imp/tbemd/sys/dev/usb/usbdi.h user/imp/tbemd/sys/dev/usb/usbdi_util.h user/imp/tbemd/sys/dev/usb/wlan/if_rum.c user/imp/tbemd/sys/dev/usb/wlan/if_run.c user/imp/tbemd/sys/dev/usb/wlan/if_uath.c user/imp/tbemd/sys/dev/usb/wlan/if_upgt.c user/imp/tbemd/sys/dev/usb/wlan/if_ural.c user/imp/tbemd/sys/dev/usb/wlan/if_urtw.c user/imp/tbemd/sys/dev/usb/wlan/if_zyd.c user/imp/tbemd/sys/fs/ext2fs/ext2_alloc.c user/imp/tbemd/sys/fs/nfs/nfsdport.h user/imp/tbemd/sys/fs/nfsclient/nfs_clbio.c user/imp/tbemd/sys/fs/nfsclient/nfs_clrpcops.c user/imp/tbemd/sys/fs/nfsclient/nfs_clvnops.c user/imp/tbemd/sys/fs/nfsclient/nfsnode.h user/imp/tbemd/sys/fs/nfsserver/nfs_nfsdstate.c user/imp/tbemd/sys/fs/nullfs/null_vnops.c user/imp/tbemd/sys/fs/tmpfs/tmpfs_vnops.c user/imp/tbemd/sys/fs/unionfs/union_vfsops.c user/imp/tbemd/sys/geom/geom_io.c user/imp/tbemd/sys/geom/sched/subr_disk.c user/imp/tbemd/sys/i386/i386/legacy.c user/imp/tbemd/sys/i386/i386/nexus.c user/imp/tbemd/sys/i386/include/cpufunc.h user/imp/tbemd/sys/ia64/ia64/nexus.c user/imp/tbemd/sys/isa/isa_common.c user/imp/tbemd/sys/kern/bus_if.m user/imp/tbemd/sys/kern/init_sysent.c user/imp/tbemd/sys/kern/kern_et.c user/imp/tbemd/sys/kern/kern_exec.c user/imp/tbemd/sys/kern/kern_fork.c user/imp/tbemd/sys/kern/kern_jail.c user/imp/tbemd/sys/kern/kern_malloc.c user/imp/tbemd/sys/kern/kern_rmlock.c user/imp/tbemd/sys/kern/kern_sig.c user/imp/tbemd/sys/kern/kern_sysctl.c user/imp/tbemd/sys/kern/sched_4bsd.c user/imp/tbemd/sys/kern/sched_ule.c user/imp/tbemd/sys/kern/subr_acl_nfs4.c user/imp/tbemd/sys/kern/subr_acl_posix1e.c user/imp/tbemd/sys/kern/subr_bus.c user/imp/tbemd/sys/kern/subr_disk.c user/imp/tbemd/sys/kern/subr_lock.c user/imp/tbemd/sys/kern/subr_sbuf.c user/imp/tbemd/sys/kern/subr_sleepqueue.c user/imp/tbemd/sys/kern/subr_witness.c user/imp/tbemd/sys/kern/syscalls.c user/imp/tbemd/sys/kern/syscalls.master user/imp/tbemd/sys/kern/systrace_args.c user/imp/tbemd/sys/kern/uipc_syscalls.c user/imp/tbemd/sys/kern/vfs_mount.c user/imp/tbemd/sys/kern/vfs_subr.c user/imp/tbemd/sys/mips/adm5120/obio.c user/imp/tbemd/sys/mips/alchemy/obio.c user/imp/tbemd/sys/mips/atheros/apb.c user/imp/tbemd/sys/mips/idt/obio.c user/imp/tbemd/sys/mips/include/pmap.h user/imp/tbemd/sys/mips/include/pte.h user/imp/tbemd/sys/mips/mips/busdma_machdep.c user/imp/tbemd/sys/mips/mips/mainbus.c user/imp/tbemd/sys/mips/mips/nexus.c user/imp/tbemd/sys/mips/mips/pmap.c user/imp/tbemd/sys/mips/rmi/board.c user/imp/tbemd/sys/mips/rmi/board.h user/imp/tbemd/sys/mips/rmi/dev/nlge/if_nlge.c user/imp/tbemd/sys/mips/rmi/dev/xlr/rge.c user/imp/tbemd/sys/mips/rmi/fmn.c user/imp/tbemd/sys/mips/rmi/interrupt.h user/imp/tbemd/sys/mips/rmi/intr_machdep.c user/imp/tbemd/sys/mips/rmi/iodi.c user/imp/tbemd/sys/mips/rmi/iomap.h user/imp/tbemd/sys/mips/rmi/msgring.h user/imp/tbemd/sys/mips/rmi/pic.h user/imp/tbemd/sys/mips/rmi/rmi_mips_exts.h user/imp/tbemd/sys/mips/rmi/xlr_machdep.c user/imp/tbemd/sys/mips/rmi/xlr_pci.c user/imp/tbemd/sys/mips/sibyte/sb_zbbus.c user/imp/tbemd/sys/modules/Makefile user/imp/tbemd/sys/modules/crypto/Makefile user/imp/tbemd/sys/net/if.c user/imp/tbemd/sys/net/if_epair.c user/imp/tbemd/sys/net/if_lagg.c user/imp/tbemd/sys/netinet/in.c user/imp/tbemd/sys/netinet/ip_carp.c user/imp/tbemd/sys/netinet/ip_input.c user/imp/tbemd/sys/netinet/ip_var.h user/imp/tbemd/sys/netinet/ipfw/ip_fw_log.c user/imp/tbemd/sys/netinet/ipfw/ip_fw_nat.c user/imp/tbemd/sys/netinet/raw_ip.c user/imp/tbemd/sys/netinet/sctp_crc32.c user/imp/tbemd/sys/netinet/sctp_crc32.h user/imp/tbemd/sys/netinet/sctp_input.c user/imp/tbemd/sys/netinet/sctp_os_bsd.h user/imp/tbemd/sys/netinet/sctp_output.c user/imp/tbemd/sys/netinet/sctp_pcb.c user/imp/tbemd/sys/netinet/sctp_sysctl.c user/imp/tbemd/sys/netinet/sctp_sysctl.h user/imp/tbemd/sys/netinet/sctp_timer.c user/imp/tbemd/sys/netinet/sctp_uio.h user/imp/tbemd/sys/netinet/sctputil.c user/imp/tbemd/sys/netinet6/ip6_input.c user/imp/tbemd/sys/netinet6/ip6_var.h user/imp/tbemd/sys/netinet6/sctp6_usrreq.c user/imp/tbemd/sys/nfsclient/nfs.h user/imp/tbemd/sys/nfsclient/nfs_diskless.c user/imp/tbemd/sys/nfsclient/nfs_nfsiod.c user/imp/tbemd/sys/nfsclient/nfs_subs.c user/imp/tbemd/sys/nfsclient/nfs_vnops.c user/imp/tbemd/sys/nfsclient/nfsnode.h user/imp/tbemd/sys/pc98/pc98/canbus.c user/imp/tbemd/sys/powerpc/aim/clock.c user/imp/tbemd/sys/powerpc/aim/interrupt.c user/imp/tbemd/sys/powerpc/aim/machdep.c user/imp/tbemd/sys/powerpc/aim/mmu_oea.c user/imp/tbemd/sys/powerpc/aim/mmu_oea64.c user/imp/tbemd/sys/powerpc/aim/nexus.c user/imp/tbemd/sys/powerpc/aim/ofw_machdep.c user/imp/tbemd/sys/powerpc/aim/vm_machdep.c user/imp/tbemd/sys/powerpc/booke/clock.c user/imp/tbemd/sys/powerpc/booke/interrupt.c user/imp/tbemd/sys/powerpc/booke/platform_bare.c user/imp/tbemd/sys/powerpc/conf/GENERIC64 user/imp/tbemd/sys/powerpc/include/intr_machdep.h user/imp/tbemd/sys/powerpc/include/md_var.h user/imp/tbemd/sys/powerpc/include/ofw_machdep.h user/imp/tbemd/sys/powerpc/include/param.h user/imp/tbemd/sys/powerpc/include/smp.h user/imp/tbemd/sys/powerpc/mpc85xx/mpc85xx.c user/imp/tbemd/sys/powerpc/ofw/ofw_real.c user/imp/tbemd/sys/powerpc/powermac/ata_kauai.c user/imp/tbemd/sys/powerpc/powermac/cuda.c user/imp/tbemd/sys/powerpc/powermac/pmu.c user/imp/tbemd/sys/powerpc/powermac/smu.c user/imp/tbemd/sys/powerpc/powerpc/intr_machdep.c user/imp/tbemd/sys/powerpc/powerpc/mp_machdep.c user/imp/tbemd/sys/powerpc/powerpc/platform.c user/imp/tbemd/sys/powerpc/powerpc/platform_if.m user/imp/tbemd/sys/security/audit/audit_bsm_klib.c user/imp/tbemd/sys/sparc64/conf/GENERIC user/imp/tbemd/sys/sparc64/pci/schizo.c user/imp/tbemd/sys/sparc64/sparc64/machdep.c user/imp/tbemd/sys/sparc64/sparc64/nexus.c user/imp/tbemd/sys/sun4v/sun4v/nexus.c user/imp/tbemd/sys/sun4v/sun4v/vnex.c user/imp/tbemd/sys/sys/_rmlock.h user/imp/tbemd/sys/sys/bio.h user/imp/tbemd/sys/sys/bus.h user/imp/tbemd/sys/sys/copyright.h user/imp/tbemd/sys/sys/elf_common.h user/imp/tbemd/sys/sys/lock.h user/imp/tbemd/sys/sys/mount.h user/imp/tbemd/sys/sys/param.h user/imp/tbemd/sys/sys/rmlock.h user/imp/tbemd/sys/sys/sbuf.h user/imp/tbemd/sys/sys/syscall.h user/imp/tbemd/sys/sys/syscall.mk user/imp/tbemd/sys/sys/sysctl.h user/imp/tbemd/sys/sys/sysproto.h user/imp/tbemd/sys/sys/time.h user/imp/tbemd/sys/vm/memguard.c user/imp/tbemd/sys/vm/memguard.h user/imp/tbemd/sys/vm/uma_core.c user/imp/tbemd/sys/vm/vm_mmap.c user/imp/tbemd/sys/vm/vm_page.c user/imp/tbemd/sys/vm/vm_pageout.c user/imp/tbemd/sys/vm/vm_phys.c user/imp/tbemd/sys/vm/vm_reserv.c user/imp/tbemd/sys/x86/pci/qpi.c user/imp/tbemd/sys/x86/x86/local_apic.c user/imp/tbemd/tools/tools/nanobsd/nanobsd.sh user/imp/tbemd/tools/tools/sysbuild/sysbuild.sh user/imp/tbemd/usr.bin/calendar/calendar.1 user/imp/tbemd/usr.bin/calendar/calendar.h user/imp/tbemd/usr.bin/calendar/calendars/calendar.freebsd user/imp/tbemd/usr.bin/calendar/calendars/calendar.judaic user/imp/tbemd/usr.bin/calendar/calendars/fr_FR.ISO8859-1/calendar.fetes user/imp/tbemd/usr.bin/calendar/parsedata.c user/imp/tbemd/usr.bin/cpio/bsdcpio.1 user/imp/tbemd/usr.bin/ncal/ncal.c user/imp/tbemd/usr.bin/printf/printf.1 user/imp/tbemd/usr.bin/split/split.1 user/imp/tbemd/usr.bin/systat/vmstat.c user/imp/tbemd/usr.bin/usbhidaction/usbhidaction.c user/imp/tbemd/usr.sbin/apmd/apmd.c user/imp/tbemd/usr.sbin/bluetooth/bthidcontrol/sdp.c user/imp/tbemd/usr.sbin/bluetooth/bthidd/hid.c user/imp/tbemd/usr.sbin/freebsd-update/freebsd-update.8 user/imp/tbemd/usr.sbin/freebsd-update/freebsd-update.sh user/imp/tbemd/usr.sbin/pc-sysinstall/backend-query/disk-list.sh user/imp/tbemd/usr.sbin/pc-sysinstall/backend/Makefile user/imp/tbemd/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh user/imp/tbemd/usr.sbin/pc-sysinstall/backend/functions-disk.sh user/imp/tbemd/usr.sbin/pc-sysinstall/backend/functions-extractimage.sh user/imp/tbemd/usr.sbin/pc-sysinstall/backend/functions-installcomponents.sh user/imp/tbemd/usr.sbin/pc-sysinstall/backend/functions-packages.sh user/imp/tbemd/usr.sbin/pc-sysinstall/backend/functions-parse.sh user/imp/tbemd/usr.sbin/pc-sysinstall/backend/functions.sh user/imp/tbemd/usr.sbin/pc-sysinstall/backend/parseconfig.sh user/imp/tbemd/usr.sbin/pc-sysinstall/doc/help-index user/imp/tbemd/usr.sbin/pc-sysinstall/examples/README user/imp/tbemd/usr.sbin/pc-sysinstall/pc-sysinstall/pc-sysinstall.sh user/imp/tbemd/usr.sbin/pciconf/cap.c user/imp/tbemd/usr.sbin/pciconf/pciconf.8 user/imp/tbemd/usr.sbin/pciconf/pciconf.c user/imp/tbemd/usr.sbin/pkg_install/add/main.c user/imp/tbemd/usr.sbin/pmcstat/pmcpl_callgraph.c user/imp/tbemd/usr.sbin/pmcstat/pmcpl_calltree.c user/imp/tbemd/usr.sbin/pmcstat/pmcstat_log.c user/imp/tbemd/usr.sbin/pmcstat/pmcstat_log.h Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/contrib/bind9/ (props changed) user/imp/tbemd/contrib/ee/ (props changed) user/imp/tbemd/contrib/expat/ (props changed) user/imp/tbemd/contrib/file/ (props changed) user/imp/tbemd/contrib/gdb/ (props changed) user/imp/tbemd/contrib/gdtoa/ (props changed) user/imp/tbemd/contrib/gnu-sort/ (props changed) user/imp/tbemd/contrib/groff/ (props changed) user/imp/tbemd/contrib/less/ (props changed) user/imp/tbemd/contrib/libpcap/ (props changed) user/imp/tbemd/contrib/llvm/ (props changed) user/imp/tbemd/contrib/llvm/tools/clang/ (props changed) user/imp/tbemd/contrib/ncurses/ (props changed) user/imp/tbemd/contrib/netcat/ (props changed) user/imp/tbemd/contrib/ntp/ (props changed) user/imp/tbemd/contrib/one-true-awk/ (props changed) user/imp/tbemd/contrib/openbsm/ (props changed) user/imp/tbemd/contrib/openpam/ (props changed) user/imp/tbemd/contrib/pf/ (props changed) user/imp/tbemd/contrib/sendmail/ (props changed) user/imp/tbemd/contrib/tcpdump/ (props changed) user/imp/tbemd/contrib/tcsh/ (props changed) user/imp/tbemd/contrib/top/ (props changed) user/imp/tbemd/contrib/top/install-sh (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/contrib/wpa/ (props changed) user/imp/tbemd/crypto/openssh/ (props changed) user/imp/tbemd/crypto/openssl/ (props changed) user/imp/tbemd/lib/libc/ (props changed) user/imp/tbemd/lib/libc/stdtime/ (props changed) user/imp/tbemd/lib/libutil/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sbin/ (props changed) user/imp/tbemd/sbin/ipfw/ (props changed) user/imp/tbemd/share/zoneinfo/ (props changed) user/imp/tbemd/sys/ (props changed) user/imp/tbemd/sys/amd64/include/xen/ (props changed) user/imp/tbemd/sys/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/sys/contrib/dev/acpica/ (props changed) user/imp/tbemd/sys/contrib/pf/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) user/imp/tbemd/sys/dev/xen/xenpci/ (props changed) user/imp/tbemd/usr.bin/calendar/ (props changed) user/imp/tbemd/usr.bin/csup/ (props changed) user/imp/tbemd/usr.bin/procstat/ (props changed) user/imp/tbemd/usr.sbin/zic/ (props changed) Modified: user/imp/tbemd/Makefile.inc1 ============================================================================== --- user/imp/tbemd/Makefile.inc1 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/Makefile.inc1 Mon Sep 13 00:38:46 2010 (r212509) @@ -161,7 +161,7 @@ BUILD_ARCH!= uname -p .error To cross-build, set TARGET_ARCH. .endif .endif -.if ${MACHINE} == ${TARGET} && !defined(CROSS_BUILD_TESTING) +.if ${MACHINE} == ${TARGET} && ${MACHINE_ARCH} == ${TARGET_ARCH} && !defined(CROSS_BUILD_TESTING) OBJTREE= ${MAKEOBJDIRPREFIX} .else OBJTREE= ${MAKEOBJDIRPREFIX}/${TARGET}.${TARGET_ARCH} Modified: user/imp/tbemd/ObsoleteFiles.inc ============================================================================== --- user/imp/tbemd/ObsoleteFiles.inc Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/ObsoleteFiles.inc Mon Sep 13 00:38:46 2010 (r212509) @@ -14,6 +14,8 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20100910: renamed sbuf_overflowed to sbuf_error +OLD_FILES+=usr/share/man/man9/sbuf_overflowed.9.gz # 20100815: retired last traces of chooseproc(9) OLD_FILES+=usr/share/man/man9/chooseproc.9.gz # 20100806: removal of unused libcompat routines Modified: user/imp/tbemd/bin/expr/expr.1 ============================================================================== --- user/imp/tbemd/bin/expr/expr.1 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/bin/expr/expr.1 Mon Sep 13 00:38:46 2010 (r212509) @@ -30,7 +30,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 12, 2004 +.Dd September 9, 2010 .Dt EXPR 1 .Os .Sh NAME @@ -217,6 +217,9 @@ command, one might rearrange the express More generally, parenthesize possibly-negative values: .Dl "a=$(expr \e( $a \e) + 1)" .It +With shell arithmetic, no escaping is required: +.Dl "a=$((a + 1))" +.It This example prints the filename portion of a pathname stored in variable .Va a . @@ -229,6 +232,12 @@ The .Li // characters resolve this ambiguity. .Dl "expr \*q//$a\*q \&: '.*/\e(.*\e)'" +.It +With modern +.Xr sh 1 +syntax, +.Dl "\*q${a##*/}\*q" +expands to the same value. .El .Pp The following examples output the number of characters in variable @@ -237,19 +246,21 @@ Again, if .Va a might begin with a hyphen, it is necessary to prevent it from being interpreted as an option to -.Nm . +.Nm , +and +.Va a +might be interpreted as an operator. .Bl -bullet .It -If the -.Nm -command conforms to -.St -p1003.1-2001 , -this is simple: -.Dl "expr -- \*q$a\*q \&: \*q.*\*q" -.It -For portability to older systems, however, a more complicated command +To deal with all of this, a complicated command is required: .Dl "expr \e( \*qX$a\*q \&: \*q.*\*q \e) - 1" +.It +With modern +.Xr sh 1 +syntax, this can be done much more easily: +.Dl "${#a}" +expands to the required number. .El .Sh SEE ALSO .Xr sh 1 , Modified: user/imp/tbemd/bin/pax/pax.1 ============================================================================== --- user/imp/tbemd/bin/pax/pax.1 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/bin/pax/pax.1 Mon Sep 13 00:38:46 2010 (r212509) @@ -33,7 +33,7 @@ .\" @(#)pax.1 8.4 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd July 3, 2004 +.Dd August 29, 2010 .Dt PAX 1 .Os .Sh NAME @@ -748,7 +748,9 @@ The extended tar interchange format spec .St -p1003.2 standard. The default blocksize for this format is 10240 bytes. -Pathnames stored by this format must be 250 characters or less in length. +Pathnames stored by this format must be 255 characters or less in length. +The directory part may be at most 155 characters and each path component +must be less than 100 characters. .El .Pp The Modified: user/imp/tbemd/bin/pax/tar.c ============================================================================== --- user/imp/tbemd/bin/pax/tar.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/bin/pax/tar.c Mon Sep 13 00:38:46 2010 (r212509) @@ -1086,7 +1086,7 @@ name_split(char *name, int len) */ if (len <= TNMSZ) return(name); - if (len > (TPFSZ + TNMSZ + 1)) + if (len > TPFSZ + TNMSZ) return(NULL); /* Modified: user/imp/tbemd/bin/sh/eval.c ============================================================================== --- user/imp/tbemd/bin/sh/eval.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/bin/sh/eval.c Mon Sep 13 00:38:46 2010 (r212509) @@ -305,6 +305,8 @@ skipping: if (evalskip == SKIPCONT && } if (evalskip == SKIPBREAK && --skipcount <= 0) evalskip = 0; + if (evalskip == SKIPFUNC || evalskip == SKIPFILE) + status = exitstatus; break; } if (n->type == NWHILE) { @@ -995,7 +997,7 @@ cmddone: goto out; parent: /* parent process gets here (if we forked) */ - if (mode == 0) { /* argument to fork */ + if (mode == FORK_FG) { /* argument to fork */ INTOFF; exitstatus = waitforjob(jp, &realstatus); INTON; @@ -1003,7 +1005,7 @@ parent: /* parent process gets here (if evalskip = SKIPBREAK; skipcount = loopnest; } - } else if (mode == 2) { + } else if (mode == FORK_NOJOB) { backcmd->fd = pip[0]; close(pip[1]); backcmd->jp = jp; Modified: user/imp/tbemd/bin/sh/expand.c ============================================================================== --- user/imp/tbemd/bin/sh/expand.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/bin/sh/expand.c Mon Sep 13 00:38:46 2010 (r212509) @@ -138,12 +138,18 @@ expandhere(union node *arg, int fd) /* - * Perform variable substitution and command substitution on an argument, - * placing the resulting list of arguments in arglist. If EXP_FULL is true, - * perform splitting and file name expansion. When arglist is NULL, perform - * here document expansion. + * Perform expansions on an argument, placing the resulting list of arguments + * in arglist. Parameter expansion, command substitution and arithmetic + * expansion are always performed; additional expansions can be requested + * via flag (EXP_*). + * The result is left in the stack string. + * When arglist is NULL, perform here document expansion. A partial result + * may be written to herefd, which is then not included in the stack string. + * + * Caution: this function uses global state and is not reentrant. + * However, a new invocation after an interrupted invocation is safe + * and will reset the global state for the new call. */ - void expandarg(union node *arg, struct arglist *arglist, int flag) { @@ -195,11 +201,14 @@ expandarg(union node *arg, struct arglis /* - * Perform variable and command substitution. If EXP_FULL is set, output CTLESC - * characters to allow for further processing. Otherwise treat - * $@ like $* since no splitting will be performed. + * Perform parameter expansion, command substitution and arithmetic + * expansion, and tilde expansion if requested via EXP_TILDE/EXP_VARTILDE. + * Processing ends at a CTLENDVAR character as well as '\0'. + * This is used to expand word in ${var+word} etc. + * If EXP_FULL, EXP_CASE or EXP_REDIR are set, keep and/or generate CTLESC + * characters to allow for further processing. + * If EXP_FULL is set, also preserve CTLQUOTEMARK characters. */ - STATIC void argstr(char *p, int flag) { @@ -212,7 +221,7 @@ argstr(char *p, int flag) for (;;) { switch (c = *p++) { case '\0': - case CTLENDVAR: /* ??? */ + case CTLENDVAR: goto breakloop; case CTLQUOTEMARK: /* "$@" syntax adherence hack */ @@ -262,6 +271,10 @@ argstr(char *p, int flag) breakloop:; } +/* + * Perform tilde expansion, placing the result in the stack string and + * returning the next position in the input string to process. + */ STATIC char * exptilde(char *p, int flag) { @@ -367,12 +380,11 @@ expari(int flag) int quotes = flag & (EXP_FULL | EXP_CASE | EXP_REDIR); int quoted; - /* * This routine is slightly over-complicated for * efficiency. First we make sure there is * enough space for the result, which may be bigger - * than the expression if we add exponentiation. Next we + * than the expression. Next we * scan backwards looking for the start of arithmetic. If the * next previous character is a CTLESC character, then we * have to rescan starting from the beginning since CTLESC @@ -413,9 +425,8 @@ expari(int flag) /* - * Expand stuff in backwards quotes. + * Perform command substitution. */ - STATIC void expbackq(union node *cmd, int quoted, int flag) { @@ -974,6 +985,12 @@ recordregion(int start, int end, int inq * Break the argument string into pieces based upon IFS and add the * strings to the argument list. The regions of the string to be * searched for IFS characters have been stored by recordregion. + * CTLESC characters are preserved but have little effect in this pass + * other than escaping CTL* characters. In particular, they do not escape + * IFS characters: that should be done with the ifsregion mechanism. + * CTLQUOTEMARK characters are used to preserve empty quoted strings. + * This pass treats them as a regular character, making the string non-empty. + * Later, they are removed along with the other CTL* characters. */ STATIC void ifsbreakup(char *string, struct arglist *arglist) @@ -1075,15 +1092,14 @@ ifsbreakup(char *string, struct arglist } - -/* - * Expand shell metacharacters. At this point, the only control characters - * should be escapes. The results are stored in the list exparg. - */ - STATIC char expdir[PATH_MAX]; #define expdir_end (expdir + sizeof(expdir)) +/* + * Perform pathname generation and remove control characters. + * At this point, the only control characters should be CTLESC and CTLQUOTEMARK. + * The results are stored in the list exparg. + */ STATIC void expandmeta(struct strlist *str, int flag __unused) { @@ -1469,7 +1485,7 @@ breakloop: /* - * Remove any CTLESC characters from a string. + * Remove any CTLESC and CTLQUOTEMARK characters from a string. */ void Modified: user/imp/tbemd/bin/sh/miscbltin.c ============================================================================== --- user/imp/tbemd/bin/sh/miscbltin.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/bin/sh/miscbltin.c Mon Sep 13 00:38:46 2010 (r212509) @@ -174,6 +174,7 @@ readcmd(int argc __unused, char **argv _ continue; if (backslash) { backslash = 0; + startword = 0; if (c != '\n') STPUTC(c, p); continue; Modified: user/imp/tbemd/bin/sh/mksyntax.c ============================================================================== --- user/imp/tbemd/bin/sh/mksyntax.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/bin/sh/mksyntax.c Mon Sep 13 00:38:46 2010 (r212509) @@ -338,12 +338,12 @@ print(const char *name) */ static const char *macro[] = { - "#define is_digit(c)\t((is_type+SYNBASE)[c] & ISDIGIT)", + "#define is_digit(c)\t((is_type+SYNBASE)[(int)c] & ISDIGIT)", "#define is_eof(c)\t((c) == PEOF)", - "#define is_alpha(c)\t(((c) < CTLESC || (c) > CTLQUOTEMARK) && isalpha((unsigned char) (c)))", - "#define is_name(c)\t(((c) < CTLESC || (c) > CTLQUOTEMARK) && ((c) == '_' || isalpha((unsigned char) (c))))", - "#define is_in_name(c)\t(((c) < CTLESC || (c) > CTLQUOTEMARK) && ((c) == '_' || isalnum((unsigned char) (c))))", - "#define is_special(c)\t((is_type+SYNBASE)[c] & (ISSPECL|ISDIGIT))", + "#define is_alpha(c)\t(((c) < CTLESC || (c) > CTLQUOTEMARK) && (is_type+SYNBASE)[(int)c] & (ISUPPER|ISLOWER))", + "#define is_name(c)\t(((c) < CTLESC || (c) > CTLQUOTEMARK) && (is_type+SYNBASE)[(int)c] & (ISUPPER|ISLOWER|ISUNDER))", + "#define is_in_name(c)\t(((c) < CTLESC || (c) > CTLQUOTEMARK) && (is_type+SYNBASE)[(int)c] & (ISUPPER|ISLOWER|ISUNDER|ISDIGIT))", + "#define is_special(c)\t((is_type+SYNBASE)[(int)c] & (ISSPECL|ISDIGIT))", NULL }; Modified: user/imp/tbemd/bin/sh/parser.c ============================================================================== --- user/imp/tbemd/bin/sh/parser.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/bin/sh/parser.c Mon Sep 13 00:38:46 2010 (r212509) @@ -118,8 +118,8 @@ STATIC int readtoken(void); STATIC int xxreadtoken(void); STATIC int readtoken1(int, char const *, char *, int); STATIC int noexpand(char *); -STATIC void synexpect(int); -STATIC void synerror(const char *); +STATIC void synexpect(int) __dead2; +STATIC void synerror(const char *) __dead2; STATIC void setprompt(int); Modified: user/imp/tbemd/bin/sh/sh.1 ============================================================================== --- user/imp/tbemd/bin/sh/sh.1 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/bin/sh/sh.1 Mon Sep 13 00:38:46 2010 (r212509) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd August 22, 2010 +.Dd September 10, 2010 .Dt SH 1 .Os .Sh NAME @@ -2455,8 +2455,6 @@ will return the argument. .Xr echo 1 , .Xr ed 1 , .Xr emacs 1 , -.Xr expr 1 , -.Xr getopt 1 , .Xr pwd 1 , .Xr test 1 , .Xr vi 1 , Modified: user/imp/tbemd/bin/sh/var.c ============================================================================== --- user/imp/tbemd/bin/sh/var.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/bin/sh/var.c Mon Sep 13 00:38:46 2010 (r212509) @@ -431,11 +431,15 @@ bltinlookup(const char *name, int doall) { struct strlist *sp; struct var *v; + char *result; + result = NULL; for (sp = cmdenviron ; sp ; sp = sp->next) { if (varequal(sp->text, name)) - return strchr(sp->text, '=') + 1; + result = strchr(sp->text, '=') + 1; } + if (result != NULL) + return result; for (v = *hashvar(name) ; v ; v = v->next) { if (varequal(v->text, name)) { if ((v->flags & VUNSET) Modified: user/imp/tbemd/bin/test/test.1 ============================================================================== --- user/imp/tbemd/bin/test/test.1 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/bin/test/test.1 Mon Sep 13 00:38:46 2010 (r212509) @@ -32,7 +32,7 @@ .\" @(#)test.1 8.1 (Berkeley) 5/31/93 .\" $FreeBSD$ .\" -.Dd July 31, 2006 +.Dd September 10, 2010 .Dt TEST 1 .Os .Sh NAME @@ -282,7 +282,7 @@ True if either or .Ar expression2 are true. -.It Cm \&( Ns Ar expression Ns Cm \&) +.It Cm \&( Ar expression Cm \&) True if expression is true. .El .Pp @@ -302,7 +302,7 @@ manual page. The .Nm grammar is inherently ambiguous. -In order to ensure a degree of consistency, +In order to assure a degree of consistency, the cases described in the .St -p1003.2 , section D11.2/4.62.4, standard @@ -310,6 +310,14 @@ are evaluated consistently according to standards document. All other cases are subject to the ambiguity in the command semantics. +.Pp +In particular, only expressions containing +.Fl a , +.Fl o , +.Cm \&( +or +.Cm \&) +can be ambiguous. .Sh EXIT STATUS The .Nm @@ -338,12 +346,11 @@ specification. Both sides are always evaluated in .Fl a and -.Fl o , -unlike in the logical operators of -.Xr sh 1 . +.Fl o . For instance, the writable status of .Pa file will be tested by the following command even though the former expression indicated false, which results in a gratuitous access to the file system: -.Pp .Dl "[ -z abc -a -w file ]" +To avoid this, write +.Dl "[ -z abc ] && [ -w file ]" Modified: user/imp/tbemd/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- user/imp/tbemd/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Mon Sep 13 00:38:46 2010 (r212509) @@ -1733,9 +1733,10 @@ zfs_do_userspace(int argc, char **argv) */ (void) execv(pypath, argv-1); - (void) printf("internal error: %s not found\n" + (void) fprintf(stderr, "internal error: %s not found\n" "falling back on built-in implementation, " "some features will not work\n", pypath); + (void) fprintf(stderr, " install sysutils/py-zfs port to correct this\n"); if ((zhp = zfs_open(g_zfs, argv[argc-1], ZFS_TYPE_DATASET)) == NULL) return (1); @@ -3797,7 +3798,8 @@ static int zfs_do_python(int argc, char **argv) { (void) execv(pypath, argv-1); - (void) printf("internal error: %s not found\n", pypath); + (void) fprintf(stderr, "internal error: %s not found\n", pypath); + (void) fprintf(stderr, " install sysutils/py-zfs port to correct this\n"); return (-1); } Modified: user/imp/tbemd/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- user/imp/tbemd/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Mon Sep 13 00:38:46 2010 (r212509) @@ -3333,12 +3333,38 @@ typedef struct upgrade_cbdata { int cb_all; int cb_first; int cb_newer; + char cb_poolname[ZPOOL_MAXNAMELEN]; int cb_argc; uint64_t cb_version; char **cb_argv; } upgrade_cbdata_t; static int +is_root_pool(zpool_handle_t *zhp) +{ + static struct statfs sfs; + static char *poolname = NULL; + static boolean_t stated = B_FALSE; + char *slash; + + if (!stated) { + stated = B_TRUE; + if (statfs("/", &sfs) == -1) { + (void) fprintf(stderr, + "Unable to stat root file system: %s.\n", + strerror(errno)); + return (0); + } + if (strcmp(sfs.f_fstypename, "zfs") != 0) + return (0); + poolname = sfs.f_mntfromname; + if ((slash = strchr(poolname, '/')) != NULL) + *slash = '\0'; + } + return (poolname != NULL && strcmp(poolname, zpool_get_name(zhp)) == 0); +} + +static int upgrade_cb(zpool_handle_t *zhp, void *arg) { upgrade_cbdata_t *cbp = arg; @@ -3371,6 +3397,12 @@ upgrade_cb(zpool_handle_t *zhp, void *ar if (!ret) { (void) printf(gettext("Successfully upgraded " "'%s'\n\n"), zpool_get_name(zhp)); + if (cbp->cb_poolname[0] == '\0' && + is_root_pool(zhp)) { + (void) strlcpy(cbp->cb_poolname, + zpool_get_name(zhp), + sizeof(cbp->cb_poolname)); + } } } } else if (cbp->cb_newer && version > SPA_VERSION) { @@ -3428,6 +3460,10 @@ upgrade_one(zpool_handle_t *zhp, void *d "from version %llu to version %llu\n\n"), zpool_get_name(zhp), (u_longlong_t)cur_version, (u_longlong_t)cbp->cb_version); + if (cbp->cb_poolname[0] == '\0' && is_root_pool(zhp)) { + (void) strlcpy(cbp->cb_poolname, zpool_get_name(zhp), + sizeof(cbp->cb_poolname)); + } } return (ret != 0); @@ -3569,6 +3605,16 @@ zpool_do_upgrade(int argc, char **argv) upgrade_one, &cb); } + if (cb.cb_poolname[0] != '\0') { + (void) printf( + "If you boot from pool '%s', don't forget to update boot code.\n" + "Assuming you use GPT partitioning and da0 is your boot disk\n" + "the following command will do it:\n" + "\n" + "\tgpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0\n\n", + cb.cb_poolname); + } + return (ret); } Modified: user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/drti.c ============================================================================== --- user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/drti.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/drti.c Mon Sep 13 00:38:46 2010 (r212509) @@ -64,7 +64,7 @@ static int gen; /* DOF helper generati #if defined(sun) extern dof_hdr_t __SUNW_dof; /* DOF defined in the .SUNW_dof section */ #endif -static boolean_t dof_init_debug = B_TRUE; /* From DTRACE_DOF_INIT_DEBUG */ +static boolean_t dof_init_debug = B_FALSE; /* From DTRACE_DOF_INIT_DEBUG */ static void dprintf(int debug, const char *fmt, ...) Modified: user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c ============================================================================== --- user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Mon Sep 13 00:38:46 2010 (r212509) @@ -1616,6 +1616,18 @@ dtrace_program_link(dtrace_hdl_t *dtp, d int eprobes = 0, ret = 0; #if !defined(sun) + if (access(file, R_OK) == 0) { + fprintf(stderr, "dtrace: target object (%s) already exists. " + "Please remove the target\ndtrace: object and rebuild all " + "the source objects if you wish to run the DTrace\n" + "dtrace: linking process again\n", file); + /* + * Several build infrastructures run DTrace twice (e.g. + * postgres) and we don't want the build to fail. Return + * 0 here since this isn't really a fatal error. + */ + return (0); + } /* XXX Should get a temp file name here. */ snprintf(tfile, sizeof(tfile), "%s.tmp", file); #endif Modified: user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c ============================================================================== --- user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c Mon Sep 13 00:38:46 2010 (r212509) @@ -1103,7 +1103,7 @@ alloc: #if defined(sun) dtp->dt_prcmode = DT_PROC_STOP_PREINIT; #else - dtp->dt_prcmode = DT_PROC_STOP_POSTINIT; + dtp->dt_prcmode = DT_PROC_STOP_MAIN; #endif dtp->dt_linkmode = DT_LINK_KERNEL; dtp->dt_linktype = DT_LTYP_ELF; Modified: user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pid.c ============================================================================== --- user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pid.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pid.c Mon Sep 13 00:38:46 2010 (r212509) @@ -641,7 +641,6 @@ dt_pid_create_usdt_probes(dtrace_probede assert(DT_MUTEX_HELD(&dpr->dpr_lock)); #if defined(sun) (void) Pupdate_maps(P); -#endif if (Pobject_iter(P, dt_pid_usdt_mapping, P) != 0) { ret = -1; (void) dt_pid_error(dtp, pcb, dpr, NULL, D_PROC_USDT, @@ -652,6 +651,9 @@ dt_pid_create_usdt_probes(dtrace_probede (int)proc_getpid(P), strerror(errno)); #endif } +#else + ret = 0; +#endif /* * Put the module name in its canonical form. Modified: user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.c ============================================================================== --- user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.c Mon Sep 13 00:38:46 2010 (r212509) @@ -557,6 +557,10 @@ dt_header_provider(dtrace_hdl_t *dtp, dt info.dthi_pfname = alloca(strlen(pvp->pv_desc.dtvd_name) + 1 + i); dt_header_fmt_func(info.dthi_pfname, pvp->pv_desc.dtvd_name); +#ifdef __FreeBSD__ + if (fprintf(out, "#include \n\n") < 0) + return (dt_set_errno(dtp, errno)); +#endif if (fprintf(out, "#if _DTRACE_VERSION\n\n") < 0) return (dt_set_errno(dtp, errno)); Modified: user/imp/tbemd/cddl/contrib/opensolaris/lib/pyzfs/common/ioctl.c ============================================================================== --- user/imp/tbemd/cddl/contrib/opensolaris/lib/pyzfs/common/ioctl.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/cddl/contrib/opensolaris/lib/pyzfs/common/ioctl.c Mon Sep 13 00:38:46 2010 (r212509) @@ -33,6 +33,7 @@ #include #include #include +#include #include "zfs_prop.h" static PyObject *ZFSError; Modified: user/imp/tbemd/etc/mtree/BSD.var.dist ============================================================================== --- user/imp/tbemd/etc/mtree/BSD.var.dist Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/etc/mtree/BSD.var.dist Mon Sep 13 00:38:46 2010 (r212509) @@ -64,6 +64,8 @@ .. ppp gname=network mode=0770 .. + wpa_supplicant + .. .. rwho gname=daemon mode=0775 .. Modified: user/imp/tbemd/etc/rc.d/cleartmp ============================================================================== --- user/imp/tbemd/etc/rc.d/cleartmp Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/etc/rc.d/cleartmp Mon Sep 13 00:38:46 2010 (r212509) @@ -36,7 +36,10 @@ cleartmp_start() # it can prevent foot-shooting in future. # + /tmp/lost+found is preserved, but its contents are removed. # + lost+found and quota.* in subdirectories are removed. + # + .sujournal and .snap are preserved. find -x ${tmp}/. ! -name . \ + ! \( -name .sujournal -type f -user root \) \ + ! \( -name .snap -type d -user root \) \ ! \( -name lost+found -type d -user root \) \ ! \( \( -name quota.user -or -name quota.group \) \ -type f -user root \) \ Modified: user/imp/tbemd/games/fortune/datfiles/fortunes ============================================================================== --- user/imp/tbemd/games/fortune/datfiles/fortunes Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/games/fortune/datfiles/fortunes Mon Sep 13 00:38:46 2010 (r212509) @@ -45221,7 +45221,7 @@ of their own homes. 1: P-Q4, Kt-KB3 2: Kt-Q2, P-K4 3: PxP, Kt-Kt5 - 4: P-K6, Kt-K6/ + 4: P-KR3, Kt-K6/ White then resigns on realizing that a fifth move would involve either a Q-KR5 check or the loss of his queen. -- Stephen Pile, "The Book of Heroic Failures" Modified: user/imp/tbemd/gnu/lib/libobjc/Makefile ============================================================================== --- user/imp/tbemd/gnu/lib/libobjc/Makefile Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/gnu/lib/libobjc/Makefile Mon Sep 13 00:38:46 2010 (r212509) @@ -16,7 +16,9 @@ SRCS= archive.c class.c encoding.c gc.c selector.c sendmsg.c thr.c thr-objc.c exception.c # XXX: clang cannot compile libobjc yet -CC:=${CC:C/^cc|^clang/gcc/} +.if ${CC:T:Mclang} == "clang" +CC=gcc +.endif INCS= encoding.h hash.h objc-api.h objc-decls.h objc-list.h objc.h runtime.h \ sarray.h thr.h typedstream.h NXConstStr.h Object.h Protocol.h Modified: user/imp/tbemd/gnu/lib/libstdc++/Makefile ============================================================================== --- user/imp/tbemd/gnu/lib/libstdc++/Makefile Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/gnu/lib/libstdc++/Makefile Mon Sep 13 00:38:46 2010 (r212509) @@ -83,7 +83,7 @@ ATOMICITY_H= ${SRCDIR}/config/cpu/${MARC ATOMICITY_H= ${SRCDIR}/config/cpu/generic/atomicity_mutex/atomicity.h .endif -.if ${MACHINE_CPUARCH} == "amd64" +.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" .if exists(${SRCDIR}/config/cpu/generic/atomicity_builtins/atomicity.h) ATOMICITY_H= ${SRCDIR}/config/cpu/generic/atomicity_builtins/atomicity.h .endif Modified: user/imp/tbemd/gnu/lib/libstdc++/config.h ============================================================================== --- user/imp/tbemd/gnu/lib/libstdc++/config.h Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/gnu/lib/libstdc++/config.h Mon Sep 13 00:38:46 2010 (r212509) @@ -671,7 +671,7 @@ /* #undef VERSION */ /* Define if builtin atomic operations are supported on this host. */ -#if defined(__amd64__) +#if defined(__amd64__) || defined(__i386__) #define _GLIBCXX_ATOMIC_BUILTINS 1 #endif Modified: user/imp/tbemd/include/limits.h ============================================================================== --- user/imp/tbemd/include/limits.h Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/include/limits.h Mon Sep 13 00:38:46 2010 (r212509) @@ -70,7 +70,7 @@ #endif #if __POSIX_VISIBLE >= 199309 -#define _POSIX_AIO_LISTIO_MAX 16 +#define _POSIX_AIO_LISTIO_MAX 2 #define _POSIX_AIO_MAX 1 #define _POSIX_DELAYTIMER_MAX 32 #define _POSIX_MQ_OPEN_MAX 8 Modified: user/imp/tbemd/lib/libc/db/man/dbopen.3 ============================================================================== --- user/imp/tbemd/lib/libc/db/man/dbopen.3 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/db/man/dbopen.3 Mon Sep 13 00:38:46 2010 (r212509) @@ -28,7 +28,7 @@ .\" @(#)dbopen.3 8.5 (Berkeley) 1/2/94 .\" $FreeBSD$ .\" -.Dd January 2, 1994 +.Dd September 10, 2010 .Dt DBOPEN 3 .Os .Sh NAME @@ -78,8 +78,8 @@ arguments are as specified to the .Xr open 2 routine, however, only the -.Dv O_CREAT , O_EXCL , O_EXLOCK , O_NONBLOCK , -.Dv O_RDONLY , O_RDWR , O_SHLOCK +.Dv O_CREAT , O_EXCL , O_EXLOCK , O_NOFOLLOW , O_NONBLOCK , +.Dv O_RDONLY , O_RDWR , O_SHLOCK , O_SYNC and .Dv O_TRUNC flags are meaningful. Modified: user/imp/tbemd/lib/libc/net/sctp_send.3 ============================================================================== --- user/imp/tbemd/lib/libc/net/sctp_send.3 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/net/sctp_send.3 Mon Sep 13 00:38:46 2010 (r212509) @@ -191,7 +191,7 @@ If that many milliseconds elapse and the peer has not acknowledged the data, the data will be skipped and no longer transmitted. Note that this policy does -not even ensure that the data will ever be sent. +not even assure that the data will ever be sent. In times of a congestion with large amounts of data being queued, the .Fa sinfo->sinfo_timetolive @@ -218,7 +218,7 @@ policy transforms the .Fa sinfo->sinfo_timetolive into a number of retransmissions to allow. This policy -always ensures that at a minimum one send attempt is +always assures that at a minimum one send attempt is made of the data. After which no more than .Fa sinfo->sinfo_timetolive Modified: user/imp/tbemd/lib/libc/net/sctp_sendmsg.3 ============================================================================== --- user/imp/tbemd/lib/libc/net/sctp_sendmsg.3 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/net/sctp_sendmsg.3 Mon Sep 13 00:38:46 2010 (r212509) @@ -203,7 +203,7 @@ If that many milliseconds elapse and the peer has not acknowledged the data, the data will be skipped and no longer transmitted. Note that this policy does -not even ensure that the data will ever be sent. +not even assure that the data will ever be sent. In times of a congestion with large amounts of data being queued, the .Fa timetolive @@ -230,7 +230,7 @@ policy transforms the .Fa timetolive into a number of retransmissions to allow. This policy -always ensures that at a minimum one send attempt is +always assures that at a minimum one send attempt is made of the data. After which no more than .Fa timetolive Modified: user/imp/tbemd/lib/libc/posix1e/acl_strip.c ============================================================================== --- user/imp/tbemd/lib/libc/posix1e/acl_strip.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/posix1e/acl_strip.c Mon Sep 13 00:38:46 2010 (r212509) @@ -176,6 +176,15 @@ acl_is_trivial_np(const acl_t aclp, int case ACL_BRAND_NFS4: /* + * If the ACL has more than canonical six entries, + * it's non trivial by definition. + */ + if (aclp->ats_acl.acl_cnt > 6) { + *trivialp = 0; + return (0); + } + + /* * Calculate trivial ACL - using acl_strip_np - and compare * with the original. */ Modified: user/imp/tbemd/lib/libc/stdio/printf.3 ============================================================================== --- user/imp/tbemd/lib/libc/stdio/printf.3 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/stdio/printf.3 Mon Sep 13 00:38:46 2010 (r212509) @@ -849,7 +849,7 @@ and .Fn vsprintf assume an infinitely long string, callers must be careful not to overflow the actual space; -this is often hard to ensure. +this is often hard to assure. For safety, programmers should use the .Fn snprintf interface instead. Modified: user/imp/tbemd/lib/libc/stdlib/Makefile.inc ============================================================================== --- user/imp/tbemd/lib/libc/stdlib/Makefile.inc Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/stdlib/Makefile.inc Mon Sep 13 00:38:46 2010 (r212509) @@ -9,7 +9,7 @@ MISRCS+=_Exit.c a64l.c abort.c abs.c ate getsubopt.c hcreate.c heapsort.c imaxabs.c imaxdiv.c \ insque.c l64a.c labs.c ldiv.c llabs.c lldiv.c lsearch.c malloc.c \ merge.c ptsname.c qsort.c qsort_r.c radixsort.c rand.c random.c \ - reallocf.c realpath.c remque.c strfmon.c strtoimax.c \ + reallocf.c realpath.c remque.c sigwait.c strfmon.c strtoimax.c \ strtol.c strtoll.c strtoq.c strtoul.c strtonum.c strtoull.c \ strtoumax.c strtouq.c system.c tdelete.c tfind.c tsearch.c twalk.c Modified: user/imp/tbemd/lib/libc/stdlib/malloc.3 ============================================================================== --- user/imp/tbemd/lib/libc/stdlib/malloc.3 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/stdlib/malloc.3 Mon Sep 13 00:38:46 2010 (r212509) @@ -266,7 +266,7 @@ options are enabled, the allocator prefe but allocation only fails if memory cannot be acquired via either method. If neither option is enabled, then the .Dq M -option is implicitly enabled in order to ensure that there is a method for +option is implicitly enabled in order to assure that there is a method for acquiring memory. .It N Double/halve the number of arenas. @@ -437,7 +437,7 @@ rounded up to the nearest multiple of th .Pp Allocations are packed tightly together, which can be an issue for multi-threaded applications. -If you need to ensure that allocations do not suffer from cacheline sharing, +If you need to assure that allocations do not suffer from cacheline sharing, round your allocation requests up to the nearest multiple of the cacheline size. .Sh DEBUGGING MALLOC PROBLEMS Modified: user/imp/tbemd/lib/libc/sys/Makefile.inc ============================================================================== --- user/imp/tbemd/lib/libc/sys/Makefile.inc Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/sys/Makefile.inc Mon Sep 13 00:38:46 2010 (r212509) @@ -21,6 +21,9 @@ SRCS+= stack_protector.c stack_protector SRCS+= fcntl.c ftruncate.c lseek.c mmap.c pread.c pwrite.c truncate.c PSEUDO+= _fcntl.o .endif +SRCS+= sigwait.c +NOASM+= sigwait.o +PSEUDO+= _sigwait.o # Add machine dependent asm sources: SRCS+=${MDASM} Modified: user/imp/tbemd/lib/libc/sys/Symbol.map ============================================================================== --- user/imp/tbemd/lib/libc/sys/Symbol.map Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/sys/Symbol.map Mon Sep 13 00:38:46 2010 (r212509) @@ -919,6 +919,7 @@ FBSDprivate_1.0 { _sigtimedwait; __sys_sigtimedwait; _sigwait; + __sigwait; __sys_sigwait; _sigwaitinfo; __sys_sigwaitinfo; Modified: user/imp/tbemd/lib/libc/sys/connect.2 ============================================================================== --- user/imp/tbemd/lib/libc/sys/connect.2 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/sys/connect.2 Mon Sep 13 00:38:46 2010 (r212509) @@ -28,7 +28,7 @@ .\" @(#)connect.2 8.1 (Berkeley) 6/4/93 .\" $FreeBSD$ .\" -.Dd August 16, 2006 +.Dd September 5, 2010 .Dt CONNECT 2 .Os .Sh NAME @@ -95,6 +95,8 @@ The socket is already connected. Connection establishment timed out without establishing a connection. .It Bq Er ECONNREFUSED The attempt to connect was forcefully rejected. +.It Bq Er ECONNRESET +The connection was reset by the remote host. .It Bq Er ENETUNREACH The network is not reachable from this host. .It Bq Er EHOSTUNREACH Modified: user/imp/tbemd/lib/libc/sys/cpuset_getaffinity.2 ============================================================================== --- user/imp/tbemd/lib/libc/sys/cpuset_getaffinity.2 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/sys/cpuset_getaffinity.2 Mon Sep 13 00:38:46 2010 (r212509) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 8, 2010 +.Dd September 10, 2010 .Dt CPUSET 2 .Os .Sh NAME @@ -121,6 +121,12 @@ The or .Fa which argument was not a valid value. +.It Bq Er EINVAL +The +.Fa mask +argument specified when calling +.Fn cpuset_setaffinity +was not a valid value. .It Bq Er EDEADLK The .Fn cpuset_setaffinity Modified: user/imp/tbemd/lib/libc/sys/sigaltstack.2 ============================================================================== --- user/imp/tbemd/lib/libc/sys/sigaltstack.2 Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libc/sys/sigaltstack.2 Mon Sep 13 00:38:46 2010 (r212509) @@ -104,7 +104,7 @@ if ((sigstk.ss_sp = malloc(SIGSTKSZ)) == /* error return */ sigstk.ss_size = SIGSTKSZ; sigstk.ss_flags = 0; -if (sigaltstack(&sigstk,0) < 0) +if (sigaltstack(&sigstk, NULL) < 0) perror("sigaltstack"); .Ed An alternative approach is provided for programs with signal handlers Copied: user/imp/tbemd/lib/libc/sys/sigwait.c (from r212508, head/lib/libc/sys/sigwait.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/imp/tbemd/lib/libc/sys/sigwait.c Mon Sep 13 00:38:46 2010 (r212509, copy of r212508, head/lib/libc/sys/sigwait.c) @@ -0,0 +1,46 @@ +/*- + * Copyright (c) 2010 davidxu@freebsd.org + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +int __sys_sigwait(const sigset_t * restrict, int * restrict); + +__weak_reference(__sigwait, sigwait); + +int +__sigwait(const sigset_t * restrict set, int * restrict sig) +{ + int ret; + + /* POSIX does not allow EINTR to be returned */ + do { + ret = __sys_sigwait(set, sig); + } while (ret == EINTR); + return (ret); +} Modified: user/imp/tbemd/lib/libedit/common.c ============================================================================== --- user/imp/tbemd/lib/libedit/common.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libedit/common.c Mon Sep 13 00:38:46 2010 (r212509) @@ -163,15 +163,12 @@ ed_delete_next_char(EditLine *el, int c) return (CC_ERROR); #endif } - } else { - if (el->el_line.cursor != el->el_line.buffer) - el->el_line.cursor--; - else - return (CC_ERROR); - } + } else + return (CC_ERROR); } c_delafter(el, el->el_state.argument); /* delete after dot */ - if (el->el_line.cursor >= el->el_line.lastchar && + if (el->el_map.type == MAP_VI && + el->el_line.cursor >= el->el_line.lastchar && el->el_line.cursor > el->el_line.buffer) /* bounds check */ el->el_line.cursor = el->el_line.lastchar - 1; Modified: user/imp/tbemd/lib/libedit/term.c ============================================================================== --- user/imp/tbemd/lib/libedit/term.c Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libedit/term.c Mon Sep 13 00:38:46 2010 (r212509) @@ -223,7 +223,9 @@ private const struct termcapstr { { "kh", "send cursor home" }, #define T_at7 37 { "@7", "send cursor end" }, -#define T_str 38 +#define T_kD 38 + { "kD", "send cursor delete" }, +#define T_str 39 { NULL, NULL } }; @@ -1062,6 +1064,11 @@ term_init_arrow(EditLine *el) arrow[A_K_EN].key = T_at7; arrow[A_K_EN].fun.cmd = ED_MOVE_TO_END; arrow[A_K_EN].type = XK_CMD; + + arrow[A_K_DE].name = "delete"; + arrow[A_K_DE].key = T_kD; + arrow[A_K_DE].fun.cmd = ED_DELETE_NEXT_CHAR; + arrow[A_K_DE].type = XK_CMD; } Modified: user/imp/tbemd/lib/libedit/term.h ============================================================================== --- user/imp/tbemd/lib/libedit/term.h Sun Sep 12 22:00:31 2010 (r212508) +++ user/imp/tbemd/lib/libedit/term.h Mon Sep 13 00:38:46 2010 (r212509) @@ -79,7 +79,8 @@ typedef struct { #define A_K_RT 3 #define A_K_HO 4 #define A_K_EN 5 -#define A_K_NKEYS 6 +#define A_K_DE 6 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 01:27:54 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D98631065670; Mon, 13 Sep 2010 01:27:54 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C81198FC18; Mon, 13 Sep 2010 01:27:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8D1RsDj043934; Mon, 13 Sep 2010 01:27:54 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8D1RsaF043932; Mon, 13 Sep 2010 01:27:54 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009130127.o8D1RsaF043932@svn.freebsd.org> From: Warner Losh Date: Mon, 13 Sep 2010 01:27:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212514 - in user/imp/tbemd: contrib/top usr.bin/xlint/arch/powerpc usr.bin/xlint/arch/powerpc64 X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 01:27:55 -0000 Author: imp Date: Mon Sep 13 01:27:54 2010 New Revision: 212514 URL: http://svn.freebsd.org/changeset/base/212514 Log: Merge head @r212513 Deleted: user/imp/tbemd/usr.bin/xlint/arch/powerpc64/ Modified: user/imp/tbemd/usr.bin/xlint/arch/powerpc/targparam.h Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/contrib/bind9/ (props changed) user/imp/tbemd/contrib/ee/ (props changed) user/imp/tbemd/contrib/expat/ (props changed) user/imp/tbemd/contrib/file/ (props changed) user/imp/tbemd/contrib/gdb/ (props changed) user/imp/tbemd/contrib/gdtoa/ (props changed) user/imp/tbemd/contrib/gnu-sort/ (props changed) user/imp/tbemd/contrib/groff/ (props changed) user/imp/tbemd/contrib/less/ (props changed) user/imp/tbemd/contrib/libpcap/ (props changed) user/imp/tbemd/contrib/llvm/ (props changed) user/imp/tbemd/contrib/llvm/tools/clang/ (props changed) user/imp/tbemd/contrib/ncurses/ (props changed) user/imp/tbemd/contrib/netcat/ (props changed) user/imp/tbemd/contrib/ntp/ (props changed) user/imp/tbemd/contrib/one-true-awk/ (props changed) user/imp/tbemd/contrib/openbsm/ (props changed) user/imp/tbemd/contrib/openpam/ (props changed) user/imp/tbemd/contrib/pf/ (props changed) user/imp/tbemd/contrib/sendmail/ (props changed) user/imp/tbemd/contrib/tcpdump/ (props changed) user/imp/tbemd/contrib/tcsh/ (props changed) user/imp/tbemd/contrib/top/ (props changed) user/imp/tbemd/contrib/top/install-sh (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/contrib/wpa/ (props changed) user/imp/tbemd/crypto/openssh/ (props changed) user/imp/tbemd/crypto/openssl/ (props changed) user/imp/tbemd/lib/libc/ (props changed) user/imp/tbemd/lib/libc/stdtime/ (props changed) user/imp/tbemd/lib/libutil/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sbin/ (props changed) user/imp/tbemd/sbin/ipfw/ (props changed) user/imp/tbemd/share/zoneinfo/ (props changed) user/imp/tbemd/sys/ (props changed) user/imp/tbemd/sys/amd64/include/xen/ (props changed) user/imp/tbemd/sys/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/sys/contrib/dev/acpica/ (props changed) user/imp/tbemd/sys/contrib/pf/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) user/imp/tbemd/sys/dev/xen/xenpci/ (props changed) user/imp/tbemd/usr.bin/calendar/ (props changed) user/imp/tbemd/usr.bin/csup/ (props changed) user/imp/tbemd/usr.bin/procstat/ (props changed) user/imp/tbemd/usr.sbin/zic/ (props changed) Modified: user/imp/tbemd/usr.bin/xlint/arch/powerpc/targparam.h ============================================================================== --- user/imp/tbemd/usr.bin/xlint/arch/powerpc/targparam.h Mon Sep 13 01:20:53 2010 (r212513) +++ user/imp/tbemd/usr.bin/xlint/arch/powerpc/targparam.h Mon Sep 13 01:27:54 2010 (r212514) @@ -29,13 +29,19 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ */ /* * Machine-dependent target parameters for lint1. */ +#ifdef __powerpc64__ +#include "lp64.h" +#else #include "ilp32.h" +#endif /* * Should be set to 1 if the difference of two pointers is of type long @@ -43,8 +49,13 @@ * kept in sync with the compiler! */ +#ifdef __powerpc64__ +#define PTRDIFF_IS_LONG 1 +#define SIZEOF_IS_ULONG 1 +#else #define PTRDIFF_IS_LONG 0 #define SIZEOF_IS_ULONG 0 +#endif #define FLOAT_SIZE (4 * CHAR_BIT) #define DOUBLE_SIZE (8 * CHAR_BIT) From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 01:58:18 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3C9EF1065670; Mon, 13 Sep 2010 01:58:18 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 293148FC0C; Mon, 13 Sep 2010 01:58:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8D1wI32046374; Mon, 13 Sep 2010 01:58:18 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8D1wHrP046364; Mon, 13 Sep 2010 01:58:17 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009130158.o8D1wHrP046364@svn.freebsd.org> From: Warner Losh Date: Mon, 13 Sep 2010 01:58:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212519 - in user/imp/tbemd: contrib/top lib/libthr lib/libthr/arch/amd64 lib/libthr/arch/arm lib/libthr/arch/i386 lib/libthr/arch/ia64 lib/libthr/arch/mips lib/libthr/arch/powerpc lib/... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 01:58:18 -0000 Author: imp Date: Mon Sep 13 01:58:17 2010 New Revision: 212519 URL: http://svn.freebsd.org/changeset/base/212519 Log: Merge from head @r212518. Modified: user/imp/tbemd/lib/libthr/Makefile user/imp/tbemd/lib/libthr/arch/amd64/Makefile.inc user/imp/tbemd/lib/libthr/arch/arm/Makefile.inc user/imp/tbemd/lib/libthr/arch/i386/Makefile.inc user/imp/tbemd/lib/libthr/arch/ia64/Makefile.inc user/imp/tbemd/lib/libthr/arch/mips/Makefile.inc user/imp/tbemd/lib/libthr/arch/powerpc/Makefile.inc user/imp/tbemd/lib/libthr/arch/sparc64/Makefile.inc user/imp/tbemd/lib/libthr/support/Makefile.inc Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/contrib/bind9/ (props changed) user/imp/tbemd/contrib/ee/ (props changed) user/imp/tbemd/contrib/expat/ (props changed) user/imp/tbemd/contrib/file/ (props changed) user/imp/tbemd/contrib/gdb/ (props changed) user/imp/tbemd/contrib/gdtoa/ (props changed) user/imp/tbemd/contrib/gnu-sort/ (props changed) user/imp/tbemd/contrib/groff/ (props changed) user/imp/tbemd/contrib/less/ (props changed) user/imp/tbemd/contrib/libpcap/ (props changed) user/imp/tbemd/contrib/llvm/ (props changed) user/imp/tbemd/contrib/llvm/tools/clang/ (props changed) user/imp/tbemd/contrib/ncurses/ (props changed) user/imp/tbemd/contrib/netcat/ (props changed) user/imp/tbemd/contrib/ntp/ (props changed) user/imp/tbemd/contrib/one-true-awk/ (props changed) user/imp/tbemd/contrib/openbsm/ (props changed) user/imp/tbemd/contrib/openpam/ (props changed) user/imp/tbemd/contrib/pf/ (props changed) user/imp/tbemd/contrib/sendmail/ (props changed) user/imp/tbemd/contrib/tcpdump/ (props changed) user/imp/tbemd/contrib/tcsh/ (props changed) user/imp/tbemd/contrib/top/ (props changed) user/imp/tbemd/contrib/top/install-sh (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/contrib/wpa/ (props changed) user/imp/tbemd/crypto/openssh/ (props changed) user/imp/tbemd/crypto/openssl/ (props changed) user/imp/tbemd/lib/libc/ (props changed) user/imp/tbemd/lib/libc/stdtime/ (props changed) user/imp/tbemd/lib/libutil/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sbin/ (props changed) user/imp/tbemd/sbin/ipfw/ (props changed) user/imp/tbemd/share/zoneinfo/ (props changed) user/imp/tbemd/sys/ (props changed) user/imp/tbemd/sys/amd64/include/xen/ (props changed) user/imp/tbemd/sys/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/sys/contrib/dev/acpica/ (props changed) user/imp/tbemd/sys/contrib/pf/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) user/imp/tbemd/sys/dev/xen/xenpci/ (props changed) user/imp/tbemd/usr.bin/calendar/ (props changed) user/imp/tbemd/usr.bin/csup/ (props changed) user/imp/tbemd/usr.bin/procstat/ (props changed) user/imp/tbemd/usr.sbin/zic/ (props changed) Modified: user/imp/tbemd/lib/libthr/Makefile ============================================================================== --- user/imp/tbemd/lib/libthr/Makefile Mon Sep 13 01:44:56 2010 (r212518) +++ user/imp/tbemd/lib/libthr/Makefile Mon Sep 13 01:58:17 2010 (r212519) @@ -38,6 +38,8 @@ CFLAGS+=-D_PTHREADS_INVARIANTS PRECIOUSLIB= +.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} + .include "${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc" .include "${.CURDIR}/sys/Makefile.inc" .include "${.CURDIR}/thread/Makefile.inc" Modified: user/imp/tbemd/lib/libthr/arch/amd64/Makefile.inc ============================================================================== --- user/imp/tbemd/lib/libthr/arch/amd64/Makefile.inc Mon Sep 13 01:44:56 2010 (r212518) +++ user/imp/tbemd/lib/libthr/arch/amd64/Makefile.inc Mon Sep 13 01:58:17 2010 (r212519) @@ -1,5 +1,3 @@ #$FreeBSD$ -.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} - SRCS+= pthread_md.c _umtx_op_err.S Modified: user/imp/tbemd/lib/libthr/arch/arm/Makefile.inc ============================================================================== --- user/imp/tbemd/lib/libthr/arch/arm/Makefile.inc Mon Sep 13 01:44:56 2010 (r212518) +++ user/imp/tbemd/lib/libthr/arch/arm/Makefile.inc Mon Sep 13 01:58:17 2010 (r212519) @@ -1,5 +1,3 @@ # $FreeBSD$ -.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} - SRCS+= pthread_md.c Modified: user/imp/tbemd/lib/libthr/arch/i386/Makefile.inc ============================================================================== --- user/imp/tbemd/lib/libthr/arch/i386/Makefile.inc Mon Sep 13 01:44:56 2010 (r212518) +++ user/imp/tbemd/lib/libthr/arch/i386/Makefile.inc Mon Sep 13 01:58:17 2010 (r212519) @@ -1,5 +1,3 @@ # $FreeBSD$ -.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} - SRCS+= pthread_md.c _umtx_op_err.S Modified: user/imp/tbemd/lib/libthr/arch/ia64/Makefile.inc ============================================================================== --- user/imp/tbemd/lib/libthr/arch/ia64/Makefile.inc Mon Sep 13 01:44:56 2010 (r212518) +++ user/imp/tbemd/lib/libthr/arch/ia64/Makefile.inc Mon Sep 13 01:58:17 2010 (r212519) @@ -1,5 +1,3 @@ # $FreeBSD$ -.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} - SRCS+= _umtx_op_err.S pthread_md.c Modified: user/imp/tbemd/lib/libthr/arch/mips/Makefile.inc ============================================================================== --- user/imp/tbemd/lib/libthr/arch/mips/Makefile.inc Mon Sep 13 01:44:56 2010 (r212518) +++ user/imp/tbemd/lib/libthr/arch/mips/Makefile.inc Mon Sep 13 01:58:17 2010 (r212519) @@ -1,5 +1,3 @@ # $FreeBSD$ -.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} - SRCS+= pthread_md.c Modified: user/imp/tbemd/lib/libthr/arch/powerpc/Makefile.inc ============================================================================== --- user/imp/tbemd/lib/libthr/arch/powerpc/Makefile.inc Mon Sep 13 01:44:56 2010 (r212518) +++ user/imp/tbemd/lib/libthr/arch/powerpc/Makefile.inc Mon Sep 13 01:58:17 2010 (r212519) @@ -1,5 +1,3 @@ # $FreeBSD$ -.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} - SRCS+= pthread_md.c Modified: user/imp/tbemd/lib/libthr/arch/sparc64/Makefile.inc ============================================================================== --- user/imp/tbemd/lib/libthr/arch/sparc64/Makefile.inc Mon Sep 13 01:44:56 2010 (r212518) +++ user/imp/tbemd/lib/libthr/arch/sparc64/Makefile.inc Mon Sep 13 01:58:17 2010 (r212519) @@ -1,5 +1,3 @@ # $FreeBSD$ -.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH} - SRCS+= pthread_md.c Modified: user/imp/tbemd/lib/libthr/support/Makefile.inc ============================================================================== --- user/imp/tbemd/lib/libthr/support/Makefile.inc Mon Sep 13 01:44:56 2010 (r212518) +++ user/imp/tbemd/lib/libthr/support/Makefile.inc Mon Sep 13 01:58:17 2010 (r212519) @@ -1,9 +1,16 @@ # $FreeBSD$ .PATH: ${.CURDIR}/support ${.CURDIR}/../libc/gen ${.CURDIR}/../libc/string -.PATH: ${.CURDIR}/../libc/${MACHINE_CPUARCH}/sys +# libc must search machine_arch, then machine_cpuarch, but libthr has all its +# code implemented in machine_cpuarch. Cope. +.if exists(${.CURDIR}/../libc/${MACHINE_ARCH}/sys) +.PATH: ${.CURDIR}/../libc/${MACHINE_ARCH}/sys +CFLAGS+= -I${.CURDIR}/../libc/${MACHINE_ARCH} +.else +.PATH: ${.CURDIR}/../libc/${MACHINE_CPUARCH}/sys CFLAGS+= -I${.CURDIR}/../libc/${MACHINE_CPUARCH} +.endif SYSCALLS= thr_new From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 02:01:29 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E8BD106566C; Mon, 13 Sep 2010 02:01:29 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8E8DC8FC08; Mon, 13 Sep 2010 02:01:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8D21Te3046760; Mon, 13 Sep 2010 02:01:29 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8D21TFs046757; Mon, 13 Sep 2010 02:01:29 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009130201.o8D21TFs046757@svn.freebsd.org> From: Warner Losh Date: Mon, 13 Sep 2010 02:01:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212520 - user/imp/tbemd/sys/conf X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 02:01:29 -0000 Author: imp Date: Mon Sep 13 02:01:29 2010 New Revision: 212520 URL: http://svn.freebsd.org/changeset/base/212520 Log: Use T:Micc for icc tests Modified: user/imp/tbemd/sys/conf/kern.mk user/imp/tbemd/sys/conf/kern.pre.mk Modified: user/imp/tbemd/sys/conf/kern.mk ============================================================================== --- user/imp/tbemd/sys/conf/kern.mk Mon Sep 13 01:58:17 2010 (r212519) +++ user/imp/tbemd/sys/conf/kern.mk Mon Sep 13 02:01:29 2010 (r212520) @@ -29,7 +29,7 @@ CWARNFLAGS?= -Wall -Wredundant-decls -Wn # operations inside the kernel itself. These operations are exclusively # reserved for user applications. # -.if ${MACHINE_CPUARCH} == "i386" && ${CC} != "icc" +.if ${MACHINE_CPUARCH} == "i386" && ${CC:T:Micc} != "icc" .if ${CC:T:Mclang} != "clang" CFLAGS+= -mno-align-long-strings -mpreferred-stack-boundary=2 .endif Modified: user/imp/tbemd/sys/conf/kern.pre.mk ============================================================================== --- user/imp/tbemd/sys/conf/kern.pre.mk Mon Sep 13 01:58:17 2010 (r212519) +++ user/imp/tbemd/sys/conf/kern.pre.mk Mon Sep 13 02:01:29 2010 (r212520) @@ -42,7 +42,7 @@ COPTFLAGS+= -fno-strict-aliasing . endif .endif .if !defined(NO_CPU_COPTFLAGS) -. if ${CC} == "icc" +. if ${CC:T:Micc} == "icc" COPTFLAGS+= ${_ICC_CPUCFLAGS:C/(-x[^M^K^W]+)[MKW]+|-x[MKW]+/\1/} . else COPTFLAGS+= ${_CPUCFLAGS} From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 02:04:03 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C29D106566B; Mon, 13 Sep 2010 02:04:03 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F04B18FC13; Mon, 13 Sep 2010 02:04:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8D242t0047058; Mon, 13 Sep 2010 02:04:02 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8D2428a047056; Mon, 13 Sep 2010 02:04:02 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009130204.o8D2428a047056@svn.freebsd.org> From: Warner Losh Date: Mon, 13 Sep 2010 02:04:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212522 - user/imp/tbemd/sys/conf X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 02:04:03 -0000 Author: imp Date: Mon Sep 13 02:04:02 2010 New Revision: 212522 URL: http://svn.freebsd.org/changeset/base/212522 Log: Reduce diffs against head: kill bogus blank line from this copy. Modified: user/imp/tbemd/sys/conf/ldscript.mips.octeon1.32 Modified: user/imp/tbemd/sys/conf/ldscript.mips.octeon1.32 ============================================================================== --- user/imp/tbemd/sys/conf/ldscript.mips.octeon1.32 Mon Sep 13 02:02:20 2010 (r212521) +++ user/imp/tbemd/sys/conf/ldscript.mips.octeon1.32 Mon Sep 13 02:04:02 2010 (r212522) @@ -10,7 +10,6 @@ PROVIDE (_DYNAMIC = 0); SECTIONS { . = KERNLOADADDR + SIZEOF_HEADERS; - .text . : { *(.text) *(.dynamic) From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 02:10:29 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C34C3106564A; Mon, 13 Sep 2010 02:10:29 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 98D5D8FC1F; Mon, 13 Sep 2010 02:10:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8D2ATf5047654; Mon, 13 Sep 2010 02:10:29 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8D2ATxH047653; Mon, 13 Sep 2010 02:10:29 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009130210.o8D2ATxH047653@svn.freebsd.org> From: Warner Losh Date: Mon, 13 Sep 2010 02:10:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212524 - user/imp/tbemd/contrib/top X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 02:10:29 -0000 Author: imp Date: Mon Sep 13 02:10:29 2010 New Revision: 212524 URL: http://svn.freebsd.org/changeset/base/212524 Log: Merge head @r212523. Modified: Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/contrib/bind9/ (props changed) user/imp/tbemd/contrib/ee/ (props changed) user/imp/tbemd/contrib/expat/ (props changed) user/imp/tbemd/contrib/file/ (props changed) user/imp/tbemd/contrib/gdb/ (props changed) user/imp/tbemd/contrib/gdtoa/ (props changed) user/imp/tbemd/contrib/gnu-sort/ (props changed) user/imp/tbemd/contrib/groff/ (props changed) user/imp/tbemd/contrib/less/ (props changed) user/imp/tbemd/contrib/libpcap/ (props changed) user/imp/tbemd/contrib/llvm/ (props changed) user/imp/tbemd/contrib/llvm/tools/clang/ (props changed) user/imp/tbemd/contrib/ncurses/ (props changed) user/imp/tbemd/contrib/netcat/ (props changed) user/imp/tbemd/contrib/ntp/ (props changed) user/imp/tbemd/contrib/one-true-awk/ (props changed) user/imp/tbemd/contrib/openbsm/ (props changed) user/imp/tbemd/contrib/openpam/ (props changed) user/imp/tbemd/contrib/pf/ (props changed) user/imp/tbemd/contrib/sendmail/ (props changed) user/imp/tbemd/contrib/tcpdump/ (props changed) user/imp/tbemd/contrib/tcsh/ (props changed) user/imp/tbemd/contrib/top/ (props changed) user/imp/tbemd/contrib/top/install-sh (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/contrib/wpa/ (props changed) user/imp/tbemd/crypto/openssh/ (props changed) user/imp/tbemd/crypto/openssl/ (props changed) user/imp/tbemd/lib/libc/ (props changed) user/imp/tbemd/lib/libc/stdtime/ (props changed) user/imp/tbemd/lib/libutil/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sbin/ (props changed) user/imp/tbemd/sbin/ipfw/ (props changed) user/imp/tbemd/share/zoneinfo/ (props changed) user/imp/tbemd/sys/ (props changed) user/imp/tbemd/sys/amd64/include/xen/ (props changed) user/imp/tbemd/sys/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/sys/contrib/dev/acpica/ (props changed) user/imp/tbemd/sys/contrib/pf/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) user/imp/tbemd/sys/dev/xen/xenpci/ (props changed) user/imp/tbemd/usr.bin/calendar/ (props changed) user/imp/tbemd/usr.bin/csup/ (props changed) user/imp/tbemd/usr.bin/procstat/ (props changed) user/imp/tbemd/usr.sbin/zic/ (props changed) From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 02:33:56 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2C3C5106564A; Mon, 13 Sep 2010 02:33:56 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 01CCE8FC14; Mon, 13 Sep 2010 02:33:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8D2XtX5049968; Mon, 13 Sep 2010 02:33:55 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8D2XteX049967; Mon, 13 Sep 2010 02:33:55 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009130233.o8D2XteX049967@svn.freebsd.org> From: Warner Losh Date: Mon, 13 Sep 2010 02:33:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212529 - user/imp/tbemd/contrib/top X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 02:33:56 -0000 Author: imp Date: Mon Sep 13 02:33:55 2010 New Revision: 212529 URL: http://svn.freebsd.org/changeset/base/212529 Log: Merge @r212528. Modified: Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/contrib/bind9/ (props changed) user/imp/tbemd/contrib/ee/ (props changed) user/imp/tbemd/contrib/expat/ (props changed) user/imp/tbemd/contrib/file/ (props changed) user/imp/tbemd/contrib/gdb/ (props changed) user/imp/tbemd/contrib/gdtoa/ (props changed) user/imp/tbemd/contrib/gnu-sort/ (props changed) user/imp/tbemd/contrib/groff/ (props changed) user/imp/tbemd/contrib/less/ (props changed) user/imp/tbemd/contrib/libpcap/ (props changed) user/imp/tbemd/contrib/llvm/ (props changed) user/imp/tbemd/contrib/llvm/tools/clang/ (props changed) user/imp/tbemd/contrib/ncurses/ (props changed) user/imp/tbemd/contrib/netcat/ (props changed) user/imp/tbemd/contrib/ntp/ (props changed) user/imp/tbemd/contrib/one-true-awk/ (props changed) user/imp/tbemd/contrib/openbsm/ (props changed) user/imp/tbemd/contrib/openpam/ (props changed) user/imp/tbemd/contrib/pf/ (props changed) user/imp/tbemd/contrib/sendmail/ (props changed) user/imp/tbemd/contrib/tcpdump/ (props changed) user/imp/tbemd/contrib/tcsh/ (props changed) user/imp/tbemd/contrib/top/ (props changed) user/imp/tbemd/contrib/top/install-sh (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/contrib/wpa/ (props changed) user/imp/tbemd/crypto/openssh/ (props changed) user/imp/tbemd/crypto/openssl/ (props changed) user/imp/tbemd/lib/libc/ (props changed) user/imp/tbemd/lib/libc/stdtime/ (props changed) user/imp/tbemd/lib/libutil/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sbin/ (props changed) user/imp/tbemd/sbin/ipfw/ (props changed) user/imp/tbemd/share/zoneinfo/ (props changed) user/imp/tbemd/sys/ (props changed) user/imp/tbemd/sys/amd64/include/xen/ (props changed) user/imp/tbemd/sys/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/sys/contrib/dev/acpica/ (props changed) user/imp/tbemd/sys/contrib/pf/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) user/imp/tbemd/sys/dev/xen/xenpci/ (props changed) user/imp/tbemd/usr.bin/calendar/ (props changed) user/imp/tbemd/usr.bin/csup/ (props changed) user/imp/tbemd/usr.bin/procstat/ (props changed) user/imp/tbemd/usr.sbin/zic/ (props changed) From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 02:35:49 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0FB81106564A; Mon, 13 Sep 2010 02:35:49 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0014D8FC18; Mon, 13 Sep 2010 02:35:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8D2ZmEb050156; Mon, 13 Sep 2010 02:35:48 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8D2ZmCb050154; Mon, 13 Sep 2010 02:35:48 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009130235.o8D2ZmCb050154@svn.freebsd.org> From: Warner Losh Date: Mon, 13 Sep 2010 02:35:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212530 - user/imp/tbemd X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 02:35:49 -0000 Author: imp Date: Mon Sep 13 02:35:48 2010 New Revision: 212530 URL: http://svn.freebsd.org/changeset/base/212530 Log: powerpc64 not powerpc65, give the extra bit back Modified: user/imp/tbemd/Makefile.inc1 Modified: user/imp/tbemd/Makefile.inc1 ============================================================================== --- user/imp/tbemd/Makefile.inc1 Mon Sep 13 02:33:55 2010 (r212529) +++ user/imp/tbemd/Makefile.inc1 Mon Sep 13 02:35:48 2010 (r212530) @@ -127,7 +127,7 @@ TARGET= ${TARGET_ARCH:C/mipse[lb]/mips/ TARGET?= ${MACHINE} TARGET_ARCH?= ${MACHINE_ARCH} -KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips powerpc powerpc65/powerpc sparc64 sparc64/sun4v +KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips powerpc powerpc64/powerpc sparc64 sparc64/sun4v .if ${TARGET} == ${TARGET_ARCH} _t= ${TARGET} .else From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 15:19:49 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E067F1065670; Mon, 13 Sep 2010 15:19:49 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CB8498FC1D; Mon, 13 Sep 2010 15:19:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8DFJnmc010116; Mon, 13 Sep 2010 15:19:49 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8DFJnkj010094; Mon, 13 Sep 2010 15:19:49 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009131519.o8DFJnkj010094@svn.freebsd.org> From: Warner Losh Date: Mon, 13 Sep 2010 15:19:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212557 - in user/imp/tbemd: contrib/top lib/libthr lib/libthr/thread lib/msun sbin/geom/class/cache sbin/geom/class/concat sbin/geom/class/eli sbin/geom/class/journal sbin/geom/class/l... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 15:19:50 -0000 Author: imp Date: Mon Sep 13 15:19:49 2010 New Revision: 212557 URL: http://svn.freebsd.org/changeset/base/212557 Log: merge from head @r212556 Added: user/imp/tbemd/usr.bin/xlint/arch/powerpc64/ - copied from r212556, head/usr.bin/xlint/arch/powerpc64/ Deleted: user/imp/tbemd/sys/mips/mips/psraccess.S Modified: user/imp/tbemd/lib/libthr/pthread.map user/imp/tbemd/lib/libthr/thread/thr_affinity.c user/imp/tbemd/lib/libthr/thread/thr_attr.c user/imp/tbemd/lib/libthr/thread/thr_cancel.c user/imp/tbemd/lib/libthr/thread/thr_create.c user/imp/tbemd/lib/libthr/thread/thr_detach.c user/imp/tbemd/lib/libthr/thread/thr_exit.c user/imp/tbemd/lib/libthr/thread/thr_fork.c user/imp/tbemd/lib/libthr/thread/thr_init.c user/imp/tbemd/lib/libthr/thread/thr_join.c user/imp/tbemd/lib/libthr/thread/thr_kill.c user/imp/tbemd/lib/libthr/thread/thr_list.c user/imp/tbemd/lib/libthr/thread/thr_private.h user/imp/tbemd/lib/libthr/thread/thr_resume_np.c user/imp/tbemd/lib/libthr/thread/thr_stack.c user/imp/tbemd/lib/libthr/thread/thr_suspend_np.c user/imp/tbemd/lib/msun/Makefile user/imp/tbemd/sbin/geom/class/cache/geom_cache.c user/imp/tbemd/sbin/geom/class/concat/geom_concat.c user/imp/tbemd/sbin/geom/class/eli/geom_eli.c user/imp/tbemd/sbin/geom/class/journal/geom_journal.c user/imp/tbemd/sbin/geom/class/label/geom_label.c user/imp/tbemd/sbin/geom/class/mirror/geom_mirror.c user/imp/tbemd/sbin/geom/class/mountver/geom_mountver.c user/imp/tbemd/sbin/geom/class/multipath/geom_multipath.c user/imp/tbemd/sbin/geom/class/nop/geom_nop.c user/imp/tbemd/sbin/geom/class/part/geom_part.c user/imp/tbemd/sbin/geom/class/raid3/geom_raid3.c user/imp/tbemd/sbin/geom/class/sched/geom_sched.c user/imp/tbemd/sbin/geom/class/shsec/geom_shsec.c user/imp/tbemd/sbin/geom/class/stripe/geom_stripe.c user/imp/tbemd/sbin/geom/class/virstor/geom_virstor.c user/imp/tbemd/sbin/geom/core/geom.c user/imp/tbemd/sbin/geom/core/geom.h user/imp/tbemd/share/mk/bsd.cpu.mk user/imp/tbemd/sys/amd64/amd64/machdep.c user/imp/tbemd/sys/amd64/amd64/mp_machdep.c user/imp/tbemd/sys/amd64/include/apicvar.h user/imp/tbemd/sys/conf/files.mips user/imp/tbemd/sys/conf/kern.mk user/imp/tbemd/sys/conf/kmod.mk user/imp/tbemd/sys/dev/acpica/acpi_cpu.c user/imp/tbemd/sys/dev/acpica/acpi_hpet.c user/imp/tbemd/sys/geom/eli/g_eli_ctl.c user/imp/tbemd/sys/geom/mirror/g_mirror_ctl.c user/imp/tbemd/sys/geom/part/g_part.c user/imp/tbemd/sys/i386/i386/machdep.c user/imp/tbemd/sys/i386/i386/mp_machdep.c user/imp/tbemd/sys/i386/include/apicvar.h user/imp/tbemd/sys/kern/bus_if.m user/imp/tbemd/sys/kern/kern_clock.c user/imp/tbemd/sys/kern/kern_clocksource.c user/imp/tbemd/sys/kern/kern_et.c user/imp/tbemd/sys/kern/kern_tc.c user/imp/tbemd/sys/kern/kern_timeout.c user/imp/tbemd/sys/kern/sched_4bsd.c user/imp/tbemd/sys/kern/sched_ule.c user/imp/tbemd/sys/mips/include/cpufunc.h user/imp/tbemd/sys/mips/include/md_var.h user/imp/tbemd/sys/mips/include/smp.h user/imp/tbemd/sys/mips/mips/mp_machdep.c user/imp/tbemd/sys/mips/rmi/dev/nlge/if_nlge.c user/imp/tbemd/sys/mips/rmi/dev/xlr/rge.c user/imp/tbemd/sys/mips/rmi/iodi.c user/imp/tbemd/sys/mips/rmi/msgring.h user/imp/tbemd/sys/pc98/pc98/machdep.c user/imp/tbemd/sys/powerpc/aim/machdep.c user/imp/tbemd/sys/powerpc/booke/machdep.c user/imp/tbemd/sys/powerpc/include/smp.h user/imp/tbemd/sys/powerpc/powerpc/mp_machdep.c user/imp/tbemd/sys/sparc64/include/intr_machdep.h user/imp/tbemd/sys/sparc64/include/smp.h user/imp/tbemd/sys/sparc64/sparc64/intr_machdep.c user/imp/tbemd/sys/sparc64/sparc64/mp_machdep.c user/imp/tbemd/sys/sun4v/include/intr_machdep.h user/imp/tbemd/sys/sun4v/include/smp.h user/imp/tbemd/sys/sun4v/sun4v/intr_machdep.c user/imp/tbemd/sys/sun4v/sun4v/mp_machdep.c user/imp/tbemd/sys/sys/callout.h user/imp/tbemd/sys/sys/sched.h user/imp/tbemd/sys/sys/systm.h user/imp/tbemd/sys/sys/timeet.h user/imp/tbemd/sys/sys/timetc.h user/imp/tbemd/sys/x86/x86/local_apic.c user/imp/tbemd/usr.bin/xlint/Makefile.inc user/imp/tbemd/usr.bin/xlint/arch/powerpc/targparam.h user/imp/tbemd/usr.sbin/crunch/crunchide/Makefile Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/contrib/bind9/ (props changed) user/imp/tbemd/contrib/ee/ (props changed) user/imp/tbemd/contrib/expat/ (props changed) user/imp/tbemd/contrib/file/ (props changed) user/imp/tbemd/contrib/gdb/ (props changed) user/imp/tbemd/contrib/gdtoa/ (props changed) user/imp/tbemd/contrib/gnu-sort/ (props changed) user/imp/tbemd/contrib/groff/ (props changed) user/imp/tbemd/contrib/less/ (props changed) user/imp/tbemd/contrib/libpcap/ (props changed) user/imp/tbemd/contrib/llvm/ (props changed) user/imp/tbemd/contrib/llvm/tools/clang/ (props changed) user/imp/tbemd/contrib/ncurses/ (props changed) user/imp/tbemd/contrib/netcat/ (props changed) user/imp/tbemd/contrib/ntp/ (props changed) user/imp/tbemd/contrib/one-true-awk/ (props changed) user/imp/tbemd/contrib/openbsm/ (props changed) user/imp/tbemd/contrib/openpam/ (props changed) user/imp/tbemd/contrib/pf/ (props changed) user/imp/tbemd/contrib/sendmail/ (props changed) user/imp/tbemd/contrib/tcpdump/ (props changed) user/imp/tbemd/contrib/tcsh/ (props changed) user/imp/tbemd/contrib/top/ (props changed) user/imp/tbemd/contrib/top/install-sh (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/contrib/wpa/ (props changed) user/imp/tbemd/crypto/openssh/ (props changed) user/imp/tbemd/crypto/openssl/ (props changed) user/imp/tbemd/lib/libc/ (props changed) user/imp/tbemd/lib/libc/stdtime/ (props changed) user/imp/tbemd/lib/libutil/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sbin/ (props changed) user/imp/tbemd/sbin/ipfw/ (props changed) user/imp/tbemd/share/zoneinfo/ (props changed) user/imp/tbemd/sys/ (props changed) user/imp/tbemd/sys/amd64/include/xen/ (props changed) user/imp/tbemd/sys/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/sys/contrib/dev/acpica/ (props changed) user/imp/tbemd/sys/contrib/pf/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) user/imp/tbemd/sys/dev/xen/xenpci/ (props changed) user/imp/tbemd/usr.bin/calendar/ (props changed) user/imp/tbemd/usr.bin/csup/ (props changed) user/imp/tbemd/usr.bin/procstat/ (props changed) user/imp/tbemd/usr.sbin/zic/ (props changed) Modified: user/imp/tbemd/lib/libthr/pthread.map ============================================================================== --- user/imp/tbemd/lib/libthr/pthread.map Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/pthread.map Mon Sep 13 15:19:49 2010 (r212557) @@ -173,6 +173,7 @@ FBSDprivate_1.0 { ___creat; ___pause; ___pselect; + ___sigwait; ___sleep; ___system; ___tcdrain; @@ -206,7 +207,6 @@ FBSDprivate_1.0 { __sendto; __sigsuspend; __sigtimedwait; - __sigwait; __sigwaitinfo; __wait3; __wait4; Modified: user/imp/tbemd/lib/libthr/thread/thr_affinity.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_affinity.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_affinity.c Mon Sep 13 15:19:49 2010 (r212557) @@ -50,12 +50,7 @@ _pthread_setaffinity_np(pthread_t td, si -1, cpusetsize, cpusetp); if (error == -1) error = errno; - } else { - THR_THREAD_LOCK(curthread, td); - if (td->state == PS_DEAD) { - THR_THREAD_UNLOCK(curthread, td); - return (EINVAL); - } + } else if ((error = _thr_find_thread(curthread, td, 0)) == 0) { tid = TID(td); error = cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, tid, cpusetsize, cpusetp); @@ -73,10 +68,18 @@ _pthread_getaffinity_np(pthread_t td, si lwpid_t tid; int error; - tid = TID(td); - error = cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, - (td == curthread) ? -1 : tid, cpusetsize, cpusetp); - if (error == -1) - error = errno; + if (td == curthread) { + error = cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, + -1, cpusetsize, cpusetp); + if (error == -1) + error = errno; + } else if ((error = _thr_find_thread(curthread, td, 0)) == 0) { + tid = TID(td); + error = cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, tid, + cpusetsize, cpusetp); + if (error == -1) + error = errno; + THR_THREAD_UNLOCK(curthread, td); + } return (error); } Modified: user/imp/tbemd/lib/libthr/thread/thr_attr.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_attr.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_attr.c Mon Sep 13 15:19:49 2010 (r212557) @@ -132,22 +132,23 @@ _pthread_attr_destroy(pthread_attr_t *at __weak_reference(_pthread_attr_get_np, pthread_attr_get_np); int -_pthread_attr_get_np(pthread_t pid, pthread_attr_t *dst) +_pthread_attr_get_np(pthread_t pthread, pthread_attr_t *dst) { struct pthread *curthread; struct pthread_attr attr; int ret; - if (pid == NULL || dst == NULL || *dst == NULL) + if (pthread == NULL || dst == NULL || *dst == NULL) return (EINVAL); curthread = _get_curthread(); - if ((ret = _thr_ref_add(curthread, pid, /*include dead*/0)) != 0) + if ((ret = _thr_find_thread(curthread, pthread, /*include dead*/0)) != 0) return (ret); - attr = pid->attr; - if (pid->tlflags & TLFLAGS_DETACHED) + attr = pthread->attr; + if (pthread->flags & THR_FLAGS_DETACHED) attr.flags |= PTHREAD_DETACHED; - _thr_ref_delete(curthread, pid); + THR_THREAD_UNLOCK(curthread, pthread); + memcpy(*dst, &attr, sizeof(struct pthread_attr)); /* XXX */ (*dst)->cpuset = NULL; Modified: user/imp/tbemd/lib/libthr/thread/thr_cancel.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_cancel.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_cancel.c Mon Sep 13 15:19:49 2010 (r212557) @@ -60,18 +60,16 @@ _pthread_cancel(pthread_t pthread) /* * POSIX says _pthread_cancel should be async cancellation safe. - * _thr_ref_add and _thr_ref_delete will enter and leave critical + * _thr_find_thread and THR_THREAD_UNLOCK will enter and leave critical * region automatically. */ - if ((ret = _thr_ref_add(curthread, pthread, 0)) == 0) { - THR_THREAD_LOCK(curthread, pthread); + if ((ret = _thr_find_thread(curthread, pthread, 0)) == 0) { if (!pthread->cancel_pending) { pthread->cancel_pending = 1; if (pthread->state != PS_DEAD) _thr_send_sig(pthread, SIGCANCEL); } THR_THREAD_UNLOCK(curthread, pthread); - _thr_ref_delete(curthread, pthread); } return (ret); } Modified: user/imp/tbemd/lib/libthr/thread/thr_create.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_create.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_create.c Mon Sep 13 15:19:49 2010 (r212557) @@ -125,7 +125,7 @@ _pthread_create(pthread_t * thread, cons new_thread->state = PS_RUNNING; if (new_thread->attr.flags & PTHREAD_CREATE_DETACHED) - new_thread->tlflags |= TLFLAGS_DETACHED; + new_thread->flags |= THR_FLAGS_DETACHED; /* Add the new thread. */ new_thread->refcount = 1; @@ -185,16 +185,14 @@ _pthread_create(pthread_t * thread, cons THR_THREAD_LOCK(curthread, new_thread); new_thread->state = PS_DEAD; new_thread->tid = TID_TERMINATED; + new_thread->flags |= THR_FLAGS_DETACHED; + new_thread->refcount--; if (new_thread->flags & THR_FLAGS_NEED_SUSPEND) { new_thread->cycle++; _thr_umtx_wake(&new_thread->cycle, INT_MAX, 0); } - THR_THREAD_UNLOCK(curthread, new_thread); - THREAD_LIST_LOCK(curthread); - _thread_active_threads--; - new_thread->tlflags |= TLFLAGS_DETACHED; - _thr_ref_delete_unlocked(curthread, new_thread); - THREAD_LIST_UNLOCK(curthread); + _thr_try_gc(curthread, new_thread); /* thread lock released */ + atomic_add_int(&_thread_active_threads, -1); } else if (locked) { if (cpusetp != NULL) { if (cpuset_setaffinity(CPU_LEVEL_WHICH, CPU_WHICH_TID, @@ -202,22 +200,17 @@ _pthread_create(pthread_t * thread, cons ret = errno; /* kill the new thread */ new_thread->force_exit = 1; - THR_THREAD_UNLOCK(curthread, new_thread); + new_thread->flags |= THR_FLAGS_DETACHED; + _thr_try_gc(curthread, new_thread); + /* thread lock released */ goto out; } } _thr_report_creation(curthread, new_thread); THR_THREAD_UNLOCK(curthread, new_thread); -out: - if (ret) { - THREAD_LIST_LOCK(curthread); - new_thread->tlflags |= TLFLAGS_DETACHED; - THR_GCLIST_ADD(new_thread); - THREAD_LIST_UNLOCK(curthread); - } } - +out: if (ret) (*thread) = 0; return (ret); Modified: user/imp/tbemd/lib/libthr/thread/thr_detach.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_detach.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_detach.c Mon Sep 13 15:19:49 2010 (r212557) @@ -47,25 +47,21 @@ _pthread_detach(pthread_t pthread) if (pthread == NULL) return (EINVAL); - THREAD_LIST_LOCK(curthread); if ((rval = _thr_find_thread(curthread, pthread, /*include dead*/1)) != 0) { - THREAD_LIST_UNLOCK(curthread); return (rval); } /* Check if the thread is already detached or has a joiner. */ - if ((pthread->tlflags & TLFLAGS_DETACHED) != 0 || + if ((pthread->flags & THR_FLAGS_DETACHED) != 0 || (pthread->joiner != NULL)) { - THREAD_LIST_UNLOCK(curthread); + THR_THREAD_UNLOCK(curthread, pthread); return (EINVAL); } /* Flag the thread as detached. */ - pthread->tlflags |= TLFLAGS_DETACHED; - if (pthread->state == PS_DEAD) - THR_GCLIST_ADD(pthread); - THREAD_LIST_UNLOCK(curthread); + pthread->flags |= THR_FLAGS_DETACHED; + _thr_try_gc(curthread, pthread); /* thread lock released */ return (0); } Modified: user/imp/tbemd/lib/libthr/thread/thr_exit.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_exit.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_exit.c Mon Sep 13 15:19:49 2010 (r212557) @@ -108,37 +108,34 @@ _pthread_exit_mask(void *status, sigset_ if (!_thr_isthreaded()) exit(0); - THREAD_LIST_LOCK(curthread); - _thread_active_threads--; - if (_thread_active_threads == 0) { - THREAD_LIST_UNLOCK(curthread); + if (atomic_fetchadd_int(&_thread_active_threads, -1) == 1) { exit(0); /* Never reach! */ } - THREAD_LIST_UNLOCK(curthread); /* Tell malloc that the thread is exiting. */ _malloc_thread_cleanup(); - THREAD_LIST_LOCK(curthread); THR_LOCK(curthread); curthread->state = PS_DEAD; if (curthread->flags & THR_FLAGS_NEED_SUSPEND) { curthread->cycle++; _thr_umtx_wake(&curthread->cycle, INT_MAX, 0); } - THR_UNLOCK(curthread); /* * Thread was created with initial refcount 1, we drop the * reference count to allow it to be garbage collected. */ curthread->refcount--; - if (curthread->tlflags & TLFLAGS_DETACHED) - THR_GCLIST_ADD(curthread); - THREAD_LIST_UNLOCK(curthread); + _thr_try_gc(curthread, curthread); /* thread lock released */ + if (!curthread->force_exit && SHOULD_REPORT_EVENT(curthread, TD_DEATH)) _thr_report_death(curthread); +#if defined(_PTHREADS_INVARIANTS) + if (THR_IN_CRITICAL(curthread)) + PANIC("thread exits with resources held!"); +#endif /* * Kernel will do wakeup at the address, so joiner thread * will be resumed if it is sleeping at the address. Modified: user/imp/tbemd/lib/libthr/thread/thr_fork.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_fork.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_fork.c Mon Sep 13 15:19:49 2010 (r212557) @@ -178,13 +178,13 @@ _fork(void) /* Child process */ errsave = errno; curthread->cancel_pending = 0; - curthread->flags &= ~THR_FLAGS_NEED_SUSPEND; + curthread->flags &= ~(THR_FLAGS_NEED_SUSPEND|THR_FLAGS_DETACHED); /* * Thread list will be reinitialized, and later we call * _libpthread_init(), it will add us back to list. */ - curthread->tlflags &= ~(TLFLAGS_IN_TDLIST | TLFLAGS_DETACHED); + curthread->tlflags &= ~TLFLAGS_IN_TDLIST; /* child is a new kernel thread. */ thr_self(&curthread->tid); Modified: user/imp/tbemd/lib/libthr/thread/thr_init.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_init.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_init.c Mon Sep 13 15:19:49 2010 (r212557) @@ -111,7 +111,7 @@ struct umutex _mutex_static_lock = DEFAU struct umutex _cond_static_lock = DEFAULT_UMUTEX; struct umutex _rwlock_static_lock = DEFAULT_UMUTEX; struct umutex _keytable_lock = DEFAULT_UMUTEX; -struct umutex _thr_list_lock = DEFAULT_UMUTEX; +struct urwlock _thr_list_lock = DEFAULT_URWLOCK; struct umutex _thr_event_lock = DEFAULT_UMUTEX; int __pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *); Modified: user/imp/tbemd/lib/libthr/thread/thr_join.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_join.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_join.c Mon Sep 13 15:19:49 2010 (r212557) @@ -43,12 +43,12 @@ __weak_reference(_pthread_timedjoin_np, static void backout_join(void *arg) { - struct pthread *curthread = _get_curthread(); struct pthread *pthread = (struct pthread *)arg; + struct pthread *curthread = _get_curthread(); - THREAD_LIST_LOCK(curthread); + THR_THREAD_LOCK(curthread, pthread); pthread->joiner = NULL; - THREAD_LIST_UNLOCK(curthread); + THR_THREAD_LOCK(curthread, pthread); } int @@ -88,23 +88,23 @@ join_common(pthread_t pthread, void **th if (pthread == curthread) return (EDEADLK); - THREAD_LIST_LOCK(curthread); - if ((ret = _thr_find_thread(curthread, pthread, 1)) != 0) { - ret = ESRCH; - } else if ((pthread->tlflags & TLFLAGS_DETACHED) != 0) { + if ((ret = _thr_find_thread(curthread, pthread, 1)) != 0) + return (ESRCH); + + if ((pthread->flags & THR_FLAGS_DETACHED) != 0) { ret = EINVAL; } else if (pthread->joiner != NULL) { /* Multiple joiners are not supported. */ ret = ENOTSUP; } if (ret) { - THREAD_LIST_UNLOCK(curthread); + THR_THREAD_UNLOCK(curthread, pthread); return (ret); } /* Set the running thread to be the joiner: */ pthread->joiner = curthread; - THREAD_LIST_UNLOCK(curthread); + THR_THREAD_UNLOCK(curthread, pthread); THR_CLEANUP_PUSH(curthread, backout_join, pthread); _thr_cancel_enter(curthread); @@ -131,17 +131,16 @@ join_common(pthread_t pthread, void **th THR_CLEANUP_POP(curthread, 0); if (ret == ETIMEDOUT) { - THREAD_LIST_LOCK(curthread); + THR_THREAD_LOCK(curthread, pthread); pthread->joiner = NULL; - THREAD_LIST_UNLOCK(curthread); + THR_THREAD_UNLOCK(curthread, pthread); } else { ret = 0; tmp = pthread->ret; - THREAD_LIST_LOCK(curthread); - pthread->tlflags |= TLFLAGS_DETACHED; + THR_THREAD_LOCK(curthread, pthread); + pthread->flags |= THR_FLAGS_DETACHED; pthread->joiner = NULL; - THR_GCLIST_ADD(pthread); - THREAD_LIST_UNLOCK(curthread); + _thr_try_gc(curthread, pthread); /* thread lock released */ if (thread_return != NULL) *thread_return = tmp; Modified: user/imp/tbemd/lib/libthr/thread/thr_kill.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_kill.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_kill.c Mon Sep 13 15:19:49 2010 (r212557) @@ -54,11 +54,15 @@ _pthread_kill(pthread_t pthread, int sig * signal is valid (signal 0 specifies error checking only) and * not being ignored: */ - else if ((ret = _thr_ref_add(curthread, pthread, /*include dead*/0)) + else if (curthread == pthread) { + if (sig > 0) + _thr_send_sig(pthread, sig); + ret = 0; + } if ((ret = _thr_find_thread(curthread, pthread, /*include dead*/0)) == 0) { if (sig > 0) _thr_send_sig(pthread, sig); - _thr_ref_delete(curthread, pthread); + THR_THREAD_UNLOCK(curthread, pthread); } /* Return the completion status: */ Modified: user/imp/tbemd/lib/libthr/thread/thr_list.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_list.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_list.c Mon Sep 13 15:19:49 2010 (r212557) @@ -79,7 +79,7 @@ _thr_list_init(void) _gc_count = 0; total_threads = 1; - _thr_umutex_init(&_thr_list_lock); + _thr_urwlock_init(&_thr_list_lock); TAILQ_INIT(&_thread_list); TAILQ_INIT(&free_threadq); _thr_umutex_init(&free_thread_lock); @@ -98,7 +98,7 @@ _thr_gc(struct pthread *curthread) TAILQ_HEAD(, pthread) worklist; TAILQ_INIT(&worklist); - THREAD_LIST_LOCK(curthread); + THREAD_LIST_WRLOCK(curthread); /* Check the threads waiting for GC. */ TAILQ_FOREACH_SAFE(td, &_thread_gc_list, gcle, td_next) { @@ -107,17 +107,8 @@ _thr_gc(struct pthread *curthread) continue; } _thr_stack_free(&td->attr); - if (((td->tlflags & TLFLAGS_DETACHED) != 0) && - (td->refcount == 0)) { - THR_GCLIST_REMOVE(td); - /* - * The thread has detached and is no longer - * referenced. It is safe to remove all - * remnants of the thread. - */ - THR_LIST_REMOVE(td); - TAILQ_INSERT_HEAD(&worklist, td, gcle); - } + THR_GCLIST_REMOVE(td); + TAILQ_INSERT_HEAD(&worklist, td, gcle); } THREAD_LIST_UNLOCK(curthread); @@ -228,10 +219,10 @@ thr_destroy(struct pthread *curthread __ void _thr_link(struct pthread *curthread, struct pthread *thread) { - THREAD_LIST_LOCK(curthread); + THREAD_LIST_WRLOCK(curthread); THR_LIST_ADD(thread); - _thread_active_threads++; THREAD_LIST_UNLOCK(curthread); + atomic_add_int(&_thread_active_threads, 1); } /* @@ -240,10 +231,10 @@ _thr_link(struct pthread *curthread, str void _thr_unlink(struct pthread *curthread, struct pthread *thread) { - THREAD_LIST_LOCK(curthread); + THREAD_LIST_WRLOCK(curthread); THR_LIST_REMOVE(thread); - _thread_active_threads--; THREAD_LIST_UNLOCK(curthread); + atomic_add_int(&_thread_active_threads, -1); } void @@ -290,12 +281,11 @@ _thr_ref_add(struct pthread *curthread, /* Invalid thread: */ return (EINVAL); - THREAD_LIST_LOCK(curthread); if ((ret = _thr_find_thread(curthread, thread, include_dead)) == 0) { thread->refcount++; THR_CRITICAL_ENTER(curthread); + THR_THREAD_UNLOCK(curthread, thread); } - THREAD_LIST_UNLOCK(curthread); /* Return zero if the thread exists: */ return (ret); @@ -304,41 +294,56 @@ _thr_ref_add(struct pthread *curthread, void _thr_ref_delete(struct pthread *curthread, struct pthread *thread) { - THREAD_LIST_LOCK(curthread); - _thr_ref_delete_unlocked(curthread, thread); - THREAD_LIST_UNLOCK(curthread); + THR_THREAD_LOCK(curthread, thread); + thread->refcount--; + _thr_try_gc(curthread, thread); + THR_CRITICAL_LEAVE(curthread); } +/* entered with thread lock held, exit with thread lock released */ void -_thr_ref_delete_unlocked(struct pthread *curthread, - struct pthread *thread) +_thr_try_gc(struct pthread *curthread, struct pthread *thread) { - if (thread != NULL) { - thread->refcount--; - if ((thread->refcount == 0) && thread->state == PS_DEAD && - (thread->tlflags & TLFLAGS_DETACHED) != 0) + if (THR_SHOULD_GC(thread)) { + THR_REF_ADD(curthread, thread); + THR_THREAD_UNLOCK(curthread, thread); + THREAD_LIST_WRLOCK(curthread); + THR_THREAD_LOCK(curthread, thread); + THR_REF_DEL(curthread, thread); + if (THR_SHOULD_GC(thread)) { + THR_LIST_REMOVE(thread); THR_GCLIST_ADD(thread); - THR_CRITICAL_LEAVE(curthread); + } + THR_THREAD_UNLOCK(curthread, thread); + THREAD_LIST_UNLOCK(curthread); + } else { + THR_THREAD_UNLOCK(curthread, thread); } } +/* return with thread lock held if thread is found */ int -_thr_find_thread(struct pthread *curthread __unused, struct pthread *thread, +_thr_find_thread(struct pthread *curthread, struct pthread *thread, int include_dead) { struct pthread *pthread; + int ret; if (thread == NULL) - /* Invalid thread: */ return (EINVAL); + ret = 0; + THREAD_LIST_RDLOCK(curthread); pthread = _thr_hash_find(thread); if (pthread) { + THR_THREAD_LOCK(curthread, pthread); if (include_dead == 0 && pthread->state == PS_DEAD) { - pthread = NULL; - } + THR_THREAD_UNLOCK(curthread, pthread); + ret = ESRCH; + } + } else { + ret = ESRCH; } - - /* Return zero if the thread exists: */ - return ((pthread != NULL) ? 0 : ESRCH); + THREAD_LIST_UNLOCK(curthread); + return (ret); } Modified: user/imp/tbemd/lib/libthr/thread/thr_private.h ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_private.h Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_private.h Mon Sep 13 15:19:49 2010 (r212557) @@ -415,13 +415,13 @@ struct pthread { #define THR_FLAGS_PRIVATE 0x0001 #define THR_FLAGS_NEED_SUSPEND 0x0002 /* thread should be suspended */ #define THR_FLAGS_SUSPENDED 0x0004 /* thread is suspended */ +#define THR_FLAGS_IN_GCLIST 0x0008 /* thread in gc list */ +#define THR_FLAGS_DETACHED 0x0010 /* thread is detached */ /* Thread list flags; only set with thread list lock held. */ int tlflags; #define TLFLAGS_GC_SAFE 0x0001 /* thread safe for cleaning */ #define TLFLAGS_IN_TDLIST 0x0002 /* thread in all thread list */ -#define TLFLAGS_IN_GCLIST 0x0004 /* thread in gc list */ -#define TLFLAGS_DETACHED 0x0008 /* thread is detached */ /* Queue of currently owned NORMAL or PRIO_INHERIT type mutexes. */ struct mutex_queue mutexq; @@ -463,6 +463,10 @@ struct pthread { td_event_msg_t event_buf; }; +#define THR_SHOULD_GC(thrd) \ + ((thrd)->refcount == 0 && (thrd)->state == PS_DEAD && \ + ((thrd)->flags & THR_FLAGS_DETACHED) != 0) + #define THR_IN_CRITICAL(thrd) \ (((thrd)->locklevel > 0) || \ ((thrd)->critical_count > 0)) @@ -517,14 +521,23 @@ do { \ #define THR_THREAD_LOCK(curthrd, thr) THR_LOCK_ACQUIRE(curthrd, &(thr)->lock) #define THR_THREAD_UNLOCK(curthrd, thr) THR_LOCK_RELEASE(curthrd, &(thr)->lock) -#define THREAD_LIST_LOCK(curthrd) \ +#define THREAD_LIST_RDLOCK(curthrd) \ +do { \ + (curthrd)->locklevel++; \ + _thr_rwl_rdlock(&_thr_list_lock); \ +} while (0) + +#define THREAD_LIST_WRLOCK(curthrd) \ do { \ - THR_LOCK_ACQUIRE((curthrd), &_thr_list_lock); \ + (curthrd)->locklevel++; \ + _thr_rwl_wrlock(&_thr_list_lock); \ } while (0) #define THREAD_LIST_UNLOCK(curthrd) \ do { \ - THR_LOCK_RELEASE((curthrd), &_thr_list_lock); \ + _thr_rwl_unlock(&_thr_list_lock); \ + (curthrd)->locklevel--; \ + _thr_ast(curthrd); \ } while (0) /* @@ -546,20 +559,30 @@ do { \ } \ } while (0) #define THR_GCLIST_ADD(thrd) do { \ - if (((thrd)->tlflags & TLFLAGS_IN_GCLIST) == 0) { \ + if (((thrd)->flags & THR_FLAGS_IN_GCLIST) == 0) { \ TAILQ_INSERT_HEAD(&_thread_gc_list, thrd, gcle);\ - (thrd)->tlflags |= TLFLAGS_IN_GCLIST; \ + (thrd)->flags |= THR_FLAGS_IN_GCLIST; \ _gc_count++; \ } \ } while (0) #define THR_GCLIST_REMOVE(thrd) do { \ - if (((thrd)->tlflags & TLFLAGS_IN_GCLIST) != 0) { \ + if (((thrd)->flags & THR_FLAGS_IN_GCLIST) != 0) { \ TAILQ_REMOVE(&_thread_gc_list, thrd, gcle); \ - (thrd)->tlflags &= ~TLFLAGS_IN_GCLIST; \ + (thrd)->flags &= ~THR_FLAGS_IN_GCLIST; \ _gc_count--; \ } \ } while (0) +#define THR_REF_ADD(curthread, pthread) { \ + THR_CRITICAL_ENTER(curthread); \ + pthread->refcount++; \ +} while (0) + +#define THR_REF_DEL(curthread, pthread) { \ + pthread->refcount--; \ + THR_CRITICAL_LEAVE(curthread); \ +} while (0) + #define GC_NEEDED() (_gc_count >= 5) #define SHOULD_REPORT_EVENT(curthr, e) \ @@ -618,7 +641,7 @@ extern struct umutex _mutex_static_lock extern struct umutex _cond_static_lock __hidden; extern struct umutex _rwlock_static_lock __hidden; extern struct umutex _keytable_lock __hidden; -extern struct umutex _thr_list_lock __hidden; +extern struct urwlock _thr_list_lock __hidden; extern struct umutex _thr_event_lock __hidden; /* @@ -673,6 +696,7 @@ int _thr_setscheduler(lwpid_t, int, cons void _thr_signal_prefork(void) __hidden; void _thr_signal_postfork(void) __hidden; void _thr_signal_postfork_child(void) __hidden; +void _thr_try_gc(struct pthread *, struct pthread *) __hidden; int _rtp_to_schedparam(const struct rtprio *rtp, int *policy, struct sched_param *param) __hidden; int _schedparam_to_rtp(int policy, const struct sched_param *param, Modified: user/imp/tbemd/lib/libthr/thread/thr_resume_np.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_resume_np.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_resume_np.c Mon Sep 13 15:19:49 2010 (r212557) @@ -50,12 +50,10 @@ _pthread_resume_np(pthread_t thread) int ret; /* Add a reference to the thread: */ - if ((ret = _thr_ref_add(curthread, thread, /*include dead*/0)) == 0) { + if ((ret = _thr_find_thread(curthread, thread, /*include dead*/0)) == 0) { /* Lock the threads scheduling queue: */ - THR_THREAD_LOCK(curthread, thread); resume_common(thread); THR_THREAD_UNLOCK(curthread, thread); - _thr_ref_delete(curthread, thread); } return (ret); } @@ -67,7 +65,7 @@ _pthread_resume_all_np(void) struct pthread *thread; /* Take the thread list lock: */ - THREAD_LIST_LOCK(curthread); + THREAD_LIST_RDLOCK(curthread); TAILQ_FOREACH(thread, &_thread_list, tle) { if (thread != curthread) { Modified: user/imp/tbemd/lib/libthr/thread/thr_stack.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_stack.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_stack.c Mon Sep 13 15:19:49 2010 (r212557) @@ -154,7 +154,7 @@ _thr_stack_alloc(struct pthread_attr *at * Use the garbage collector lock for synchronization of the * spare stack lists and allocations from usrstack. */ - THREAD_LIST_LOCK(curthread); + THREAD_LIST_WRLOCK(curthread); /* * If the stack and guard sizes are default, try to allocate a stack * from the default-size stack cache: Modified: user/imp/tbemd/lib/libthr/thread/thr_suspend_np.c ============================================================================== --- user/imp/tbemd/lib/libthr/thread/thr_suspend_np.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/libthr/thread/thr_suspend_np.c Mon Sep 13 15:19:49 2010 (r212557) @@ -76,7 +76,7 @@ _pthread_suspend_all_np(void) struct pthread *thread; int ret; - THREAD_LIST_LOCK(curthread); + THREAD_LIST_RDLOCK(curthread); TAILQ_FOREACH(thread, &_thread_list, tle) { if (thread != curthread) { @@ -96,13 +96,15 @@ restart: THR_THREAD_LOCK(curthread, thread); ret = suspend_common(curthread, thread, 0); if (ret == 0) { - /* Can not suspend, try to wait */ - thread->refcount++; THREAD_LIST_UNLOCK(curthread); + /* Can not suspend, try to wait */ + THR_REF_ADD(curthread, thread); suspend_common(curthread, thread, 1); - THR_THREAD_UNLOCK(curthread, thread); - THREAD_LIST_LOCK(curthread); - _thr_ref_delete_unlocked(curthread, thread); + THR_REF_DEL(curthread, thread); + _thr_try_gc(curthread, thread); + /* thread lock released */ + + THREAD_LIST_RDLOCK(curthread); /* * Because we were blocked, things may have * been changed, we have to restart the @@ -127,8 +129,8 @@ suspend_common(struct pthread *curthread !(thread->flags & THR_FLAGS_SUSPENDED)) { thread->flags |= THR_FLAGS_NEED_SUSPEND; tmp = thread->cycle; - THR_THREAD_UNLOCK(curthread, thread); _thr_send_sig(thread, SIGCANCEL); + THR_THREAD_UNLOCK(curthread, thread); if (waitok) { _thr_umtx_wait_uint(&thread->cycle, tmp, NULL, 0); THR_THREAD_LOCK(curthread, thread); Modified: user/imp/tbemd/lib/msun/Makefile ============================================================================== --- user/imp/tbemd/lib/msun/Makefile Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/lib/msun/Makefile Mon Sep 13 15:19:49 2010 (r212557) @@ -14,8 +14,6 @@ .if ${MACHINE_CPUARCH} == "i386" ARCH_SUBDIR= i387 -.elif ${MACHINE_ARCH} == "powerpc64" -ARCH_SUBDIR= powerpc .else ARCH_SUBDIR= ${MACHINE_CPUARCH} .endif Modified: user/imp/tbemd/sbin/geom/class/cache/geom_cache.c ============================================================================== --- user/imp/tbemd/sbin/geom/class/cache/geom_cache.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/sbin/geom/class/cache/geom_cache.c Mon Sep 13 15:19:49 2010 (r212557) @@ -42,10 +42,8 @@ __FBSDID("$FreeBSD$"); uint32_t lib_version = G_LIB_VERSION; uint32_t version = G_CACHE_VERSION; -static intmax_t blocksize_label = 65536; -static intmax_t size_label = 100; -static intmax_t blocksize_configure = 0; -static intmax_t size_configure = 0; +#define GCACHE_BLOCKSIZE "65536" +#define GCACHE_SIZE "100" static void cache_main(struct gctl_req *req, unsigned flags); static void cache_clear(struct gctl_req *req); @@ -53,44 +51,44 @@ static void cache_dump(struct gctl_req * static void cache_label(struct gctl_req *req); struct g_command class_commands[] = { - { "clear", G_FLAG_VERBOSE, cache_main, G_NULL_OPTS, NULL, + { "clear", G_FLAG_VERBOSE, cache_main, G_NULL_OPTS, "[-v] prov ..." }, { "configure", G_FLAG_VERBOSE, NULL, { - { 'b', "blocksize", &blocksize_configure, G_TYPE_NUMBER }, - { 's', "size", &size_configure, G_TYPE_NUMBER }, + { 'b', "blocksize", "0", G_TYPE_NUMBER }, + { 's', "size", "0", G_TYPE_NUMBER }, G_OPT_SENTINEL }, - NULL, "[-v] [-b blocksize] [-s size] name" + "[-v] [-b blocksize] [-s size] name" }, { "create", G_FLAG_VERBOSE | G_FLAG_LOADKLD, NULL, { - { 'b', "blocksize", &blocksize_label, G_TYPE_NUMBER }, - { 's', "size", &size_label, G_TYPE_NUMBER }, + { 'b', "blocksize", GCACHE_BLOCKSIZE, G_TYPE_NUMBER }, + { 's', "size", GCACHE_SIZE, G_TYPE_NUMBER }, G_OPT_SENTINEL }, - NULL, "[-v] [-b blocksize] [-s size] name prov" + "[-v] [-b blocksize] [-s size] name prov" }, { "destroy", G_FLAG_VERBOSE, NULL, { { 'f', "force", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-fv] name ..." + "[-fv] name ..." }, - { "dump", 0, cache_main, G_NULL_OPTS, NULL, + { "dump", 0, cache_main, G_NULL_OPTS, "prov ..." }, { "label", G_FLAG_VERBOSE | G_FLAG_LOADKLD, cache_main, { - { 'b', "blocksize", &blocksize_label, G_TYPE_NUMBER }, - { 's', "size", &size_label, G_TYPE_NUMBER }, + { 'b', "blocksize", GCACHE_BLOCKSIZE, G_TYPE_NUMBER }, + { 's', "size", GCACHE_SIZE, G_TYPE_NUMBER }, G_OPT_SENTINEL }, - NULL, "[-v] [-b blocksize] [-s size] name prov" + "[-v] [-b blocksize] [-s size] name prov" }, - { "reset", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, NULL, + { "reset", G_FLAG_VERBOSE, NULL, G_NULL_OPTS, "[-v] name ..." }, { "stop", G_FLAG_VERBOSE, NULL, @@ -98,7 +96,7 @@ struct g_command class_commands[] = { { 'f', "force", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-fv] name ..." + "[-fv] name ..." }, G_CMD_SENTINEL }; Modified: user/imp/tbemd/sbin/geom/class/concat/geom_concat.c ============================================================================== --- user/imp/tbemd/sbin/geom/class/concat/geom_concat.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/sbin/geom/class/concat/geom_concat.c Mon Sep 13 15:19:49 2010 (r212557) @@ -51,20 +51,20 @@ static void concat_dump(struct gctl_req static void concat_label(struct gctl_req *req); struct g_command class_commands[] = { - { "clear", G_FLAG_VERBOSE, concat_main, G_NULL_OPTS, NULL, + { "clear", G_FLAG_VERBOSE, concat_main, G_NULL_OPTS, "[-v] prov ..." }, { "create", G_FLAG_VERBOSE | G_FLAG_LOADKLD, NULL, G_NULL_OPTS, - NULL, "[-v] name prov ..." + "[-v] name prov ..." }, { "destroy", G_FLAG_VERBOSE, NULL, { { 'f', "force", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-fv] name ..." + "[-fv] name ..." }, - { "dump", 0, concat_main, G_NULL_OPTS, NULL, + { "dump", 0, concat_main, G_NULL_OPTS, "prov ..." }, { "label", G_FLAG_VERBOSE | G_FLAG_LOADKLD, concat_main, @@ -72,14 +72,14 @@ struct g_command class_commands[] = { { 'h', "hardcode", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-hv] name prov ..." + "[-hv] name prov ..." }, { "stop", G_FLAG_VERBOSE, NULL, { { 'f', "force", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-fv] name ..." + "[-fv] name ..." }, G_CMD_SENTINEL }; Modified: user/imp/tbemd/sbin/geom/class/eli/geom_eli.c ============================================================================== --- user/imp/tbemd/sbin/geom/class/eli/geom_eli.c Mon Sep 13 14:25:07 2010 (r212556) +++ user/imp/tbemd/sbin/geom/class/eli/geom_eli.c Mon Sep 13 15:19:49 2010 (r212557) @@ -55,15 +55,7 @@ uint32_t lib_version = G_LIB_VERSION; uint32_t version = G_ELI_VERSION; #define GELI_BACKUP_DIR "/var/backups/" - -static char aalgo[] = "none"; -static char ealgo[] = "aes"; -static intmax_t keylen = 0; -static intmax_t keyno = -1; -static intmax_t iterations = -1; -static intmax_t sectorsize = 0; -static char keyfile[] = "", newkeyfile[] = ""; -static char backupfile[] = ""; +#define GELI_ENC_ALGO "aes" static void eli_main(struct gctl_req *req, unsigned flags); static void eli_init(struct gctl_req *req); @@ -101,43 +93,43 @@ static int eli_backup_create(struct gctl struct g_command class_commands[] = { { "init", G_FLAG_VERBOSE, eli_main, { - { 'a', "aalgo", aalgo, G_TYPE_STRING }, + { 'a', "aalgo", "", G_TYPE_STRING }, { 'b', "boot", NULL, G_TYPE_BOOL }, - { 'B', "backupfile", backupfile, G_TYPE_STRING }, - { 'e', "ealgo", ealgo, G_TYPE_STRING }, - { 'i', "iterations", &iterations, G_TYPE_NUMBER }, - { 'K', "newkeyfile", newkeyfile, G_TYPE_STRING }, - { 'l', "keylen", &keylen, G_TYPE_NUMBER }, + { 'B', "backupfile", "", G_TYPE_STRING }, + { 'e', "ealgo", GELI_ENC_ALGO, G_TYPE_STRING }, + { 'i', "iterations", "-1", G_TYPE_NUMBER }, + { 'K', "newkeyfile", "", G_TYPE_STRING }, + { 'l', "keylen", "0", G_TYPE_NUMBER }, { 'P', "nonewpassphrase", NULL, G_TYPE_BOOL }, - { 's', "sectorsize", §orsize, G_TYPE_NUMBER }, + { 's', "sectorsize", "0", G_TYPE_NUMBER }, G_OPT_SENTINEL }, - NULL, "[-bPv] [-a aalgo] [-B backupfile] [-e ealgo] [-i iterations] [-l keylen] [-K newkeyfile] [-s sectorsize] prov" + "[-bPv] [-a aalgo] [-B backupfile] [-e ealgo] [-i iterations] [-l keylen] [-K newkeyfile] [-s sectorsize] prov" }, { "label", G_FLAG_VERBOSE, eli_main, { - { 'a', "aalgo", aalgo, G_TYPE_STRING }, + { 'a', "aalgo", "", G_TYPE_STRING }, { 'b', "boot", NULL, G_TYPE_BOOL }, - { 'B', "backupfile", backupfile, G_TYPE_STRING }, - { 'e', "ealgo", ealgo, G_TYPE_STRING }, - { 'i', "iterations", &iterations, G_TYPE_NUMBER }, - { 'K', "newkeyfile", newkeyfile, G_TYPE_STRING }, - { 'l', "keylen", &keylen, G_TYPE_NUMBER }, + { 'B', "backupfile", "", G_TYPE_STRING }, + { 'e', "ealgo", GELI_ENC_ALGO, G_TYPE_STRING }, + { 'i', "iterations", "-1", G_TYPE_NUMBER }, + { 'K', "newkeyfile", "", G_TYPE_STRING }, + { 'l', "keylen", "0", G_TYPE_NUMBER }, { 'P', "nonewpassphrase", NULL, G_TYPE_BOOL }, - { 's', "sectorsize", §orsize, G_TYPE_NUMBER }, + { 's', "sectorsize", "0", G_TYPE_NUMBER }, G_OPT_SENTINEL }, - NULL, "- an alias for 'init'" + "- an alias for 'init'" }, { "attach", G_FLAG_VERBOSE | G_FLAG_LOADKLD, eli_main, { { 'd', "detach", NULL, G_TYPE_BOOL }, - { 'k', "keyfile", keyfile, G_TYPE_STRING }, + { 'k', "keyfile", "", G_TYPE_STRING }, { 'p', "nopassphrase", NULL, G_TYPE_BOOL }, { 'r', "readonly", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-dprv] [-k keyfile] prov" + "[-dprv] [-k keyfile] prov" }, { "detach", 0, NULL, { @@ -145,7 +137,7 @@ struct g_command class_commands[] = { { 'l', "last", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-fl] prov ..." + "[-fl] prov ..." }, { "stop", 0, NULL, { @@ -153,18 +145,18 @@ struct g_command class_commands[] = { { 'l', "last", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "- an alias for 'detach'" + "- an alias for 'detach'" }, { "onetime", G_FLAG_VERBOSE | G_FLAG_LOADKLD, NULL, { - { 'a', "aalgo", aalgo, G_TYPE_STRING }, + { 'a', "aalgo", "", G_TYPE_STRING }, { 'd', "detach", NULL, G_TYPE_BOOL }, - { 'e', "ealgo", ealgo, G_TYPE_STRING }, - { 'l', "keylen", &keylen, G_TYPE_NUMBER }, - { 's', "sectorsize", §orsize, G_TYPE_NUMBER }, + { 'e', "ealgo", GELI_ENC_ALGO, G_TYPE_STRING }, + { 'l', "keylen", "0", G_TYPE_NUMBER }, + { 's', "sectorsize", "0", G_TYPE_NUMBER }, G_OPT_SENTINEL }, - NULL, "[-d] [-a aalgo] [-e ealgo] [-l keylen] [-s sectorsize] prov" + "[-d] [-a aalgo] [-e ealgo] [-l keylen] [-s sectorsize] prov" }, { "configure", G_FLAG_VERBOSE, eli_main, { @@ -172,46 +164,46 @@ struct g_command class_commands[] = { { 'B', "noboot", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-bB] prov ..." + "[-bB] prov ..." }, { "setkey", G_FLAG_VERBOSE, eli_main, { - { 'i', "iterations", &iterations, G_TYPE_NUMBER }, - { 'k', "keyfile", keyfile, G_TYPE_STRING }, - { 'K', "newkeyfile", newkeyfile, G_TYPE_STRING }, - { 'n', "keyno", &keyno, G_TYPE_NUMBER }, + { 'i', "iterations", "-1", G_TYPE_NUMBER }, + { 'k', "keyfile", "", G_TYPE_STRING }, + { 'K', "newkeyfile", "", G_TYPE_STRING }, + { 'n', "keyno", "-1", G_TYPE_NUMBER }, { 'p', "nopassphrase", NULL, G_TYPE_BOOL }, { 'P', "nonewpassphrase", NULL, G_TYPE_BOOL }, G_OPT_SENTINEL }, - NULL, "[-pPv] [-n keyno] [-i iterations] [-k keyfile] [-K newkeyfile] prov" + "[-pPv] [-n keyno] [-i iterations] [-k keyfile] [-K newkeyfile] prov" }, { "delkey", G_FLAG_VERBOSE, eli_main, { { 'a', "all", NULL, G_TYPE_BOOL }, { 'f', "force", NULL, G_TYPE_BOOL }, - { 'n', "keyno", &keyno, G_TYPE_NUMBER }, + { 'n', "keyno", "-1", G_TYPE_NUMBER }, G_OPT_SENTINEL }, - NULL, "[-afv] [-n keyno] prov" + "[-afv] [-n keyno] prov" }, { "kill", G_FLAG_VERBOSE, eli_main, { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 16:43:42 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3D313106564A; Mon, 13 Sep 2010 16:43:42 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2BD6B8FC14; Mon, 13 Sep 2010 16:43:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8DGhggs015585; Mon, 13 Sep 2010 16:43:42 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8DGhggZ015581; Mon, 13 Sep 2010 16:43:42 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009131643.o8DGhggZ015581@svn.freebsd.org> From: Warner Losh Date: Mon, 13 Sep 2010 16:43:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212561 - in user/imp/tbemd: contrib/top sys/mips/conf sys/powerpc/powerpc X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 16:43:42 -0000 Author: imp Date: Mon Sep 13 16:43:41 2010 New Revision: 212561 URL: http://svn.freebsd.org/changeset/base/212561 Log: Merge from head @r212560 Modified: user/imp/tbemd/sys/mips/conf/MALTA64 user/imp/tbemd/sys/mips/conf/OCTEON1 user/imp/tbemd/sys/powerpc/powerpc/mp_machdep.c Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/contrib/bind9/ (props changed) user/imp/tbemd/contrib/ee/ (props changed) user/imp/tbemd/contrib/expat/ (props changed) user/imp/tbemd/contrib/file/ (props changed) user/imp/tbemd/contrib/gdb/ (props changed) user/imp/tbemd/contrib/gdtoa/ (props changed) user/imp/tbemd/contrib/gnu-sort/ (props changed) user/imp/tbemd/contrib/groff/ (props changed) user/imp/tbemd/contrib/less/ (props changed) user/imp/tbemd/contrib/libpcap/ (props changed) user/imp/tbemd/contrib/llvm/ (props changed) user/imp/tbemd/contrib/llvm/tools/clang/ (props changed) user/imp/tbemd/contrib/ncurses/ (props changed) user/imp/tbemd/contrib/netcat/ (props changed) user/imp/tbemd/contrib/ntp/ (props changed) user/imp/tbemd/contrib/one-true-awk/ (props changed) user/imp/tbemd/contrib/openbsm/ (props changed) user/imp/tbemd/contrib/openpam/ (props changed) user/imp/tbemd/contrib/pf/ (props changed) user/imp/tbemd/contrib/sendmail/ (props changed) user/imp/tbemd/contrib/tcpdump/ (props changed) user/imp/tbemd/contrib/tcsh/ (props changed) user/imp/tbemd/contrib/top/ (props changed) user/imp/tbemd/contrib/top/install-sh (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/contrib/wpa/ (props changed) user/imp/tbemd/crypto/openssh/ (props changed) user/imp/tbemd/crypto/openssl/ (props changed) user/imp/tbemd/lib/libc/ (props changed) user/imp/tbemd/lib/libc/stdtime/ (props changed) user/imp/tbemd/lib/libutil/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sbin/ (props changed) user/imp/tbemd/sbin/ipfw/ (props changed) user/imp/tbemd/share/zoneinfo/ (props changed) user/imp/tbemd/sys/ (props changed) user/imp/tbemd/sys/amd64/include/xen/ (props changed) user/imp/tbemd/sys/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/sys/contrib/dev/acpica/ (props changed) user/imp/tbemd/sys/contrib/pf/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) user/imp/tbemd/sys/dev/xen/xenpci/ (props changed) user/imp/tbemd/usr.bin/calendar/ (props changed) user/imp/tbemd/usr.bin/csup/ (props changed) user/imp/tbemd/usr.bin/procstat/ (props changed) user/imp/tbemd/usr.sbin/zic/ (props changed) Modified: user/imp/tbemd/sys/mips/conf/MALTA64 ============================================================================== --- user/imp/tbemd/sys/mips/conf/MALTA64 Mon Sep 13 16:39:33 2010 (r212560) +++ user/imp/tbemd/sys/mips/conf/MALTA64 Mon Sep 13 16:43:41 2010 (r212561) @@ -21,7 +21,6 @@ ident MALTA makeoptions ARCH_FLAGS="-march=mips64 -mabi=64" makeoptions MIPS_LITTLE_ENDIAN=defined -makeoptions TARGET_64BIT=t makeoptions LDSCRIPT_NAME= ldscript.mips.mips64 options YAMON Modified: user/imp/tbemd/sys/mips/conf/OCTEON1 ============================================================================== --- user/imp/tbemd/sys/mips/conf/OCTEON1 Mon Sep 13 16:39:33 2010 (r212560) +++ user/imp/tbemd/sys/mips/conf/OCTEON1 Mon Sep 13 16:43:41 2010 (r212561) @@ -34,7 +34,6 @@ makeoptions LDSCRIPT_NAME=ldscript.mips. # Don't build any modules yet. makeoptions MODULES_OVERRIDE="" makeoptions TARGET_BIG_ENDIAN=defined -makeoptions TARGET_64BIT=defined makeoptions KERNLOADADDR=0xffffffff80100000 include "../cavium/std.octeon1" Modified: user/imp/tbemd/sys/powerpc/powerpc/mp_machdep.c ============================================================================== --- user/imp/tbemd/sys/powerpc/powerpc/mp_machdep.c Mon Sep 13 16:39:33 2010 (r212560) +++ user/imp/tbemd/sys/powerpc/powerpc/mp_machdep.c Mon Sep 13 16:43:41 2010 (r212561) @@ -94,9 +94,6 @@ machdep_ap_bootstrap(void) /* Start per-CPU event timers. */ cpu_initclocks_ap(); - /* Let the DEC and external interrupts go */ - mtmsr(mfmsr() | PSL_EE); - /* Announce ourselves awake, and enter the scheduler */ sched_throw(NULL); } From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 18:26:32 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E820B106564A; Mon, 13 Sep 2010 18:26:32 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D7D328FC15; Mon, 13 Sep 2010 18:26:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8DIQWlu023328; Mon, 13 Sep 2010 18:26:32 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8DIQWrL023326; Mon, 13 Sep 2010 18:26:32 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009131826.o8DIQWrL023326@svn.freebsd.org> From: Weongyo Jeong Date: Mon, 13 Sep 2010 18:26:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212569 - user/weongyo/usb/sys/dev/usb/controller X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 18:26:33 -0000 Author: weongyo Date: Mon Sep 13 18:26:32 2010 New Revision: 212569 URL: http://svn.freebsd.org/changeset/base/212569 Log: Don't need to hold Giant again at attach because it's already hold from the bus driver. Instead of holding it adds a assert. Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Mon Sep 13 17:53:43 2010 (r212568) +++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Mon Sep 13 18:26:32 2010 (r212569) @@ -394,10 +394,9 @@ usb_attach_sub(device_t dev, struct usb_ { const char *pname = device_get_nameunit(dev); - mtx_lock(&Giant); + GIANT_REQUIRED; if (usb_devclass_ptr == NULL) usb_devclass_ptr = devclass_find("usbus"); - mtx_unlock(&Giant); /* Initialise USB explore taskqueue and tasks */ bus->explore_tq = taskqueue_create("usb_explore_taskq", M_WAITOK, From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 18:32:50 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 13AE91065675; Mon, 13 Sep 2010 18:32:50 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 037518FC0A; Mon, 13 Sep 2010 18:32:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8DIWnM7023942; Mon, 13 Sep 2010 18:32:49 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8DIWnHV023940; Mon, 13 Sep 2010 18:32:49 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009131832.o8DIWnHV023940@svn.freebsd.org> From: Weongyo Jeong Date: Mon, 13 Sep 2010 18:32:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212571 - user/weongyo/usb/sys/dev/usb/controller X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 18:32:50 -0000 Author: weongyo Date: Mon Sep 13 18:32:49 2010 New Revision: 212571 URL: http://svn.freebsd.org/changeset/base/212571 Log: Adds a XXX comment not sure that devclass_find(9) requires Giant holding. Just looking the source code it looks it doesn't require it though it has a `devclasses' traversal loop. Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Mon Sep 13 18:26:34 2010 (r212570) +++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Mon Sep 13 18:32:49 2010 (r212571) @@ -394,6 +394,7 @@ usb_attach_sub(device_t dev, struct usb_ { const char *pname = device_get_nameunit(dev); + /* XXX devclass_find(9) needs Giant? */ GIANT_REQUIRED; if (usb_devclass_ptr == NULL) usb_devclass_ptr = devclass_find("usbus"); From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 20:06:52 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B61061065673; Mon, 13 Sep 2010 20:06:52 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A5FE88FC19; Mon, 13 Sep 2010 20:06:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8DK6qXb029386; Mon, 13 Sep 2010 20:06:52 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8DK6q98029384; Mon, 13 Sep 2010 20:06:52 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009132006.o8DK6q98029384@svn.freebsd.org> From: Weongyo Jeong Date: Mon, 13 Sep 2010 20:06:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212581 - user/weongyo/usb/sys/dev/usb/serial X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 20:06:52 -0000 Author: weongyo Date: Mon Sep 13 20:06:52 2010 New Revision: 212581 URL: http://svn.freebsd.org/changeset/base/212581 Log: Removes unused variable, sc_last_start_xfer. Modified: user/weongyo/usb/sys/dev/usb/serial/usb_serial.h Modified: user/weongyo/usb/sys/dev/usb/serial/usb_serial.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/serial/usb_serial.h Mon Sep 13 19:58:46 2010 (r212580) +++ user/weongyo/usb/sys/dev/usb/serial/usb_serial.h Mon Sep 13 20:06:52 2010 (r212581) @@ -121,8 +121,6 @@ struct ucom_callback { struct ucom_softc { struct cv sc_cv; - /* Used to set "UCOM_FLAG_GP_DATA" flag: */ - struct usb_proc_msg *sc_last_start_xfer; const struct ucom_callback *sc_callback; struct tty *sc_tty; struct mtx *sc_mtx; From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 20:11:18 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9A7DA1065672; Mon, 13 Sep 2010 20:11:18 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8A37A8FC26; Mon, 13 Sep 2010 20:11:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8DKBI3I029584; Mon, 13 Sep 2010 20:11:18 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8DKBIUG029582; Mon, 13 Sep 2010 20:11:18 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009132011.o8DKBIUG029582@svn.freebsd.org> From: Weongyo Jeong Date: Mon, 13 Sep 2010 20:11:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212582 - user/weongyo/usb/sys/dev/usb/serial X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 20:11:18 -0000 Author: weongyo Date: Mon Sep 13 20:11:18 2010 New Revision: 212582 URL: http://svn.freebsd.org/changeset/base/212582 Log: style(9) Modified: user/weongyo/usb/sys/dev/usb/serial/usb_serial.h Modified: user/weongyo/usb/sys/dev/usb/serial/usb_serial.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/serial/usb_serial.h Mon Sep 13 20:06:52 2010 (r212581) +++ user/weongyo/usb/sys/dev/usb/serial/usb_serial.h Mon Sep 13 20:11:18 2010 (r212582) @@ -89,7 +89,8 @@ struct thread; * while it is open! */ struct ucom_callback { - void (*ucom_cfg_get_status) (struct ucom_softc *, uint8_t *plsr, uint8_t *pmsr); + void (*ucom_cfg_get_status) (struct ucom_softc *, uint8_t *, + uint8_t *); void (*ucom_cfg_set_dtr) (struct ucom_softc *, uint8_t); void (*ucom_cfg_set_rts) (struct ucom_softc *, uint8_t); void (*ucom_cfg_set_break) (struct ucom_softc *, uint8_t); @@ -99,12 +100,14 @@ struct ucom_callback { void (*ucom_cfg_close) (struct ucom_softc *); int (*ucom_pre_open) (struct ucom_softc *); int (*ucom_pre_param) (struct ucom_softc *, struct termios *); - int (*ucom_ioctl) (struct ucom_softc *, uint32_t, caddr_t, int, struct thread *); + int (*ucom_ioctl) (struct ucom_softc *, uint32_t, caddr_t, int, + struct thread *); void (*ucom_start_read) (struct ucom_softc *); void (*ucom_stop_read) (struct ucom_softc *); void (*ucom_start_write) (struct ucom_softc *); void (*ucom_stop_write) (struct ucom_softc *); - void (*ucom_tty_name) (struct ucom_softc *, char *pbuf, uint16_t buflen, uint16_t local_subunit); + void (*ucom_tty_name) (struct ucom_softc *, char *, uint16_t, + uint16_t); void (*ucom_poll) (struct ucom_softc *); }; From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 22:27:52 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DE07C106564A; Mon, 13 Sep 2010 22:27:52 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C1BBD8FC08; Mon, 13 Sep 2010 22:27:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8DMRql7036977; Mon, 13 Sep 2010 22:27:52 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8DMRqn3036970; Mon, 13 Sep 2010 22:27:52 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009132227.o8DMRqn3036970@svn.freebsd.org> From: Weongyo Jeong Date: Mon, 13 Sep 2010 22:27:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212584 - in user/weongyo/usb/sys/dev/usb: . controller X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 22:27:53 -0000 Author: weongyo Date: Mon Sep 13 22:27:52 2010 New Revision: 212584 URL: http://svn.freebsd.org/changeset/base/212584 Log: `struct usb_process' for giant_callback_proc, non_giant_callback_proc and control_xfer_proc are changed to taskqueue(9) based implmentation. From this point AFAIK there's no consumers to use usb_process.[ch] files so as further works it'll be removed. Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c user/weongyo/usb/sys/dev/usb/usb_bus.h user/weongyo/usb/sys/dev/usb/usb_device.c user/weongyo/usb/sys/dev/usb/usb_device.h user/weongyo/usb/sys/dev/usb/usb_transfer.c user/weongyo/usb/sys/dev/usb/usb_transfer.h Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Mon Sep 13 20:29:09 2010 (r212583) +++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Mon Sep 13 22:27:52 2010 (r212584) @@ -173,17 +173,12 @@ usb_detach(device_t dev) taskqueue_enqueue(bus->explore_tq, &bus->detach_task); taskqueue_drain(bus->explore_tq, &bus->detach_task); - /* Get rid of USB callback processes */ - - usb_proc_free(&bus->giant_callback_proc); - usb_proc_free(&bus->non_giant_callback_proc); - + /* Get rid of USB taskqueues */ + taskqueue_free(bus->giant_callback_tq); + taskqueue_free(bus->non_giant_callback_tq); + taskqueue_free(bus->control_xfer_tq); taskqueue_free(bus->explore_tq); - /* Get rid of control transfer process */ - - usb_proc_free(&bus->control_xfer_proc); - return (0); } @@ -214,9 +209,9 @@ usb_bus_explore(void *arg, int npending) * The following three lines of code are only here to * recover from DDB: */ - usb_proc_rewakeup(&bus->control_xfer_proc); - usb_proc_rewakeup(&bus->giant_callback_proc); - usb_proc_rewakeup(&bus->non_giant_callback_proc); + taskqueue_unblock(bus->control_xfer_tq); + taskqueue_unblock(bus->giant_callback_tq); + taskqueue_unblock(bus->non_giant_callback_tq); #endif USB_BUS_UNLOCK(bus); @@ -412,27 +407,26 @@ usb_attach_sub(device_t dev, struct usb_ TASK_INIT(&bus->detach_task, 0, usb_bus_detach, bus); TASK_INIT(&bus->explore_task, 0, usb_bus_explore, bus); - /* Create USB explore and callback processes */ - - if (usb_proc_create(&bus->giant_callback_proc, - &bus->bus_mtx, pname, USB_PRI_MED)) { - printf("WARNING: Creation of USB Giant " - "callback process failed.\n"); - } else if (usb_proc_create(&bus->non_giant_callback_proc, - &bus->bus_mtx, pname, USB_PRI_HIGH)) { - printf("WARNING: Creation of USB non-Giant " - "callback process failed.\n"); - } else if (usb_proc_create(&bus->control_xfer_proc, - &bus->bus_mtx, pname, USB_PRI_MED)) { - printf("WARNING: Creation of USB control transfer " - "process failed.\n"); - } else { - /* Get final attach going */ - taskqueue_enqueue(bus->explore_tq, &bus->attach_task); - - /* Do initial explore */ - usb_needs_explore(bus, 1); - } + /* Creates USB taskqueues for callback and control transfer */ + bus->giant_callback_tq = taskqueue_create("usb_giant_callback_taskq", + M_WAITOK, taskqueue_thread_enqueue, &bus->giant_callback_tq); + bus->non_giant_callback_tq = + taskqueue_create("usb_non_giant_callback_taskq", M_WAITOK, + taskqueue_thread_enqueue, &bus->non_giant_callback_tq); + bus->control_xfer_tq = taskqueue_create("usb_ctrlxfer_taskq", M_WAITOK, + taskqueue_thread_enqueue, &bus->control_xfer_tq); + /* Creates taskqueue threads */ + taskqueue_start_threads(&bus->giant_callback_tq, 1, USB_PRI_MED, + "%s giant callback taskq", pname); + taskqueue_start_threads(&bus->non_giant_callback_tq, 1, USB_PRI_HIGH, + "%s non giant callback taskq", pname); + taskqueue_start_threads(&bus->control_xfer_tq, 1, USB_PRI_MED, + "%s control xfer taskq", pname); + + /* Get final attach going */ + taskqueue_enqueue(bus->explore_tq, &bus->attach_task); + /* Do initial explore */ + usb_needs_explore(bus, 1); } SYSUNINIT(usb_bus_unload, SI_SUB_KLD, SI_ORDER_ANY, usb_bus_unload, NULL); Modified: user/weongyo/usb/sys/dev/usb/usb_bus.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_bus.h Mon Sep 13 20:29:09 2010 (r212583) +++ user/weongyo/usb/sys/dev/usb/usb_bus.h Mon Sep 13 22:27:52 2010 (r212584) @@ -55,15 +55,14 @@ struct usb_bus { struct usb_bus_stat stats_ok; struct root_hold_token *bus_roothold; /* - * There are two callback processes. One for Giant locked + * There are two taskqueues for callback. One for Giant locked * callbacks. One for non-Giant locked callbacks. This should * avoid congestion and reduce response time in most cases. */ - struct usb_process giant_callback_proc; - struct usb_process non_giant_callback_proc; - - /* Control request process */ - struct usb_process control_xfer_proc; + struct taskqueue *giant_callback_tq; + struct taskqueue *non_giant_callback_tq; + /* Control request taskqueue */ + struct taskqueue *control_xfer_tq; /* Explore taskqueue */ struct taskqueue *explore_tq; Modified: user/weongyo/usb/sys/dev/usb/usb_device.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_device.c Mon Sep 13 20:29:09 2010 (r212583) +++ user/weongyo/usb/sys/dev/usb/usb_device.c Mon Sep 13 22:27:52 2010 (r212584) @@ -89,7 +89,7 @@ static void usb_init_attach_arg(struct u struct usb_attach_arg *); static void usb_suspend_resume_sub(struct usb_device *, device_t, uint8_t); -static void usbd_clear_stall_proc(struct usb_proc_msg *_pm); +static void usbd_clear_stall_proc(void *, int); usb_error_t usb_config_parse(struct usb_device *, uint8_t, uint8_t); static void usbd_set_device_strings(struct usb_device *); #if USB_HAVE_UGEN @@ -1437,21 +1437,15 @@ usb_suspend_resume(struct usb_device *ud * This function performs generic USB clear stall operations. *------------------------------------------------------------------------*/ static void -usbd_clear_stall_proc(struct usb_proc_msg *_pm) +usbd_clear_stall_proc(void *arg, int npending) { - struct usb_clear_stall_msg *pm = (void *)_pm; - struct usb_device *udev = pm->udev; + struct usb_device *udev = arg; - /* Change lock */ - USB_BUS_UNLOCK(udev->bus); mtx_lock(&udev->device_mtx); - /* Start clear stall callback */ usbd_transfer_start(udev->ctrl_xfer[1]); - /* Change lock */ mtx_unlock(&udev->device_mtx); - USB_BUS_LOCK(udev->bus); } /*------------------------------------------------------------------------* @@ -1529,10 +1523,7 @@ usb_alloc_device(device_t parent_dev, st mtx_init(&udev->device_mtx, "USB device mutex", NULL, MTX_DEF); /* initialise generic clear stall */ - udev->cs_msg[0].hdr.pm_callback = &usbd_clear_stall_proc; - udev->cs_msg[0].udev = udev; - udev->cs_msg[1].hdr.pm_callback = &usbd_clear_stall_proc; - udev->cs_msg[1].udev = udev; + TASK_INIT(&udev->cs_task, 0, usbd_clear_stall_proc, udev); /* initialise some USB device fields */ udev->parent_hub = parent_hub; @@ -2058,10 +2049,7 @@ usb_free_device(struct usb_device *udev, * Make sure that our clear-stall messages are not queued * anywhere: */ - USB_BUS_LOCK(udev->bus); - usb_proc_mwait(&udev->bus->non_giant_callback_proc, - &udev->cs_msg[0], &udev->cs_msg[1]); - USB_BUS_UNLOCK(udev->bus); + taskqueue_drain(udev->bus->non_giant_callback_tq, &udev->cs_task); sx_destroy(&udev->ctrl_sx); sx_destroy(&udev->enum_sx); Modified: user/weongyo/usb/sys/dev/usb/usb_device.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_device.h Mon Sep 13 20:29:09 2010 (r212583) +++ user/weongyo/usb/sys/dev/usb/usb_device.h Mon Sep 13 22:27:52 2010 (r212584) @@ -27,6 +27,8 @@ #ifndef _USB_DEVICE_H_ #define _USB_DEVICE_H_ +#include + struct usb_symlink; /* UGEN */ struct usb_device; /* linux compat */ @@ -43,11 +45,6 @@ struct usb_device; /* linux compat */ #define USB_UNCFG_FLAG_NONE 0x00 #define USB_UNCFG_FLAG_FREE_EP0 0x02 /* endpoint zero is freed */ -struct usb_clear_stall_msg { - struct usb_proc_msg hdr; - struct usb_device *udev; -}; - /* The following four structures makes up a tree, where we have the * leaf structure, "usb_host_endpoint", first, and the root structure, * "usb_device", last. The four structures below mirror the structure @@ -111,8 +108,8 @@ struct usb_power_save { * these structures for every USB device. */ struct usb_device { - struct usb_clear_stall_msg cs_msg[2]; /* generic clear stall - * messages */ + struct task cs_task; /* generic clear stall messages */ + struct sx ctrl_sx; struct sx enum_sx; struct sx sr_sx; Modified: user/weongyo/usb/sys/dev/usb/usb_transfer.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_transfer.c Mon Sep 13 20:29:09 2010 (r212583) +++ user/weongyo/usb/sys/dev/usb/usb_transfer.c Mon Sep 13 22:27:52 2010 (r212584) @@ -106,7 +106,7 @@ static void usbd_update_max_frame_size(s static void usbd_transfer_unsetup_sub(struct usb_xfer_root *, uint8_t); static void usbd_control_transfer_init(struct usb_xfer *); static int usbd_setup_ctrl_transfer(struct usb_xfer *); -static void usb_callback_proc(struct usb_proc_msg *); +static void usb_callback_proc(void *, int); static void usbd_callback_ss_done_defer(struct usb_xfer *); static void usbd_callback_wrapper(struct usb_xfer_queue *); static void usb_dma_delay_done_cb(void *); @@ -843,10 +843,7 @@ usbd_transfer_setup(struct usb_device *u TAILQ_INIT(&info->dma_q.head); info->dma_q.command = &usb_bdma_work_loop; #endif - info->done_m[0].hdr.pm_callback = &usb_callback_proc; - info->done_m[0].xroot = info; - info->done_m[1].hdr.pm_callback = &usb_callback_proc; - info->done_m[1].xroot = info; + TASK_INIT(&info->done_task, 0, usb_callback_proc, info); /* * In device side mode control endpoint @@ -855,14 +852,12 @@ usbd_transfer_setup(struct usb_device *u * deadlock! */ if (setup_start == usb_control_ep_cfg) - info->done_p = - &udev->bus->control_xfer_proc; + info->done_tq = udev->bus->control_xfer_tq; else if (xfer_mtx == &Giant) - info->done_p = - &udev->bus->giant_callback_proc; + info->done_tq = udev->bus->giant_callback_tq; else - info->done_p = - &udev->bus->non_giant_callback_proc; + info->done_tq = + udev->bus->non_giant_callback_tq; } /* reset sizes */ @@ -1105,11 +1100,11 @@ usbd_transfer_unsetup_sub(struct usb_xfe } } - /* make sure that our done messages are not queued anywhere */ - usb_proc_mwait(info->done_p, &info->done_m[0], &info->done_m[1]); - USB_BUS_UNLOCK(info->bus); + /* make sure that our done messages are not queued anywhere */ + taskqueue_drain(info->done_tq, &info->done_task); + #if USB_HAVE_BUSDMA /* free DMA'able memory, if any */ pc = info->dma_page_cache_start; @@ -1992,13 +1987,9 @@ usbd_xfer_set_frame_len(struct usb_xfer * This function performs USB callbacks. *------------------------------------------------------------------------*/ static void -usb_callback_proc(struct usb_proc_msg *_pm) +usb_callback_proc(void *arg, int npending) { - struct usb_done_msg *pm = (void *)_pm; - struct usb_xfer_root *info = pm->xroot; - - /* Change locking order */ - USB_BUS_UNLOCK(info->bus); + struct usb_xfer_root *info = arg; /* * We exploit the fact that the mutex is the same for all @@ -2012,6 +2003,7 @@ usb_callback_proc(struct usb_proc_msg *_ info->done_q.curr); mtx_unlock(info->xfer_mtx); + USB_BUS_UNLOCK(info->bus); } /*------------------------------------------------------------------------* @@ -2038,10 +2030,7 @@ usbd_callback_ss_done_defer(struct usb_x * will have a Lock Order Reversal, LOR, if we try to * proceed ! */ - if (usb_proc_msignal(info->done_p, - &info->done_m[0], &info->done_m[1])) { - /* ignore */ - } + taskqueue_enqueue(info->done_tq, &info->done_task); } else { /* clear second recurse flag */ pq->recurse_2 = 0; @@ -2078,10 +2067,7 @@ usbd_callback_wrapper(struct usb_xfer_qu * will have a Lock Order Reversal, LOR, if we try to * proceed ! */ - if (usb_proc_msignal(info->done_p, - &info->done_m[0], &info->done_m[1])) { - /* ignore */ - } + taskqueue_enqueue(info->done_tq, &info->done_task); return; } /* @@ -2441,9 +2427,9 @@ usbd_pipe_start(struct usb_xfer_queue *p udev, NULL, ep, &did_stall); } else if (udev->ctrl_xfer[1]) { info = udev->ctrl_xfer[1]->xroot; - usb_proc_msignal( - &info->bus->non_giant_callback_proc, - &udev->cs_msg[0], &udev->cs_msg[1]); + taskqueue_enqueue( + info->bus->non_giant_callback_tq, + &udev->cs_task); } else { /* should not happen */ DPRINTFN(0, "No stall handler\n"); @@ -2958,7 +2944,7 @@ usbd_transfer_poll(struct usb_xfer **ppx struct usb_xfer *xfer; struct usb_xfer_root *xroot; struct usb_device *udev; - struct usb_proc_msg *pm; + struct task *task; uint16_t n; uint16_t drop_bus; uint16_t drop_xfer; @@ -2996,33 +2982,28 @@ usbd_transfer_poll(struct usb_xfer **ppx } /* Make sure cv_signal() and cv_broadcast() is not called */ - udev->bus->control_xfer_proc.up_msleep = 0; + taskqueue_block(udev->bus->giant_callback_tq); + taskqueue_block(udev->bus->non_giant_callback_tq); + taskqueue_block(udev->bus->control_xfer_tq); taskqueue_block(udev->bus->explore_tq); - udev->bus->giant_callback_proc.up_msleep = 0; - udev->bus->non_giant_callback_proc.up_msleep = 0; /* poll USB hardware */ (udev->bus->methods->xfer_poll) (udev->bus); - USB_BUS_LOCK(xroot->bus); - /* check for clear stall */ if (udev->ctrl_xfer[1] != NULL) { /* poll clear stall start */ - pm = &udev->cs_msg[0].hdr; - (pm->pm_callback) (pm); + task = &udev->cs_task; + task->ta_func(task->ta_context, task->ta_pending); /* poll clear stall done thread */ - pm = &udev->ctrl_xfer[1]-> - xroot->done_m[0].hdr; - (pm->pm_callback) (pm); + task = &udev->ctrl_xfer[1]->xroot->done_task; + task->ta_func(task->ta_context, task->ta_pending); } /* poll done thread */ - pm = &xroot->done_m[0].hdr; - (pm->pm_callback) (pm); - - USB_BUS_UNLOCK(xroot->bus); + task = &xroot->done_task; + task->ta_func(task->ta_context, task->ta_pending); /* restore transfer mutex */ while (drop_xfer--) Modified: user/weongyo/usb/sys/dev/usb/usb_transfer.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_transfer.h Mon Sep 13 20:29:09 2010 (r212583) +++ user/weongyo/usb/sys/dev/usb/usb_transfer.h Mon Sep 13 22:27:52 2010 (r212584) @@ -27,14 +27,7 @@ #ifndef _USB_TRANSFER_H_ #define _USB_TRANSFER_H_ -/* - * The following structure defines the messages that is used to signal - * the "done_p" USB process. - */ -struct usb_done_msg { - struct usb_proc_msg hdr; - struct usb_xfer_root *xroot; -}; +#include #define USB_DMATAG_TO_XROOT(dpt) \ ((struct usb_xfer_root *)( \ @@ -52,10 +45,10 @@ struct usb_xfer_root { struct usb_xfer_queue dma_q; #endif struct usb_xfer_queue done_q; - struct usb_done_msg done_m[2]; + struct taskqueue *done_tq; /* pointer to callback taskqueue */ + struct task done_task; struct cv cv_drain; - struct usb_process *done_p; /* pointer to callback process */ void *memory_base; struct mtx *xfer_mtx; /* cannot be changed during operation */ #if USB_HAVE_BUSDMA From owner-svn-src-user@FreeBSD.ORG Mon Sep 13 22:40:10 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DD4F9106564A; Mon, 13 Sep 2010 22:40:10 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CB0858FC18; Mon, 13 Sep 2010 22:40:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8DMeAIp037946; Mon, 13 Sep 2010 22:40:10 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8DMeAi5037907; Mon, 13 Sep 2010 22:40:10 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009132240.o8DMeAi5037907@svn.freebsd.org> From: Weongyo Jeong Date: Mon, 13 Sep 2010 22:40:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212585 - in user/weongyo/usb/sys/dev/usb: . controller template X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 22:40:10 -0000 Author: weongyo Date: Mon Sep 13 22:40:10 2010 New Revision: 212585 URL: http://svn.freebsd.org/changeset/base/212585 Log: Removes usb_process.[ch] not used anymore at USB stack. All are replaced with taskqueue(9). While I'm here, usbd_do_request_proc() API is also removed. Deleted: user/weongyo/usb/sys/dev/usb/usb_process.c user/weongyo/usb/sys/dev/usb/usb_process.h Modified: user/weongyo/usb/sys/dev/usb/controller/at91dci.c user/weongyo/usb/sys/dev/usb/controller/at91dci_atmelarm.c user/weongyo/usb/sys/dev/usb/controller/atmegadci.c user/weongyo/usb/sys/dev/usb/controller/atmegadci_atmelarm.c user/weongyo/usb/sys/dev/usb/controller/avr32dci.c user/weongyo/usb/sys/dev/usb/controller/ehci.c user/weongyo/usb/sys/dev/usb/controller/ehci_ixp4xx.c user/weongyo/usb/sys/dev/usb/controller/ehci_mv.c user/weongyo/usb/sys/dev/usb/controller/ehci_pci.c user/weongyo/usb/sys/dev/usb/controller/musb_otg.c user/weongyo/usb/sys/dev/usb/controller/musb_otg_atmelarm.c user/weongyo/usb/sys/dev/usb/controller/ohci.c user/weongyo/usb/sys/dev/usb/controller/ohci_atmelarm.c user/weongyo/usb/sys/dev/usb/controller/ohci_pci.c user/weongyo/usb/sys/dev/usb/controller/ohci_s3c24x0.c user/weongyo/usb/sys/dev/usb/controller/uhci.c user/weongyo/usb/sys/dev/usb/controller/uhci_pci.c user/weongyo/usb/sys/dev/usb/controller/usb_controller.c user/weongyo/usb/sys/dev/usb/controller/uss820dci.c user/weongyo/usb/sys/dev/usb/controller/uss820dci_atmelarm.c user/weongyo/usb/sys/dev/usb/template/usb_template.c user/weongyo/usb/sys/dev/usb/usb_bus.h user/weongyo/usb/sys/dev/usb/usb_busdma.c user/weongyo/usb/sys/dev/usb/usb_compat_linux.c user/weongyo/usb/sys/dev/usb/usb_debug.c user/weongyo/usb/sys/dev/usb/usb_dev.c user/weongyo/usb/sys/dev/usb/usb_device.c user/weongyo/usb/sys/dev/usb/usb_dynamic.c user/weongyo/usb/sys/dev/usb/usb_generic.c user/weongyo/usb/sys/dev/usb/usb_handle_request.c user/weongyo/usb/sys/dev/usb/usb_hid.c user/weongyo/usb/sys/dev/usb/usb_hub.c user/weongyo/usb/sys/dev/usb/usb_msctest.c user/weongyo/usb/sys/dev/usb/usb_request.c user/weongyo/usb/sys/dev/usb/usb_transfer.c user/weongyo/usb/sys/dev/usb/usb_util.c user/weongyo/usb/sys/dev/usb/usbdi.h user/weongyo/usb/sys/dev/usb/usbdi_util.h Modified: user/weongyo/usb/sys/dev/usb/controller/at91dci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/at91dci.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/at91dci.c Mon Sep 13 22:40:10 2010 (r212585) @@ -72,7 +72,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/at91dci_atmelarm.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/at91dci_atmelarm.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/at91dci_atmelarm.c Mon Sep 13 22:40:10 2010 (r212585) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/atmegadci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/atmegadci.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/atmegadci.c Mon Sep 13 22:40:10 2010 (r212585) @@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/atmegadci_atmelarm.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/atmegadci_atmelarm.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/atmegadci_atmelarm.c Mon Sep 13 22:40:10 2010 (r212585) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/avr32dci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/avr32dci.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/avr32dci.c Mon Sep 13 22:40:10 2010 (r212585) @@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/ehci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ehci.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/ehci.c Mon Sep 13 22:40:10 2010 (r212585) @@ -74,7 +74,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/ehci_ixp4xx.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ehci_ixp4xx.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/ehci_ixp4xx.c Mon Sep 13 22:40:10 2010 (r212585) @@ -56,7 +56,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/ehci_mv.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ehci_mv.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/ehci_mv.c Mon Sep 13 22:40:10 2010 (r212585) @@ -66,7 +66,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/ehci_pci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ehci_pci.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/ehci_pci.c Mon Sep 13 22:40:10 2010 (r212585) @@ -70,7 +70,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/musb_otg.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/musb_otg.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/musb_otg.c Mon Sep 13 22:40:10 2010 (r212585) @@ -64,7 +64,6 @@ #include #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/musb_otg_atmelarm.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/musb_otg_atmelarm.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/musb_otg_atmelarm.c Mon Sep 13 22:40:10 2010 (r212585) @@ -49,7 +49,6 @@ #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/ohci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ohci.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/ohci.c Mon Sep 13 22:40:10 2010 (r212585) @@ -63,7 +63,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/ohci_atmelarm.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ohci_atmelarm.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/ohci_atmelarm.c Mon Sep 13 22:40:10 2010 (r212585) @@ -50,7 +50,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/ohci_pci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ohci_pci.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/ohci_pci.c Mon Sep 13 22:40:10 2010 (r212585) @@ -67,7 +67,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/ohci_s3c24x0.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/ohci_s3c24x0.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/ohci_s3c24x0.c Mon Sep 13 22:40:10 2010 (r212585) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/uhci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/uhci.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/uhci.c Mon Sep 13 22:40:10 2010 (r212585) @@ -66,7 +66,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/uhci_pci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/uhci_pci.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/uhci_pci.c Mon Sep 13 22:40:10 2010 (r212585) @@ -66,7 +66,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Mon Sep 13 22:40:10 2010 (r212585) @@ -53,7 +53,6 @@ #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/uss820dci.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/uss820dci.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/uss820dci.c Mon Sep 13 22:40:10 2010 (r212585) @@ -60,7 +60,6 @@ #include #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/controller/uss820dci_atmelarm.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/uss820dci_atmelarm.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/controller/uss820dci_atmelarm.c Mon Sep 13 22:40:10 2010 (r212585) @@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/template/usb_template.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/template/usb_template.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/template/usb_template.c Mon Sep 13 22:40:10 2010 (r212585) @@ -58,7 +58,6 @@ #include #include #include -#include #include #define USB_DEBUG_VAR usb_debug Modified: user/weongyo/usb/sys/dev/usb/usb_bus.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_bus.h Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_bus.h Mon Sep 13 22:40:10 2010 (r212585) @@ -29,15 +29,8 @@ #include -/* - * The following structure defines the USB explore message sent to the USB - * explore process. - */ - -struct usb_bus_msg { - struct usb_proc_msg hdr; - struct usb_bus *bus; -}; +#define USB_PRI_HIGH PI_NET +#define USB_PRI_MED PI_DISK /* * The following structure defines the USB statistics structure. Modified: user/weongyo/usb/sys/dev/usb/usb_busdma.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_busdma.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_busdma.c Mon Sep 13 22:40:10 2010 (r212585) @@ -52,7 +52,6 @@ #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_compat_linux.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_compat_linux.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_compat_linux.c Mon Sep 13 22:40:10 2010 (r212585) @@ -54,7 +54,6 @@ #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_debug.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_debug.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_debug.c Mon Sep 13 22:40:10 2010 (r212585) @@ -49,7 +49,6 @@ #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_dev.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_dev.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_dev.c Mon Sep 13 22:40:10 2010 (r212585) @@ -60,7 +60,6 @@ #include #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_device.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_device.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_device.c Mon Sep 13 22:40:10 2010 (r212585) @@ -57,7 +57,6 @@ #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_dynamic.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_dynamic.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_dynamic.c Mon Sep 13 22:40:10 2010 (r212585) @@ -48,7 +48,6 @@ #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_generic.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_generic.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_generic.c Mon Sep 13 22:40:10 2010 (r212585) @@ -56,7 +56,6 @@ #include #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_handle_request.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_handle_request.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_handle_request.c Mon Sep 13 22:40:10 2010 (r212585) @@ -52,7 +52,6 @@ #define USB_DEBUG_VAR usb_debug #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_hid.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_hid.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_hid.c Mon Sep 13 22:40:10 2010 (r212585) @@ -62,7 +62,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_hub.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_hub.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_hub.c Mon Sep 13 22:40:10 2010 (r212585) @@ -58,7 +58,6 @@ #define USB_DEBUG_VAR uhub_debug #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_msctest.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_msctest.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_msctest.c Mon Sep 13 22:40:10 2010 (r212585) @@ -59,7 +59,6 @@ #define USB_DEBUG_VAR usb_debug #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_request.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_request.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_request.c Mon Sep 13 22:40:10 2010 (r212585) @@ -57,7 +57,6 @@ #include #include #include -#include #include #include #include @@ -694,49 +693,6 @@ done: } /*------------------------------------------------------------------------* - * usbd_do_request_proc - factored out code - * - * This function is factored out code. It does basically the same like - * usbd_do_request_flags, except it will check the status of the - * passed process argument before doing the USB request. If the - * process is draining the USB_ERR_IOERROR code will be returned. It - * is assumed that the mutex associated with the process is locked - * when calling this function. - *------------------------------------------------------------------------*/ -usb_error_t -usbd_do_request_proc(struct usb_device *udev, struct usb_process *pproc, - struct usb_device_request *req, void *data, uint16_t flags, - uint16_t *actlen, usb_timeout_t timeout) -{ - usb_error_t err; - uint16_t len; - - /* get request data length */ - len = UGETW(req->wLength); - - /* check if the device is being detached */ - if (usb_proc_is_gone(pproc)) { - err = USB_ERR_IOERROR; - goto done; - } - - /* forward the USB request */ - err = usbd_do_request_flags(udev, pproc->up_mtx, - req, data, flags, actlen, timeout); - -done: - /* on failure we zero the data */ - /* on short packet we zero the unused data */ - if ((len != 0) && (req->bmRequestType & UE_DIR_IN)) { - if (err) - memset(data, 0, len); - else if (actlen && *actlen != len) - memset(((uint8_t *)data) + *actlen, 0, len - *actlen); - } - return (err); -} - -/*------------------------------------------------------------------------* * usbd_req_reset_port * * This function will instruct an USB HUB to perform a reset sequence Modified: user/weongyo/usb/sys/dev/usb/usb_transfer.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_transfer.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_transfer.c Mon Sep 13 22:40:10 2010 (r212585) @@ -52,7 +52,6 @@ #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/usb_util.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_util.c Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usb_util.c Mon Sep 13 22:40:10 2010 (r212585) @@ -50,7 +50,6 @@ #include #include -#include #include #include #include Modified: user/weongyo/usb/sys/dev/usb/usbdi.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usbdi.h Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usbdi.h Mon Sep 13 22:40:10 2010 (r212585) @@ -35,7 +35,6 @@ struct usb_endpoint; struct usb_page_cache; struct usb_page_search; struct usb_process; -struct usb_proc_msg; struct usb_mbuf; struct mbuf; @@ -89,7 +88,6 @@ typedef enum { /* keep in sync with usb_ /* typedefs */ typedef void (usb_callback_t)(struct usb_xfer *, usb_error_t); -typedef void (usb_proc_callback_t)(struct usb_proc_msg *); typedef usb_error_t (usb_handle_req_t)(struct usb_device *, struct usb_device_request *, const void **, uint16_t *); @@ -382,15 +380,6 @@ struct usb_callout { */ #define USB_GET_STATE(xfer) (usbd_xfer_state(xfer)) -/* - * The following structure defines the USB process message header. - */ -struct usb_proc_msg { - TAILQ_ENTRY(usb_proc_msg) pm_qentry; - usb_proc_callback_t *pm_callback; - usb_size_t pm_num; -}; - #define USB_FIFO_TX 0 #define USB_FIFO_RX 1 Modified: user/weongyo/usb/sys/dev/usb/usbdi_util.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usbdi_util.h Mon Sep 13 22:27:52 2010 (r212584) +++ user/weongyo/usb/sys/dev/usb/usbdi_util.h Mon Sep 13 22:40:10 2010 (r212585) @@ -39,10 +39,6 @@ struct usb_idesc_parse_state { /* prototypes */ -usb_error_t usbd_do_request_proc(struct usb_device *udev, struct usb_process *pproc, - struct usb_device_request *req, void *data, uint16_t flags, - uint16_t *actlen, usb_timeout_t timeout); - struct usb_descriptor *usb_desc_foreach(struct usb_config_descriptor *cd, struct usb_descriptor *desc); struct usb_interface_descriptor *usb_idesc_foreach( From owner-svn-src-user@FreeBSD.ORG Tue Sep 14 01:10:30 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0754106566B; Tue, 14 Sep 2010 01:10:30 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AC9D48FC18; Tue, 14 Sep 2010 01:10:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8E1AU7T050306; Tue, 14 Sep 2010 01:10:30 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8E1AUxk050293; Tue, 14 Sep 2010 01:10:30 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009140110.o8E1AUxk050293@svn.freebsd.org> From: Warner Losh Date: Tue, 14 Sep 2010 01:10:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212588 - in user/imp/tbemd: . contrib/top etc etc/defaults etc/rc.d share/man/man5 sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/dev/cxgb sys/dev/fb sys/kern sys/powerpc/powerpc s... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Sep 2010 01:10:30 -0000 Author: imp Date: Tue Sep 14 01:10:30 2010 New Revision: 212588 URL: http://svn.freebsd.org/changeset/base/212588 Log: merge from head @r212587 Modified: user/imp/tbemd/UPDATING user/imp/tbemd/etc/defaults/rc.conf user/imp/tbemd/etc/network.subr user/imp/tbemd/etc/rc.d/ip6addrctl user/imp/tbemd/etc/rc.d/netif user/imp/tbemd/share/man/man5/rc.conf.5 user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/imp/tbemd/sys/dev/cxgb/cxgb_sge.c user/imp/tbemd/sys/dev/fb/vesa.c user/imp/tbemd/sys/kern/kern_malloc.c user/imp/tbemd/sys/kern/kern_sysctl.c user/imp/tbemd/sys/kern/subr_lock.c user/imp/tbemd/sys/kern/subr_sbuf.c user/imp/tbemd/sys/kern/subr_sleepqueue.c user/imp/tbemd/sys/kern/subr_witness.c user/imp/tbemd/sys/powerpc/powerpc/exec_machdep.c user/imp/tbemd/sys/sys/param.h user/imp/tbemd/sys/sys/sysctl.h user/imp/tbemd/sys/vm/uma_core.c user/imp/tbemd/sys/vm/vm_phys.c user/imp/tbemd/sys/vm/vm_reserv.c user/imp/tbemd/usr.sbin/config/config.y Directory Properties: user/imp/tbemd/ (props changed) user/imp/tbemd/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/contrib/bind9/ (props changed) user/imp/tbemd/contrib/ee/ (props changed) user/imp/tbemd/contrib/expat/ (props changed) user/imp/tbemd/contrib/file/ (props changed) user/imp/tbemd/contrib/gdb/ (props changed) user/imp/tbemd/contrib/gdtoa/ (props changed) user/imp/tbemd/contrib/gnu-sort/ (props changed) user/imp/tbemd/contrib/groff/ (props changed) user/imp/tbemd/contrib/less/ (props changed) user/imp/tbemd/contrib/libpcap/ (props changed) user/imp/tbemd/contrib/llvm/ (props changed) user/imp/tbemd/contrib/llvm/tools/clang/ (props changed) user/imp/tbemd/contrib/ncurses/ (props changed) user/imp/tbemd/contrib/netcat/ (props changed) user/imp/tbemd/contrib/ntp/ (props changed) user/imp/tbemd/contrib/one-true-awk/ (props changed) user/imp/tbemd/contrib/openbsm/ (props changed) user/imp/tbemd/contrib/openpam/ (props changed) user/imp/tbemd/contrib/pf/ (props changed) user/imp/tbemd/contrib/sendmail/ (props changed) user/imp/tbemd/contrib/tcpdump/ (props changed) user/imp/tbemd/contrib/tcsh/ (props changed) user/imp/tbemd/contrib/top/ (props changed) user/imp/tbemd/contrib/top/install-sh (props changed) user/imp/tbemd/contrib/tzcode/stdtime/ (props changed) user/imp/tbemd/contrib/tzcode/zic/ (props changed) user/imp/tbemd/contrib/tzdata/ (props changed) user/imp/tbemd/contrib/wpa/ (props changed) user/imp/tbemd/crypto/openssh/ (props changed) user/imp/tbemd/crypto/openssl/ (props changed) user/imp/tbemd/lib/libc/ (props changed) user/imp/tbemd/lib/libc/stdtime/ (props changed) user/imp/tbemd/lib/libutil/ (props changed) user/imp/tbemd/lib/libz/ (props changed) user/imp/tbemd/sbin/ (props changed) user/imp/tbemd/sbin/ipfw/ (props changed) user/imp/tbemd/share/zoneinfo/ (props changed) user/imp/tbemd/sys/ (props changed) user/imp/tbemd/sys/amd64/include/xen/ (props changed) user/imp/tbemd/sys/cddl/contrib/opensolaris/ (props changed) user/imp/tbemd/sys/contrib/dev/acpica/ (props changed) user/imp/tbemd/sys/contrib/pf/ (props changed) user/imp/tbemd/sys/contrib/x86emu/ (props changed) user/imp/tbemd/sys/dev/xen/xenpci/ (props changed) user/imp/tbemd/usr.bin/calendar/ (props changed) user/imp/tbemd/usr.bin/csup/ (props changed) user/imp/tbemd/usr.bin/procstat/ (props changed) user/imp/tbemd/usr.sbin/zic/ (props changed) Modified: user/imp/tbemd/UPDATING ============================================================================== --- user/imp/tbemd/UPDATING Tue Sep 14 00:32:29 2010 (r212587) +++ user/imp/tbemd/UPDATING Tue Sep 14 01:10:30 2010 (r212588) @@ -22,6 +22,35 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9. machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20100913: + The $ipv6_prefer variable in rc.conf(5) has been split into + $ip6addrctl_policy and $ipv6_activate_all_interfaces. + + The $ip6addrctl_policy is a variable to choose a pre-defined + address selection policy set by ip6addrctl(8). A value + "ipv4_prefer", "ipv6_prefer" or "AUTO" can be specified. The + default is "AUTO". + + The $ipv6_activate_all_interfaces specifies whether IFDISABLED + flag (see an entry of 20090926) is set on an interface with no + corresponding $ifconfig_IF_ipv6 line. The default is "NO" for + security reason. If you want IPv6 link-local address on all + interfaces by default, set this to "YES". + + The old ipv6_prefer="YES" is equivalent to + ipv6_activate_all_interfaces="YES" and + ip6addrctl_policy="ipv6_prefer". + +20100913: + DTrace has grown support for userland tracing. Due to this, DTrace is + now i386 and amd64 only. + dtruss(1) is now installed by default on those systems and a new + kernel module is needed for userland tracing: fasttrap. + No changes to your kernel config file are necessary to enable + userland tracing, but you might consider adding 'STRIP=' and + 'CFLAGS+=-fno-omit-frame-pointer' to your make.conf if you want + to have informative userland stack traces in DTrace (ustack). + 20100725: The acpi_aiboost(4) driver has been removed in favor of the new aibs(4) driver. You should update your kernel configuration file. Modified: user/imp/tbemd/etc/defaults/rc.conf ============================================================================== --- user/imp/tbemd/etc/defaults/rc.conf Tue Sep 14 00:32:29 2010 (r212587) +++ user/imp/tbemd/etc/defaults/rc.conf Tue Sep 14 01:10:30 2010 (r212588) @@ -210,8 +210,6 @@ cloned_interfaces="" # List of cloned n ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. #ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry. #ifconfig_ed0_ipx="ipx 0x00010010" # Sample IPX address family entry. -#ifconfig_ed0_ipv6="RTADV" # Sample IPv6 entry for RA/rtsol(8) -#ifconfig_ed0_ipv6="inet6 auto_linklocal" # To configure only link-local #ifconfig_ed0_ipv6="inet6 2001:db8:1::1 prefixlen 64" # Sample IPv6 addr entry #ifconfig_ed0_alias0="inet6 2001:db8:2::1 prefixlen 64" # Sample IPv6 alias #ifconfig_fxp0_name="net0" # Change interface name from fxp0 to net0. @@ -446,9 +444,12 @@ ubthidhci_enable="NO" # Switch an USB B icmp_bmcastecho="NO" # respond to broadcast ping packets ### IPv6 options: ### -ipv6_network_interfaces="AUTO" # List of IPv6 network interfaces -ipv6_prefer="YES" # Use IPv6 when both IPv4 and IPv6 can be used -ipv6_privacy="NO" # Use privacy addresses with RTADV (RFC 4193) +ipv6_network_interfaces="auto" # List of IPv6 network interfaces + # (or "auto" or "none"). +ipv6_activate_all_interfaces="NO" # If NO, interfaces which have no + # corresponding $ifconfig_IF_ipv6 is + # marked as IFDISABLED for security + # reason. ipv6_defaultrouter="NO" # Set to IPv6 default gateway (or NO). #ipv6_defaultrouter="2002:c058:6301::" # Use this for 6to4 (RFC 3068) ipv6_static_routes="" # Set to static route list (or leave empty). @@ -456,6 +457,8 @@ ipv6_static_routes="" # Set to static r # route toward loopback interface. #ipv6_route_xxx="fec0:0000:0000:0006:: -prefixlen 64 ::1" ipv6_gateway_enable="NO" # Set to YES if this host will be a gateway. +ipv6_privacy="NO" # Use privacy address on RA-receiving IFs + # (RFC 4193) route6d_enable="NO" # Set to YES to enable an IPv6 routing daemon. route6d_program="/usr/sbin/route6d" # Name of IPv6 routing daemon. @@ -507,6 +510,8 @@ ipv6_ipfilter_rules="/etc/ipf6.rules" # # for examples ip6addrctl_enable="YES" # Set to YES to enable default address selection ip6addrctl_verbose="NO" # Set to YES to enable verbose configuration messages +ip6addrctl_policy="AUTO" # A pre-defined address selection policy + # (ipv4_prefer, ipv6_prefer, or AUTO) ############################################################## ### System console options ################################# Modified: user/imp/tbemd/etc/network.subr ============================================================================== --- user/imp/tbemd/etc/network.subr Tue Sep 14 00:32:29 2010 (r212587) +++ user/imp/tbemd/etc/network.subr Tue Sep 14 01:10:30 2010 (r212588) @@ -96,32 +96,44 @@ ifconfig_up() # inet6 specific if afexists inet6; then if ipv6if $1; then - # Implicitly handles ipv6_gateway_enable - _ipv6_opts='-ifdisabled -accept_rtadv' - - if ipv6_autoconfif $1; then - _ipv6_opts='-ifdisabled accept_rtadv' - fi - - ifconfig $1 inet6 $_ipv6_opts - - # ifconfig_IF_ipv6 - ifconfig_args=`ifconfig_getargs $1 ipv6` - - if [ -n "$ifconfig_args" ]; then - ifconfig $1 $ifconfig_args - _cfg=0 + if checkyesno ipv6_gateway_enable; then + _ipv6_opts="-accept_rtadv" fi else - # Remove in FreeBSD 10.x - # Explicit test is necessary here to avoid nonexistence error - case "$ipv6_enable" in + if checkyesno ipv6_activate_all_interfaces; then + _ipv6_opts="-ifdisabled" + else + _ipv6_opts="ifdisabled" + fi + + # backward compatibility: $ipv6_enable + case $ipv6_enable in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) - warn "Interface $1 will NOT be configured for IPv6" + _ipv6_opts="${_ipv6_opts} accept_rtadv" ;; esac + fi - ifconfig $1 inet6 ifdisabled + if [ -n "${_ipv6_opts}" ]; then + ifconfig $1 inet6 ${_ipv6_opts} + fi + + # ifconfig_IF_ipv6 + ifconfig_args=`ifconfig_getargs $1 ipv6` + if [ -n "${ifconfig_args}" ]; then + ifconfig $1 inet6 -ifdisabled + ifconfig $1 ${ifconfig_args} + _cfg=0 + fi + + # backward compatiblity: $ipv6_ifconfig_IF + ifconfig_args=`get_if_var $1 ipv6_ifconfig_IF` + if [ -n "${ifconfig_args}" ]; then + warn "\$ipv6_ifconfig_$1 is obsolete." \ + " Use ifconfig_$1_ipv6 instead." + ifconfig $1 inet6 -ifdisabled + ifconfig $1 inet6 ${ifconfig_args} + _cfg=0 fi fi @@ -207,7 +219,7 @@ get_if_var() # outside this file. _ifconfig_getargs() { - local _ifn _af value + local _ifn _af _ifn=$1 _af=${2+_$2} @@ -215,18 +227,7 @@ _ifconfig_getargs() return 1 fi - value=`get_if_var $_ifn ifconfig_IF$_af "$ifconfig_DEFAULT"` - - # Remove in FreeBSD 10.x - if [ "$_af" = _ipv6 -a -z "$value" ]; then - value=`get_if_var $_ifn ipv6_ifconfig_IF "$ifconfig_DEFAULT"` - if [ -n "$value" ]; then - warn "\$ipv6_ifconfig_$1 is obsolete." \ - " Use ifconfig_$1_ipv6 instead." - fi - fi - - echo $value + get_if_var $_ifn ifconfig_IF$_af "$ifconfig_DEFAULT" } # ifconfig_getargs if [af] @@ -248,8 +249,6 @@ ifconfig_getargs() [Nn][Oo][Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;; [Ss][Yy][Nn][Cc][Dd][Hh][Cc][Pp]) ;; [Ww][Pp][Aa]) ;; - [Rr][Tt][Aa][Dd][Vv]) ;; - [Nn][Oo][Rr][Tt][Aa][Dd][Vv]) ;; *) _args="$_args $_arg" ;; @@ -373,48 +372,68 @@ afexists() esac } +# noafif if +# Returns 0 if the interface has no af configuration and 1 otherwise. +noafif() +{ + local _if + _if=$1 + + case $_if in + pflog[0-9]*|\ + pfsync[0-9]*|\ + an[0-9]*|\ + ath[0-9]*|\ + ipw[0-9]*|\ + ipfw[0-9]*|\ + iwi[0-9]*|\ + iwn[0-9]*|\ + ral[0-9]*|\ + wi[0-9]*|\ + wl[0-9]*|\ + wpi[0-9]*) + return 0 + ;; + esac + + return 1 +} + # ipv6if if # Returns 0 if the interface should be configured for IPv6 and # 1 otherwise. ipv6if() { + local _if _tmpargs i + _if=$1 + if ! afexists inet6; then return 1 fi # lo0 is always IPv6-enabled - case $1 in + case $_if in lo0) return 0 ;; esac - local _if _tmpargs i - _if=$1 - - case "$ipv6_network_interfaces" in - ''|[Nn][Oo][Nn][Ee]) - return 1 - ;; + case "${ipv6_network_interfaces}" in $_if|"$_if "*|*" $_if"|*" $_if "*|[Aa][Uu][Tt][Oo]) # True if $ifconfig_IF_ipv6 is defined. _tmpargs=`_ifconfig_getargs $_if ipv6` - # Also true if ipv6_prefix_IF is defined - [ -n "$_tmpargs" ] || _tmpargs=`get_if_var $_if ipv6_prefix_IF` + if [ -n "${_tmpargs}" ]; then + return 0 + fi + + # backward compatibility: True if $ipv6_ifconfig_IF is defined. + _tmpargs=`get_if_var $_if ipv6_ifconfig_IF` + if [ -n "${_tmpargs}" ]; then + return 0 + fi ;; esac - if [ -n "$_tmpargs" ]; then - # Remove in FreeBSD 10.x - # Explicit test is necessary here to avoid nonexistence error - case "$ipv6_enable" in - [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) - ;; - *) return 0 - ;; - esac - fi - return 1 } @@ -423,21 +442,21 @@ ipv6if() # Stateless Address Configuration, 1 otherwise. ipv6_autoconfif() { - case $1 in + local _if _tmpargs _arg + _if=$1 + + case $_if in lo0|\ stf[0-9]*|\ faith[0-9]*|\ lp[0-9]*|\ - sl[0-9]*|\ - pflog[0-9]*|\ - pfsync[0-9]*) + sl[0-9]*) return 1 ;; esac - - local _if _tmpargs _arg - _if=$1 - + if noafif $_if; then + return 1 + fi if ! ipv6if $_if; then return 1 fi @@ -448,23 +467,31 @@ ipv6_autoconfif() if [ -n "${_tmpargs}" ]; then return 1 fi - if ! is_wired_interface $_if; then - case $_if in - wlan[0-9]*) ;; # Allow test to continue - *) return 1 + # backward compatibility: $ipv6_enable + case $ipv6_enable in + [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) + return 0 + ;; + esac + + _tmpargs=`_ifconfig_getargs $_if ipv6` + for _arg in $_tmpargs; do + case $_arg in + accept_rtadv) + return 0 ;; esac - fi + done - _tmpargs=`_ifconfig_getargs $_if ipv6` - case "$_tmpargs" in - *inet6\ *|*[Nn][Oo][Rr][Tt][Aa][Dd][Vv]*|*-accept_rtadv*) - return 1 - ;; - *[Rr][Tt][Aa][Dd][Vv]*|*accept_rtadv*) - return 0 - ;; - esac + # backward compatibility: $ipv6_ifconfig_IF + _tmpargs=`get_if_var $_if ipv6_ifconfig_IF` + for _arg in $_tmpargs; do + case $_arg in + accept_rtadv) + return 0 + ;; + esac + done return 1 } Modified: user/imp/tbemd/etc/rc.d/ip6addrctl ============================================================================== --- user/imp/tbemd/etc/rc.d/ip6addrctl Tue Sep 14 00:32:29 2010 (r212587) +++ user/imp/tbemd/etc/rc.d/ip6addrctl Tue Sep 14 01:10:30 2010 (r212588) @@ -19,6 +19,10 @@ extra_commands="status prefer_ipv6 prefe status_cmd="ip6addrctl" prefer_ipv6_cmd="ip6addrctl_prefer_ipv6" prefer_ipv4_cmd="ip6addrctl_prefer_ipv4" +config_file="/etc/ip6addrctl.conf" + +set_rcvar_obsolete ipv6_enable ipv6_activate_all_interfaces +set_rcvar_obsolete ipv6_prefer ip6addrctl_policy ip6addrctl_prefer_ipv6() { @@ -51,17 +55,40 @@ ip6addrctl_start() afexists inet6 || return 0 # install the policy of the address selection algorithm. - if [ -f /etc/ip6addrctl.conf ]; then - ip6addrctl flush >/dev/null 2>&1 - ip6addrctl install /etc/ip6addrctl.conf - checkyesno ip6addrctl_verbose && ip6addrctl - else - if checkyesno ipv6_prefer; then - ip6addrctl_prefer_ipv6 + case "${ip6addrctl_policy}" in + [Aa][Uu][Tt][Oo]) + if [ -r "${config_file}" -a -s "${config_file}" ]; then + ip6addrctl flush >/dev/null 2>&1 + ip6addrctl install "${config_file}" + checkyesno ip6addrctl_verbose && ip6addrctl else - ip6addrctl_prefer_ipv4 + if checkyesno ipv6_activate_all_interfaces; then + ip6addrctl_prefer_ipv6 + else + ip6addrctl_prefer_ipv4 + fi fi - fi + ;; + ipv4_prefer) + ip6addrctl_prefer_ipv4 + ;; + ipv6_prefer) + ip6addrctl_prefer_ipv6 + ;; + [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) + # Backward compatibility when ipv6_prefer=YES + ip6addrctl_prefer_ipv6 + ;; + [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) + # Backward compatibility when ipv6_prefer=NO + ip6addrctl_prefer_ipv4 + ;; + *) + warn "\$ip6addrctl_policy is invalid: ${ip6addrctl_policy}. " \ + " \"ipv4_prefer\" is used instead." + ip6addrctl_prefer_ipv4 + ;; + esac } ip6addrctl_stop() Modified: user/imp/tbemd/etc/rc.d/netif ============================================================================== --- user/imp/tbemd/etc/rc.d/netif Tue Sep 14 00:32:29 2010 (r212587) +++ user/imp/tbemd/etc/rc.d/netif Tue Sep 14 01:10:30 2010 (r212588) @@ -34,7 +34,6 @@ . /etc/network.subr name="network" -start_precmd="network_prestart" start_cmd="network_start" stop_cmd="network_stop" cloneup_cmd="clone_up" @@ -42,13 +41,8 @@ clonedown_cmd="clone_down" extra_commands="cloneup clonedown" cmdifn= -network_prestart() -{ - if [ -n "$ipv6_enable" ]; then - warn 'The ipv6_enable option is deprecated.' - warn 'See rc.conf(5) for information on disabling IPv6.' - fi -} +set_rcvar_obsolete ipv6_enable ipv6_activate_all_interfaces +set_rcvar_obsolete ipv6_prefer network_start() { Modified: user/imp/tbemd/share/man/man5/rc.conf.5 ============================================================================== --- user/imp/tbemd/share/man/man5/rc.conf.5 Tue Sep 14 00:32:29 2010 (r212587) +++ user/imp/tbemd/share/man/man5/rc.conf.5 Tue Sep 14 01:10:30 2010 (r212588) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 4, 2010 +.Dd September 13, 2010 .Dt RC.CONF 5 .Os .Sh NAME @@ -1261,105 +1261,95 @@ It is also possible to rename an interfa ifconfig_ed0_name="net0" ifconfig_net0="inet 192.0.2.1 netmask 0xffffff00" .Ed -.\" Remove in FreeBSD 10.x .It Va ipv6_enable .Pq Vt bool -.Pp -This option is deprecated. -.Pp -If the variable is -.Dq Li YES -it has no effect. -To configure IPv6 for an interface see -.Va ipv6_network_interfaces -below. -.Pp If the variable is -.Dq Li NO -then other than -.Dq Li lo0 -IPv6 will be disabled for each interface, -however the same effect can be achieved by -not configuring the interface. -.It Va ipv6_network_interfaces -.Pq Vt str -This is the IPv6 equivalent of -.Va network_interfaces . -Normally configuration of this variable is not needed, -the value should be left as -.Dq Li AUTO . -.Pp -If -.Dq Li INET6 -is configured in the kernel configuration for the -.Dq Li lo0 -interface will always be performed. -It is not necessary to list it in -.Va ipv6_network_interfaces . -.Pp -Example configuration to accept Router Advertisements (RA) for the -.Dq Li ed0 -interface: -.Bd -literal -ifconfig_ed0_ipv6="RTADV" -.Ed -.Pp -To configure only a link-local address on the -.Dq Li ed0 -interface: -.Bd -literal -ifconfig_ed0_ipv6="inet6 auto_linklocal" -.Ed -.Pp -To disable RA the -.Dq Li NORTADV -option is available, although not required if manual -configuration is performed as described below. -.Pp -An IPv6 interface can be configured manually with -.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 . -For example: -.Bd -literal -ifconfig_ed0_ipv6="inet6 2001:db8:1::1 prefixlen 64" -.Ed -.Pp -Manual configuration of an IPv6 address will also -require configuration of the -.Va ipv6_defaultrouter -option. -.Pp -Aliases should be set by -.Va ifconfig_ Ns Ao Ar interface Ac Ns Va _alias Ns Aq Ar n -with the -.Dq Li inet6 -keyword. -For example: -.Pp -.Bd -literal -ifconfig_ed0_alias0="inet6 2001:db8:2::1 prefixlen 64" -.Ed +.Dq Li YES , +.Dq Li inet6 accept_rtadv +is added to all of +.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 +and the +.Va ipv6_activate_all_interfaces +is defined as +.Dq Li YES . .Pp +This variable is deprecated. Use +.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 +and +.Va ipv6_activate_all_interfaces +if necessary. .It Va ipv6_prefer .Pq Vt bool If the variable is .Dq Li YES , -the default policy of the source address selection set by +the default address selection policy table set by .Xr ip6addrctl 8 will be IPv6-preferred. .Pp If the variable is .Dq Li NO , -the default policy of the source address selection set by +the default address selection policy table set by .Xr ip6addrctl 8 will be IPv4-preferred. .Pp +This variable is deprecated. Use +.Va ip6addtctl_policy +instead. +.It Va ipv6_activate_all_interfaces +If the variable is +.Dq Li NO , +all of interfaces which do not have the corrsponding +.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 +variable will be marked as +.Dq Li IFDISABLED +for security reason. This means only IPv6 functionality on that interface +is completely disabled. For more details of +.Dq Li IFDISABLED +flag and keywords +.Dq Li inet6 ifdisabled , +see +.Xr ifconfig 8 . +.Pp +Default is +.Dq Li NO . .It Va ipv6_privacy .Pq Vt bool If the variable is .Dq Li YES privacy addresses will be generated for each IPv6 interface as described in RFC 4193. +.It Va ipv6_network_interfaces +.Pq Vt str +This is the IPv6 equivalent of +.Va network_interfaces . +Normally manual configuration of this variable is not needed. +.Pp +.It Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 +.Pq Vt str +IPv6 functionality on an interface should be configured by +.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 , +instead of setting ifconfig parameters in +.Va ifconfig_ Ns Aq Ar interface . +Aliases should be set by +.Va ifconfig_ Ns Ao Ar interface Ac Ns Va _alias Ns Aq Ar n +with +.Dq Li inet6 +keyword. For example: +.Bd -literal +ifconfig_ed0_ipv6="inet6 2001:db8:1::1 prefixlen 64" +ifconfig_ed0_alias0="inet6 2001:db8:2::1 prefixlen 64" +.Ed .Pp +Interfaces that have an +.Dq Li inet6 accept_rtadv +keyword in +.Va ifconfig_ Ns Ao Ar interface Ac Ns _ipv6 +setting will be automatically configured by +.Xr rtsol 8 . +Note that this automatic configuration is disabled if the +.Va ipv6_gateway_enable +is set to +.Dq Li YES . .It Va ipv6_prefix_ Ns Aq Ar interface .Pq Vt str If one or more prefixes are defined in @@ -1374,22 +1364,52 @@ this is the default output interface for This works only with ipv6_gateway_enable="NO". .It Va ip6addrctl_enable .Pq Vt bool -If set to -.Dq Li YES , -install default address selection policy table +This variable is to enable configuring default address selection policy table .Pq RFC 3484 . -If a file +The table can be specified in another variable +.Va ip6addrctl_policy . +For +.Va ip6addrctl_policy +the following keywords can be specified: +.Dq Li ipv4_prefer , +.Dq Li ipv6_prefer , +or +.Dq Li AUTO . +.Pp +If +.Dq Li ipv4_prefer +or +.Dq Li ipv6_prefer +is specified, +.Xr ip6addrctl 8 +installs a pre-defined policy table described in Section 2.1 +.Pq IPv6-preferred +or 10.3 +.Pq IPv4-preferred +of RFC 3484. +.Pp +If +.Dq Li AUTO +is specified, it attempts to read a file .Pa /etc/ip6addrctl.conf -is found the +first. If this file is found, .Xr ip6addrctl 8 -reads and installs it. -If not, a pre-defined policy table will be installed. -There are two pre-defined ones; IPv4-preferred and IPv6-preferred. -If set -.Va ipv6_prefer -variable to +reads and installs it. If not found, a policy is automatically set +according to +.Va ipv6_activate_all_interfaces +variable; if the variable is set to .Dq Li YES -the IPv6-preferred one is used. Default is IPv4-preferred. +the IPv6-preferred one is used. Otherwise IPv4-preferred. +.Pp +The default value of +.Va ip6addrctl_enable +and +.Va ip6addrctl_policy +are +.Dq Li YES +and +.Dq Li AUTO , +respectively. .It Va cloned_interfaces .Pq Vt str Set to the list of clonable network interfaces to create on this host. Modified: user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Sep 14 00:32:29 2010 (r212587) +++ user/imp/tbemd/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Sep 14 01:10:30 2010 (r212588) @@ -326,9 +326,7 @@ page_lookup(vnode_t *vp, int64_t start, if (vm_page_sleep_if_busy(pp, FALSE, "zfsmwb")) continue; vm_page_busy(pp); - vm_page_lock_queues(); vm_page_undirty(pp); - vm_page_unlock_queues(); } else { if (__predict_false(obj->cache != NULL)) { vm_page_cache_free(obj, OFF_TO_IDX(start), Modified: user/imp/tbemd/sys/dev/cxgb/cxgb_sge.c ============================================================================== --- user/imp/tbemd/sys/dev/cxgb/cxgb_sge.c Tue Sep 14 00:32:29 2010 (r212587) +++ user/imp/tbemd/sys/dev/cxgb/cxgb_sge.c Tue Sep 14 01:10:30 2010 (r212588) @@ -3227,6 +3227,7 @@ t3_dump_rspq(SYSCTL_HANDLER_ARGS) struct sge_rspq *rspq; struct sge_qset *qs; int i, err, dump_end, idx; + static int multiplier = 1; struct sbuf *sb; struct rsp_desc *rspd; uint32_t data[4]; @@ -3251,8 +3252,8 @@ t3_dump_rspq(SYSCTL_HANDLER_ARGS) err = t3_sge_read_rspq(qs->port->adapter, rspq->cntxt_id, data); if (err) return (err); - - sb = sbuf_new_for_sysctl(NULL, NULL, QDUMP_SBUF_SIZE, req); +retry_sbufops: + sb = sbuf_new(NULL, NULL, QDUMP_SBUF_SIZE*multiplier, SBUF_FIXEDLEN); sbuf_printf(sb, " \n index=%u size=%u MSI-X/RspQ=%u intr enable=%u intr armed=%u\n", (data[0] & 0xffff), data[0] >> 16, ((data[2] >> 20) & 0x3f), @@ -3275,11 +3276,13 @@ t3_dump_rspq(SYSCTL_HANDLER_ARGS) rspd->rss_hdr.rss_hash_val, be32toh(rspd->flags), be32toh(rspd->len_cq), rspd->intr_gen); } - - err = sbuf_finish(sb); - /* Output a trailing NUL. */ - if (err == 0) - err = SYSCTL_OUT(req, "", 1); + if (sbuf_error(sb) != 0) { + sbuf_delete(sb); + multiplier++; + goto retry_sbufops; + } + sbuf_finish(sb); + err = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1); sbuf_delete(sb); return (err); } @@ -3290,6 +3293,7 @@ t3_dump_txq_eth(SYSCTL_HANDLER_ARGS) struct sge_txq *txq; struct sge_qset *qs; int i, j, err, dump_end; + static int multiplier = 1; struct sbuf *sb; struct tx_desc *txd; uint32_t *WR, wr_hi, wr_lo, gen; @@ -3317,7 +3321,9 @@ t3_dump_txq_eth(SYSCTL_HANDLER_ARGS) if (err) return (err); - sb = sbuf_new_for_sysctl(NULL, NULL, QDUMP_SBUF_SIZE, req); + +retry_sbufops: + sb = sbuf_new(NULL, NULL, QDUMP_SBUF_SIZE*multiplier, SBUF_FIXEDLEN); sbuf_printf(sb, " \n credits=%u GTS=%u index=%u size=%u rspq#=%u cmdq#=%u\n", (data[0] & 0x7fff), ((data[0] >> 15) & 1), (data[0] >> 16), @@ -3344,10 +3350,13 @@ t3_dump_txq_eth(SYSCTL_HANDLER_ARGS) WR[j], WR[j + 1], WR[j + 2], WR[j + 3]); } - err = sbuf_finish(sb); - /* Output a trailing NUL. */ - if (err == 0) - err = SYSCTL_OUT(req, "", 1); + if (sbuf_error(sb) != 0) { + sbuf_delete(sb); + multiplier++; + goto retry_sbufops; + } + sbuf_finish(sb); + err = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1); sbuf_delete(sb); return (err); } @@ -3358,6 +3367,7 @@ t3_dump_txq_ctrl(SYSCTL_HANDLER_ARGS) struct sge_txq *txq; struct sge_qset *qs; int i, j, err, dump_end; + static int multiplier = 1; struct sbuf *sb; struct tx_desc *txd; uint32_t *WR, wr_hi, wr_lo, gen; @@ -3381,7 +3391,8 @@ t3_dump_txq_ctrl(SYSCTL_HANDLER_ARGS) return (EINVAL); } - sb = sbuf_new_for_sysctl(NULL, NULL, QDUMP_SBUF_SIZE, req); +retry_sbufops: + sb = sbuf_new(NULL, NULL, QDUMP_SBUF_SIZE*multiplier, SBUF_FIXEDLEN); sbuf_printf(sb, " qid=%d start=%d -> end=%d\n", qs->idx, txq->txq_dump_start, (txq->txq_dump_start + txq->txq_dump_count) & 255); @@ -3401,10 +3412,13 @@ t3_dump_txq_ctrl(SYSCTL_HANDLER_ARGS) WR[j], WR[j + 1], WR[j + 2], WR[j + 3]); } - err = sbuf_finish(sb); - /* Output a trailing NUL. */ - if (err == 0) - err = SYSCTL_OUT(req, "", 1); + if (sbuf_error(sb) != 0) { + sbuf_delete(sb); + multiplier++; + goto retry_sbufops; + } + sbuf_finish(sb); + err = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1); sbuf_delete(sb); return (err); } Modified: user/imp/tbemd/sys/dev/fb/vesa.c ============================================================================== --- user/imp/tbemd/sys/dev/fb/vesa.c Tue Sep 14 00:32:29 2010 (r212587) +++ user/imp/tbemd/sys/dev/fb/vesa.c Tue Sep 14 01:10:30 2010 (r212588) @@ -804,18 +804,16 @@ vesa_bios_init(void) vbios = x86bios_get_orm(vesa_bios_offs); if (vbios != NULL) { vesa_bios_size = vbios[2] * 512; - offs = BIOS_SADDRTOLADDR(vesa_bios_int10); - if (offs > vesa_bios_offs && - offs < vesa_bios_offs + vesa_bios_size) { + if (((VESA_BIOS_OFFSET << 12) & 0xffff0000) == + (vesa_bios_int10 & 0xffff0000) && + vesa_bios_size > (vesa_bios_int10 & 0xffff)) { vesa_bios = x86bios_alloc(&vesa_bios_offs, vesa_bios_size, M_WAITOK); memcpy(vesa_bios, vbios, vesa_bios_size); - offs = offs - VESA_BIOS_OFFSET + vesa_bios_offs; - offs = (X86BIOS_PHYSTOSEG(offs) << 16) + - X86BIOS_PHYSTOOFF(offs); + offs = ((vesa_bios_offs << 12) & 0xffff0000) + + (vesa_bios_int10 & 0xffff); x86bios_set_intr(0x10, offs); - } else - offs = vesa_bios_int10; + } } if (vesa_bios == NULL) printf("VESA: failed to shadow video ROM\n"); Modified: user/imp/tbemd/sys/kern/kern_malloc.c ============================================================================== --- user/imp/tbemd/sys/kern/kern_malloc.c Tue Sep 14 00:32:29 2010 (r212587) +++ user/imp/tbemd/sys/kern/kern_malloc.c Tue Sep 14 01:10:30 2010 (r212588) @@ -828,11 +828,25 @@ sysctl_kern_malloc_stats(SYSCTL_HANDLER_ struct malloc_type_internal *mtip; struct malloc_type_header mth; struct malloc_type *mtp; - int error, i; + int buflen, count, error, i; struct sbuf sbuf; + char *buffer; - sbuf_new_for_sysctl(&sbuf, NULL, 128, req); mtx_lock(&malloc_mtx); +restart: + mtx_assert(&malloc_mtx, MA_OWNED); + count = kmemcount; + mtx_unlock(&malloc_mtx); + buflen = sizeof(mtsh) + count * (sizeof(mth) + + sizeof(struct malloc_type_stats) * MAXCPU) + 1; + buffer = malloc(buflen, M_TEMP, M_WAITOK | M_ZERO); + mtx_lock(&malloc_mtx); + if (count < kmemcount) { + free(buffer, M_TEMP); + goto restart; + } + + sbuf_new(&sbuf, buffer, buflen, SBUF_FIXEDLEN); /* * Insert stream header. @@ -841,7 +855,11 @@ sysctl_kern_malloc_stats(SYSCTL_HANDLER_ mtsh.mtsh_version = MALLOC_TYPE_STREAM_VERSION; mtsh.mtsh_maxcpus = MAXCPU; mtsh.mtsh_count = kmemcount; - (void)sbuf_bcat(&sbuf, &mtsh, sizeof(mtsh)); + if (sbuf_bcat(&sbuf, &mtsh, sizeof(mtsh)) < 0) { + mtx_unlock(&malloc_mtx); + error = ENOMEM; + goto out; + } /* * Insert alternating sequence of type headers and type statistics. @@ -854,19 +872,30 @@ sysctl_kern_malloc_stats(SYSCTL_HANDLER_ */ bzero(&mth, sizeof(mth)); strlcpy(mth.mth_name, mtp->ks_shortdesc, MALLOC_MAX_NAME); - (void)sbuf_bcat(&sbuf, &mth, sizeof(mth)); + if (sbuf_bcat(&sbuf, &mth, sizeof(mth)) < 0) { + mtx_unlock(&malloc_mtx); + error = ENOMEM; + goto out; + } /* * Insert type statistics for each CPU. */ for (i = 0; i < MAXCPU; i++) { - (void)sbuf_bcat(&sbuf, &mtip->mti_stats[i], - sizeof(mtip->mti_stats[i])); + if (sbuf_bcat(&sbuf, &mtip->mti_stats[i], + sizeof(mtip->mti_stats[i])) < 0) { + mtx_unlock(&malloc_mtx); + error = ENOMEM; + goto out; + } } } mtx_unlock(&malloc_mtx); - error = sbuf_finish(&sbuf); + sbuf_finish(&sbuf); + error = SYSCTL_OUT(req, sbuf_data(&sbuf), sbuf_len(&sbuf)); +out: sbuf_delete(&sbuf); + free(buffer, M_TEMP); return (error); } @@ -976,19 +1005,26 @@ DB_SHOW_COMMAND(multizone_matches, db_sh static int sysctl_kern_mprof(SYSCTL_HANDLER_ARGS) { + int linesize = 64; struct sbuf sbuf; uint64_t count; uint64_t waste; uint64_t mem; + int bufsize; int error; + char *buf; int rsize; int size; int i; + bufsize = linesize * (KMEM_ZSIZE + 1); + bufsize += 128; /* For the stats line */ + bufsize += 128; /* For the banner line */ waste = 0; mem = 0; - sbuf_new_for_sysctl(&sbuf, NULL, 128, req); + buf = malloc(bufsize, M_TEMP, M_WAITOK|M_ZERO); + sbuf_new(&sbuf, buf, bufsize, SBUF_FIXEDLEN); sbuf_printf(&sbuf, "\n Size Requests Real Size\n"); for (i = 0; i < KMEM_ZSIZE; i++) { @@ -1006,8 +1042,12 @@ sysctl_kern_mprof(SYSCTL_HANDLER_ARGS) sbuf_printf(&sbuf, "\nTotal memory used:\t%30llu\nTotal Memory wasted:\t%30llu\n", (unsigned long long)mem, (unsigned long long)waste); - error = sbuf_finish(&sbuf); + sbuf_finish(&sbuf); + + error = SYSCTL_OUT(req, sbuf_data(&sbuf), sbuf_len(&sbuf)); + sbuf_delete(&sbuf); + free(buf, M_TEMP); return (error); } Modified: user/imp/tbemd/sys/kern/kern_sysctl.c ============================================================================== --- user/imp/tbemd/sys/kern/kern_sysctl.c Tue Sep 14 00:32:29 2010 (r212587) +++ user/imp/tbemd/sys/kern/kern_sysctl.c Tue Sep 14 01:10:30 2010 (r212588) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include @@ -1545,30 +1544,3 @@ userland_sysctl(struct thread *td, int * } return (error); } - -/* - * Drain into a sysctl struct. The user buffer must be wired. - */ -static int -sbuf_sysctl_drain(void *arg, const char *data, int len) -{ - struct sysctl_req *req = arg; - int error; - - error = SYSCTL_OUT(req, data, len); - KASSERT(error >= 0, ("Got unexpected negative value %d", error)); - return (error == 0 ? len : -error); -} - -struct sbuf * -sbuf_new_for_sysctl(struct sbuf *s, char *buf, int length, - struct sysctl_req *req) -{ - - /* Wire the user buffer, so we can write without blocking. */ - sysctl_wire_old_buffer(req, 0); - *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Tue Sep 14 01:52:17 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2D147106566C; Tue, 14 Sep 2010 01:52:17 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1C32B8FC22; Tue, 14 Sep 2010 01:52:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8E1qHMp054306; Tue, 14 Sep 2010 01:52:17 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8E1qGE0054300; Tue, 14 Sep 2010 01:52:16 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009140152.o8E1qGE0054300@svn.freebsd.org> From: Weongyo Jeong Date: Tue, 14 Sep 2010 01:52:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212595 - in user/weongyo/usb/sys/dev/usb: . controller X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Sep 2010 01:52:17 -0000 Author: weongyo Date: Tue Sep 14 01:52:16 2010 New Revision: 212595 URL: http://svn.freebsd.org/changeset/base/212595 Log: Renames `driver_added_refcount' to `generation' that it's not a reference counter. Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c user/weongyo/usb/sys/dev/usb/usb_bus.h user/weongyo/usb/sys/dev/usb/usb_device.h user/weongyo/usb/sys/dev/usb/usb_hub.c Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Tue Sep 14 01:51:04 2010 (r212594) +++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Tue Sep 14 01:52:16 2010 (r212595) @@ -196,11 +196,11 @@ usb_bus_explore(void *arg, int npending) if (udev && udev->hub) { if (bus->do_probe) { bus->do_probe = 0; - bus->driver_added_refcount++; + bus->generation++; } - if (bus->driver_added_refcount == 0) { + if (bus->generation == 0) { /* avoid zero, hence that is memory default */ - bus->driver_added_refcount = 1; + bus->generation = 1; } #ifdef DDB Modified: user/weongyo/usb/sys/dev/usb/usb_bus.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_bus.h Tue Sep 14 01:51:04 2010 (r212594) +++ user/weongyo/usb/sys/dev/usb/usb_bus.h Tue Sep 14 01:52:16 2010 (r212595) @@ -88,7 +88,7 @@ struct usb_bus { uint16_t isoc_time_last; /* in milliseconds */ uint8_t alloc_failed; /* Set if memory allocation failed. */ - uint8_t driver_added_refcount; /* Current driver generation count */ + uint8_t generation; /* Current driver generation count */ enum usb_revision usbrev; /* USB revision. See "USB_REV_XXX". */ uint8_t devices_max; /* maximum number of USB devices */ Modified: user/weongyo/usb/sys/dev/usb/usb_device.h ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_device.h Tue Sep 14 01:51:04 2010 (r212594) +++ user/weongyo/usb/sys/dev/usb/usb_device.h Tue Sep 14 01:52:16 2010 (r212595) @@ -155,7 +155,7 @@ struct usb_device { uint8_t port_no; /* parent HUB port number */ uint8_t hs_hub_addr; /* high-speed HUB address */ uint8_t hs_port_no; /* high-speed HUB port number */ - uint8_t driver_added_refcount; /* our driver added generation count */ + uint8_t generation; /* our driver added generation count */ uint8_t power_mode; /* see USB_POWER_XXX */ uint8_t ifaces_max; /* number of interfaces present */ uint8_t endpoints_max; /* number of endpoints present */ Modified: user/weongyo/usb/sys/dev/usb/usb_hub.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/usb_hub.c Tue Sep 14 01:51:04 2010 (r212594) +++ user/weongyo/usb/sys/dev/usb/usb_hub.c Tue Sep 14 01:52:16 2010 (r212595) @@ -220,14 +220,14 @@ uhub_explore_sub(struct uhub_softc *sc, { struct usb_bus *bus; struct usb_device *child; - uint8_t refcount; + uint8_t generation; usb_error_t err; bus = sc->sc_udev->bus; err = 0; - /* get driver added refcount from USB bus */ - refcount = bus->driver_added_refcount; + /* get driver generation from USB bus */ + generation = bus->generation; /* get device assosiated with the given port */ child = usb_bus_port_get_device(bus, up); @@ -237,8 +237,8 @@ uhub_explore_sub(struct uhub_softc *sc, } /* check if probe and attach should be done */ - if (child->driver_added_refcount != refcount) { - child->driver_added_refcount = refcount; + if (child->generation != generation) { + child->generation = generation; err = usb_probe_and_attach(child, USB_IFACE_INDEX_ANY); if (err) { From owner-svn-src-user@FreeBSD.ORG Tue Sep 14 02:05:08 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 88C4A106564A; Tue, 14 Sep 2010 02:05:08 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7816A8FC14; Tue, 14 Sep 2010 02:05:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8E258kS055573; Tue, 14 Sep 2010 02:05:08 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8E258aZ055571; Tue, 14 Sep 2010 02:05:08 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009140205.o8E258aZ055571@svn.freebsd.org> From: Weongyo Jeong Date: Tue, 14 Sep 2010 02:05:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212596 - user/weongyo/usb/sys/dev/usb/controller X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Sep 2010 02:05:08 -0000 Author: weongyo Date: Tue Sep 14 02:05:08 2010 New Revision: 212596 URL: http://svn.freebsd.org/changeset/base/212596 Log: Initializes `bus->generation' when the USB bus structure is initialized that don't need to check it whenever usb_bus_explore() is called because it'd not be decreased. Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Tue Sep 14 01:52:16 2010 (r212595) +++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Tue Sep 14 02:05:08 2010 (r212596) @@ -198,10 +198,6 @@ usb_bus_explore(void *arg, int npending) bus->do_probe = 0; bus->generation++; } - if (bus->generation == 0) { - /* avoid zero, hence that is memory default */ - bus->generation = 1; - } #ifdef DDB /* @@ -541,6 +537,7 @@ usb_bus_struct_init(struct usb_bus *bus, bus->devices_max = udevsmax; bus->busmem_func = busmem_func; bus->alloc_failed = 0; + bus->generation = 1; mtx_init(&bus->bus_mtx, device_get_nameunit(bus->parent), NULL, MTX_DEF); From owner-svn-src-user@FreeBSD.ORG Tue Sep 14 03:31:27 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E769106564A; Tue, 14 Sep 2010 03:31:27 +0000 (UTC) (envelope-from pgollucci@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0405A8FC0A; Tue, 14 Sep 2010 03:31:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8E3VQ3G064241; Tue, 14 Sep 2010 03:31:26 GMT (envelope-from pgollucci@svn.freebsd.org) Received: (from pgollucci@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8E3VQ51064240; Tue, 14 Sep 2010 03:31:26 GMT (envelope-from pgollucci@svn.freebsd.org) Message-Id: <201009140331.o8E3VQ51064240@svn.freebsd.org> From: "Philip M. Gollucci" Date: Tue, 14 Sep 2010 03:31:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212598 - user/pgollucci/portupgrade X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Sep 2010 03:31:27 -0000 Author: pgollucci (ports committer) Date: Tue Sep 14 03:31:26 2010 New Revision: 212598 URL: http://svn.freebsd.org/changeset/base/212598 Log: See svn.freebsd.org/base/projects/pkgtools instead Deleted: user/pgollucci/portupgrade/ From owner-svn-src-user@FreeBSD.ORG Tue Sep 14 04:22:27 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9980B106564A; Tue, 14 Sep 2010 04:22:27 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 89CC88FC16; Tue, 14 Sep 2010 04:22:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8E4MRWm067957; Tue, 14 Sep 2010 04:22:27 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8E4MRsw067955; Tue, 14 Sep 2010 04:22:27 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201009140422.o8E4MRsw067955@svn.freebsd.org> From: Warner Losh Date: Tue, 14 Sep 2010 04:22:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212599 - user/imp/tbemd/gnu/usr.bin/cc X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Sep 2010 04:22:27 -0000 Author: imp Date: Tue Sep 14 04:22:27 2010 New Revision: 212599 URL: http://svn.freebsd.org/changeset/base/212599 Log: This whole section applies only to mips, and pick up the dropped .if from before Modified: user/imp/tbemd/gnu/usr.bin/cc/Makefile.inc Modified: user/imp/tbemd/gnu/usr.bin/cc/Makefile.inc ============================================================================== --- user/imp/tbemd/gnu/usr.bin/cc/Makefile.inc Tue Sep 14 03:31:26 2010 (r212598) +++ user/imp/tbemd/gnu/usr.bin/cc/Makefile.inc Tue Sep 14 04:22:27 2010 (r212599) @@ -35,6 +35,9 @@ CFLAGS+= -DCROSS_COMPILE .if ${TARGET_ARCH} == "armeb" CFLAGS += -DTARGET_ENDIAN_DEFAULT=MASK_BIG_END .endif + + +.if ${TARGET_CPUARCH} == "mips" .if ${TARGET_ARCH} == "mipsel" CFLAGS += -DTARGET_ENDIAN_DEFAULT=0 .endif From owner-svn-src-user@FreeBSD.ORG Tue Sep 14 07:09:25 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 068C2106566C; Tue, 14 Sep 2010 07:09:25 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EABCF8FC13; Tue, 14 Sep 2010 07:09:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8E79OPc071332; Tue, 14 Sep 2010 07:09:24 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8E79OJC071330; Tue, 14 Sep 2010 07:09:24 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201009140709.o8E79OJC071330@svn.freebsd.org> From: Dag-Erling Smorgrav Date: Tue, 14 Sep 2010 07:09:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212602 - user/des/phybs X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Sep 2010 07:09:25 -0000 Author: des Date: Tue Sep 14 07:09:24 2010 New Revision: 212602 URL: http://svn.freebsd.org/changeset/base/212602 Log: Fix an overflow in the tps calculation. Noticed by: Pieter de Goeje Modified: user/des/phybs/phybs.c Modified: user/des/phybs/phybs.c ============================================================================== --- user/des/phybs/phybs.c Tue Sep 14 04:57:30 2010 (r212601) +++ user/des/phybs/phybs.c Tue Sep 14 07:09:24 2010 (r212602) @@ -36,8 +36,9 @@ #include #include #include -#include +#include #include +#include #include #include @@ -101,9 +102,9 @@ scan(int fd, size_t size, off_t offset, err(1, "gettimeofday()"); usec = t1.tv_sec * 1000000 + t1.tv_usec; usec -= t0.tv_sec * 1000000 + t0.tv_usec; - printf("%10lu%8lu%8lu\n", usec / 1000, - count * 1000000 / usec, - count * size * 1000000 / 1024 / usec); + printf("%10lu%8ju%8ju\n", usec / 1000, + (uintmax_t)count * 1000000 / usec, + (uintmax_t)count * size * 1000000 / 1024 / usec); free(buf); } From owner-svn-src-user@FreeBSD.ORG Tue Sep 14 23:54:03 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C627106566B; Tue, 14 Sep 2010 23:54:03 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5C52F8FC12; Tue, 14 Sep 2010 23:54:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8ENs3al096560; Tue, 14 Sep 2010 23:54:03 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8ENs3Cj096558; Tue, 14 Sep 2010 23:54:03 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <201009142354.o8ENs3Cj096558@svn.freebsd.org> From: Weongyo Jeong Date: Tue, 14 Sep 2010 23:54:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212626 - user/weongyo/usb/sys/dev/usb/controller X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Sep 2010 23:54:03 -0000 Author: weongyo Date: Tue Sep 14 23:54:03 2010 New Revision: 212626 URL: http://svn.freebsd.org/changeset/base/212626 Log: Removes a XXX comment that calling devclass_find(9) requires Giant also. Pointed by: imp Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Modified: user/weongyo/usb/sys/dev/usb/controller/usb_controller.c ============================================================================== --- user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Tue Sep 14 23:27:06 2010 (r212625) +++ user/weongyo/usb/sys/dev/usb/controller/usb_controller.c Tue Sep 14 23:54:03 2010 (r212626) @@ -384,7 +384,6 @@ usb_attach_sub(device_t dev, struct usb_ { const char *pname = device_get_nameunit(dev); - /* XXX devclass_find(9) needs Giant? */ GIANT_REQUIRED; if (usb_devclass_ptr == NULL) usb_devclass_ptr = devclass_find("usbus"); From owner-svn-src-user@FreeBSD.ORG Thu Sep 16 13:49:11 2010 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 43BA9106564A; Thu, 16 Sep 2010 13:49:11 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2E5BF8FC17; Thu, 16 Sep 2010 13:49:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8GDnB20091370; Thu, 16 Sep 2010 13:49:11 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8GDnAhM091354; Thu, 16 Sep 2010 13:49:10 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201009161349.o8GDnAhM091354@svn.freebsd.org> From: Nathan Whitehorn Date: Thu, 16 Sep 2010 13:49:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r212733 - in user/nwhitehorn/ps3: amd64/amd64 amd64/conf amd64/include arm/arm arm/xscale/ixp425 boot/sparc64/boot1 boot/zfs cddl/boot/zfs cddl/compat/opensolaris/sys cddl/contrib/opens... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Sep 2010 13:49:11 -0000 Author: nwhitehorn Date: Thu Sep 16 13:49:10 2010 New Revision: 212733 URL: http://svn.freebsd.org/changeset/base/212733 Log: IFC @ r212732 This pulls in recent timer and SLB changes. Added: user/nwhitehorn/ps3/conf/ldscript.mips.64.cfe - copied unchanged from r212732, head/sys/conf/ldscript.mips.64.cfe user/nwhitehorn/ps3/dev/mps/ - copied from r212732, head/sys/dev/mps/ user/nwhitehorn/ps3/mips/conf/SWARM64 - copied unchanged from r212732, head/sys/mips/conf/SWARM64 user/nwhitehorn/ps3/mips/conf/SWARM64_SMP - copied unchanged from r212732, head/sys/mips/conf/SWARM64_SMP user/nwhitehorn/ps3/mips/conf/SWARM_COMMON - copied unchanged from r212732, head/sys/mips/conf/SWARM_COMMON user/nwhitehorn/ps3/modules/mps/ - copied from r212732, head/sys/modules/mps/ Deleted: user/nwhitehorn/ps3/mips/mips/psraccess.S Modified: user/nwhitehorn/ps3/amd64/amd64/legacy.c user/nwhitehorn/ps3/amd64/amd64/machdep.c user/nwhitehorn/ps3/amd64/amd64/mp_machdep.c user/nwhitehorn/ps3/amd64/amd64/nexus.c user/nwhitehorn/ps3/amd64/conf/GENERIC user/nwhitehorn/ps3/amd64/include/apicvar.h user/nwhitehorn/ps3/arm/arm/nexus.c user/nwhitehorn/ps3/arm/arm/pmap.c user/nwhitehorn/ps3/arm/xscale/ixp425/ixp425.c user/nwhitehorn/ps3/boot/sparc64/boot1/boot1.c user/nwhitehorn/ps3/boot/zfs/zfsimpl.c user/nwhitehorn/ps3/cddl/boot/zfs/zfsimpl.h user/nwhitehorn/ps3/cddl/compat/opensolaris/sys/vnode.h user/nwhitehorn/ps3/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c user/nwhitehorn/ps3/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ctldir.h user/nwhitehorn/ps3/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c user/nwhitehorn/ps3/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c user/nwhitehorn/ps3/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c user/nwhitehorn/ps3/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c user/nwhitehorn/ps3/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/nwhitehorn/ps3/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c user/nwhitehorn/ps3/compat/linprocfs/linprocfs.c user/nwhitehorn/ps3/compat/linux/linux_ioctl.c user/nwhitehorn/ps3/conf/Makefile.mips user/nwhitehorn/ps3/conf/files user/nwhitehorn/ps3/conf/files.mips user/nwhitehorn/ps3/conf/files.powerpc user/nwhitehorn/ps3/conf/kern.mk user/nwhitehorn/ps3/conf/kern.pre.mk user/nwhitehorn/ps3/conf/kmod.mk user/nwhitehorn/ps3/contrib/pf/net/pf.c user/nwhitehorn/ps3/dev/aac/aac.c user/nwhitehorn/ps3/dev/aac/aacreg.h user/nwhitehorn/ps3/dev/aac/aacvar.h user/nwhitehorn/ps3/dev/acpi_support/acpi_hp.c user/nwhitehorn/ps3/dev/acpi_support/acpi_wmi.c user/nwhitehorn/ps3/dev/acpica/acpi.c user/nwhitehorn/ps3/dev/acpica/acpi_cpu.c user/nwhitehorn/ps3/dev/acpica/acpi_hpet.c user/nwhitehorn/ps3/dev/ahci/ahci.c user/nwhitehorn/ps3/dev/atkbdc/atkbdc_isa.c user/nwhitehorn/ps3/dev/cxgb/common/cxgb_t3_hw.c user/nwhitehorn/ps3/dev/cxgb/cxgb_sge.c user/nwhitehorn/ps3/dev/fb/vesa.c user/nwhitehorn/ps3/dev/firewire/firewire.c user/nwhitehorn/ps3/dev/firewire/fwohci_pci.c user/nwhitehorn/ps3/dev/gem/if_gem.c user/nwhitehorn/ps3/dev/gem/if_gem_pci.c user/nwhitehorn/ps3/dev/gem/if_gem_sbus.c user/nwhitehorn/ps3/dev/iicbus/iicbus.c user/nwhitehorn/ps3/dev/led/led.c user/nwhitehorn/ps3/dev/malo/if_malo_pci.c user/nwhitehorn/ps3/dev/msk/if_msk.c user/nwhitehorn/ps3/dev/mvs/mvs.c user/nwhitehorn/ps3/dev/mwl/if_mwl_pci.c user/nwhitehorn/ps3/dev/ofw/ofw_fdt.c user/nwhitehorn/ps3/dev/ofw/ofw_if.m user/nwhitehorn/ps3/dev/ofw/ofw_iicbus.c user/nwhitehorn/ps3/dev/ofw/ofw_standard.c user/nwhitehorn/ps3/dev/ofw/openfirm.c user/nwhitehorn/ps3/dev/pci/pcireg.h user/nwhitehorn/ps3/dev/ppbus/ppbconf.c user/nwhitehorn/ps3/dev/siba/siba.c user/nwhitehorn/ps3/dev/siis/siis.c user/nwhitehorn/ps3/dev/spibus/spibus.c user/nwhitehorn/ps3/dev/usb/usb_busdma.c user/nwhitehorn/ps3/fs/devfs/devfs.h user/nwhitehorn/ps3/fs/devfs/devfs_devs.c user/nwhitehorn/ps3/fs/devfs/devfs_vnops.c user/nwhitehorn/ps3/fs/nfs/nfsdport.h user/nwhitehorn/ps3/fs/nfsclient/nfs_clvnops.c user/nwhitehorn/ps3/fs/nfsserver/nfs_nfsdstate.c user/nwhitehorn/ps3/fs/tmpfs/tmpfs_vnops.c user/nwhitehorn/ps3/geom/eli/g_eli_ctl.c user/nwhitehorn/ps3/geom/mirror/g_mirror_ctl.c user/nwhitehorn/ps3/geom/part/g_part.c user/nwhitehorn/ps3/i386/i386/legacy.c user/nwhitehorn/ps3/i386/i386/machdep.c user/nwhitehorn/ps3/i386/i386/mp_machdep.c user/nwhitehorn/ps3/i386/i386/nexus.c user/nwhitehorn/ps3/i386/include/apicvar.h user/nwhitehorn/ps3/ia64/ia64/nexus.c user/nwhitehorn/ps3/isa/isa_common.c user/nwhitehorn/ps3/kern/bus_if.m user/nwhitehorn/ps3/kern/kern_clock.c user/nwhitehorn/ps3/kern/kern_clocksource.c user/nwhitehorn/ps3/kern/kern_et.c user/nwhitehorn/ps3/kern/kern_jail.c user/nwhitehorn/ps3/kern/kern_sig.c user/nwhitehorn/ps3/kern/kern_tc.c user/nwhitehorn/ps3/kern/kern_timeout.c user/nwhitehorn/ps3/kern/sched_4bsd.c user/nwhitehorn/ps3/kern/sched_ule.c user/nwhitehorn/ps3/kern/subr_bus.c user/nwhitehorn/ps3/kern/subr_lock.c user/nwhitehorn/ps3/kern/subr_sbuf.c user/nwhitehorn/ps3/kern/subr_sleepqueue.c user/nwhitehorn/ps3/kern/subr_witness.c user/nwhitehorn/ps3/kern/vfs_mount.c user/nwhitehorn/ps3/kern/vfs_subr.c user/nwhitehorn/ps3/mips/adm5120/obio.c user/nwhitehorn/ps3/mips/alchemy/obio.c user/nwhitehorn/ps3/mips/atheros/apb.c user/nwhitehorn/ps3/mips/cavium/octeon_mp.c user/nwhitehorn/ps3/mips/conf/MALTA64 user/nwhitehorn/ps3/mips/conf/OCTEON1 user/nwhitehorn/ps3/mips/conf/SWARM user/nwhitehorn/ps3/mips/conf/SWARM_SMP user/nwhitehorn/ps3/mips/idt/obio.c user/nwhitehorn/ps3/mips/include/cpufunc.h user/nwhitehorn/ps3/mips/include/md_var.h user/nwhitehorn/ps3/mips/include/smp.h user/nwhitehorn/ps3/mips/mips/machdep.c user/nwhitehorn/ps3/mips/mips/mainbus.c user/nwhitehorn/ps3/mips/mips/mp_machdep.c user/nwhitehorn/ps3/mips/mips/nexus.c user/nwhitehorn/ps3/mips/mips/pmap.c user/nwhitehorn/ps3/mips/mips/trap.c user/nwhitehorn/ps3/mips/rmi/dev/nlge/if_nlge.c user/nwhitehorn/ps3/mips/rmi/dev/xlr/rge.c user/nwhitehorn/ps3/mips/rmi/iodi.c user/nwhitehorn/ps3/mips/rmi/msgring.h user/nwhitehorn/ps3/mips/rmi/rmi_mips_exts.h user/nwhitehorn/ps3/mips/rmi/xlr_machdep.c user/nwhitehorn/ps3/mips/rmi/xlr_pci.c user/nwhitehorn/ps3/mips/sibyte/sb_machdep.c user/nwhitehorn/ps3/mips/sibyte/sb_zbbus.c user/nwhitehorn/ps3/modules/Makefile user/nwhitehorn/ps3/modules/crypto/Makefile user/nwhitehorn/ps3/modules/gem/Makefile user/nwhitehorn/ps3/modules/opensolaris/Makefile user/nwhitehorn/ps3/modules/scc/Makefile user/nwhitehorn/ps3/modules/sound/sound/Makefile user/nwhitehorn/ps3/modules/zfs/Makefile user/nwhitehorn/ps3/net/if.c user/nwhitehorn/ps3/netinet/raw_ip.c user/nwhitehorn/ps3/netinet/sctp_asconf.c user/nwhitehorn/ps3/netinet/sctp_asconf.h user/nwhitehorn/ps3/netinet/sctp_bsd_addr.c user/nwhitehorn/ps3/netinet/sctp_cc_functions.c user/nwhitehorn/ps3/netinet/sctp_indata.c user/nwhitehorn/ps3/netinet/sctp_input.c user/nwhitehorn/ps3/netinet/sctp_output.c user/nwhitehorn/ps3/netinet/sctp_output.h user/nwhitehorn/ps3/netinet/sctp_pcb.c user/nwhitehorn/ps3/netinet/sctp_sysctl.c user/nwhitehorn/ps3/netinet/sctp_timer.c user/nwhitehorn/ps3/netinet/sctp_usrreq.c user/nwhitehorn/ps3/netinet/sctputil.c user/nwhitehorn/ps3/netinet/tcp.h user/nwhitehorn/ps3/netinet6/sctp6_usrreq.c user/nwhitehorn/ps3/nfsclient/nfs.h user/nwhitehorn/ps3/nfsclient/nfs_nfsiod.c user/nwhitehorn/ps3/nfsclient/nfs_subs.c user/nwhitehorn/ps3/pc98/pc98/canbus.c user/nwhitehorn/ps3/pc98/pc98/machdep.c user/nwhitehorn/ps3/powerpc/aim/clock.c user/nwhitehorn/ps3/powerpc/aim/copyinout.c user/nwhitehorn/ps3/powerpc/aim/interrupt.c user/nwhitehorn/ps3/powerpc/aim/machdep.c user/nwhitehorn/ps3/powerpc/aim/mmu_oea.c user/nwhitehorn/ps3/powerpc/aim/mmu_oea64.c user/nwhitehorn/ps3/powerpc/aim/nexus.c user/nwhitehorn/ps3/powerpc/aim/slb.c user/nwhitehorn/ps3/powerpc/aim/trap.c user/nwhitehorn/ps3/powerpc/aim/trap_subr64.S user/nwhitehorn/ps3/powerpc/booke/clock.c user/nwhitehorn/ps3/powerpc/booke/interrupt.c user/nwhitehorn/ps3/powerpc/booke/platform_bare.c user/nwhitehorn/ps3/powerpc/booke/pmap.c user/nwhitehorn/ps3/powerpc/include/intr_machdep.h user/nwhitehorn/ps3/powerpc/include/md_var.h user/nwhitehorn/ps3/powerpc/include/mmuvar.h user/nwhitehorn/ps3/powerpc/include/pcb.h user/nwhitehorn/ps3/powerpc/include/pcpu.h user/nwhitehorn/ps3/powerpc/include/pmap.h user/nwhitehorn/ps3/powerpc/include/smp.h user/nwhitehorn/ps3/powerpc/include/sr.h user/nwhitehorn/ps3/powerpc/ofw/ofw_real.c user/nwhitehorn/ps3/powerpc/powermac/ata_kauai.c user/nwhitehorn/ps3/powerpc/powermac/kiic.c user/nwhitehorn/ps3/powerpc/powerpc/cpu.c user/nwhitehorn/ps3/powerpc/powerpc/exec_machdep.c user/nwhitehorn/ps3/powerpc/powerpc/intr_machdep.c user/nwhitehorn/ps3/powerpc/powerpc/mp_machdep.c user/nwhitehorn/ps3/powerpc/ps3/mmu_ps3.c user/nwhitehorn/ps3/security/audit/audit_bsm_klib.c user/nwhitehorn/ps3/sparc64/include/asm.h user/nwhitehorn/ps3/sparc64/include/intr_machdep.h user/nwhitehorn/ps3/sparc64/include/md_var.h user/nwhitehorn/ps3/sparc64/include/smp.h user/nwhitehorn/ps3/sparc64/pci/schizo.c user/nwhitehorn/ps3/sparc64/sparc64/bus_machdep.c user/nwhitehorn/ps3/sparc64/sparc64/intr_machdep.c user/nwhitehorn/ps3/sparc64/sparc64/iommu.c user/nwhitehorn/ps3/sparc64/sparc64/machdep.c user/nwhitehorn/ps3/sparc64/sparc64/mp_machdep.c user/nwhitehorn/ps3/sparc64/sparc64/nexus.c user/nwhitehorn/ps3/sparc64/sparc64/support.S user/nwhitehorn/ps3/sparc64/sparc64/vm_machdep.c user/nwhitehorn/ps3/sun4v/include/intr_machdep.h user/nwhitehorn/ps3/sun4v/include/smp.h user/nwhitehorn/ps3/sun4v/sun4v/bus_machdep.c user/nwhitehorn/ps3/sun4v/sun4v/hviommu.c user/nwhitehorn/ps3/sun4v/sun4v/intr_machdep.c user/nwhitehorn/ps3/sun4v/sun4v/mp_machdep.c user/nwhitehorn/ps3/sun4v/sun4v/nexus.c user/nwhitehorn/ps3/sun4v/sun4v/vnex.c user/nwhitehorn/ps3/sys/bus.h user/nwhitehorn/ps3/sys/callout.h user/nwhitehorn/ps3/sys/elf_common.h user/nwhitehorn/ps3/sys/lock.h user/nwhitehorn/ps3/sys/mount.h user/nwhitehorn/ps3/sys/param.h user/nwhitehorn/ps3/sys/pcpu.h user/nwhitehorn/ps3/sys/sbuf.h user/nwhitehorn/ps3/sys/sched.h user/nwhitehorn/ps3/sys/systm.h user/nwhitehorn/ps3/sys/timeet.h user/nwhitehorn/ps3/sys/timetc.h user/nwhitehorn/ps3/ufs/ffs/ffs_softdep.c user/nwhitehorn/ps3/ufs/ffs/fs.h user/nwhitehorn/ps3/ufs/ffs/softdep.h user/nwhitehorn/ps3/x86/cpufreq/est.c user/nwhitehorn/ps3/x86/x86/local_apic.c Directory Properties: user/nwhitehorn/ps3/ (props changed) user/nwhitehorn/ps3/amd64/include/xen/ (props changed) user/nwhitehorn/ps3/boot/powerpc/ps3/ (props changed) user/nwhitehorn/ps3/cddl/contrib/opensolaris/ (props changed) user/nwhitehorn/ps3/contrib/dev/acpica/ (props changed) user/nwhitehorn/ps3/contrib/pf/ (props changed) user/nwhitehorn/ps3/contrib/x86emu/ (props changed) user/nwhitehorn/ps3/dev/xen/xenpci/ (props changed) user/nwhitehorn/ps3/powerpc/ps3/ (props changed) Modified: user/nwhitehorn/ps3/amd64/amd64/legacy.c ============================================================================== --- user/nwhitehorn/ps3/amd64/amd64/legacy.c Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/amd64/amd64/legacy.c Thu Sep 16 13:49:10 2010 (r212733) @@ -60,7 +60,7 @@ struct legacy_device { static int legacy_probe(device_t); static int legacy_attach(device_t); static int legacy_print_child(device_t, device_t); -static device_t legacy_add_child(device_t bus, int order, const char *name, +static device_t legacy_add_child(device_t bus, u_int order, const char *name, int unit); static int legacy_read_ivar(device_t, device_t, int, uintptr_t *); static int legacy_write_ivar(device_t, device_t, int, uintptr_t); @@ -149,7 +149,7 @@ legacy_print_child(device_t bus, device_ } static device_t -legacy_add_child(device_t bus, int order, const char *name, int unit) +legacy_add_child(device_t bus, u_int order, const char *name, int unit) { device_t child; struct legacy_device *atdev; @@ -213,7 +213,7 @@ legacy_write_ivar(device_t dev, device_t static void cpu_identify(driver_t *driver, device_t parent); static int cpu_read_ivar(device_t dev, device_t child, int index, uintptr_t *result); -static device_t cpu_add_child(device_t bus, int order, const char *name, +static device_t cpu_add_child(device_t bus, u_int order, const char *name, int unit); static struct resource_list *cpu_get_rlist(device_t dev, device_t child); @@ -277,7 +277,7 @@ cpu_identify(driver_t *driver, device_t } static device_t -cpu_add_child(device_t bus, int order, const char *name, int unit) +cpu_add_child(device_t bus, u_int order, const char *name, int unit) { struct cpu_device *cd; device_t child; Modified: user/nwhitehorn/ps3/amd64/amd64/machdep.c ============================================================================== --- user/nwhitehorn/ps3/amd64/amd64/machdep.c Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/amd64/amd64/machdep.c Thu Sep 16 13:49:10 2010 (r212733) @@ -585,59 +585,89 @@ cpu_halt(void) } void (*cpu_idle_hook)(void) = NULL; /* ACPI idle hook. */ +static int cpu_ident_amdc1e = 0; /* AMD C1E supported. */ +static int idle_mwait = 1; /* Use MONITOR/MWAIT for short idle. */ +TUNABLE_INT("machdep.idle_mwait", &idle_mwait); +SYSCTL_INT(_machdep, OID_AUTO, idle_mwait, CTLFLAG_RW, &idle_mwait, + 0, "Use MONITOR/MWAIT for short idle"); + +#define STATE_RUNNING 0x0 +#define STATE_MWAIT 0x1 +#define STATE_SLEEPING 0x2 static void -cpu_idle_hlt(int busy) +cpu_idle_acpi(int busy) { - /* - * we must absolutely guarentee that hlt is the next instruction - * after sti or we introduce a timing window. - */ + int *state; + + state = (int *)PCPU_PTR(monitorbuf); + *state = STATE_SLEEPING; disable_intr(); - if (sched_runnable()) + if (sched_runnable()) enable_intr(); + else if (cpu_idle_hook) + cpu_idle_hook(); else __asm __volatile("sti; hlt"); + *state = STATE_RUNNING; } static void -cpu_idle_acpi(int busy) +cpu_idle_hlt(int busy) { + int *state; + + state = (int *)PCPU_PTR(monitorbuf); + *state = STATE_SLEEPING; + /* + * We must absolutely guarentee that hlt is the next instruction + * after sti or we introduce a timing window. + */ disable_intr(); - if (sched_runnable()) + if (sched_runnable()) enable_intr(); - else if (cpu_idle_hook) - cpu_idle_hook(); else __asm __volatile("sti; hlt"); + *state = STATE_RUNNING; } -static int cpu_ident_amdc1e = 0; +/* + * MWAIT cpu power states. Lower 4 bits are sub-states. + */ +#define MWAIT_C0 0xf0 +#define MWAIT_C1 0x00 +#define MWAIT_C2 0x10 +#define MWAIT_C3 0x20 +#define MWAIT_C4 0x30 -static int -cpu_probe_amdc1e(void) +static void +cpu_idle_mwait(int busy) { - int i; + int *state; - /* - * Forget it, if we're not using local APIC timer. - */ - if (resource_disabled("apic", 0) || - (resource_int_value("apic", 0, "clock", &i) == 0 && i == 0)) - return (0); - - /* - * Detect the presence of C1E capability mostly on latest - * dual-cores (or future) k8 family. - */ - if (cpu_vendor_id == CPU_VENDOR_AMD && - (cpu_id & 0x00000f00) == 0x00000f00 && - (cpu_id & 0x0fff0000) >= 0x00040000) { - cpu_ident_amdc1e = 1; - return (1); + state = (int *)PCPU_PTR(monitorbuf); + *state = STATE_MWAIT; + if (!sched_runnable()) { + cpu_monitor(state, 0, 0); + if (*state == STATE_MWAIT) + cpu_mwait(0, MWAIT_C1); } + *state = STATE_RUNNING; +} - return (0); +static void +cpu_idle_spin(int busy) +{ + int *state; + int i; + + state = (int *)PCPU_PTR(monitorbuf); + *state = STATE_RUNNING; + for (i = 0; i < 1000; i++) { + if (sched_runnable()) + return; + cpu_spinwait(); + } } /* @@ -655,110 +685,83 @@ cpu_probe_amdc1e(void) #define AMDK8_CMPHALT (AMDK8_SMIONCMPHALT | AMDK8_C1EONCMPHALT) static void -cpu_idle_amdc1e(int busy) +cpu_probe_amdc1e(void) { - disable_intr(); - if (sched_runnable()) - enable_intr(); - else { - uint64_t msr; - - msr = rdmsr(MSR_AMDK8_IPM); - if (msr & AMDK8_CMPHALT) - wrmsr(MSR_AMDK8_IPM, msr & ~AMDK8_CMPHALT); - - if (cpu_idle_hook) - cpu_idle_hook(); - else - __asm __volatile("sti; hlt"); + /* + * Detect the presence of C1E capability mostly on latest + * dual-cores (or future) k8 family. + */ + if (cpu_vendor_id == CPU_VENDOR_AMD && + (cpu_id & 0x00000f00) == 0x00000f00 && + (cpu_id & 0x0fff0000) >= 0x00040000) { + cpu_ident_amdc1e = 1; } } -static void -cpu_idle_spin(int busy) -{ - return; -} - void (*cpu_idle_fn)(int) = cpu_idle_acpi; void cpu_idle(int busy) { + uint64_t msr; + + CTR2(KTR_SPARE2, "cpu_idle(%d) at %d", + busy, curcpu); #ifdef SMP if (mp_grab_cpu_hlt()) return; #endif - cpu_idle_fn(busy); -} - -/* - * mwait cpu power states. Lower 4 bits are sub-states. - */ -#define MWAIT_C0 0xf0 -#define MWAIT_C1 0x00 -#define MWAIT_C2 0x10 -#define MWAIT_C3 0x20 -#define MWAIT_C4 0x30 - -#define MWAIT_DISABLED 0x0 -#define MWAIT_WOKEN 0x1 -#define MWAIT_WAITING 0x2 + /* If we are busy - try to use fast methods. */ + if (busy) { + if ((cpu_feature2 & CPUID2_MON) && idle_mwait) { + cpu_idle_mwait(busy); + goto out; + } + } -static void -cpu_idle_mwait(int busy) -{ - int *mwait; + /* If we have time - switch timers into idle mode. */ + if (!busy) { + critical_enter(); + cpu_idleclock(); + } - mwait = (int *)PCPU_PTR(monitorbuf); - *mwait = MWAIT_WAITING; - if (sched_runnable()) - return; - cpu_monitor(mwait, 0, 0); - if (*mwait == MWAIT_WAITING) - cpu_mwait(0, MWAIT_C1); -} + /* Apply AMD APIC timer C1E workaround. */ + if (cpu_ident_amdc1e && cpu_disable_deep_sleep) { + msr = rdmsr(MSR_AMDK8_IPM); + if (msr & AMDK8_CMPHALT) + wrmsr(MSR_AMDK8_IPM, msr & ~AMDK8_CMPHALT); + } -static void -cpu_idle_mwait_hlt(int busy) -{ - int *mwait; + /* Call main idle method. */ + cpu_idle_fn(busy); - mwait = (int *)PCPU_PTR(monitorbuf); - if (busy == 0) { - *mwait = MWAIT_DISABLED; - cpu_idle_hlt(busy); - return; - } - *mwait = MWAIT_WAITING; - if (sched_runnable()) - return; - cpu_monitor(mwait, 0, 0); - if (*mwait == MWAIT_WAITING) - cpu_mwait(0, MWAIT_C1); + /* Switch timers mack into active mode. */ + if (!busy) { + cpu_activeclock(); + critical_exit(); + } +out: + CTR2(KTR_SPARE2, "cpu_idle(%d) at %d done", + busy, curcpu); } int cpu_idle_wakeup(int cpu) { struct pcpu *pcpu; - int *mwait; + int *state; - if (cpu_idle_fn == cpu_idle_spin) - return (1); - if (cpu_idle_fn != cpu_idle_mwait && cpu_idle_fn != cpu_idle_mwait_hlt) - return (0); pcpu = pcpu_find(cpu); - mwait = (int *)pcpu->pc_monitorbuf; + state = (int *)pcpu->pc_monitorbuf; /* * This doesn't need to be atomic since missing the race will * simply result in unnecessary IPIs. */ - if (cpu_idle_fn == cpu_idle_mwait_hlt && *mwait == MWAIT_DISABLED) + if (*state == STATE_SLEEPING) return (0); - *mwait = MWAIT_WOKEN; - + if (*state == STATE_MWAIT) + *state = STATE_RUNNING; return (1); } @@ -771,8 +774,6 @@ struct { } idle_tbl[] = { { cpu_idle_spin, "spin" }, { cpu_idle_mwait, "mwait" }, - { cpu_idle_mwait_hlt, "mwait_hlt" }, - { cpu_idle_amdc1e, "amdc1e" }, { cpu_idle_hlt, "hlt" }, { cpu_idle_acpi, "acpi" }, { NULL, NULL } @@ -791,8 +792,8 @@ idle_sysctl_available(SYSCTL_HANDLER_ARG if (strstr(idle_tbl[i].id_name, "mwait") && (cpu_feature2 & CPUID2_MON) == 0) continue; - if (strcmp(idle_tbl[i].id_name, "amdc1e") == 0 && - cpu_ident_amdc1e == 0) + if (strcmp(idle_tbl[i].id_name, "acpi") == 0 && + cpu_idle_hook == NULL) continue; p += sprintf(p, "%s, ", idle_tbl[i].id_name); } @@ -801,6 +802,9 @@ idle_sysctl_available(SYSCTL_HANDLER_ARG return (error); } +SYSCTL_PROC(_machdep, OID_AUTO, idle_available, CTLTYPE_STRING | CTLFLAG_RD, + 0, 0, idle_sysctl_available, "A", "list of available idle functions"); + static int idle_sysctl(SYSCTL_HANDLER_ARGS) { @@ -824,8 +828,8 @@ idle_sysctl(SYSCTL_HANDLER_ARGS) if (strstr(idle_tbl[i].id_name, "mwait") && (cpu_feature2 & CPUID2_MON) == 0) continue; - if (strcmp(idle_tbl[i].id_name, "amdc1e") == 0 && - cpu_ident_amdc1e == 0) + if (strcmp(idle_tbl[i].id_name, "acpi") == 0 && + cpu_idle_hook == NULL) continue; if (strcmp(idle_tbl[i].id_name, buf)) continue; @@ -835,9 +839,6 @@ idle_sysctl(SYSCTL_HANDLER_ARGS) return (EINVAL); } -SYSCTL_PROC(_machdep, OID_AUTO, idle_available, CTLTYPE_STRING | CTLFLAG_RD, - 0, 0, idle_sysctl_available, "A", "list of available idle functions"); - SYSCTL_PROC(_machdep, OID_AUTO, idle, CTLTYPE_STRING | CTLFLAG_RW, 0, 0, idle_sysctl, "A", "currently selected idle function"); @@ -1743,8 +1744,7 @@ hammer_time(u_int64_t modulep, u_int64_t } #endif - if (cpu_probe_amdc1e()) - cpu_idle_fn = cpu_idle_amdc1e; + cpu_probe_amdc1e(); /* Location of kernel stack for locore */ return ((u_int64_t)thread0.td_pcb); Modified: user/nwhitehorn/ps3/amd64/amd64/mp_machdep.c ============================================================================== --- user/nwhitehorn/ps3/amd64/amd64/mp_machdep.c Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/amd64/amd64/mp_machdep.c Thu Sep 16 13:49:10 2010 (r212733) @@ -118,7 +118,6 @@ u_long *ipi_invlcache_counts[MAXCPU]; u_long *ipi_rendezvous_counts[MAXCPU]; u_long *ipi_lazypmap_counts[MAXCPU]; static u_long *ipi_hardclock_counts[MAXCPU]; -static u_long *ipi_statclock_counts[MAXCPU]; #endif extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32); @@ -1196,16 +1195,22 @@ smp_masked_invlpg_range(cpumask_t mask, void ipi_bitmap_handler(struct trapframe frame) { + struct trapframe *oldframe; + struct thread *td; int cpu = PCPU_GET(cpuid); u_int ipi_bitmap; + critical_enter(); + td = curthread; + td->td_intr_nesting_level++; + oldframe = td->td_intr_frame; + td->td_intr_frame = &frame; ipi_bitmap = atomic_readandclear_int(&cpu_ipi_pending[cpu]); - if (ipi_bitmap & (1 << IPI_PREEMPT)) { #ifdef COUNT_IPIS (*ipi_preempt_counts[cpu])++; #endif - sched_preempt(curthread); + sched_preempt(td); } if (ipi_bitmap & (1 << IPI_AST)) { #ifdef COUNT_IPIS @@ -1217,14 +1222,11 @@ ipi_bitmap_handler(struct trapframe fram #ifdef COUNT_IPIS (*ipi_hardclock_counts[cpu])++; #endif - hardclockintr(&frame); - } - if (ipi_bitmap & (1 << IPI_STATCLOCK)) { -#ifdef COUNT_IPIS - (*ipi_statclock_counts[cpu])++; -#endif - statclockintr(&frame); + hardclockintr(); } + td->td_intr_frame = oldframe; + td->td_intr_nesting_level--; + critical_exit(); } /* @@ -1579,8 +1581,6 @@ mp_ipi_intrcnt(void *dummy) intrcnt_add(buf, &ipi_lazypmap_counts[i]); snprintf(buf, sizeof(buf), "cpu%d:hardclock", i); intrcnt_add(buf, &ipi_hardclock_counts[i]); - snprintf(buf, sizeof(buf), "cpu%d:statclock", i); - intrcnt_add(buf, &ipi_statclock_counts[i]); } } SYSINIT(mp_ipi_intrcnt, SI_SUB_INTR, SI_ORDER_MIDDLE, mp_ipi_intrcnt, NULL); Modified: user/nwhitehorn/ps3/amd64/amd64/nexus.c ============================================================================== --- user/nwhitehorn/ps3/amd64/amd64/nexus.c Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/amd64/amd64/nexus.c Thu Sep 16 13:49:10 2010 (r212733) @@ -83,7 +83,7 @@ static int nexus_probe(device_t); static int nexus_attach(device_t); static int nexus_print_all_resources(device_t dev); static int nexus_print_child(device_t, device_t); -static device_t nexus_add_child(device_t bus, int order, const char *name, +static device_t nexus_add_child(device_t bus, u_int order, const char *name, int unit); static struct resource *nexus_alloc_resource(device_t, device_t, int, int *, u_long, u_long, u_long, u_int); @@ -293,7 +293,7 @@ nexus_print_child(device_t bus, device_t } static device_t -nexus_add_child(device_t bus, int order, const char *name, int unit) +nexus_add_child(device_t bus, u_int order, const char *name, int unit) { device_t child; struct nexus_device *ndev; Modified: user/nwhitehorn/ps3/amd64/conf/GENERIC ============================================================================== --- user/nwhitehorn/ps3/amd64/conf/GENERIC Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/amd64/conf/GENERIC Thu Sep 16 13:49:10 2010 (r212733) @@ -112,6 +112,7 @@ device hptiop # Highpoint RocketRaid 3 device isp # Qlogic family #device ispfw # Firmware for QLogic HBAs- normally a module device mpt # LSI-Logic MPT-Fusion +device mps # LSI-Logic MPT-Fusion 2 #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets + those of `ncr') device trm # Tekram DC395U/UW/F DC315U adapters Modified: user/nwhitehorn/ps3/amd64/include/apicvar.h ============================================================================== --- user/nwhitehorn/ps3/amd64/include/apicvar.h Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/amd64/include/apicvar.h Thu Sep 16 13:49:10 2010 (r212733) @@ -123,8 +123,7 @@ #define IPI_AST 0 /* Generate software trap. */ #define IPI_PREEMPT 1 #define IPI_HARDCLOCK 2 -#define IPI_STATCLOCK 3 -#define IPI_BITMAP_LAST IPI_STATCLOCK +#define IPI_BITMAP_LAST IPI_HARDCLOCK #define IPI_IS_BITMAPED(x) ((x) <= IPI_BITMAP_LAST) #define IPI_STOP (APIC_IPI_INTS + 7) /* Stop CPU until restarted. */ Modified: user/nwhitehorn/ps3/arm/arm/nexus.c ============================================================================== --- user/nwhitehorn/ps3/arm/arm/nexus.c Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/arm/arm/nexus.c Thu Sep 16 13:49:10 2010 (r212733) @@ -74,7 +74,7 @@ static struct rman mem_rman; static int nexus_probe(device_t); static int nexus_attach(device_t); static int nexus_print_child(device_t, device_t); -static device_t nexus_add_child(device_t, int, const char *, int); +static device_t nexus_add_child(device_t, u_int, const char *, int); static struct resource *nexus_alloc_resource(device_t, device_t, int, int *, u_long, u_long, u_long, u_int); static int nexus_activate_resource(device_t, device_t, int, int, @@ -166,7 +166,7 @@ nexus_print_child(device_t bus, device_t } static device_t -nexus_add_child(device_t bus, int order, const char *name, int unit) +nexus_add_child(device_t bus, u_int order, const char *name, int unit) { device_t child; struct nexus_device *ndev; Modified: user/nwhitehorn/ps3/arm/arm/pmap.c ============================================================================== --- user/nwhitehorn/ps3/arm/arm/pmap.c Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/arm/arm/pmap.c Thu Sep 16 13:49:10 2010 (r212733) @@ -3158,8 +3158,6 @@ pmap_remove_all(vm_page_t m) *ptep = 0; PTE_SYNC_CURRENT(pv->pv_pmap, ptep); pmap_free_l2_bucket(pv->pv_pmap, l2b, 1); - if (pv->pv_flags & PVF_WIRED) - pv->pv_pmap->pm_stats.wired_count--; pv->pv_pmap->pm_stats.resident_count--; flags |= pv->pv_flags; } Modified: user/nwhitehorn/ps3/arm/xscale/ixp425/ixp425.c ============================================================================== --- user/nwhitehorn/ps3/arm/xscale/ixp425/ixp425.c Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/arm/xscale/ixp425/ixp425.c Thu Sep 16 13:49:10 2010 (r212733) @@ -369,7 +369,7 @@ ixp425_hinted_child(device_t bus, const } static device_t -ixp425_add_child(device_t dev, int order, const char *name, int unit) +ixp425_add_child(device_t dev, u_int order, const char *name, int unit) { device_t child; struct ixp425_ivar *ivar; Modified: user/nwhitehorn/ps3/boot/sparc64/boot1/boot1.c ============================================================================== --- user/nwhitehorn/ps3/boot/sparc64/boot1/boot1.c Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/boot/sparc64/boot1/boot1.c Thu Sep 16 13:49:10 2010 (r212733) @@ -26,9 +26,7 @@ __FBSDID("$FreeBSD$"); #define _PATH_LOADER "/boot/loader" #define _PATH_KERNEL "/boot/kernel/kernel" -#define BSIZEMAX 16384 - -typedef int putc_func_t(int c, void *arg); +typedef int putc_func_t(char c, void *arg); typedef int32_t ofwh_t; struct sp_data { @@ -44,11 +42,6 @@ static char bootargs[128]; static ofwh_t bootdev; -static struct fs fs; -static ino_t inomap; -static char blkbuf[BSIZEMAX]; -static unsigned int fsblks; - static uint32_t fs_off; int main(int ac, char **av); @@ -66,14 +59,13 @@ static int mount(const char *device); static void panic(const char *fmt, ...) __dead2; static int printf(const char *fmt, ...); -static int putchar(int c, void *arg); +static int putchar(char c, void *arg); static int vprintf(const char *fmt, va_list ap); static int vsnprintf(char *str, size_t sz, const char *fmt, va_list ap); static int __printf(const char *fmt, putc_func_t *putc, void *arg, va_list ap); -static int __putc(int c, void *arg); static int __puts(const char *s, putc_func_t *putc, void *arg); -static int __sputc(int c, void *arg); +static int __sputc(char c, void *arg); static char *__uitoa(char *buf, u_int val, int base); static char *__ultoa(char *buf, u_long val, int base); @@ -83,19 +75,18 @@ static char *__ultoa(char *buf, u_long v typedef u_int64_t ofwcell_t; typedef u_int32_t u_ofwh_t; typedef int (*ofwfp_t)(ofwcell_t []); -ofwfp_t ofw; /* the prom Open Firmware entry */ +static ofwfp_t ofw; /* the PROM Open Firmware entry */ void ofw_init(int, int, int, int, ofwfp_t); -ofwh_t ofw_finddevice(const char *); -ofwh_t ofw_open(const char *); -int ofw_getprop(ofwh_t, const char *, void *, size_t); -int ofw_read(ofwh_t, void *, size_t); -int ofw_write(ofwh_t, const void *, size_t); -int ofw_seek(ofwh_t, u_int64_t); -void ofw_exit(void) __dead2; +static ofwh_t ofw_finddevice(const char *); +static ofwh_t ofw_open(const char *); +static int ofw_getprop(ofwh_t, const char *, void *, size_t); +static int ofw_read(ofwh_t, void *, size_t); +static int ofw_write(ofwh_t, const void *, size_t); +static int ofw_seek(ofwh_t, u_int64_t); +static void ofw_exit(void) __dead2; -ofwh_t bootdevh; -ofwh_t stdinh, stdouth; +static ofwh_t stdinh, stdouth; /* * This has to stay here, as the PROM seems to ignore the @@ -138,7 +129,7 @@ ofw_init(int d, int d1, int d2, int d3, exit(main(ac, av)); } -ofwh_t +static ofwh_t ofw_finddevice(const char *name) { ofwcell_t args[] = { @@ -156,7 +147,7 @@ ofw_finddevice(const char *name) return (args[4]); } -int +static int ofw_getprop(ofwh_t ofwh, const char *name, void *buf, size_t len) { ofwcell_t args[] = { @@ -178,7 +169,7 @@ ofw_getprop(ofwh_t ofwh, const char *nam return (0); } -ofwh_t +static ofwh_t ofw_open(const char *path) { ofwcell_t args[] = { @@ -196,7 +187,7 @@ ofw_open(const char *path) return (args[4]); } -int +static int ofw_close(ofwh_t devh) { ofwcell_t args[] = { @@ -213,12 +204,12 @@ ofw_close(ofwh_t devh) return (0); } -int +static int ofw_read(ofwh_t devh, void *buf, size_t len) { ofwcell_t args[] = { (ofwcell_t)"read", - 4, + 3, 1, (u_ofwh_t)devh, (ofwcell_t)buf, @@ -233,7 +224,7 @@ ofw_read(ofwh_t devh, void *buf, size_t return (0); } -int +static int ofw_write(ofwh_t devh, const void *buf, size_t len) { ofwcell_t args[] = { @@ -253,12 +244,12 @@ ofw_write(ofwh_t devh, const void *buf, return (0); } -int +static int ofw_seek(ofwh_t devh, u_int64_t off) { ofwcell_t args[] = { (ofwcell_t)"seek", - 4, + 3, 1, (u_ofwh_t)devh, off >> 32, @@ -273,7 +264,7 @@ ofw_seek(ofwh_t devh, u_int64_t off) return (0); } -void +static void ofw_exit(void) { ofwcell_t args[3]; @@ -299,6 +290,7 @@ bcopy(const void *src, void *dst, size_t static void memcpy(void *dst, const void *src, size_t len) { + bcopy(src, dst, len); } @@ -314,6 +306,7 @@ bzero(void *b, size_t len) static int strcmp(const char *s1, const char *s2) { + for (; *s1 == *s2 && *s1; s1++, s2++) ; return ((u_char)*s1 - (u_char)*s2); @@ -431,6 +424,7 @@ load(const char *fname) static int dskread(void *buf, u_int64_t lba, int nblk) { + /* * The Open Firmware should open the correct partition for us. * That means, if we read from offset zero on an open instance handle, @@ -468,7 +462,7 @@ printf(const char *fmt, ...) } static int -putchar(int c, void *arg) +putchar(char c, void *arg) { char buf; @@ -614,7 +608,7 @@ reswitch: c = *fmt++; } static int -__sputc(int c, void *arg) +__sputc(char c, void *arg) { struct sp_data *sp; Modified: user/nwhitehorn/ps3/boot/zfs/zfsimpl.c ============================================================================== --- user/nwhitehorn/ps3/boot/zfs/zfsimpl.c Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/boot/zfs/zfsimpl.c Thu Sep 16 13:49:10 2010 (r212733) @@ -376,6 +376,27 @@ vdev_mirror_read(vdev_t *vdev, const blk return (rc); } +static int +vdev_replacing_read(vdev_t *vdev, const blkptr_t *bp, void *buf, + off_t offset, size_t bytes) +{ + vdev_t *kid; + + /* + * Here we should have two kids: + * First one which is the one we are replacing and we can trust + * only this one to have valid data, but it might not be present. + * Second one is that one we are replacing with. It is most likely + * healthy, but we can't trust it has needed data, so we won't use it. + */ + kid = STAILQ_FIRST(&vdev->v_children); + if (kid == NULL) + return (EIO); + if (kid->v_state != VDEV_STATE_HEALTHY) + return (EIO); + return (kid->v_read(kid, bp, buf, offset, bytes)); +} + static vdev_t * vdev_find(uint64_t guid) { @@ -416,7 +437,7 @@ vdev_init_from_nvlist(const unsigned cha vdev_t *vdev, *kid; const unsigned char *kids; int nkids, i, is_new; - uint64_t is_offline, is_faulted, is_degraded, is_removed; + uint64_t is_offline, is_faulted, is_degraded, is_removed, isnt_present; if (nvlist_find(nvlist, ZPOOL_CONFIG_GUID, DATA_TYPE_UINT64, 0, &guid) @@ -430,12 +451,13 @@ vdev_init_from_nvlist(const unsigned cha if (strcmp(type, VDEV_TYPE_MIRROR) && strcmp(type, VDEV_TYPE_DISK) - && strcmp(type, VDEV_TYPE_RAIDZ)) { + && strcmp(type, VDEV_TYPE_RAIDZ) + && strcmp(type, VDEV_TYPE_REPLACING)) { printf("ZFS: can only boot from disk, mirror or raidz vdevs\n"); return (EIO); } - is_offline = is_removed = is_faulted = is_degraded = 0; + is_offline = is_removed = is_faulted = is_degraded = isnt_present = 0; nvlist_find(nvlist, ZPOOL_CONFIG_OFFLINE, DATA_TYPE_UINT64, 0, &is_offline); @@ -445,6 +467,8 @@ vdev_init_from_nvlist(const unsigned cha &is_faulted); nvlist_find(nvlist, ZPOOL_CONFIG_DEGRADED, DATA_TYPE_UINT64, 0, &is_degraded); + nvlist_find(nvlist, ZPOOL_CONFIG_NOT_PRESENT, DATA_TYPE_UINT64, 0, + &isnt_present); vdev = vdev_find(guid); if (!vdev) { @@ -454,6 +478,8 @@ vdev_init_from_nvlist(const unsigned cha vdev = vdev_create(guid, vdev_mirror_read); else if (!strcmp(type, VDEV_TYPE_RAIDZ)) vdev = vdev_create(guid, vdev_raidz_read); + else if (!strcmp(type, VDEV_TYPE_REPLACING)) + vdev = vdev_create(guid, vdev_replacing_read); else vdev = vdev_create(guid, vdev_disk_read); @@ -488,7 +514,16 @@ vdev_init_from_nvlist(const unsigned cha vdev->v_name = strdup(type); } } + } else { + is_new = 0; + } + if (is_new || is_newer) { + /* + * This is either new vdev or we've already seen this vdev, + * but from an older vdev label, so let's refresh its state + * from the newer label. + */ if (is_offline) vdev->v_state = VDEV_STATE_OFFLINE; else if (is_removed) @@ -497,28 +532,10 @@ vdev_init_from_nvlist(const unsigned cha vdev->v_state = VDEV_STATE_FAULTED; else if (is_degraded) vdev->v_state = VDEV_STATE_DEGRADED; + else if (isnt_present) + vdev->v_state = VDEV_STATE_CANT_OPEN; else vdev->v_state = VDEV_STATE_HEALTHY; - } else { - is_new = 0; - - if (is_newer) { - /* - * We've already seen this vdev, but from an older - * vdev label, so let's refresh its state from the - * newer label. - */ - if (is_offline) - vdev->v_state = VDEV_STATE_OFFLINE; - else if (is_removed) - vdev->v_state = VDEV_STATE_REMOVED; - else if (is_faulted) - vdev->v_state = VDEV_STATE_FAULTED; - else if (is_degraded) - vdev->v_state = VDEV_STATE_DEGRADED; - else - vdev->v_state = VDEV_STATE_HEALTHY; - } } rc = nvlist_find(nvlist, ZPOOL_CONFIG_CHILDREN, @@ -754,6 +771,7 @@ vdev_probe(vdev_phys_read_t *read, void uint64_t val; uint64_t guid; uint64_t pool_txg, pool_guid; + uint64_t is_log; const char *pool_name; const unsigned char *vdevs; int i, rc, is_newer; @@ -830,6 +848,12 @@ vdev_probe(vdev_phys_read_t *read, void return (EIO); } + is_log = 0; + (void) nvlist_find(nvlist, ZPOOL_CONFIG_IS_LOG, DATA_TYPE_UINT64, 0, + &is_log); + if (is_log) + return (EIO); + /* * Create the pool if this is the first time we've seen it. */ Modified: user/nwhitehorn/ps3/cddl/boot/zfs/zfsimpl.h ============================================================================== --- user/nwhitehorn/ps3/cddl/boot/zfs/zfsimpl.h Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/cddl/boot/zfs/zfsimpl.h Thu Sep 16 13:49:10 2010 (r212733) @@ -546,6 +546,7 @@ typedef enum { #define ZPOOL_CONFIG_NPARITY "nparity" #define ZPOOL_CONFIG_HOSTID "hostid" #define ZPOOL_CONFIG_HOSTNAME "hostname" +#define ZPOOL_CONFIG_IS_LOG "is_log" #define ZPOOL_CONFIG_TIMESTAMP "timestamp" /* not stored on disk */ /* Modified: user/nwhitehorn/ps3/cddl/compat/opensolaris/sys/vnode.h ============================================================================== --- user/nwhitehorn/ps3/cddl/compat/opensolaris/sys/vnode.h Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/cddl/compat/opensolaris/sys/vnode.h Thu Sep 16 13:49:10 2010 (r212733) @@ -69,11 +69,14 @@ vn_is_readonly(vnode_t *vp) #define vn_vfsunlock(vp) do { } while (0) #define vn_ismntpt(vp) ((vp)->v_type == VDIR && (vp)->v_mountedhere != NULL) #define vn_mountedvfs(vp) ((vp)->v_mountedhere) -#define vn_has_cached_data(vp) ((vp)->v_object != NULL && (vp)->v_object->resident_page_count > 0) +#define vn_has_cached_data(vp) \ + ((vp)->v_object != NULL && ((vp)->v_object->resident_page_count > 0 \ + || (vp)->v_object->cache != NULL)) #define vn_exists(vp) do { } while (0) #define vn_invalid(vp) do { } while (0) #define vn_renamepath(tdvp, svp, tnm, lentnm) do { } while (0) #define vn_free(vp) do { } while (0) +#define vn_matchops(vp, vops) ((vp)->v_op == &(vops)) #define VN_HOLD(v) vref(v) #define VN_RELE(v) vrele(v) Modified: user/nwhitehorn/ps3/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c ============================================================================== --- user/nwhitehorn/ps3/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c Thu Sep 16 12:39:50 2010 (r212732) +++ user/nwhitehorn/ps3/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c Thu Sep 16 13:49:10 2010 (r212733) @@ -460,11 +460,13 @@ fasttrap_fork(proc_t *p, proc_t *cp) /* * dtrace_helpers_duplicate() allocates memory. */ + _PHOLD(cp); PROC_UNLOCK(p); PROC_UNLOCK(cp); dtrace_helpers_duplicate(p, cp); PROC_LOCK(cp); PROC_LOCK(p); + _PRELE(cp); } /* * This check is purposely here instead of in kern_fork.c because, @@ -494,6 +496,8 @@ fasttrap_fork(proc_t *p, proc_t *cp) mtx_lock_spin(&cp->p_slock); sprlock_proc(cp); mtx_unlock_spin(&cp->p_slock); +#else + _PHOLD(cp); #endif /* @@ -527,6 +531,8 @@ fasttrap_fork(proc_t *p, proc_t *cp) #if defined(sun) mutex_enter(&cp->p_lock); sprunlock(cp); +#else + _PRELE(cp); #endif } @@ -542,6 +548,7 @@ fasttrap_exec_exit(proc_t *p) ASSERT(p == curproc); #endif PROC_LOCK_ASSERT(p, MA_OWNED); + _PHOLD(p); PROC_UNLOCK(p); /* @@ -554,6 +561,7 @@ fasttrap_exec_exit(proc_t *p) dtrace_helpers_destroy(p); #endif PROC_LOCK(p); + _PRELE(p); } @@ -693,8 +701,6 @@ again: */ #if defined(sun) ASSERT(p->p_proc_flag & P_PR_LOCK); -#else - PROC_LOCK_ASSERT(p, MA_OWNED); #endif p->p_dtrace_count++; @@ -887,8 +893,6 @@ fasttrap_tracepoint_disable(proc_t *p, f */ #if defined(sun) ASSERT(p->p_proc_flag & P_PR_LOCK); -#else - PROC_LOCK_ASSERT(p, MA_OWNED); #endif p->p_dtrace_count--; } @@ -1042,9 +1046,14 @@ fasttrap_pid_enable(void *arg, dtrace_id * the chance to execute the trap instruction we're about to place * in their process's text. */ +#ifdef __FreeBSD__ + /* + * pfind() returns a locked process. + */ + _PHOLD(p); PROC_UNLOCK(p); +#endif fasttrap_enable_callbacks(); - PROC_LOCK(p); /* * Enable all the tracepoints and add this probe's id to each @@ -1075,7 +1084,7 @@ fasttrap_pid_enable(void *arg, dtrace_id mutex_enter(&p->p_lock); sprunlock(p); #else - PROC_UNLOCK(p); + PRELE(p); #endif /* @@ -1090,7 +1099,7 @@ fasttrap_pid_enable(void *arg, dtrace_id mutex_enter(&p->p_lock); sprunlock(p); #else - PROC_UNLOCK(p); + PRELE(p); #endif probe->ftp_enabled = 1; @@ -1119,6 +1128,10 @@ fasttrap_pid_disable(void *arg, dtrace_i mutex_exit(&provider->ftp_mtx); return; } +#ifdef __FreeBSD__ *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***