From owner-p4-projects@FreeBSD.ORG Wed Nov 11 20:05:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1D7501065679; Wed, 11 Nov 2009 20:05:04 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D30B0106566C for ; Wed, 11 Nov 2009 20:05:03 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BE6E68FC15 for ; Wed, 11 Nov 2009 20:05:03 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id nABK53Rs017269 for ; Wed, 11 Nov 2009 20:05:03 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id nABK535M017263 for perforce@freebsd.org; Wed, 11 Nov 2009 20:05:03 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 11 Nov 2009 20:05:03 GMT Message-Id: <200911112005.nABK535M017263@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 170505 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Nov 2009 20:05:04 -0000 http://p4web.freebsd.org/chv.cgi?CH=170505 Change 170505 by hselasky@hselasky_laptop001 on 2009/11/11 20:04:37 IFC @ 170502 Affected files ... .. //depot/projects/usb/src/lib/libusb/libusb.h#11 integrate .. //depot/projects/usb/src/lib/libusb/libusb10.c#15 integrate .. //depot/projects/usb/src/lib/libusb/libusb10_desc.c#11 integrate .. //depot/projects/usb/src/lib/libusb/libusb10_io.c#11 integrate .. //depot/projects/usb/src/lib/libusb/libusb20.c#9 integrate .. //depot/projects/usb/src/lib/libusb/libusb20_desc.c#5 integrate .. //depot/projects/usb/src/lib/libusb/libusb20_ugen20.c#11 integrate .. //depot/projects/usb/src/sys/amd64/acpica/acpi_wakeup.c#7 integrate .. //depot/projects/usb/src/sys/amd64/amd64/identcpu.c#18 integrate .. //depot/projects/usb/src/sys/amd64/amd64/initcpu.c#9 integrate .. //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#25 integrate .. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#33 integrate .. //depot/projects/usb/src/sys/amd64/amd64/trap.c#19 integrate .. //depot/projects/usb/src/sys/amd64/amd64/vm_machdep.c#14 integrate .. //depot/projects/usb/src/sys/amd64/isa/isa_dma.c#2 integrate .. //depot/projects/usb/src/sys/arm/arm/db_trace.c#4 integrate .. //depot/projects/usb/src/sys/arm/arm/gdb_machdep.c#2 integrate .. //depot/projects/usb/src/sys/arm/arm/machdep.c#11 integrate .. //depot/projects/usb/src/sys/arm/arm/trap.c#9 integrate .. //depot/projects/usb/src/sys/arm/arm/vm_machdep.c#12 integrate .. //depot/projects/usb/src/sys/arm/at91/at91_machdep.c#5 integrate .. //depot/projects/usb/src/sys/arm/mv/mv_machdep.c#9 integrate .. //depot/projects/usb/src/sys/arm/sa11x0/assabet_machdep.c#10 integrate .. //depot/projects/usb/src/sys/boot/uboot/lib/glue.c#5 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_all.c#4 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_all.h#3 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_da.c#7 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_xpt.c#6 integrate .. //depot/projects/usb/src/sys/cam/cam.c#5 integrate .. //depot/projects/usb/src/sys/cam/cam.h#5 integrate .. //depot/projects/usb/src/sys/cam/cam_ccb.h#9 integrate .. //depot/projects/usb/src/sys/cam/cam_periph.c#14 integrate .. //depot/projects/usb/src/sys/cam/cam_periph.h#6 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt.c#25 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt_internal.h#4 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_da.c#17 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_xpt.c#3 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c#4 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#10 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_ipc.c#6 integrate .. //depot/projects/usb/src/sys/compat/ndis/kern_ndis.c#15 integrate .. //depot/projects/usb/src/sys/compat/ndis/kern_windrv.c#9 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_hal.c#5 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_ndis.c#18 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_ntoskrnl.c#13 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_pe.c#4 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_usbd.c#18 integrate .. //depot/projects/usb/src/sys/conf/NOTES#49 integrate .. //depot/projects/usb/src/sys/conf/files#85 integrate .. //depot/projects/usb/src/sys/conf/files.ia64#14 integrate .. //depot/projects/usb/src/sys/conf/options#42 integrate .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_hfsc.c#5 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi.c#24 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_cpu.c#14 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_ec.c#7 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_hpet.c#10 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpivar.h#13 integrate .. //depot/projects/usb/src/sys/dev/ahci/ahci.c#6 integrate .. //depot/projects/usb/src/sys/dev/ahci/ahci.h#4 integrate .. //depot/projects/usb/src/sys/dev/an/if_an.c#8 integrate .. //depot/projects/usb/src/sys/dev/an/if_an_isa.c#3 integrate .. //depot/projects/usb/src/sys/dev/an/if_an_pccard.c#3 integrate .. //depot/projects/usb/src/sys/dev/an/if_an_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/an/if_anreg.h#5 integrate .. //depot/projects/usb/src/sys/dev/arcmsr/arcmsr.c#11 integrate .. //depot/projects/usb/src/sys/dev/arcmsr/arcmsr.h#5 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.h#16 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-disk.c#17 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-pci.h#23 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-queue.c#16 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-raid.c#12 integrate .. //depot/projects/usb/src/sys/dev/ata/atapi-cd.c#13 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-intel.c#8 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-nvidia.c#9 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-siliconimage.c#8 integrate .. //depot/projects/usb/src/sys/dev/ath/if_ath.c#33 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bge.c#23 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bgereg.h#12 integrate .. //depot/projects/usb/src/sys/dev/cxgb/cxgb_main.c#24 integrate .. //depot/projects/usb/src/sys/dev/e1000/if_igb.c#15 integrate .. //depot/projects/usb/src/sys/dev/fb/vesa.c#5 integrate .. //depot/projects/usb/src/sys/dev/fb/vgareg.h#3 integrate .. //depot/projects/usb/src/sys/dev/fdc/fdc.c#11 integrate .. //depot/projects/usb/src/sys/dev/hatm/if_hatm.c#3 integrate .. //depot/projects/usb/src/sys/dev/hptrr/hptrr_osm_bsd.c#3 integrate .. //depot/projects/usb/src/sys/dev/ichwd/ichwd.c#10 integrate .. //depot/projects/usb/src/sys/dev/ieee488/ibfoo.c#3 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis.c#34 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis_usb.c#22 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_sbus.c#8 integrate .. //depot/projects/usb/src/sys/dev/ixgb/if_ixgb.c#8 integrate .. //depot/projects/usb/src/sys/dev/ixgb/if_ixgb.h#2 integrate .. //depot/projects/usb/src/sys/dev/ixgbe/ixgbe.c#14 integrate .. //depot/projects/usb/src/sys/dev/mii/brgphy.c#11 integrate .. //depot/projects/usb/src/sys/dev/mii/miidevs#15 integrate .. //depot/projects/usb/src/sys/dev/msk/if_msk.c#17 integrate .. //depot/projects/usb/src/sys/dev/msk/if_mskreg.h#12 integrate .. //depot/projects/usb/src/sys/dev/nfe/if_nfe.c#12 integrate .. //depot/projects/usb/src/sys/dev/patm/if_patm_attach.c#3 integrate .. //depot/projects/usb/src/sys/dev/pci/vga_pci.c#5 integrate .. //depot/projects/usb/src/sys/dev/re/if_re.c#23 integrate .. //depot/projects/usb/src/sys/dev/siis/siis.c#6 integrate .. //depot/projects/usb/src/sys/dev/siis/siis.h#2 integrate .. //depot/projects/usb/src/sys/dev/sk/if_sk.c#11 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#59 integrate .. //depot/projects/usb/src/sys/dev/stge/if_stge.c#9 integrate .. //depot/projects/usb/src/sys/dev/sym/sym_hipd.c#9 integrate .. //depot/projects/usb/src/sys/dev/syscons/scterm-teken.c#10 integrate .. //depot/projects/usb/src/sys/dev/syscons/syscons.c#18 integrate .. //depot/projects/usb/src/sys/dev/syscons/syscons.h#10 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#44 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci.h#15 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci_ixp4xx.c#12 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci_mbus.c#11 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci_pci.c#19 integrate .. //depot/projects/usb/src/sys/dev/usb/input/atp.c#1 branch .. //depot/projects/usb/src/sys/dev/usb/input/uhid.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#37 integrate .. //depot/projects/usb/src/sys/dev/usb/input/ums.c#25 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/usb_serial.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#38 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#53 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.h#25 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_core.h#31 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_transfer.c#173 integrate .. //depot/projects/usb/src/sys/dev/usb/usbdi.h#15 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_urtw.c#11 integrate .. //depot/projects/usb/src/sys/dev/vge/if_vge.c#11 integrate .. //depot/projects/usb/src/sys/dev/vge/if_vgevar.h#2 integrate .. //depot/projects/usb/src/sys/dev/wpi/if_wpi.c#15 integrate .. //depot/projects/usb/src/sys/fs/fifofs/fifo_vnops.c#16 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#12 integrate .. //depot/projects/usb/src/sys/geom/part/g_part_gpt.c#15 integrate .. //depot/projects/usb/src/sys/gnu/fs/ext2fs/ext2_inode_cnv.c#2 integrate .. //depot/projects/usb/src/sys/gnu/fs/ext2fs/ext2_vnops.c#11 integrate .. //depot/projects/usb/src/sys/i386/i386/identcpu.c#16 integrate .. //depot/projects/usb/src/sys/i386/i386/initcpu.c#10 integrate .. //depot/projects/usb/src/sys/i386/i386/pmap.c#29 integrate .. //depot/projects/usb/src/sys/i386/i386/trap.c#16 integrate .. //depot/projects/usb/src/sys/i386/i386/vm_machdep.c#15 integrate .. //depot/projects/usb/src/sys/i386/isa/isa_dma.c#2 integrate .. //depot/projects/usb/src/sys/i386/xen/pmap.c#16 integrate .. //depot/projects/usb/src/sys/ia64/ia64/highfp.c#1 branch .. //depot/projects/usb/src/sys/ia64/ia64/interrupt.c#10 integrate .. //depot/projects/usb/src/sys/ia64/ia64/machdep.c#14 integrate .. //depot/projects/usb/src/sys/ia64/ia64/trap.c#8 integrate .. //depot/projects/usb/src/sys/ia64/ia64/vm_machdep.c#5 integrate .. //depot/projects/usb/src/sys/ia64/include/md_var.h#6 integrate .. //depot/projects/usb/src/sys/ia64/include/proc.h#2 integrate .. //depot/projects/usb/src/sys/isa/vga_isa.c#3 integrate .. //depot/projects/usb/src/sys/kern/kern_idle.c#6 integrate .. //depot/projects/usb/src/sys/kern/kern_intr.c#17 integrate .. //depot/projects/usb/src/sys/kern/kern_lock.c#21 integrate .. //depot/projects/usb/src/sys/kern/kern_sig.c#20 integrate .. //depot/projects/usb/src/sys/kern/sched_4bsd.c#12 integrate .. //depot/projects/usb/src/sys/kern/sched_ule.c#20 integrate .. //depot/projects/usb/src/sys/kern/subr_log.c#3 integrate .. //depot/projects/usb/src/sys/kern/subr_prf.c#10 integrate .. //depot/projects/usb/src/sys/kern/uipc_syscalls.c#22 integrate .. //depot/projects/usb/src/sys/kern/vfs_acl.c#8 integrate .. //depot/projects/usb/src/sys/kern/vfs_default.c#16 integrate .. //depot/projects/usb/src/sys/kern/vfs_lookup.c#21 integrate .. //depot/projects/usb/src/sys/kern/vfs_mount.c#31 integrate .. //depot/projects/usb/src/sys/kern/vfs_vnops.c#24 integrate .. //depot/projects/usb/src/sys/mips/include/pcb.h#2 integrate .. //depot/projects/usb/src/sys/mips/mips/machdep.c#8 integrate .. //depot/projects/usb/src/sys/mips/mips/pmap.c#14 integrate .. //depot/projects/usb/src/sys/mips/mips/trap.c#4 integrate .. //depot/projects/usb/src/sys/mips/mips/vm_machdep.c#2 integrate .. //depot/projects/usb/src/sys/modules/ichwd/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/usb/Makefile#24 integrate .. //depot/projects/usb/src/sys/modules/usb/atp/Makefile#1 branch .. //depot/projects/usb/src/sys/net/if_ef.c#13 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211.c#30 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_action.c#4 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ioctl.h#17 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_proto.h#21 integrate .. //depot/projects/usb/src/sys/netgraph/ng_eiface.c#16 integrate .. //depot/projects/usb/src/sys/netgraph/ng_fec.c#6 integrate .. //depot/projects/usb/src/sys/netgraph/ng_iface.c#19 integrate .. //depot/projects/usb/src/sys/netgraph/ng_sppp.c#4 integrate .. //depot/projects/usb/src/sys/netinet/ip_ipsec.c#18 integrate .. //depot/projects/usb/src/sys/netinet/ip_ipsec.h#5 integrate .. //depot/projects/usb/src/sys/netinet/ip_output.c#30 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_dummynet.c#4 integrate .. //depot/projects/usb/src/sys/netinet/tcp_output.c#21 integrate .. //depot/projects/usb/src/sys/netinet6/nd6.c#27 integrate .. //depot/projects/usb/src/sys/pc98/cbus/scterm-sck.c#5 integrate .. //depot/projects/usb/src/sys/powerpc/aim/copyinout.c#2 integrate .. //depot/projects/usb/src/sys/powerpc/aim/mmu_oea64.c#7 integrate .. //depot/projects/usb/src/sys/powerpc/aim/swtch.S#7 integrate .. //depot/projects/usb/src/sys/powerpc/aim/trap.c#5 integrate .. //depot/projects/usb/src/sys/powerpc/aim/vm_machdep.c#6 integrate .. //depot/projects/usb/src/sys/powerpc/booke/trap.c#4 integrate .. //depot/projects/usb/src/sys/powerpc/booke/vm_machdep.c#6 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/cpu.c#12 integrate .. //depot/projects/usb/src/sys/rpc/clnt_vc.c#9 integrate .. //depot/projects/usb/src/sys/sparc64/include/pcb.h#3 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/trap.c#10 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/vm_machdep.c#7 integrate .. //depot/projects/usb/src/sys/sun4v/sun4v/trap.c#7 integrate .. //depot/projects/usb/src/sys/sun4v/sun4v/vm_machdep.c#4 integrate .. //depot/projects/usb/src/sys/sys/ata.h#8 integrate .. //depot/projects/usb/src/sys/sys/fbio.h#2 integrate .. //depot/projects/usb/src/sys/sys/mman.h#4 integrate .. //depot/projects/usb/src/sys/sys/msgbuf.h#3 integrate .. //depot/projects/usb/src/sys/sys/proc.h#23 integrate .. //depot/projects/usb/src/sys/sys/signalvar.h#7 integrate .. //depot/projects/usb/src/sys/teken/teken.c#4 integrate .. //depot/projects/usb/src/sys/teken/teken.h#4 integrate .. //depot/projects/usb/src/sys/teken/teken_subr.h#4 integrate .. //depot/projects/usb/src/sys/vm/swap_pager.c#18 integrate .. //depot/projects/usb/src/sys/vm/vm_fault.c#19 integrate .. //depot/projects/usb/src/sys/vm/vm_map.c#22 integrate .. //depot/projects/usb/src/sys/vm/vm_zeroidle.c#10 integrate .. //depot/projects/usb/src/usr.sbin/usbconfig/dump.c#16 integrate .. //depot/projects/usb/src/usr.sbin/usbconfig/usbconfig.8#7 integrate Differences ... ==== //depot/projects/usb/src/lib/libusb/libusb.h#11 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb.h,v 1.9 2009/07/30 00:11:41 alfred Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb.h,v 1.10 2009/11/08 20:03:52 thompsa Exp $ */ /*- * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. * ==== //depot/projects/usb/src/lib/libusb/libusb10.c#15 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb10.c,v 1.3 2009/07/30 00:11:41 alfred Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb10.c,v 1.4 2009/11/08 20:03:52 thompsa Exp $ */ /*- * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. * Copyright (c) 2009 Hans Petter Selasky. All rights reserved. ==== //depot/projects/usb/src/lib/libusb/libusb10_desc.c#11 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb10_desc.c,v 1.3 2009/07/30 00:11:41 alfred Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb10_desc.c,v 1.4 2009/11/08 20:03:52 thompsa Exp $ */ /*- * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. * ==== //depot/projects/usb/src/lib/libusb/libusb10_io.c#11 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb10_io.c,v 1.3 2009/07/30 00:11:41 alfred Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb10_io.c,v 1.4 2009/11/08 20:03:52 thompsa Exp $ */ /*- * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. * ==== //depot/projects/usb/src/lib/libusb/libusb20.c#9 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb20.c,v 1.4 2009/06/12 16:07:06 thompsa Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb20.c,v 1.5 2009/11/08 20:03:52 thompsa Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/lib/libusb/libusb20_desc.c#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb20_desc.c,v 1.1 2009/03/09 17:09:46 thompsa Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb20_desc.c,v 1.2 2009/11/08 20:03:52 thompsa Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/lib/libusb/libusb20_ugen20.c#11 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libusb/libusb20_ugen20.c,v 1.5 2009/10/22 21:01:41 thompsa Exp $ */ +/* $FreeBSD: src/lib/libusb/libusb20_ugen20.c,v 1.6 2009/11/08 20:03:52 thompsa Exp $ */ /*- * Copyright (c) 2008 Hans Petter Selasky. All rights reserved. * ==== //depot/projects/usb/src/sys/amd64/acpica/acpi_wakeup.c#7 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.27 2009/10/08 17:41:53 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.28 2009/11/04 22:39:18 jkim Exp $"); #include #include @@ -65,9 +65,9 @@ extern int acpi_reset_video; #ifdef SMP -extern struct xpcb *stopxpcbs; +extern struct xpcb **stopxpcbs; #else -static struct xpcb *stopxpcbs; +static struct xpcb **stopxpcbs; #endif int acpi_restorecpu(struct xpcb *, vm_offset_t); @@ -104,10 +104,10 @@ int apic_id = cpu_apic_ids[cpu]; int ms; - WAKECODE_FIXUP(wakeup_xpcb, struct xpcb *, &stopxpcbs[cpu]); - WAKECODE_FIXUP(wakeup_gdt, uint16_t, stopxpcbs[cpu].xpcb_gdt.rd_limit); + WAKECODE_FIXUP(wakeup_xpcb, struct xpcb *, stopxpcbs[cpu]); + WAKECODE_FIXUP(wakeup_gdt, uint16_t, stopxpcbs[cpu]->xpcb_gdt.rd_limit); WAKECODE_FIXUP(wakeup_gdt + 2, uint64_t, - stopxpcbs[cpu].xpcb_gdt.rd_base); + stopxpcbs[cpu]->xpcb_gdt.rd_base); WAKECODE_FIXUP(wakeup_cpu, int, cpu); /* do an INIT IPI: assert RESET */ @@ -245,8 +245,8 @@ cr3 = rcr3(); load_cr3(KPML4phys); - stopfpu = &stopxpcbs[0].xpcb_pcb.pcb_save; - if (acpi_savecpu(&stopxpcbs[0])) { + stopfpu = &stopxpcbs[0]->xpcb_pcb.pcb_save; + if (acpi_savecpu(stopxpcbs[0])) { fpugetregs(curthread, stopfpu); #ifdef SMP @@ -261,11 +261,11 @@ WAKECODE_FIXUP(resume_beep, uint8_t, (acpi_resume_beep != 0)); WAKECODE_FIXUP(reset_video, uint8_t, (acpi_reset_video != 0)); - WAKECODE_FIXUP(wakeup_xpcb, struct xpcb *, &stopxpcbs[0]); + WAKECODE_FIXUP(wakeup_xpcb, struct xpcb *, stopxpcbs[0]); WAKECODE_FIXUP(wakeup_gdt, uint16_t, - stopxpcbs[0].xpcb_gdt.rd_limit); + stopxpcbs[0]->xpcb_gdt.rd_limit); WAKECODE_FIXUP(wakeup_gdt + 2, uint64_t, - stopxpcbs[0].xpcb_gdt.rd_base); + stopxpcbs[0]->xpcb_gdt.rd_base); WAKECODE_FIXUP(wakeup_cpu, int, 0); /* Call ACPICA to enter the desired sleep state */ @@ -320,6 +320,7 @@ acpi_alloc_wakeup_handler(void) { void *wakeaddr; + int i; /* * Specify the region for our wakeup code. We want it in the low 1 MB @@ -334,12 +335,9 @@ printf("%s: can't alloc wake memory\n", __func__); return (NULL); } - stopxpcbs = malloc(mp_ncpus * sizeof(*stopxpcbs), M_DEVBUF, M_NOWAIT); - if (stopxpcbs == NULL) { - contigfree(wakeaddr, 4 * PAGE_SIZE, M_DEVBUF); - printf("%s: can't alloc CPU state memory\n", __func__); - return (NULL); - } + stopxpcbs = malloc(mp_ncpus * sizeof(*stopxpcbs), M_DEVBUF, M_WAITOK); + for (i = 0; i < mp_ncpus; i++) + stopxpcbs[i] = malloc(sizeof(**stopxpcbs), M_DEVBUF, M_WAITOK); return (wakeaddr); } ==== //depot/projects/usb/src/sys/amd64/amd64/identcpu.c#18 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.175 2009/09/10 17:27:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.177 2009/11/05 14:34:38 attilio Exp $"); #include "opt_cpu.h" @@ -607,6 +607,21 @@ printf(", %d lines/tag", (regs[2] >> 8) & 0x0f); print_AMD_l2_assoc((regs[2] >> 12) & 0x0f); } + + /* + * Opteron Rev E shows a bug as in very rare occasions a read memory + * barrier is not performed as expected if it is followed by a + * non-atomic read-modify-write instruction. + * As long as that bug pops up very rarely (intensive machine usage + * on other operating systems generally generates one unexplainable + * crash any 2 months) and as long as a model specific fix would be + * impratical at this stage, print out a warning string if the broken + * model and family are identified. + */ + if (CPUID_TO_FAMILY(cpu_id) == 0xf && CPUID_TO_MODEL(cpu_id) >= 0x20 && + CPUID_TO_MODEL(cpu_id) <= 0x3f) + printf("WARNING: This architecture revision has known SMP " + "hardware bugs which may cause random instability\n"); } static void ==== //depot/projects/usb/src/sys/amd64/amd64/initcpu.c#9 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.56 2009/10/01 12:52:48 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/initcpu.c,v 1.57 2009/11/09 02:54:16 kuriyama Exp $"); #include "opt_cpu.h" @@ -47,6 +47,13 @@ static int hw_instruction_sse; SYSCTL_INT(_hw, OID_AUTO, instruction_sse, CTLFLAG_RD, &hw_instruction_sse, 0, "SIMD/MMX2 instructions available in CPU"); +/* + * -1: automatic (default) + * 0: keep enable CLFLUSH + * 1: force disable CLFLUSH + */ +static int hw_clflush_disable = -1; +TUNABLE_INT("hw.clflush_disable", &hw_clflush_disable); int cpu; /* Are we 386, 386sx, 486, etc? */ u_int cpu_feature; /* Feature flags */ @@ -169,6 +176,16 @@ * XXXKIB: (temporary) hack to work around traps generated when * CLFLUSHing APIC registers window. */ - if (cpu_vendor_id == CPU_VENDOR_INTEL && !(cpu_feature & CPUID_SS)) + TUNABLE_INT_FETCH("hw.clflush_disable", &hw_clflush_disable); + if (cpu_vendor_id == CPU_VENDOR_INTEL && !(cpu_feature & CPUID_SS) && + hw_clflush_disable == -1) + cpu_feature &= ~CPUID_CLFSH; + /* + * Allow to disable CLFLUSH feature manually by + * hw.clflush_disable tunable. This may help Xen guest on some AMD + * CPUs. + */ + if (hw_clflush_disable == 1) { cpu_feature &= ~CPUID_CLFSH; + } } ==== //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#25 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.310 2009/08/13 17:09:45 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.311 2009/11/04 22:39:18 jkim Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -105,7 +105,7 @@ extern pt_entry_t *SMPpt; struct pcb stoppcbs[MAXCPU]; -struct xpcb *stopxpcbs = NULL; +struct xpcb **stopxpcbs = NULL; /* Variables needed for SMP tlb shootdown. */ vm_offset_t smp_tlb_addr1; @@ -1256,8 +1256,8 @@ rf = intr_disable(); cr3 = rcr3(); - stopfpu = &stopxpcbs[cpu].xpcb_pcb.pcb_save; - if (savectx2(&stopxpcbs[cpu])) { + stopfpu = &stopxpcbs[cpu]->xpcb_pcb.pcb_save; + if (savectx2(stopxpcbs[cpu])) { fpugetregs(curthread, stopfpu); wbinvd(); atomic_set_int(&stopped_cpus, cpumask); ==== //depot/projects/usb/src/sys/amd64/amd64/pmap.c#33 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.675 2009/10/21 18:38:02 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.676 2009/11/11 14:21:31 avg Exp $"); /* * Manages physical address maps. @@ -183,7 +183,7 @@ SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters"); static int pg_ps_enabled = 1; -SYSCTL_INT(_vm_pmap, OID_AUTO, pg_ps_enabled, CTLFLAG_RD, &pg_ps_enabled, 0, +SYSCTL_INT(_vm_pmap, OID_AUTO, pg_ps_enabled, CTLFLAG_RDTUN, &pg_ps_enabled, 0, "Are large page mappings enabled?"); static u_int64_t KPTphys; /* phys addr of kernel level 1 */ ==== //depot/projects/usb/src/sys/amd64/amd64/trap.c#19 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.336 2009/09/24 14:26:42 emaste Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.337 2009/11/10 11:43:07 kib Exp $"); /* * AMD64 Trap and System call handling @@ -1007,39 +1007,7 @@ #endif } - switch (error) { - case 0: - frame->tf_rax = td->td_retval[0]; - frame->tf_rdx = td->td_retval[1]; - frame->tf_rflags &= ~PSL_C; - break; - - case ERESTART: - /* - * Reconstruct pc, we know that 'syscall' is 2 bytes. - * We have to do a full context restore so that %r10 - * (which was holding the value of %rcx) is restored for - * the next iteration. - */ - frame->tf_rip -= frame->tf_err; - frame->tf_r10 = frame->tf_rcx; - td->td_pcb->pcb_flags |= PCB_FULLCTX; - break; - - case EJUSTRETURN: - break; - - default: - if (p->p_sysent->sv_errsize) { - if (error >= p->p_sysent->sv_errsize) - error = -1; /* XXX */ - else - error = p->p_sysent->sv_errtbl[error]; - } - frame->tf_rax = error; - frame->tf_rflags |= PSL_C; - break; - } + cpu_set_syscall_retval(td, error); /* * Traced syscall. ==== //depot/projects/usb/src/sys/amd64/amd64/vm_machdep.c#14 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.264 2009/07/09 09:34:11 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.265 2009/11/10 11:43:07 kib Exp $"); #include "opt_isa.h" #include "opt_cpu.h" @@ -317,6 +317,45 @@ cpu_thread_clean(td); } +void +cpu_set_syscall_retval(struct thread *td, int error) +{ + + switch (error) { + case 0: + td->td_frame->tf_rax = td->td_retval[0]; + td->td_frame->tf_rdx = td->td_retval[1]; + td->td_frame->tf_rflags &= ~PSL_C; + break; + + case ERESTART: + /* + * Reconstruct pc, we know that 'syscall' is 2 bytes. + * We have to do a full context restore so that %r10 + * (which was holding the value of %rcx) is restored + * for the next iteration. + */ + td->td_frame->tf_rip -= td->td_frame->tf_err; + td->td_frame->tf_r10 = td->td_frame->tf_rcx; + td->td_pcb->pcb_flags |= PCB_FULLCTX; + break; + + case EJUSTRETURN: + break; + + default: + if (td->td_proc->p_sysent->sv_errsize) { + if (error >= td->td_proc->p_sysent->sv_errsize) + error = -1; /* XXX */ + else + error = td->td_proc->p_sysent->sv_errtbl[error]; + } + td->td_frame->tf_rax = error; + td->td_frame->tf_rflags |= PSL_C; + break; + } +} + /* * Initialize machine state (pcb and trap frame) for a new thread about to * upcall. Put enough state in the new thread's PCB to get it to go back ==== //depot/projects/usb/src/sys/amd64/isa/isa_dma.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/isa/isa_dma.c,v 1.22 2005/05/14 10:14:56 nyan Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/isa/isa_dma.c,v 1.23 2009/11/09 20:29:10 rdivacky Exp $"); /* * code to manage AT bus @@ -71,6 +71,8 @@ static u_int8_t dma_busy = 0; /* Used in isa_dmastart() */ static u_int8_t dma_inuse = 0; /* User for acquire/release */ static u_int8_t dma_auto_mode = 0; +static struct mtx isa_dma_lock; +MTX_SYSINIT(isa_dma_lock, &isa_dma_lock, "isa DMA lock", MTX_DEF); #define VALID_DMA_MASK (7) @@ -84,39 +86,56 @@ isa_dma_init(int chan, u_int bouncebufsize, int flag) { void *buf; - - /* - * If a DMA channel is shared, both drivers have to call isa_dma_init - * since they don't know that the other driver will do it. - * Just return if we're already set up good. - * XXX: this only works if they agree on the bouncebuf size. This - * XXX: is typically the case since they are multiple instances of - * XXX: the same driver. - */ - if (dma_bouncebuf[chan] != NULL) - return (0); + int contig; #ifdef DIAGNOSTIC if (chan & ~VALID_DMA_MASK) panic("isa_dma_init: channel out of range"); #endif - dma_bouncebufsize[chan] = bouncebufsize; /* Try malloc() first. It works better if it works. */ buf = malloc(bouncebufsize, M_DEVBUF, flag); if (buf != NULL) { - if (isa_dmarangecheck(buf, bouncebufsize, chan) == 0) { - dma_bouncebuf[chan] = buf; - return (0); + if (isa_dmarangecheck(buf, bouncebufsize, chan) != 0) { + free(buf, M_DEVBUF); + buf = NULL; } - free(buf, M_DEVBUF); + contig = 0; } - buf = contigmalloc(bouncebufsize, M_DEVBUF, flag, 0ul, 0xfffffful, + + if (buf == NULL) { + buf = contigmalloc(bouncebufsize, M_DEVBUF, flag, 0ul, 0xfffffful, 1ul, chan & 4 ? 0x20000ul : 0x10000ul); + contig = 1; + } + if (buf == NULL) return (ENOMEM); + + mtx_lock(&isa_dma_lock); + /* + * If a DMA channel is shared, both drivers have to call isa_dma_init + * since they don't know that the other driver will do it. + * Just return if we're already set up good. + * XXX: this only works if they agree on the bouncebuf size. This + * XXX: is typically the case since they are multiple instances of + * XXX: the same driver. + */ + if (dma_bouncebuf[chan] != NULL) { + if (contig) + contigfree(buf, bouncebufsize, M_DEVBUF); + else + free(buf, M_DEVBUF); + mtx_unlock(&isa_dma_lock); + return (0); + } + + dma_bouncebufsize[chan] = bouncebufsize; dma_bouncebuf[chan] = buf; + + mtx_unlock(&isa_dma_lock); + return (0); } @@ -133,12 +152,15 @@ panic("isa_dma_acquire: channel out of range"); #endif + mtx_lock(&isa_dma_lock); if (dma_inuse & (1 << chan)) { printf("isa_dma_acquire: channel %d already in use\n", chan); + mtx_unlock(&isa_dma_lock); return (EBUSY); } dma_inuse |= (1 << chan); dma_auto_mode &= ~(1 << chan); + mtx_unlock(&isa_dma_lock); return (0); } @@ -155,8 +177,11 @@ if (chan & ~VALID_DMA_MASK) panic("isa_dma_release: channel out of range"); + mtx_lock(&isa_dma_lock); if ((dma_inuse & (1 << chan)) == 0) printf("isa_dma_release: channel %d not in use\n", chan); +#else + mtx_lock(&isa_dma_lock); #endif if (dma_busy & (1 << chan)) { @@ -171,6 +196,8 @@ dma_inuse &= ~(1 << chan); dma_auto_mode &= ~(1 << chan); + + mtx_unlock(&isa_dma_lock); } /* @@ -186,6 +213,7 @@ panic("isa_dmacascade: channel out of range"); #endif + mtx_lock(&isa_dma_lock); /* set dma channel mode, and set dma channel mode */ if ((chan & 4) == 0) { outb(DMA1_MODE, DMA37MD_CASCADE | chan); @@ -194,6 +222,7 @@ outb(DMA2_MODE, DMA37MD_CASCADE | (chan & 3)); outb(DMA2_SMSK, chan & 3); } + mtx_unlock(&isa_dma_lock); } /* @@ -206,8 +235,11 @@ vm_paddr_t phys; int waport; caddr_t newaddr; + int dma_range_checked; - GIANT_REQUIRED; + /* translate to physical */ + phys = pmap_extract(kernel_pmap, (vm_offset_t)addr); + dma_range_checked = isa_dmarangecheck(addr, nbytes, chan); #ifdef DIAGNOSTIC if (chan & ~VALID_DMA_MASK) @@ -217,8 +249,11 @@ || (chan >= 4 && (nbytes > (1<<17) || (uintptr_t)addr & 1))) panic("isa_dmastart: impossible request"); + mtx_lock(&isa_dma_lock); if ((dma_inuse & (1 << chan)) == 0) printf("isa_dmastart: channel %d not acquired\n", chan); +#else + mtx_lock(&isa_dma_lock); #endif #if 0 @@ -233,7 +268,7 @@ dma_busy |= (1 << chan); - if (isa_dmarangecheck(addr, nbytes, chan)) { + if (dma_range_checked) { if (dma_bouncebuf[chan] == NULL || dma_bouncebufsize[chan] < nbytes) panic("isa_dmastart: bad bounce buffer"); @@ -246,9 +281,6 @@ addr = newaddr; } - /* translate to physical */ - phys = pmap_extract(kernel_pmap, (vm_offset_t)addr); - if (flags & ISADMA_RAW) { dma_auto_mode |= (1 << chan); } else { @@ -323,6 +355,7 @@ /* unmask channel */ outb(DMA2_SMSK, chan & 3); } + mtx_unlock(&isa_dma_lock); } void @@ -336,6 +369,7 @@ printf("isa_dmadone: channel %d not acquired\n", chan); #endif + mtx_lock(&isa_dma_lock); if (((dma_busy & (1 << chan)) == 0) && (dma_auto_mode & (1 << chan)) == 0 ) printf("isa_dmadone: channel %d not busy\n", chan); @@ -351,6 +385,7 @@ dma_bounced &= ~(1 << chan); } dma_busy &= ~(1 << chan); + mtx_unlock(&isa_dma_lock); } /* @@ -367,8 +402,6 @@ vm_offset_t endva; u_int dma_pgmsk = (chan & 4) ? ~(128*1024-1) : ~(64*1024-1); - GIANT_REQUIRED; - endva = (vm_offset_t)round_page((vm_offset_t)va + length); for (; va < (caddr_t) endva ; va += PAGE_SIZE) { phys = trunc_page(pmap_extract(kernel_pmap, (vm_offset_t)va)); @@ -420,13 +453,15 @@ * or -1 if the channel requested is not active. * */ -int -isa_dmastatus(int chan) +static int +isa_dmastatus_locked(int chan) { u_long cnt = 0; int ffport, waport; u_long low1, high1, low2, high2; + mtx_assert(&isa_dma_lock, MA_OWNED); + /* channel active? */ if ((dma_inuse & (1 << chan)) == 0) { printf("isa_dmastatus: channel %d not active\n", chan); @@ -472,6 +507,18 @@ return(cnt); } +int +isa_dmastatus(int chan) +{ + int status; + + mtx_lock(&isa_dma_lock); + status = isa_dmastatus_locked(chan); + mtx_unlock(&isa_dma_lock); + + return (status); +} + /* * Reached terminal count yet ? */ @@ -491,12 +538,16 @@ int isa_dmastop(int chan) { + int status; + + mtx_lock(&isa_dma_lock); if ((dma_inuse & (1 << chan)) == 0) printf("isa_dmastop: channel %d not acquired\n", chan); if (((dma_busy & (1 << chan)) == 0) && ((dma_auto_mode & (1 << chan)) == 0)) { printf("chan %d not busy\n", chan); + mtx_unlock(&isa_dma_lock); return -2 ; } @@ -505,7 +556,12 @@ } else { outb(DMA2_SMSK, (chan & 3) | 4 /* disable mask */); } - return(isa_dmastatus(chan)); + + status = isa_dmastatus_locked(chan); + + mtx_unlock(&isa_dma_lock); + + return (status); } /* ==== //depot/projects/usb/src/sys/arm/arm/db_trace.c#4 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/db_trace.c,v 1.14 2007/12/02 20:40:31 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/db_trace.c,v 1.16 2009/11/05 06:27:46 marcel Exp $"); #include #include @@ -194,18 +194,18 @@ int db_trace_thread(struct thread *thr, int count) { - uint32_t addr; + struct pcb *ctx; - if (thr == curthread) - addr = (uint32_t)__builtin_frame_address(0); - else - addr = thr->td_pcb->un_32.pcb32_r11; - db_stack_trace_cmd(addr, -1); + ctx = kdb_thr_ctx(thr); + db_stack_trace_cmd(ctx->un_32.pcb32_r11, -1); return (0); } void db_trace_self(void) { - db_trace_thread(curthread, -1); + db_addr_t addr; + + addr = (db_addr_t)__builtin_frame_address(1); + db_stack_trace_cmd(addr, -1); } ==== //depot/projects/usb/src/sys/arm/arm/gdb_machdep.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/gdb_machdep.c,v 1.1 2006/07/14 00:50:51 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/gdb_machdep.c,v 1.2 2009/11/05 06:31:50 marcel Exp $"); #include @@ -53,12 +53,15 @@ *regsz = gdb_cpu_regsz(regnum); - if (kdb_thread == curthread) { - if (regnum < 16) - return (&kdb_frame->tf_r0 + 4 * regnum); + if (kdb_thread == curthread) { + if (regnum < 15) + return (&kdb_frame->tf_r0 + regnum); + if (regnum == 15) + return (&kdb_frame->tf_pc); if (regnum == 25) return (&kdb_frame->tf_spsr); } + switch (regnum) { case 8: return (&kdb_thrctx->un_32.pcb32_r8); case 9: return (&kdb_thrctx->un_32.pcb32_r9); @@ -78,6 +81,7 @@ return (&kdb_thrctx->un_32.pcb32_pc); } } + return (NULL); } ==== //depot/projects/usb/src/sys/arm/arm/machdep.c#11 (text+ko) ==== @@ -46,7 +46,7 @@ #include "opt_ddb.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.34 2009/10/27 10:47:58 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.35 2009/11/04 04:41:03 alc Exp $"); #include >>> TRUNCATED FOR MAIL (1000 lines) <<<