svn commit: r222063 - in projects/largeSMP: contrib/top
lib/libprocstat share/mk sys/amd64/amd64 sys/amd64/include
sys/cddl/contrib/opensolaris/uts/common/fs/zfs
sys/dev/ath/ath_hal/ar5416 sys/dev/...
Attilio Rao
attilio at FreeBSD.org
Wed May 18 16:01:30 UTC 2011
Author: attilio
Date: Wed May 18 16:01:29 2011
New Revision: 222063
URL: http://svn.freebsd.org/changeset/base/222063
Log:
MFC
Modified:
projects/largeSMP/lib/libprocstat/libprocstat.c
projects/largeSMP/sys/amd64/amd64/identcpu.c
projects/largeSMP/sys/amd64/include/specialreg.h
projects/largeSMP/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
projects/largeSMP/sys/dev/ath/ath_rate/sample/sample.c
projects/largeSMP/sys/dev/sound/usb/uaudio.c
projects/largeSMP/sys/dev/usb/input/uhid.c
projects/largeSMP/sys/dev/usb/input/ukbd.c
projects/largeSMP/sys/dev/usb/input/ums.c
projects/largeSMP/sys/dev/usb/storage/umass.c
projects/largeSMP/sys/dev/usb/storage/ustorage_fs.c
projects/largeSMP/sys/dev/usb/usb_device.c
projects/largeSMP/sys/dev/usb/usbdi.h
projects/largeSMP/sys/i386/i386/identcpu.c
projects/largeSMP/sys/i386/include/specialreg.h
projects/largeSMP/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
Directory Properties:
projects/largeSMP/ (props changed)
projects/largeSMP/cddl/contrib/opensolaris/ (props changed)
projects/largeSMP/contrib/bind9/ (props changed)
projects/largeSMP/contrib/binutils/ (props changed)
projects/largeSMP/contrib/bzip2/ (props changed)
projects/largeSMP/contrib/dialog/ (props changed)
projects/largeSMP/contrib/ee/ (props changed)
projects/largeSMP/contrib/expat/ (props changed)
projects/largeSMP/contrib/file/ (props changed)
projects/largeSMP/contrib/gcc/ (props changed)
projects/largeSMP/contrib/gdb/ (props changed)
projects/largeSMP/contrib/gdtoa/ (props changed)
projects/largeSMP/contrib/gnu-sort/ (props changed)
projects/largeSMP/contrib/groff/ (props changed)
projects/largeSMP/contrib/less/ (props changed)
projects/largeSMP/contrib/libpcap/ (props changed)
projects/largeSMP/contrib/libstdc++/ (props changed)
projects/largeSMP/contrib/llvm/ (props changed)
projects/largeSMP/contrib/llvm/tools/clang/ (props changed)
projects/largeSMP/contrib/ncurses/ (props changed)
projects/largeSMP/contrib/netcat/ (props changed)
projects/largeSMP/contrib/ntp/ (props changed)
projects/largeSMP/contrib/one-true-awk/ (props changed)
projects/largeSMP/contrib/openbsm/ (props changed)
projects/largeSMP/contrib/openpam/ (props changed)
projects/largeSMP/contrib/pf/ (props changed)
projects/largeSMP/contrib/sendmail/ (props changed)
projects/largeSMP/contrib/tcpdump/ (props changed)
projects/largeSMP/contrib/tcsh/ (props changed)
projects/largeSMP/contrib/top/ (props changed)
projects/largeSMP/contrib/top/install-sh (props changed)
projects/largeSMP/contrib/tzcode/stdtime/ (props changed)
projects/largeSMP/contrib/tzcode/zic/ (props changed)
projects/largeSMP/contrib/tzdata/ (props changed)
projects/largeSMP/contrib/wpa/ (props changed)
projects/largeSMP/contrib/xz/ (props changed)
projects/largeSMP/crypto/openssh/ (props changed)
projects/largeSMP/crypto/openssl/ (props changed)
projects/largeSMP/gnu/lib/ (props changed)
projects/largeSMP/gnu/usr.bin/binutils/ (props changed)
projects/largeSMP/gnu/usr.bin/cc/cc_tools/ (props changed)
projects/largeSMP/gnu/usr.bin/gdb/ (props changed)
projects/largeSMP/lib/libc/ (props changed)
projects/largeSMP/lib/libc/stdtime/ (props changed)
projects/largeSMP/lib/libutil/ (props changed)
projects/largeSMP/lib/libz/ (props changed)
projects/largeSMP/sbin/ (props changed)
projects/largeSMP/sbin/ipfw/ (props changed)
projects/largeSMP/share/mk/bsd.arch.inc.mk (props changed)
projects/largeSMP/share/zoneinfo/ (props changed)
projects/largeSMP/sys/ (props changed)
projects/largeSMP/sys/amd64/include/xen/ (props changed)
projects/largeSMP/sys/boot/ (props changed)
projects/largeSMP/sys/boot/i386/efi/ (props changed)
projects/largeSMP/sys/boot/ia64/efi/ (props changed)
projects/largeSMP/sys/boot/ia64/ski/ (props changed)
projects/largeSMP/sys/boot/powerpc/boot1.chrp/ (props changed)
projects/largeSMP/sys/boot/powerpc/ofw/ (props changed)
projects/largeSMP/sys/cddl/contrib/opensolaris/ (props changed)
projects/largeSMP/sys/conf/ (props changed)
projects/largeSMP/sys/contrib/dev/acpica/ (props changed)
projects/largeSMP/sys/contrib/octeon-sdk/ (props changed)
projects/largeSMP/sys/contrib/pf/ (props changed)
projects/largeSMP/sys/contrib/x86emu/ (props changed)
projects/largeSMP/usr.bin/calendar/ (props changed)
projects/largeSMP/usr.bin/csup/ (props changed)
projects/largeSMP/usr.bin/procstat/ (props changed)
projects/largeSMP/usr.sbin/ndiscvt/ (props changed)
projects/largeSMP/usr.sbin/zic/ (props changed)
Modified: projects/largeSMP/lib/libprocstat/libprocstat.c
==============================================================================
--- projects/largeSMP/lib/libprocstat/libprocstat.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/lib/libprocstat/libprocstat.c Wed May 18 16:01:29 2011 (r222063)
@@ -132,6 +132,7 @@ procstat_close(struct procstat *procstat
assert(procstat);
if (procstat->type == PROCSTAT_KVM)
kvm_close(procstat->kd);
+ free(procstat);
}
struct procstat *
Modified: projects/largeSMP/sys/amd64/amd64/identcpu.c
==============================================================================
--- projects/largeSMP/sys/amd64/amd64/identcpu.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/amd64/amd64/identcpu.c Wed May 18 16:01:29 2011 (r222063)
@@ -216,6 +216,14 @@ printcpuinfo(void)
printf(" Family = %x", CPUID_TO_FAMILY(cpu_id));
printf(" Model = %x", CPUID_TO_MODEL(cpu_id));
printf(" Stepping = %u", cpu_id & CPUID_STEPPING);
+
+ /*
+ * AMD CPUID Specification
+ * http://support.amd.com/us/Embedded_TechDocs/25481.pdf
+ *
+ * Intel Processor Identification and CPUID Instruction
+ * http://www.intel.com/assets/pdf/appnote/241618.pdf
+ */
if (cpu_high > 0) {
/*
@@ -277,38 +285,29 @@ printcpuinfo(void)
"\012SSSE3" /* SSSE3 */
"\013CNXT-ID" /* L1 context ID available */
"\014<b11>"
- "\015<b12>"
+ "\015FMA" /* Fused Multiply Add */
"\016CX16" /* CMPXCHG16B Instruction */
"\017xTPR" /* Send Task Priority Messages*/
"\020PDCM" /* Perf/Debug Capability MSR */
"\021<b16>"
- "\022PCID" /* Process-context Identifiers */
+ "\022PCID" /* Process-context Identifiers*/
"\023DCA" /* Direct Cache Access */
- "\024SSE4.1"
- "\025SSE4.2"
+ "\024SSE4.1" /* SSE 4.1 */
+ "\025SSE4.2" /* SSE 4.2 */
"\026x2APIC" /* xAPIC Extensions */
- "\027MOVBE"
- "\030POPCNT"
- "\031<b24>"
- "\032AESNI" /* AES Crypto*/
- "\033XSAVE"
- "\034OSXSAVE"
- "\035<b28>"
- "\036<b29>"
+ "\027MOVBE" /* MOVBE Instruction */
+ "\030POPCNT" /* POPCNT Instruction */
+ "\031TSCDLT" /* TSC-Deadline Timer */
+ "\032AESNI" /* AES Crypto */
+ "\033XSAVE" /* XSAVE/XRSTOR States */
+ "\034OSXSAVE" /* OS-Enabled State Management*/
+ "\035AVX" /* Advanced Vector Extensions */
+ "\036F16C" /* Half-precision conversions */
"\037<b30>"
"\040HV" /* Hypervisor */
);
}
- /*
- * AMD64 Architecture Programmer's Manual Volume 3:
- * General-Purpose and System Instructions
- * http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24594.pdf
- *
- * IA-32 Intel Architecture Software Developer's Manual,
- * Volume 2A: Instruction Set Reference, A-M
- * ftp://download.intel.com/design/Pentium4/manuals/25366617.pdf
- */
if (amd_feature != 0) {
printf("\n AMD Features=0x%b", amd_feature,
"\020" /* in hex */
@@ -361,18 +360,18 @@ printcpuinfo(void)
"\011Prefetch" /* 3DNow! Prefetch/PrefetchW */
"\012OSVW" /* OS visible workaround */
"\013IBS" /* Instruction based sampling */
- "\014SSE5" /* SSE5 */
+ "\014XOP" /* XOP extended instructions */
"\015SKINIT" /* SKINIT/STGI */
"\016WDT" /* Watchdog timer */
"\017<b14>"
- "\020<b15>"
- "\021<b16>"
+ "\020LWP" /* Lightweight Profiling */
+ "\021FMA4" /* 4-operand FMA instructions */
"\022<b17>"
"\023<b18>"
- "\024<b19>"
+ "\024NodeId" /* NodeId MSR support */
"\025<b20>"
- "\026<b21>"
- "\027<b22>"
+ "\026TBM" /* Trailing Bit Manipulation */
+ "\027Topology" /* Topology Extensions */
"\030<b23>"
"\031<b24>"
"\032<b25>"
Modified: projects/largeSMP/sys/amd64/include/specialreg.h
==============================================================================
--- projects/largeSMP/sys/amd64/include/specialreg.h Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/amd64/include/specialreg.h Wed May 18 16:01:29 2011 (r222063)
@@ -123,6 +123,7 @@
#define CPUID2_TM2 0x00000100
#define CPUID2_SSSE3 0x00000200
#define CPUID2_CNXTID 0x00000400
+#define CPUID2_FMA 0x00001000
#define CPUID2_CX16 0x00002000
#define CPUID2_XTPR 0x00004000
#define CPUID2_PDCM 0x00008000
@@ -133,7 +134,12 @@
#define CPUID2_X2APIC 0x00200000
#define CPUID2_MOVBE 0x00400000
#define CPUID2_POPCNT 0x00800000
+#define CPUID2_TSCDLT 0x01000000
#define CPUID2_AESNI 0x02000000
+#define CPUID2_XSAVE 0x04000000
+#define CPUID2_OSXSAVE 0x08000000
+#define CPUID2_AVX 0x10000000
+#define CPUID2_F16C 0x20000000
#define CPUID2_HV 0x80000000
/*
@@ -170,9 +176,14 @@
#define AMDID2_PREFETCH 0x00000100
#define AMDID2_OSVW 0x00000200
#define AMDID2_IBS 0x00000400
-#define AMDID2_SSE5 0x00000800
+#define AMDID2_XOP 0x00000800
#define AMDID2_SKINIT 0x00001000
#define AMDID2_WDT 0x00002000
+#define AMDID2_LWP 0x00008000
+#define AMDID2_FMA4 0x00010000
+#define AMDID2_NODE_ID 0x00080000
+#define AMDID2_TBM 0x00200000
+#define AMDID2_TOPOLOGY 0x00400000
/*
* CPUID instruction 1 eax info
Modified: projects/largeSMP/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
==============================================================================
--- projects/largeSMP/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed May 18 16:01:29 2011 (r222063)
@@ -689,6 +689,9 @@ zfs_secpolicy_destroy(zfs_cmd_t *zc, cre
* and destroying snapshots requires descendent permissions, a successfull
* check of the top level snapshot applies to snapshots of all descendent
* datasets as well.
+ *
+ * The top level snapshot may not exist when doing a recursive destroy.
+ * In this case fallback to permissions of the parent dataset.
*/
static int
zfs_secpolicy_destroy_snaps(zfs_cmd_t *zc, cred_t *cr)
@@ -700,6 +703,9 @@ zfs_secpolicy_destroy_snaps(zfs_cmd_t *z
error = zfs_secpolicy_destroy_perms(dsname, cr);
+ if (error == ENOENT)
+ error = zfs_secpolicy_destroy_perms(zc->zc_name, cr);
+
strfree(dsname);
return (error);
}
Modified: projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
==============================================================================
--- projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Wed May 18 16:01:29 2011 (r222063)
@@ -1368,10 +1368,6 @@ ar5416UpdateChainMasks(struct ath_hal *a
AH5416(ah)->ah_rx_chainmask);
}
-#ifndef IS_5GHZ_FAST_CLOCK_EN
-#define IS_5GHZ_FAST_CLOCK_EN(ah, chan) AH_FALSE
-#endif
-
void
ar5416InitPLL(struct ath_hal *ah, const struct ieee80211_channel *chan)
{
Modified: projects/largeSMP/sys/dev/ath/ath_rate/sample/sample.c
==============================================================================
--- projects/largeSMP/sys/dev/ath/ath_rate/sample/sample.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/dev/ath/ath_rate/sample/sample.c Wed May 18 16:01:29 2011 (r222063)
@@ -161,9 +161,10 @@ dot11rate_label(const HAL_RATE_TABLE *rt
* or -1 if all the average_tx_times are 0.
*/
static __inline int
-pick_best_rate(struct sample_node *sn, const HAL_RATE_TABLE *rt,
+pick_best_rate(struct ath_node *an, const HAL_RATE_TABLE *rt,
int size_bin, int require_acked_before)
{
+ struct sample_node *sn = ATH_NODE_SAMPLE(an);
int best_rate_rix, best_rate_tt;
uint32_t mask;
int rix, tt;
@@ -174,6 +175,12 @@ pick_best_rate(struct sample_node *sn, c
if ((mask & 1) == 0) /* not a supported rate */
continue;
+ /* Don't pick a non-HT rate for a HT node */
+ if ((an->an_node.ni_flags & IEEE80211_NODE_HT) &&
+ (rt->info[rix].phy != IEEE80211_T_HT)) {
+ continue;
+ }
+
tt = sn->stats[size_bin][rix].average_tx_time;
if (tt <= 0 ||
(require_acked_before &&
@@ -196,11 +203,12 @@ pick_best_rate(struct sample_node *sn, c
* Pick a good "random" bit-rate to sample other than the current one.
*/
static __inline int
-pick_sample_rate(struct sample_softc *ssc , struct sample_node *sn,
+pick_sample_rate(struct sample_softc *ssc , struct ath_node *an,
const HAL_RATE_TABLE *rt, int size_bin)
{
#define DOT11RATE(ix) (rt->info[ix].dot11Rate & IEEE80211_RATE_VAL)
#define MCS(ix) (rt->info[ix].dot11Rate | IEEE80211_RATE_MCS)
+ struct sample_node *sn = ATH_NODE_SAMPLE(an);
int current_rix, rix;
unsigned current_tt;
uint32_t mask;
@@ -208,6 +216,7 @@ pick_sample_rate(struct sample_softc *ss
current_rix = sn->current_rix[size_bin];
if (current_rix < 0) {
/* no successes yet, send at the lowest bit-rate */
+ /* XXX should return MCS0 if HT */
return 0;
}
@@ -223,6 +232,13 @@ pick_sample_rate(struct sample_softc *ss
continue;
}
+ /* if the node is HT and the rate isn't HT, don't bother sample */
+ if ((an->an_node.ni_flags & IEEE80211_NODE_HT) &&
+ (rt->info[rix].phy != IEEE80211_T_HT)) {
+ mask &= ~(1<<rix);
+ goto nextrate;
+ }
+
/* this bit-rate is always worse than the current one */
if (sn->stats[size_bin][rix].perfect_tx_time > current_tt) {
mask &= ~(1<<rix);
@@ -236,10 +252,12 @@ pick_sample_rate(struct sample_softc *ss
goto nextrate;
}
- /* don't sample more than 2 rates higher for rates > 11M */
- if (DOT11RATE(rix) > 2*11 && rix > current_rix + 2) {
- mask &= ~(1<<rix);
- goto nextrate;
+ /* Don't sample more than 2 rates higher for rates > 11M for non-HT rates */
+ if (! (an->an_node.ni_flags & IEEE80211_NODE_HT)) {
+ if (DOT11RATE(rix) > 2*11 && rix > current_rix + 2) {
+ mask &= ~(1<<rix);
+ goto nextrate;
+ }
}
sn->last_sample_rix[size_bin] = rix;
@@ -327,7 +345,7 @@ ath_rate_findrate(struct ath_softc *sc,
/* XXX TODO: this doesn't know about 11gn vs 11g protection; teach it */
mrr = sc->sc_mrretry && !(ic->ic_flags & IEEE80211_F_USEPROT);
- best_rix = pick_best_rate(sn, rt, size_bin, !mrr);
+ best_rix = pick_best_rate(an, rt, size_bin, !mrr);
if (best_rix >= 0) {
average_tx_time = sn->stats[size_bin][best_rix].average_tx_time;
} else {
@@ -338,7 +356,7 @@ ath_rate_findrate(struct ath_softc *sc,
* rates to sample_rate% of the total transmission time.
*/
if (sn->sample_tt[size_bin] < average_tx_time * (sn->packets_since_sample[size_bin]*ssc->sample_rate/100)) {
- rix = pick_sample_rate(ssc, sn, rt, size_bin);
+ rix = pick_sample_rate(ssc, an, rt, size_bin);
IEEE80211_NOTE(an->an_node.ni_vap, IEEE80211_MSG_RATECTL,
&an->an_node, "size %u sample rate %d current rate %d",
bin_to_size(size_bin), RATE(rix),
Modified: projects/largeSMP/sys/dev/sound/usb/uaudio.c
==============================================================================
--- projects/largeSMP/sys/dev/sound/usb/uaudio.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/dev/sound/usb/uaudio.c Wed May 18 16:01:29 2011 (r222063)
@@ -539,9 +539,6 @@ uaudio_probe(device_t dev)
if (uaa->usb_mode != USB_MODE_HOST)
return (ENXIO);
- if (uaa->use_generic == 0)
- return (ENXIO);
-
/* lookup non-standard device */
if (uaa->info.bInterfaceClass != UICLASS_AUDIO) {
@@ -555,7 +552,7 @@ uaudio_probe(device_t dev)
if (usb_test_quirk(uaa, UQ_BAD_AUDIO))
return (ENXIO);
else
- return (0);
+ return (BUS_PROBE_GENERIC);
}
/* check for MIDI stream */
@@ -564,7 +561,7 @@ uaudio_probe(device_t dev)
if (usb_test_quirk(uaa, UQ_BAD_MIDI))
return (ENXIO);
else
- return (0);
+ return (BUS_PROBE_GENERIC);
}
return (ENXIO);
}
Modified: projects/largeSMP/sys/dev/usb/input/uhid.c
==============================================================================
--- projects/largeSMP/sys/dev/usb/input/uhid.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/dev/usb/input/uhid.c Wed May 18 16:01:29 2011 (r222063)
@@ -617,10 +617,6 @@ uhid_probe(device_t dev)
if (uaa->usb_mode != USB_MODE_HOST) {
return (ENXIO);
}
- if (uaa->use_generic == 0) {
- /* give Mouse and Keyboard drivers a try first */
- return (ENXIO);
- }
if (uaa->info.bInterfaceClass != UICLASS_HID) {
/* the Xbox 360 gamepad doesn't use the HID class */
Modified: projects/largeSMP/sys/dev/usb/input/ukbd.c
==============================================================================
--- projects/largeSMP/sys/dev/usb/input/ukbd.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/dev/usb/input/ukbd.c Wed May 18 16:01:29 2011 (r222063)
@@ -771,7 +771,7 @@ ukbd_probe(device_t dev)
if (usb_test_quirk(uaa, UQ_KBD_IGNORE))
return (ENXIO);
else
- return (BUS_PROBE_GENERIC);
+ return (BUS_PROBE_DEFAULT);
}
error = usbd_req_get_hid_desc(uaa->device, NULL,
@@ -793,7 +793,7 @@ ukbd_probe(device_t dev)
if (usb_test_quirk(uaa, UQ_KBD_IGNORE))
error = ENXIO;
else
- error = BUS_PROBE_GENERIC;
+ error = BUS_PROBE_DEFAULT;
} else
error = ENXIO;
Modified: projects/largeSMP/sys/dev/usb/input/ums.c
==============================================================================
--- projects/largeSMP/sys/dev/usb/input/ums.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/dev/usb/input/ums.c Wed May 18 16:01:29 2011 (r222063)
@@ -373,7 +373,7 @@ ums_probe(device_t dev)
if ((uaa->info.bInterfaceSubClass == UISUBCLASS_BOOT) &&
(uaa->info.bInterfaceProtocol == UIPROTO_MOUSE))
- return (BUS_PROBE_GENERIC);
+ return (BUS_PROBE_DEFAULT);
error = usbd_req_get_hid_desc(uaa->device, NULL,
&d_ptr, &d_len, M_TEMP, uaa->info.bIfaceIndex);
@@ -383,7 +383,7 @@ ums_probe(device_t dev)
if (hid_is_collection(d_ptr, d_len,
HID_USAGE2(HUP_GENERIC_DESKTOP, HUG_MOUSE)))
- error = BUS_PROBE_GENERIC;
+ error = BUS_PROBE_DEFAULT;
else
error = ENXIO;
Modified: projects/largeSMP/sys/dev/usb/storage/umass.c
==============================================================================
--- projects/largeSMP/sys/dev/usb/storage/umass.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/dev/usb/storage/umass.c Wed May 18 16:01:29 2011 (r222063)
@@ -782,6 +782,7 @@ umass_probe_proto(device_t dev, struct u
uint32_t proto = umass_get_proto(uaa->iface);
memset(&ret, 0, sizeof(ret));
+ ret.error = BUS_PROBE_GENERIC;
/* Search for protocol enforcement */
@@ -870,10 +871,6 @@ umass_probe(device_t dev)
if (uaa->usb_mode != USB_MODE_HOST) {
return (ENXIO);
}
- if (uaa->use_generic == 0) {
- /* give other drivers a try first */
- return (ENXIO);
- }
temp = umass_probe_proto(dev, uaa);
return (temp.error);
Modified: projects/largeSMP/sys/dev/usb/storage/ustorage_fs.c
==============================================================================
--- projects/largeSMP/sys/dev/usb/storage/ustorage_fs.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/dev/usb/storage/ustorage_fs.c Wed May 18 16:01:29 2011 (r222063)
@@ -334,10 +334,6 @@ ustorage_fs_probe(device_t dev)
if (uaa->usb_mode != USB_MODE_DEVICE) {
return (ENXIO);
}
- if (uaa->use_generic == 0) {
- /* give other drivers a try first */
- return (ENXIO);
- }
/* Check for a standards compliant device */
id = usbd_get_interface_descriptor(uaa->iface);
if ((id == NULL) ||
@@ -346,7 +342,7 @@ ustorage_fs_probe(device_t dev)
(id->bInterfaceProtocol != UIPROTO_MASS_BBB)) {
return (ENXIO);
}
- return (0);
+ return (BUS_PROBE_GENERIC);
}
static int
Modified: projects/largeSMP/sys/dev/usb/usb_device.c
==============================================================================
--- projects/largeSMP/sys/dev/usb/usb_device.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/dev/usb/usb_device.c Wed May 18 16:01:29 2011 (r222063)
@@ -1334,7 +1334,6 @@ usb_probe_and_attach(struct usb_device *
uaa.info.bIfaceIndex = i;
uaa.info.bIfaceNum =
iface->idesc->bInterfaceNumber;
- uaa.use_generic = 0;
uaa.driver_info = 0; /* reset driver_info */
DPRINTFN(2, "iclass=%u/%u/%u iindex=%u/%u\n",
@@ -1344,16 +1343,6 @@ usb_probe_and_attach(struct usb_device *
uaa.info.bIfaceIndex,
uaa.info.bIfaceNum);
- /* try specific interface drivers first */
-
- if (usb_probe_and_attach_sub(udev, &uaa)) {
- /* ignore */
- }
- /* try generic interface drivers last */
-
- uaa.use_generic = 1;
- uaa.driver_info = 0; /* reset driver_info */
-
if (usb_probe_and_attach_sub(udev, &uaa)) {
/* ignore */
}
Modified: projects/largeSMP/sys/dev/usb/usbdi.h
==============================================================================
--- projects/largeSMP/sys/dev/usb/usbdi.h Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/dev/usb/usbdi.h Wed May 18 16:01:29 2011 (r222063)
@@ -357,7 +357,6 @@ struct usb_attach_arg {
struct usb_interface *iface; /* current interface */
enum usb_hc_mode usb_mode; /* host or device mode */
uint8_t port;
- uint8_t use_generic; /* hint for generic drivers */
uint8_t dev_state;
#define UAA_DEV_READY 0
#define UAA_DEV_DISABLED 1
Modified: projects/largeSMP/sys/i386/i386/identcpu.c
==============================================================================
--- projects/largeSMP/sys/i386/i386/identcpu.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/i386/i386/identcpu.c Wed May 18 16:01:29 2011 (r222063)
@@ -693,6 +693,13 @@ printcpuinfo(void)
printf(" Stepping = %u", cpu_id & CPUID_STEPPING);
if (cpu_vendor_id == CPU_VENDOR_CYRIX)
printf("\n DIR=0x%04x", cyrix_did);
+ /*
+ * AMD CPUID Specification
+ * http://support.amd.com/us/Embedded_TechDocs/25481.pdf
+ *
+ * Intel Processor Identification and CPUID Instruction
+ * http://www.intel.com/assets/pdf/appnote/241618.pdf
+ */
if (cpu_high > 0) {
/*
@@ -754,38 +761,29 @@ printcpuinfo(void)
"\012SSSE3" /* SSSE3 */
"\013CNXT-ID" /* L1 context ID available */
"\014<b11>"
- "\015<b12>"
+ "\015FMA" /* Fused Multiply Add */
"\016CX16" /* CMPXCHG16B Instruction */
"\017xTPR" /* Send Task Priority Messages*/
"\020PDCM" /* Perf/Debug Capability MSR */
"\021<b16>"
- "\022PCID" /* Process-context Identifiers */
+ "\022PCID" /* Process-context Identifiers*/
"\023DCA" /* Direct Cache Access */
- "\024SSE4.1"
- "\025SSE4.2"
+ "\024SSE4.1" /* SSE 4.1 */
+ "\025SSE4.2" /* SSE 4.2 */
"\026x2APIC" /* xAPIC Extensions */
- "\027MOVBE"
- "\030POPCNT"
- "\031<b24>"
- "\032AESNI" /* AES Crypto*/
- "\033XSAVE"
- "\034OSXSAVE"
- "\035<b28>"
- "\036<b29>"
+ "\027MOVBE" /* MOVBE Instruction */
+ "\030POPCNT" /* POPCNT Instruction */
+ "\031TSCDLT" /* TSC-Deadline Timer */
+ "\032AESNI" /* AES Crypto */
+ "\033XSAVE" /* XSAVE/XRSTOR States */
+ "\034OSXSAVE" /* OS-Enabled State Management*/
+ "\035AVX" /* Advanced Vector Extensions */
+ "\036F16C" /* Half-precision conversions */
"\037<b30>"
"\040HV" /* Hypervisor */
);
}
- /*
- * AMD64 Architecture Programmer's Manual Volume 3:
- * General-Purpose and System Instructions
- * http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24594.pdf
- *
- * IA-32 Intel Architecture Software Developer's Manual,
- * Volume 2A: Instruction Set Reference, A-M
- * ftp://download.intel.com/design/Pentium4/manuals/25366617.pdf
- */
if (amd_feature != 0) {
printf("\n AMD Features=0x%b", amd_feature,
"\020" /* in hex */
@@ -838,18 +836,18 @@ printcpuinfo(void)
"\011Prefetch" /* 3DNow! Prefetch/PrefetchW */
"\012OSVW" /* OS visible workaround */
"\013IBS" /* Instruction based sampling */
- "\014SSE5" /* SSE5 */
+ "\014XOP" /* XOP extended instructions */
"\015SKINIT" /* SKINIT/STGI */
"\016WDT" /* Watchdog timer */
"\017<b14>"
- "\020<b15>"
- "\021<b16>"
+ "\020LWP" /* Lightweight Profiling */
+ "\021FMA4" /* 4-operand FMA instructions */
"\022<b17>"
"\023<b18>"
- "\024<b19>"
+ "\024NodeId" /* NodeId MSR support */
"\025<b20>"
- "\026<b21>"
- "\027<b22>"
+ "\026TBM" /* Trailing Bit Manipulation */
+ "\027Topology" /* Topology Extensions */
"\030<b23>"
"\031<b24>"
"\032<b25>"
Modified: projects/largeSMP/sys/i386/include/specialreg.h
==============================================================================
--- projects/largeSMP/sys/i386/include/specialreg.h Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/i386/include/specialreg.h Wed May 18 16:01:29 2011 (r222063)
@@ -120,6 +120,7 @@
#define CPUID2_TM2 0x00000100
#define CPUID2_SSSE3 0x00000200
#define CPUID2_CNXTID 0x00000400
+#define CPUID2_FMA 0x00001000
#define CPUID2_CX16 0x00002000
#define CPUID2_XTPR 0x00004000
#define CPUID2_PDCM 0x00008000
@@ -130,7 +131,12 @@
#define CPUID2_X2APIC 0x00200000
#define CPUID2_MOVBE 0x00400000
#define CPUID2_POPCNT 0x00800000
+#define CPUID2_TSCDLT 0x01000000
#define CPUID2_AESNI 0x02000000
+#define CPUID2_XSAVE 0x04000000
+#define CPUID2_OSXSAVE 0x08000000
+#define CPUID2_AVX 0x10000000
+#define CPUID2_F16C 0x20000000
#define CPUID2_HV 0x80000000
/*
@@ -167,9 +173,14 @@
#define AMDID2_PREFETCH 0x00000100
#define AMDID2_OSVW 0x00000200
#define AMDID2_IBS 0x00000400
-#define AMDID2_SSE5 0x00000800
+#define AMDID2_XOP 0x00000800
#define AMDID2_SKINIT 0x00001000
#define AMDID2_WDT 0x00002000
+#define AMDID2_LWP 0x00008000
+#define AMDID2_FMA4 0x00010000
+#define AMDID2_NODE_ID 0x00080000
+#define AMDID2_TBM 0x00200000
+#define AMDID2_TOPOLOGY 0x00400000
/*
* CPUID instruction 1 eax info
Modified: projects/largeSMP/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
==============================================================================
--- projects/largeSMP/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Wed May 18 15:50:12 2011 (r222062)
+++ projects/largeSMP/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Wed May 18 16:01:29 2011 (r222063)
@@ -409,6 +409,7 @@ static int
ubt_probe(device_t dev)
{
struct usb_attach_arg *uaa = device_get_ivars(dev);
+ int error;
if (uaa->usb_mode != USB_MODE_HOST)
return (ENXIO);
@@ -416,14 +417,14 @@ ubt_probe(device_t dev)
if (uaa->info.bIfaceIndex != 0)
return (ENXIO);
- if (uaa->use_generic == 0)
- return (ENXIO);
-
if (usbd_lookup_id_by_uaa(ubt_ignore_devs,
sizeof(ubt_ignore_devs), uaa) == 0)
return (ENXIO);
- return (usbd_lookup_id_by_uaa(ubt_devs, sizeof(ubt_devs), uaa));
+ error = usbd_lookup_id_by_uaa(ubt_devs, sizeof(ubt_devs), uaa);
+ if (error == 0)
+ return (BUS_PROBE_GENERIC);
+ return (error);
} /* ubt_probe */
/*
More information about the svn-src-projects
mailing list