From owner-cvs-src-old@FreeBSD.ORG Sun Aug 2 14:29:10 2009 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 524731065751 for ; Sun, 2 Aug 2009 14:29:10 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3B7E28FC2A for ; Sun, 2 Aug 2009 14:29:10 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n72ETA12010000 for ; Sun, 2 Aug 2009 14:29:10 GMT (envelope-from attilio@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n72ETAbS009999 for cvs-src-old@freebsd.org; Sun, 2 Aug 2009 14:29:10 GMT (envelope-from attilio@repoman.freebsd.org) Message-Id: <200908021429.n72ETAbS009999@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to attilio@repoman.freebsd.org using -f From: Attilio Rao Date: Sun, 2 Aug 2009 14:28:40 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/dev/aac aac.c src/sys/dev/acpica acpi.c acpi_battery.c acpi_cpu.c acpi_dock.c acpi_thermal.c src/sys/dev/adb adb_bus.c src/sys/dev/amdtemp amdtemp.c src/sys/dev/amr amr.c src/sys/dev/ata ata-all.c src/sys/dev/atkbdc ... X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Aug 2009 14:29:10 -0000 attilio 2009-08-02 14:28:40 UTC FreeBSD src repository Modified files: sys/dev/aac aac.c sys/dev/acpica acpi.c acpi_battery.c acpi_cpu.c acpi_dock.c acpi_thermal.c sys/dev/adb adb_bus.c sys/dev/amdtemp amdtemp.c sys/dev/amr amr.c sys/dev/ata ata-all.c sys/dev/atkbdc psm.c sys/dev/bktr bktr_os.c sys/dev/drm drm_drv.c sys/dev/ips ips_pci.c sys/dev/mfi mfi.c sys/dev/mlx mlx.c sys/dev/mmc mmc.c sys/dev/pccbb pccbb.c sys/dev/pst pst-iop.c sys/dev/rp rp.c sys/dev/sound/pci/hda hdac.c sys/dev/twe twe.c sys/dev/usb usb_compat_linux.c usb_dev.c usb_handle_request.c usb_hub.c sys/dev/usb/controller usb_controller.c sys/dev/usb/input ukbd.c sys/dev/usb/net usb_ethernet.c sys/dev/usb/wlan if_upgt.c sys/dev/xen/blkback blkback.c sys/dev/xen/netback netback.c sys/i386/acpica acpi_machdep.c sys/i386/bios smapi.c smbios.c vpd.c sys/kern subr_bus.c sys/pc98/cbus fdc.c sys/sys bus.h param.h sys/xen/xenbus xenbus_probe.c Log: SVN rev 196037 on 2009-08-02 14:28:40Z by attilio Make the newbus subsystem Giant free by adding the new newbus sxlock. The newbus lock is responsible for protecting newbus internIal structures, device states and devclass flags. It is necessary to hold it when all such datas are accessed. For the other operations, softc locking should ensure enough protection to avoid races. Newbus lock is automatically held when virtual operations on the device and bus are invoked when loading the driver or when the suspend/resume take place. For other 'spourious' operations trying to access/modify the newbus topology, newbus lock needs to be automatically acquired and dropped. For the moment Giant is also acquired in some key point (modules subsystem) in order to avoid problems before the 8.0 release as module handlers could make assumptions about it. This Giant locking should go just after the release happens. Please keep in mind that the public interface can be expanded in order to provide more support, if there are really necessities at some point and also some bugs could arise as long as the patch needs a bit of further testing. Bump __FreeBSD_version in order to reflect the newbus lock introduction. Reviewed by: ed, hps, jhb, imp, mav, scottl No answer by: ariff, thompsa, yongari Tested by: pho, G. Trematerra , Brandon Gooch Sponsored by: Yahoo! Incorporated Approved by: re (ksmith) Revision Changes Path 1.143 +4 -4 src/sys/dev/aac/aac.c 1.265 +2 -12 src/sys/dev/acpica/acpi.c 1.29 +15 -0 src/sys/dev/acpica/acpi_battery.c 1.79 +2 -0 src/sys/dev/acpica/acpi_cpu.c 1.8 +4 -4 src/sys/dev/acpica/acpi_dock.c 1.72 +3 -0 src/sys/dev/acpica/acpi_thermal.c 1.5 +2 -0 src/sys/dev/adb/adb_bus.c 1.4 +2 -0 src/sys/dev/amdtemp/amdtemp.c 1.90 +21 -2 src/sys/dev/amr/amr.c 1.308 +19 -15 src/sys/dev/ata/ata-all.c 1.104 +4 -0 src/sys/dev/atkbdc/psm.c 1.58 +9 -2 src/sys/dev/bktr/bktr_os.c 1.28 +8 -0 src/sys/dev/drm/drm_drv.c 1.16 +2 -0 src/sys/dev/ips/ips_pci.c 1.51 +13 -7 src/sys/dev/mfi/mfi.c 1.59 +2 -0 src/sys/dev/mlx/mlx.c 1.37 +2 -0 src/sys/dev/mmc/mmc.c 1.182 +2 -9 src/sys/dev/pccbb/pccbb.c 1.9 +2 -0 src/sys/dev/pst/pst-iop.c 1.77 +4 -0 src/sys/dev/rp/rp.c 1.109 +2 -0 src/sys/dev/sound/pci/hda/hdac.c 1.27 +6 -0 src/sys/dev/twe/twe.c 1.22 +9 -21 src/sys/dev/usb/controller/usb_controller.c 1.16 +6 -7 src/sys/dev/usb/input/ukbd.c 1.8 +7 -4 src/sys/dev/usb/net/usb_ethernet.c 1.17 +7 -20 src/sys/dev/usb/usb_compat_linux.c 1.31 +6 -0 src/sys/dev/usb/usb_dev.c 1.15 +6 -6 src/sys/dev/usb/usb_handle_request.c 1.28 +14 -5 src/sys/dev/usb/usb_hub.c 1.11 +2 -2 src/sys/dev/usb/wlan/if_upgt.c 1.4 +2 -2 src/sys/dev/xen/blkback/blkback.c 1.3 +2 -2 src/sys/dev/xen/netback/netback.c 1.44 +6 -0 src/sys/i386/acpica/acpi_machdep.c 1.17 +2 -0 src/sys/i386/bios/smapi.c 1.7 +2 -0 src/sys/i386/bios/smbios.c 1.7 +2 -0 src/sys/i386/bios/vpd.c 1.225 +82 -7 src/sys/kern/subr_bus.c 1.171 +6 -0 src/sys/pc98/cbus/fdc.c 1.85 +8 -0 src/sys/sys/bus.h 1.433 +1 -1 src/sys/sys/param.h 1.8 +4 -0 src/sys/xen/xenbus/xenbus_probe.c