From owner-p4-projects@FreeBSD.ORG Fri Feb 27 19:33:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 09FC610656F7; Fri, 27 Feb 2009 19:33:27 +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 BB80110656F4 for ; Fri, 27 Feb 2009 19:33:26 +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 A739F8FC08 for ; Fri, 27 Feb 2009 19:33:26 +0000 (UTC) (envelope-from hselasky@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 n1RJXQRW041654 for ; Fri, 27 Feb 2009 19:33:26 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n1RJXOBA041652 for perforce@freebsd.org; Fri, 27 Feb 2009 19:33:24 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 27 Feb 2009 19:33:24 GMT Message-Id: <200902271933.n1RJXOBA041652@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 Cc: Subject: PERFORCE change 158399 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Feb 2009 19:33:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=158399 Change 158399 by hselasky@hselasky_laptop001 on 2009/02/27 19:32:38 IFC @ 158396 Affected files ... .. //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#17 integrate .. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#16 integrate .. //depot/projects/usb/src/sys/amd64/conf/USB2#5 delete .. //depot/projects/usb/src/sys/arm/mv/files.mv#5 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/files.ixp425#7 integrate .. //depot/projects/usb/src/sys/boot/i386/btx/btx/btx.S#5 integrate .. //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#16 integrate .. //depot/projects/usb/src/sys/compat/linux/linux_ioctl.c#9 integrate .. //depot/projects/usb/src/sys/compat/ndis/kern_ndis.c#10 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_hal.c#2 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_ndis.c#13 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_ntoskrnl.c#10 integrate .. //depot/projects/usb/src/sys/compat/ndis/subr_usbd.c#5 integrate .. //depot/projects/usb/src/sys/compat/svr4/svr4_sockio.c#6 integrate .. //depot/projects/usb/src/sys/conf/kern.pre.mk#15 integrate .. //depot/projects/usb/src/sys/contrib/altq/altq/altq_subr.c#8 integrate .. //depot/projects/usb/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#10 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf_if.c#8 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf_ioctl.c#13 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.c#13 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.h#10 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-queue.c#11 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-raid.c#8 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-usb.c#38 integrate .. //depot/projects/usb/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#6 integrate .. //depot/projects/usb/src/sys/dev/drm/drmP.h#8 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_bufs.c#4 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_drv.c#7 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_irq.c#5 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_lock.c#4 integrate .. //depot/projects/usb/src/sys/dev/drm/i915_dma.c#8 integrate .. //depot/projects/usb/src/sys/dev/drm/i915_drv.c#4 integrate .. //depot/projects/usb/src/sys/dev/drm/i915_drv.h#5 integrate .. //depot/projects/usb/src/sys/dev/drm/i915_irq.c#5 integrate .. //depot/projects/usb/src/sys/dev/drm/i915_reg.h#1 branch .. //depot/projects/usb/src/sys/dev/drm/radeon_irq.c#4 integrate .. //depot/projects/usb/src/sys/dev/mca/mca_bus.c#2 integrate .. //depot/projects/usb/src/sys/dev/nsp/nsp.c#2 integrate .. //depot/projects/usb/src/sys/dev/pci/pci.c#14 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac.c#24 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.c#36 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio.h#8 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudio_pcm.c#11 integrate .. //depot/projects/usb/src/sys/dev/sound/usb/uaudioreg.h#9 integrate .. //depot/projects/usb/src/sys/dev/stg/tmc18c30.c#2 integrate .. //depot/projects/usb/src/sys/dev/syscons/scterm-teken.c#3 integrate .. //depot/projects/usb/src/sys/dev/txp/3c990img.h#2 integrate .. //depot/projects/usb/src/sys/dev/txp/if_txp.c#6 integrate .. //depot/projects/usb/src/sys/dev/txp/if_txpreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/bluetooth/ubtbcmfw.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/image/uscanner.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/input/uhid.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/input/ums.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/misc/ufm.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/ulpt.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/storage/urio.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usb.h#37 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_bus.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_core.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_dev.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_device.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_device.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_generic.c#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_if.m#7 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_ioctl.h#2 integrate .. //depot/projects/usb/src/sys/dev/usb/usbdevs#44 integrate .. //depot/projects/usb/src/sys/dev/usb/usbhid.h#7 integrate .. //depot/projects/usb/src/sys/dev/usb2/controller/at91dci.c#29 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/atmegadci.c#6 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/atmegadci.h#2 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/atmegadci_atmelarm.c#2 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2.c#35 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_ixp4xx.c#2 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/ehci2_mbus.c#2 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/musb2_otg.c#28 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/ohci2.c#32 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/uhci2.c#31 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/usb2_controller.h#14 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/usb2_pci.h#6 delete .. //depot/projects/usb/src/sys/dev/usb2/controller/uss820dci.c#25 delete .. //depot/projects/usb/src/sys/dev/usb2/core/README.TXT#9 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_core.h#38 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_dev.c#47 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_device.c#55 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_device.h#15 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_generic.c#45 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_handle_request.c#17 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_hid.c#11 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_hid.h#11 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_hub.c#40 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_process.c#20 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_process.h#11 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_request.c#36 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_request.h#13 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_transfer.c#46 delete .. //depot/projects/usb/src/sys/dev/usb2/core/usb2_transfer.h#17 delete .. //depot/projects/usb/src/sys/dev/usb2/ethernet/if_kuefw.h#3 delete .. //depot/projects/usb/src/sys/dev/usb2/include/usb2_devid.h#30 delete .. //depot/projects/usb/src/sys/dev/usb2/include/usb2_devtable.h#30 delete .. //depot/projects/usb/src/sys/dev/usb2/include/usb2_ioctl.h#32 delete .. //depot/projects/usb/src/sys/dev/usb2/input/ums2.c#17 delete .. //depot/projects/usb/src/sys/dev/usb2/quirk/usb2_quirk.c#16 delete .. //depot/projects/usb/src/sys/dev/usb2/serial/u3g2.c#14 delete .. //depot/projects/usb/src/sys/dev/usb2/serial/uftdi2_reg.h#6 delete .. //depot/projects/usb/src/sys/dev/usb2/serial/uslcom2.c#2 delete .. //depot/projects/usb/src/sys/dev/usb2/wlan/if_rum2.c#42 delete .. //depot/projects/usb/src/sys/dev/usb2/wlan/if_rumfw.h#3 delete .. //depot/projects/usb/src/sys/dev/usb2/wlan/if_rumvar.h#10 delete .. //depot/projects/usb/src/sys/dev/usb2/wlan/if_ural2.c#41 delete .. //depot/projects/usb/src/sys/dev/usb2/wlan/if_uralvar.h#10 delete .. //depot/projects/usb/src/sys/dev/usb2/wlan/if_zyd2.c#41 delete .. //depot/projects/usb/src/sys/dev/usb2/wlan/if_zydreg.h#11 delete .. //depot/projects/usb/src/sys/dev/usb2/wlan/usb2_wlan.c#7 delete .. //depot/projects/usb/src/sys/dev/usb2/wlan/usb2_wlan.h#9 delete .. //depot/projects/usb/src/sys/fs/udf/udf.h#4 integrate .. //depot/projects/usb/src/sys/fs/udf/udf_vfsops.c#11 integrate .. //depot/projects/usb/src/sys/fs/udf/udf_vnops.c#13 integrate .. //depot/projects/usb/src/sys/i386/conf/USB2#5 delete .. //depot/projects/usb/src/sys/i386/i386/mp_machdep.c#14 integrate .. //depot/projects/usb/src/sys/i386/i386/pmap.c#14 integrate .. //depot/projects/usb/src/sys/i386/i386/vm86.c#3 integrate .. //depot/projects/usb/src/sys/i386/isa/npx.c#8 integrate .. //depot/projects/usb/src/sys/kern/kern_condvar.c#11 integrate .. //depot/projects/usb/src/sys/kern/kern_cons.c#2 integrate .. //depot/projects/usb/src/sys/kern/kern_exec.c#14 integrate .. //depot/projects/usb/src/sys/kern/kern_exit.c#13 integrate .. //depot/projects/usb/src/sys/kern/kern_malloc.c#11 integrate .. //depot/projects/usb/src/sys/kern/kern_poll.c#9 integrate .. //depot/projects/usb/src/sys/kern/kern_priv.c#5 integrate .. //depot/projects/usb/src/sys/kern/kern_rwlock.c#12 integrate .. //depot/projects/usb/src/sys/kern/kern_sig.c#12 integrate .. //depot/projects/usb/src/sys/kern/kern_synch.c#16 integrate .. //depot/projects/usb/src/sys/kern/kern_thr.c#11 integrate .. //depot/projects/usb/src/sys/kern/kern_time.c#8 integrate .. //depot/projects/usb/src/sys/kern/kern_uuid.c#7 integrate .. //depot/projects/usb/src/sys/kern/subr_prf.c#9 integrate .. //depot/projects/usb/src/sys/kern/tty_info.c#4 integrate .. //depot/projects/usb/src/sys/kern/tty_inq.c#3 integrate .. //depot/projects/usb/src/sys/kern/tty_outq.c#3 integrate .. //depot/projects/usb/src/sys/kern/tty_pty.c#9 integrate .. //depot/projects/usb/src/sys/kern/tty_ttydisc.c#4 integrate .. //depot/projects/usb/src/sys/libkern/strtouq.c#2 integrate .. //depot/projects/usb/src/sys/modules/usb/Makefile#14 integrate .. //depot/projects/usb/src/sys/modules/usb2/controller_ehci/Makefile#7 delete .. //depot/projects/usb/src/sys/modules/usb2/serial_slcom/Makefile#2 delete .. //depot/projects/usb/src/sys/net/bridgestp.c#11 integrate .. //depot/projects/usb/src/sys/net/if.c#18 integrate .. //depot/projects/usb/src/sys/net/if_ef.c#6 integrate .. //depot/projects/usb/src/sys/net/if_ethersubr.c#15 integrate .. //depot/projects/usb/src/sys/net/if_loop.c#15 integrate .. //depot/projects/usb/src/sys/net/if_mib.c#5 integrate .. //depot/projects/usb/src/sys/net/if_vlan.c#12 integrate .. //depot/projects/usb/src/sys/net/raw_cb.c#10 integrate .. //depot/projects/usb/src/sys/net/raw_usrreq.c#9 integrate .. //depot/projects/usb/src/sys/net/vnet.h#4 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ddb.c#11 integrate .. //depot/projects/usb/src/sys/netgraph/atm/ng_atm.c#5 integrate .. //depot/projects/usb/src/sys/netgraph/ng_ether.c#8 integrate .. //depot/projects/usb/src/sys/netgraph/ng_gif.c#5 integrate .. //depot/projects/usb/src/sys/netinet/if_ether.c#16 integrate .. //depot/projects/usb/src/sys/netinet/igmp.c#8 integrate .. //depot/projects/usb/src/sys/netinet/in_mcast.c#8 integrate .. //depot/projects/usb/src/sys/netinet/in_proto.c#9 integrate .. //depot/projects/usb/src/sys/netinet/in_rmx.c#13 integrate .. //depot/projects/usb/src/sys/netinet/ip_fw2.c#18 integrate .. //depot/projects/usb/src/sys/netinet/ip_input.c#16 integrate .. //depot/projects/usb/src/sys/netinet/ip_output.c#14 integrate .. //depot/projects/usb/src/sys/netinet/raw_ip.c#18 integrate .. //depot/projects/usb/src/sys/netinet/sctp_input.c#15 integrate .. //depot/projects/usb/src/sys/netinet/sctp_os_bsd.h#13 integrate .. //depot/projects/usb/src/sys/netinet6/icmp6.c#15 integrate .. //depot/projects/usb/src/sys/netinet6/in6.c#17 integrate .. //depot/projects/usb/src/sys/netinet6/in6_ifattach.c#14 integrate .. //depot/projects/usb/src/sys/netinet6/in6_proto.c#12 integrate .. //depot/projects/usb/src/sys/netinet6/in6_rmx.c#12 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_input.c#17 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_mroute.c#11 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_output.c#11 integrate .. //depot/projects/usb/src/sys/netinet6/nd6.c#14 integrate .. //depot/projects/usb/src/sys/netinet6/nd6_rtr.c#13 integrate .. //depot/projects/usb/src/sys/netinet6/raw_ip6.c#17 integrate .. //depot/projects/usb/src/sys/netinet6/scope6.c#9 integrate .. //depot/projects/usb/src/sys/netipsec/key.c#10 integrate .. //depot/projects/usb/src/sys/netipsec/key_debug.c#4 integrate .. //depot/projects/usb/src/sys/netipsec/keysock.c#10 integrate .. //depot/projects/usb/src/sys/netipsec/xform_ipip.c#11 integrate .. //depot/projects/usb/src/sys/nfsclient/bootp_subr.c#10 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_diskless.c#8 integrate .. //depot/projects/usb/src/sys/powerpc/booke/machdep.c#7 integrate .. //depot/projects/usb/src/sys/powerpc/booke/swtch.S#2 integrate .. //depot/projects/usb/src/sys/powerpc/booke/trap.c#3 integrate .. //depot/projects/usb/src/sys/powerpc/booke/trap_subr.S#4 integrate .. //depot/projects/usb/src/sys/powerpc/include/frame.h#3 integrate .. //depot/projects/usb/src/sys/powerpc/include/pcb.h#5 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/genassym.c#8 integrate .. //depot/projects/usb/src/sys/security/mac/mac_process.c#9 integrate .. //depot/projects/usb/src/sys/sys/param.h#21 integrate .. //depot/projects/usb/src/sys/vm/vm_fault.c#10 integrate .. //depot/projects/usb/src/sys/vm/vm_kern.c#11 integrate .. //depot/projects/usb/src/sys/vm/vm_map.c#13 integrate .. //depot/projects/usb/src/sys/vm/vm_map.h#8 integrate .. //depot/projects/usb/src/sys/vm/vm_mmap.c#15 integrate .. //depot/projects/usb/src/sys/vm/vm_pager.c#3 integrate .. //depot/projects/usb/src/sys/vm/vm_unix.c#3 integrate Differences ... ==== //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#17 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.297 2009/02/03 09:01:45 jkoshy Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.299 2009/02/25 22:24:56 sobomax Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -151,6 +151,7 @@ int cpu_present:1; int cpu_bsp:1; int cpu_disabled:1; + int cpu_hyperthread:1; } static cpu_info[MAX_APIC_ID + 1]; int cpu_apic_ids[MAXCPU]; int apic_cpuids[MAX_APIC_ID + 1]; @@ -353,11 +354,6 @@ cpu_apic_ids[0] = boot_cpu_id; apic_cpuids[boot_cpu_id] = 0; - assign_cpu_ids(); - - /* Start each Application Processor */ - start_all_aps(); - /* Setup the initial logical CPUs info. */ logical_cpus = logical_cpus_mask = 0; if (cpu_feature & CPUID_HTT) @@ -404,6 +400,11 @@ hyperthreading_cpus = logical_cpus; } + assign_cpu_ids(); + + /* Start each Application Processor */ + start_all_aps(); + set_interrupt_apic_ids(); } @@ -415,18 +416,26 @@ cpu_mp_announce(void) { int i, x; + const char *hyperthread; /* List CPUs */ printf(" cpu0 (BSP): APIC ID: %2d\n", boot_cpu_id); for (i = 1, x = 0; x <= MAX_APIC_ID; x++) { if (!cpu_info[x].cpu_present || cpu_info[x].cpu_bsp) continue; + if (cpu_info[x].cpu_hyperthread) { + hyperthread = "/HT"; + } else { + hyperthread = ""; + } if (cpu_info[x].cpu_disabled) - printf(" cpu (AP): APIC ID: %2d (disabled)\n", x); + printf(" cpu (AP%s): APIC ID: %2d (disabled)\n", + hyperthread, x); else { KASSERT(i < mp_ncpus, ("mp_ncpus and actual cpus are out of whack")); - printf(" cpu%d (AP): APIC ID: %2d\n", i++, x); + printf(" cpu%d (AP%s): APIC ID: %2d\n", i++, + hyperthread, x); } } } @@ -642,11 +651,28 @@ { u_int i; + TUNABLE_INT_FETCH("machdep.hyperthreading_allowed", + &hyperthreading_allowed); + /* Check for explicitly disabled CPUs. */ for (i = 0; i <= MAX_APIC_ID; i++) { if (!cpu_info[i].cpu_present || cpu_info[i].cpu_bsp) continue; + if (hyperthreading_cpus > 1 && i % hyperthreading_cpus != 0) { + cpu_info[i].cpu_hyperthread = 1; +#if defined(SCHED_ULE) + /* + * Don't use HT CPU if it has been disabled by a + * tunable. + */ + if (hyperthreading_allowed == 0) { + cpu_info[i].cpu_disabled = 1; + continue; + } +#endif + } + /* Don't use this CPU if it has been disabled by a tunable. */ if (resource_disabled("lapic", i)) { cpu_info[i].cpu_disabled = 1; @@ -1198,6 +1224,16 @@ if (error || !req->newptr) return (error); +#ifdef SCHED_ULE + /* + * SCHED_ULE doesn't allow enabling/disabling HT cores at + * run time. + */ + if (allowed != hyperthreading_allowed) + return (ENOTSUP); + return (error); +#endif + if (allowed) hlt_cpus_mask &= ~hyperthreading_cpus_mask; else @@ -1242,8 +1278,6 @@ * of hlt_logical_cpus. */ if (hyperthreading_cpus_mask) { - TUNABLE_INT_FETCH("machdep.hyperthreading_allowed", - &hyperthreading_allowed); SYSCTL_ADD_PROC(&logical_cpu_clist, SYSCTL_STATIC_CHILDREN(_machdep), OID_AUTO, "hyperthreading_allowed", CTLTYPE_INT|CTLFLAG_RW, ==== //depot/projects/usb/src/sys/amd64/amd64/pmap.c#16 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.648 2009/02/23 06:00:24 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.649 2009/02/25 20:26:48 jkim Exp $"); /* * Manages physical address maps. @@ -594,7 +594,6 @@ if (!(cpu_feature & CPUID_PAT)) panic("no PAT??"); -#ifdef PAT_WORKS /* * Leave the indices 0-3 at the default of WB, WT, UC, and UC-. * Program 4 and 5 as WP and WC. @@ -604,23 +603,6 @@ pat_msr &= ~(PAT_MASK(4) | PAT_MASK(5)); pat_msr |= PAT_VALUE(4, PAT_WRITE_PROTECTED) | PAT_VALUE(5, PAT_WRITE_COMBINING); -#else - /* - * Due to some Intel errata, we can only safely use the lower 4 - * PAT entries. Thus, just replace PAT Index 2 with WC instead - * of UC-. - * - * Intel Pentium III Processor Specification Update - * Errata E.27 (Upper Four PAT Entries Not Usable With Mode B - * or Mode C Paging) - * - * Intel Pentium IV Processor Specification Update - * Errata N46 (PAT Index MSB May Be Calculated Incorrectly) - */ - pat_msr = rdmsr(MSR_PAT); - pat_msr &= ~PAT_MASK(2); - pat_msr |= PAT_VALUE(2, PAT_WRITE_COMBINING); -#endif wrmsr(MSR_PAT, pat_msr); } @@ -783,10 +765,9 @@ break; } } - + /* Map the caching mode to a PAT index. */ switch (mode) { -#ifdef PAT_WORKS case PAT_UNCACHEABLE: pat_index = 3; break; @@ -805,25 +786,9 @@ case PAT_WRITE_PROTECTED: pat_index = 4; break; -#else - case PAT_UNCACHED: - case PAT_UNCACHEABLE: - case PAT_WRITE_PROTECTED: - pat_index = 3; - break; - case PAT_WRITE_THROUGH: - pat_index = 1; - break; - case PAT_WRITE_BACK: - pat_index = 0; - break; - case PAT_WRITE_COMBINING: - pat_index = 2; - break; -#endif default: panic("Unknown caching mode %d\n", mode); - } + } /* Map the 3-bit index value into the PAT, PCD, and PWT bits. */ cache_bits = 0; ==== //depot/projects/usb/src/sys/arm/mv/files.mv#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/arm/mv/files.mv,v 1.4 2009/02/16 21:42:41 marcel Exp $ +# $FreeBSD: src/sys/arm/mv/files.mv,v 1.5 2009/02/24 23:30:52 thompsa Exp $ # # The Marvell CPU cores # - Compliant with V5TE architecture @@ -32,5 +32,4 @@ dev/uart/uart_bus_mbus.c optional uart dev/uart/uart_cpu_mv.c optional uart dev/uart/uart_dev_ns8250.c optional uart -dev/usb/ehci_mbus.c optional ehci -dev/usb2/controller/ehci2_mbus.c optional usb2_core usb2_controller usb2_controller_ehci +dev/usb/controller/ehci_mbus.c optional ehci ==== //depot/projects/usb/src/sys/arm/xscale/ixp425/files.ixp425#7 (text+ko) ==== @@ -1,4 +1,4 @@ -#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.8 2009/02/03 19:16:04 sam Exp $ +#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.9 2009/02/24 23:34:02 thompsa Exp $ arm/arm/bus_space_generic.c standard arm/arm/cpufunc_asm_xscale.S standard arm/arm/irq_dispatch.S standard @@ -46,4 +46,5 @@ # arm/xscale/ixp425/ixp425_qmgr.c optional qmgr # -dev/usb/ehci_ixp4xx.c optional ehci +dev/usb/controller/ehci_ixp4xx.c optional ehci usb +legacy/dev/usb/ehci_ixp4xx.c optional ehci ousb ==== //depot/projects/usb/src/sys/boot/i386/btx/btx/btx.S#5 (text+ko) ==== @@ -12,7 +12,7 @@ * warranties of merchantability and fitness for a particular * purpose. * - * $FreeBSD: src/sys/boot/i386/btx/btx/btx.S,v 1.47 2008/08/08 19:39:11 jhb Exp $ + * $FreeBSD: src/sys/boot/i386/btx/btx/btx.S,v 1.48 2009/02/24 23:11:15 jhb Exp $ */ /* @@ -36,6 +36,7 @@ /* * Fields in %eflags. */ + .set PSL_RESERVED_DEFAULT,0x00000002 .set PSL_T,0x00000100 # Trap flag .set PSL_I,0x00000200 # Interrupt enable flag .set PSL_VM,0x00020000 # Virtual 8086 mode flag @@ -455,6 +456,18 @@ * -0x3c %fs * -0x40 %ds * -0x44 %es + * -0x48 zero %eax (hardware int only) + * -0x4c zero %ecx (hardware int only) + * -0x50 zero %edx (hardware int only) + * -0x54 zero %ebx (hardware int only) + * -0x58 zero %esp (hardware int only) + * -0x5c zero %ebp (hardware int only) + * -0x60 zero %esi (hardware int only) + * -0x64 zero %edi (hardware int only) + * -0x68 zero %gs (hardware int only) + * -0x6c zero %fs (hardware int only) + * -0x70 zero %ds (hardware int only) + * -0x74 zero %es (hardware int only) */ int_hw: cld # String ops inc pusha # Save gp regs @@ -467,12 +480,15 @@ pushl %ds # address popl %es # data leal 0x44(%esp,1),%esi # Base of frame + movl %esp,MEM_ESPR-0x04 # Save kernel stack pointer movl -0x14(%esi),%eax # Get Int no cmpl $-1,%eax # Hardware interrupt? - jne intusr.2 # Yes + jne intusr.1 # Yes /* - * v86 calls save the btx_v86 pointer on the real mode stack and read the - * address and flags from the btx_v86 structure. + * v86 calls save the btx_v86 pointer on the real mode stack and read + * the address and flags from the btx_v86 structure. For interrupt + * handler invocations (VM86 INTx requests), disable interrupts, + * tracing, and alignment checking while the handler runs. */ movl $MEM_USR,%ebx # User base movl %ebx,%edx # address @@ -482,35 +498,36 @@ movl %edx,MEM_ESPR-0x08 # Save btx_v86 ptr movl V86_ADDR(%edx),%eax # Get int no/address movl V86_CTL(%edx),%edx # Get control flags + movl -0x08(%esi),%ebx # Save user flags in %ebx + testl $V86F_ADDR,%edx # Segment:offset? + jnz intusr.4 # Yes + andl $~(PSL_I|PSL_T|PSL_AC),%ebx # Disable interrupts, tracing, + # and alignment checking for + # interrupt handler jmp intusr.3 # Skip hardware interrupt /* - * Hardware interrupts store a NULL btx_v86 pointer and use the address - * (interrupt number) from the stack with empty flags. Also, we clear - * the segment registers for the interrupt handler. + * Hardware interrupts store a NULL btx_v86 pointer and use the + * address (interrupt number) from the stack with empty flags. Also, + * push a dummy frame of zeros onto the stack for all the general + * purpose and segment registers and clear %eflags. This gives the + * hardware interrupt handler a clean slate. */ -intusr.2: xorl %edx,%edx # Control flags +intusr.1: xorl %edx,%edx # Control flags movl %edx,MEM_ESPR-0x08 # NULL btx_v86 ptr - movl %edx,-0x38(%esi) # Real mode %gs of 0 - movl %edx,-0x3c(%esi) # Real mode %fs of 0 - movl %edx,-0x40(%esi) # Real mode %ds of 0 - movl %edx,-0x44(%esi) # Real mode %es of 0 + movl $12,%ecx # Frame is 12 dwords +intusr.2: pushl $0x0 # Fill frame + loop intusr.2 # with zeros + movl $PSL_RESERVED_DEFAULT,%ebx # Set clean %eflags /* - * %eax now holds either the interrupt number or segment:offset of function. - * %edx now holds the V86F_* flags. - * - * For interrupt handler invocations (either hardware interrupts or VM86 - * INTx requests) we also disable interrupts, tracing, and alignment checking - * while the handler runs. + * Look up real mode IDT entry for hardware interrupts and VM86 INTx + * requests. */ -intusr.3: movl -0x08(%esi),%ebx # Save user flags in %ebx - testl $V86F_ADDR,%edx # Segment:offset? - jnz intusr.4 # Yes - shll $0x2,%eax # Scale +intusr.3: shll $0x2,%eax # Scale movl (%eax),%eax # Load int vector - andl $~(PSL_I|PSL_T|PSL_AC),%ebx # Disable interrupts, tracing, - # and alignment checking for - # interrupt handler jmp intusr.5 # Skip CALLF test +/* + * Panic if V86F_CALLF isn't set with V86F_ADDR. + */ intusr.4: testl $V86F_CALLF,%edx # Far call? jnz intusr.5 # Ok movl %edx,0x30(%esp,1) # Place VM86 flags in int no @@ -522,6 +539,11 @@ popl %gs popal # Restore gp regs jmp ex_noc # Panic +/* + * %eax now holds the segment:offset of the function. + * %ebx now holds the %eflags to pass to real mode. + * %edx now holds the V86F_* flags. + */ intusr.5: movw %bx,MEM_ESPR-0x12 # Pass user flags to real mode # target /* @@ -536,8 +558,7 @@ rep # from btx_v86 movsl # to kernel stack popl %esi # Restore -intusr.6: movl %esp,MEM_ESPR-0x04 # Save kernel stack pointer - movl -0x08(%esi),%ebx # Copy user flags to real +intusr.6: movl -0x08(%esi),%ebx # Copy user flags to real movl %ebx,MEM_ESPR-0x0c # mode return trampoline movl $rret_tramp,%ebx # Set return trampoline movl %ebx,MEM_ESPR-0x10 # CS:IP @@ -611,9 +632,16 @@ movb $SEL_TSS,%cl # Set task ltr %cx # register /* - * Now we are back in protected mode. Copy the registers off of the real - * mode stack onto the kernel stack. Also, initialize all the seg regs on - * the kernel stack. + * Now we are back in protected mode. The kernel stack frame set up + * before entering real mode is still intact. For hardware interrupts, + * leave the frame unchanged. + */ + cmpl $0,MEM_ESPR-0x08 # Leave saved regs unchanged + jz rret_tramp.3 # for hardware ints +/* + * For V86 calls, copy the registers off of the real mode stack onto + * the kernel stack as we want their updated values. Also, initialize + * the segment registers on the kernel stack. * * Note that the %esp in the kernel stack after this is garbage, but popa * ignores it, so we don't have to fix it up. @@ -624,20 +652,17 @@ movl $8,%ecx # Copy GP regs from rep # real mode stack movsl # to kernel stack - popl %esi # Restore movl $SEL_UDATA,%eax # Selector for data seg regs movl $4,%ecx # Initialize %ds, rep # %es, %fs, and stosl # %gs /* - * If this was a V86 call, copy the saved seg regs on the real mode stack - * back over to the btx_v86 structure. Also, conditionally update the saved - * eflags on the kernel stack based on the flags from the user. + * For V86 calls, copy the saved seg regs on the real mode stack back + * over to the btx_v86 structure. Also, conditionally update the + * saved eflags on the kernel stack based on the flags from the user. */ movl MEM_ESPR-0x08,%ecx # Get btx_v86 ptr - jecxz rret_tramp.3 # Skip for hardware ints leal V86_GS(%ecx),%edi # %edi => btx_v86 seg regs - pushl %esi # Save leal MEM_ESPR-0x2c,%esi # %esi => real mode seg regs xchgl %ecx,%edx # Save btx_v86 ptr movl $4,%ecx # Copy seg regs ==== //depot/projects/usb/src/sys/compat/linprocfs/linprocfs.c#16 (text+ko) ==== @@ -39,10 +39,11 @@ * @(#)procfs_status.c 8.4 (Berkeley) 6/15/94 */ +#include "opt_route.h" #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.135 2009/02/13 15:32:03 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linprocfs/linprocfs.c,v 1.136 2009/02/27 14:12:05 bz Exp $"); #include #include @@ -76,6 +77,7 @@ #include #include +#include #include #include ==== //depot/projects/usb/src/sys/compat/linux/linux_ioctl.c#9 (text+ko) ==== @@ -26,10 +26,11 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "opt_route.h" #include "opt_compat.h" #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.146 2008/12/02 21:37:28 bz Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.147 2009/02/27 14:12:05 bz Exp $"); #include #include @@ -63,6 +64,7 @@ #include #include #include +#include #include #ifdef COMPAT_LINUX32 ==== //depot/projects/usb/src/sys/compat/ndis/kern_ndis.c#10 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.100 2008/12/27 09:42:17 weongyo Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.102 2009/02/24 18:09:31 rdivacky Exp $"); #include #include @@ -65,6 +65,9 @@ #include #include +#include +#include + #include #include #include @@ -255,10 +258,8 @@ } static void -ndis_resetdone_func(adapter, status, addressingreset) - ndis_handle adapter; - ndis_status status; - uint8_t addressingreset; +ndis_resetdone_func(ndis_handle adapter, ndis_status status, + uint8_t addressingreset) { ndis_miniport_block *block; struct ndis_softc *sc; ==== //depot/projects/usb/src/sys/compat/ndis/subr_hal.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_hal.c,v 1.28 2006/05/16 14:37:57 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_hal.c,v 1.29 2009/02/24 18:09:31 rdivacky Exp $"); #include #include @@ -142,18 +142,14 @@ } static void -WRITE_PORT_USHORT(port, val) - uint16_t *port; - uint16_t val; +WRITE_PORT_USHORT(uint16_t *port, uint16_t val) { bus_space_write_2(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val); return; } static void -WRITE_PORT_UCHAR(port, val) - uint8_t *port; - uint8_t val; +WRITE_PORT_UCHAR(uint8_t *port, uint8_t val) { bus_space_write_1(NDIS_BUS_SPACE_IO, 0x0, (bus_size_t)port, val); return; @@ -378,9 +374,7 @@ } void -KfReleaseSpinLock(lock, newirql) - kspin_lock *lock; - uint8_t newirql; +KfReleaseSpinLock(kspin_lock *lock, uint8_t newirql) { KeReleaseSpinLockFromDpcLevel(lock); KeLowerIrql(newirql); @@ -407,8 +401,7 @@ } uint8_t -KfRaiseIrql(irql) - uint8_t irql; +KfRaiseIrql(uint8_t irql) { uint8_t oldirql; @@ -428,8 +421,7 @@ } void -KfLowerIrql(oldirql) - uint8_t oldirql; +KfLowerIrql(uint8_t oldirql) { if (oldirql == DISPATCH_LEVEL) return; @@ -453,8 +445,7 @@ } static void -_KeLowerIrql(oldirql) - uint8_t oldirql; +_KeLowerIrql(uint8_t oldirql) { KeLowerIrql(oldirql); return; ==== //depot/projects/usb/src/sys/compat/ndis/subr_ndis.c#13 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.115 2008/12/27 08:03:32 weongyo Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.117 2009/02/24 18:09:31 rdivacky Exp $"); /* * This file implements a translation layer between the BSD networking @@ -95,6 +95,8 @@ #include #include +#include +#include #include #include @@ -903,10 +905,8 @@ } static void -NdisAcquireReadWriteLock(lock, writeacc, state) - ndis_rw_lock *lock; - uint8_t writeacc; - ndis_lock_state *state; +NdisAcquireReadWriteLock(ndis_rw_lock *lock, uint8_t writeacc, + ndis_lock_state *state) { if (writeacc == TRUE) { KeAcquireSpinLock(&lock->nrl_spinlock, &state->nls_oldirql); @@ -1089,13 +1089,9 @@ } static void -NdisMStartBufferPhysicalMapping(adapter, buf, mapreg, writedev, addrarray, arraysize) - ndis_handle adapter; - ndis_buffer *buf; - uint32_t mapreg; - uint8_t writedev; - ndis_paddr_unit *addrarray; - uint32_t *arraysize; +NdisMStartBufferPhysicalMapping(ndis_handle adapter, ndis_buffer *buf, + uint32_t mapreg, uint8_t writedev, ndis_paddr_unit *addrarray, + uint32_t *arraysize) { ndis_miniport_block *block; struct ndis_softc *sc; @@ -1472,12 +1468,8 @@ } static ndis_status -NdisMAllocateMapRegisters(adapter, dmachannel, dmasize, physmapneeded, maxmap) - ndis_handle adapter; - uint32_t dmachannel; - uint8_t dmasize; - uint32_t physmapneeded; - uint32_t maxmap; +NdisMAllocateMapRegisters(ndis_handle adapter, uint32_t dmachannel, + uint8_t dmasize, uint32_t physmapneeded, uint32_t maxmap) { struct ndis_softc *sc; ndis_miniport_block *block; @@ -1555,12 +1547,8 @@ */ static void -NdisMAllocateSharedMemory(adapter, len, cached, vaddr, paddr) - ndis_handle adapter; - uint32_t len; - uint8_t cached; - void **vaddr; - ndis_physaddr *paddr; +NdisMAllocateSharedMemory(ndis_handle adapter, uint32_t len, uint8_t cached, + void **vaddr, ndis_physaddr *paddr) { ndis_miniport_block *block; struct ndis_softc *sc; @@ -1678,11 +1666,8 @@ } static ndis_status -NdisMAllocateSharedMemoryAsync(adapter, len, cached, ctx) - ndis_handle adapter; - uint32_t len; - uint8_t cached; - void *ctx; +NdisMAllocateSharedMemoryAsync(ndis_handle adapter, uint32_t len, + uint8_t cached, void *ctx) { ndis_miniport_block *block; struct ndis_allocwork *w; @@ -1715,12 +1700,8 @@ } static void -NdisMFreeSharedMemory(adapter, len, cached, vaddr, paddr) - ndis_handle adapter; - uint32_t len; - uint8_t cached; - void *vaddr; - ndis_physaddr paddr; +NdisMFreeSharedMemory(ndis_handle adapter, uint32_t len, uint8_t cached, + void *vaddr, ndis_physaddr paddr) { ndis_miniport_block *block; struct ndis_softc *sc; @@ -1827,10 +1808,8 @@ */ static ndis_status -NdisMInitializeScatterGatherDma(adapter, is64, maxphysmap) - ndis_handle adapter; - uint8_t is64; - uint32_t maxphysmap; +NdisMInitializeScatterGatherDma(ndis_handle adapter, uint8_t is64, + uint32_t maxphysmap) { struct ndis_softc *sc; ndis_miniport_block *block; @@ -2431,14 +2410,9 @@ } static ndis_status -NdisMRegisterInterrupt(intr, adapter, ivec, ilevel, reqisr, shared, imode) - ndis_miniport_interrupt *intr; - ndis_handle adapter; - uint32_t ivec; - uint32_t ilevel; - uint8_t reqisr; - uint8_t shared; - ndis_interrupt_mode imode; +NdisMRegisterInterrupt(ndis_miniport_interrupt *intr, ndis_handle adapter, + uint32_t ivec, uint32_t ilevel, uint8_t reqisr, uint8_t shared, + ndis_interrupt_mode imode) { ndis_miniport_block *block; ndis_miniport_characteristics *ch; ==== //depot/projects/usb/src/sys/compat/ndis/subr_ntoskrnl.c#10 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.97 2008/12/27 08:03:32 weongyo Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.98 2009/02/24 18:09:31 rdivacky Exp $"); #include #include @@ -446,10 +446,7 @@ } static void * -ntoskrnl_memchr(buf, ch, len) - void *buf; - unsigned char ch; - size_t len; +ntoskrnl_memchr(void *buf, unsigned char ch, size_t len) { if (len != 0) { unsigned char *p = buf; @@ -520,10 +517,8 @@ } static uint8_t -RtlEqualUnicodeString(str1, str2, caseinsensitive) - unicode_string *str1; - unicode_string *str2; - uint8_t caseinsensitive; +RtlEqualUnicodeString(unicode_string *str1, unicode_string *str2, + uint8_t caseinsensitive) { int i; @@ -595,10 +590,7 @@ } uint32_t -RtlUnicodeStringToAnsiString(dest, src, allocate) - ansi_string *dest; - unicode_string *src; - uint8_t allocate; +RtlUnicodeStringToAnsiString(ansi_string *dest, unicode_string *src, uint8_t allocate) { if (dest == NULL || src == NULL) return(STATUS_INVALID_PARAMETER); @@ -626,10 +618,8 @@ } uint32_t -RtlAnsiStringToUnicodeString(dest, src, allocate) - unicode_string *dest; - ansi_string *src; - uint8_t allocate; +RtlAnsiStringToUnicodeString(unicode_string *dest, ansi_string *src, + uint8_t allocate) { if (dest == NULL || src == NULL) return(STATUS_INVALID_PARAMETER); @@ -727,14 +717,9 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<<