From owner-svn-src-stable-8@FreeBSD.ORG Sun Dec 27 07:04:32 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 243D710656D3; Sun, 27 Dec 2009 07:04:28 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2E57E8FC18; Sun, 27 Dec 2009 07:04:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBR74SCU046646; Sun, 27 Dec 2009 07:04:28 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBR74SbD046645; Sun, 27 Dec 2009 07:04:28 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <200912270704.nBR74SbD046645@svn.freebsd.org> From: Xin LI Date: Sun, 27 Dec 2009 07:04:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201043 - stable/8/lib/libexpat X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2009 07:04:32 -0000 Author: delphij Date: Sun Dec 27 07:04:27 2009 New Revision: 201043 URL: http://svn.freebsd.org/changeset/base/201043 Log: Explicitly say that this is an internal library which is intended to be used within FreeBSD base system only, and discourage user applications from using it. User applications should use the expat version from the ports/package collection. Reviewed by: simon (earlier version) Modified: stable/8/lib/libexpat/libbsdxml.3 Directory Properties: stable/8/lib/libexpat/ (props changed) Modified: stable/8/lib/libexpat/libbsdxml.3 ============================================================================== --- stable/8/lib/libexpat/libbsdxml.3 Sun Dec 27 07:04:25 2009 (r201042) +++ stable/8/lib/libexpat/libbsdxml.3 Sun Dec 27 07:04:27 2009 (r201043) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\"/ -.Dd May 5, 2008 +.Dd December 12, 2009 .Dt LIBBSDXML 3 .Os .Sh NAME @@ -38,6 +38,15 @@ The .Nm library is a verbatim copy of the eXpat XML library version 2.0.1. .Pp +The +.Nm +library is intended to use within the +.Fx +base system only. +Use of the +.Nm +library for other purposes is not supported and discouraged. +.Pp To avoid version and autoconfiguration issues, the library has been renamed to .Nm From owner-svn-src-stable-8@FreeBSD.ORG Sun Dec 27 07:33:41 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0B2E9106568B; Sun, 27 Dec 2009 07:33:41 +0000 (UTC) (envelope-from kenyon@kenyonralph.com) Received: from cdptpa-omtalb.mail.rr.com (cdptpa-omtalb.mail.rr.com [75.180.132.121]) by mx1.freebsd.org (Postfix) with ESMTP id 760198FC08; Sun, 27 Dec 2009 07:33:40 +0000 (UTC) Received: from cdptpa-omtalb.mail.rr.com ([10.127.143.54]) by cdptpa-qmta02.mail.rr.com with ESMTP id <20091227071323116.XDQZ2481@cdptpa-qmta02.mail.rr.com>; Sun, 27 Dec 2009 07:13:23 +0000 X-Authority-Analysis: v=1.0 c=1 a=4S2tzv1kJ5kA:10 a=6I5d2MoRAAAA:8 a=I2jLl_5Kulu7_LPUEjUA:9 a=OKX_zwL3N50oqQTSC14A:7 a=hDOBwi9npzGwpljDnSPyVELmb_wA:4 a=SV7veod9ZcQA:10 a=U6VZNPcG5CBHOWKGJkIA:9 a=KF4F52MhW-bJUBp8sGDEFqnEEkwA:4 X-Cloudmark-Score: 0 X-Originating-IP: 76.176.200.148 Received: from [76.176.200.148] ([76.176.200.148:46988] helo=voodoo.kenyonralph.com) by cdptpa-oedge04.mail.rr.com (envelope-from ) (ecelerity 2.2.2.39 r()) with ESMTP id EE/2E-01550-4D8073B4; Sun, 27 Dec 2009 07:12:21 +0000 Received: from voodoo.kenyonralph.com (localhost [127.0.0.1]) by voodoo.kenyonralph.com (Postfix) with ESMTP id 3019C181BFE; Sat, 26 Dec 2009 23:12:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=kenyonralph.com; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=postfix; bh=zhq6d3RTelglValPAJStsBz qwpUj12pPBUpw4Oe4cDE=; b=acMXgdoQpUHWb9XcgqiGZkbCdeUR7JUuePAbJLO GiR6fgXHc9Y3Cmeb0IXa7VfXV8QbeYQ5h2eMqHNGXmT1Uf0oRkCRHeG6h4EMbYJo w5BQt059l7qu0HEMMsWP9dpHotXgpODDg33xVi7n5Jy+lQbnQcmWh/miXf/aSFGB 1SmY= Received: by voodoo.kenyonralph.com (Postfix, from userid 1000) id CF439181C1A; Sat, 26 Dec 2009 23:12:19 -0800 (PST) Date: Sat, 26 Dec 2009 23:12:19 -0800 From: Kenyon Ralph To: Xin LI Message-ID: <20091227071219.GA3847@kenyonralph.com> Mail-Followup-To: Xin LI , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org References: <200912270704.nBR74SbD046645@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="YZ5djTAD1cGYuMQK" Content-Disposition: inline In-Reply-To: <200912270704.nBR74SbD046645@svn.freebsd.org> X-Operating-System: Ubuntu 9.10 Linux 2.6.31-17-generic on i686 User-Agent: Mutt/1.5.20 (2009-06-14) Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-8@freebsd.org Subject: Re: svn commit: r201043 - stable/8/lib/libexpat X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2009 07:33:41 -0000 --YZ5djTAD1cGYuMQK Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable There is a grammar error in this commit, see below. On 2009-12-27T07:04:28+0000, Xin LI wrote: > Author: delphij > Date: Sun Dec 27 07:04:27 2009 > New Revision: 201043 > URL: http://svn.freebsd.org/changeset/base/201043 >=20 > Log: > Explicitly say that this is an internal library which is intended to be > used within FreeBSD base system only, and discourage user applications > from using it. User applications should use the expat version from the > ports/package collection. > =20 > Reviewed by: simon (earlier version) >=20 > Modified: > stable/8/lib/libexpat/libbsdxml.3 > Directory Properties: > stable/8/lib/libexpat/ (props changed) >=20 > Modified: stable/8/lib/libexpat/libbsdxml.3 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- stable/8/lib/libexpat/libbsdxml.3 Sun Dec 27 07:04:25 2009 (r201042) > +++ stable/8/lib/libexpat/libbsdxml.3 Sun Dec 27 07:04:27 2009 (r201043) > @@ -25,7 +25,7 @@ > .\" > .\" $FreeBSD$ > .\"/ > -.Dd May 5, 2008 > +.Dd December 12, 2009 > .Dt LIBBSDXML 3 > .Os > .Sh NAME > @@ -38,6 +38,15 @@ The > .Nm > library is a verbatim copy of the eXpat XML library version 2.0.1. > .Pp > +The > +.Nm > +library is intended to use within the Should be: "library is intended to be used within the" > +.Fx > +base system only. > +Use of the > +.Nm > +library for other purposes is not supported and discouraged. > +.Pp > To avoid version and autoconfiguration issues, the library has been > renamed to > .Nm --=20 Kenyon Ralph --YZ5djTAD1cGYuMQK Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iQIcBAEBCgAGBQJLNwjRAAoJEJj/PvnJuRLVjFwP/iHVaLSRFjI33Ak/KrBc41ob MtVC24ox8SGQlmtxCPAECPj61nIXD37Jvn8B+Tu4QYFWDST9VcwB0j15zpF5AGep t+enwCvJcv6TsPiy6I07htW9EnULOi6oJj6zaaI9en8njQ4YWVG2cuIseae63VEG gfHcRY/c3AiL2+vV22EaaJt3XyH51FOU9xf5xsbv/CZRMnpExjdHSCFE5Z3oGoSo nX7jzJvfBoeYAQZyfquS+6IeZvbBj+HO+M6HIrVZeGVbw3/OymTyS2neTKXBRghR 6ADFVdhKwyjXIhmz+2ZRn1/k53/a0ENopf3oTgoNquo6AScA2SuuRuzivA7qTho7 W2+Y5HGutk3jGXs8GGmjySSCkhMsB9vzFmBrLjuCIJTcEveWhKyF0vVFeZAamsh+ PUjJIcMgigVv5O9RAIkw82wx6Inc0vxcGS3T+T/9DLuLI9/bsGDpBm6I0ntISx1R xbbbs1iqA658JfImXGfCSo7uL3nJOeNl5fHp9aG2Gw+P863HMDmEkTBzRUUulXBi whsYkPY53Nh2tdzB5gj1iM8aSb4uCGubd1dU5ydoRaGSbo+FnrilfiddcS/KZsia FbS0U2c9TdFRIZoGNKJoUeLlfqWQdCTStxBZ2yDY2LaXJelomRKGwMVrJWRSuntK OSe4zofFntcGfzByIiiM =PnU2 -----END PGP SIGNATURE----- --YZ5djTAD1cGYuMQK-- From owner-svn-src-stable-8@FreeBSD.ORG Sun Dec 27 10:13:32 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 326FC1065670; Sun, 27 Dec 2009 10:13:32 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 214BA8FC20; Sun, 27 Dec 2009 10:13:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBRADWG9052090; Sun, 27 Dec 2009 10:13:32 GMT (envelope-from luigi@svn.freebsd.org) Received: (from luigi@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBRADWtg052088; Sun, 27 Dec 2009 10:13:32 GMT (envelope-from luigi@svn.freebsd.org) Message-Id: <200912271013.nBRADWtg052088@svn.freebsd.org> From: Luigi Rizzo Date: Sun, 27 Dec 2009 10:13:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201045 - stable/8/release/picobsd/bridge X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2009 10:13:32 -0000 Author: luigi Date: Sun Dec 27 10:13:31 2009 New Revision: 201045 URL: http://svn.freebsd.org/changeset/base/201045 Log: explicitly define HZ for picosd images Modified: stable/8/release/picobsd/bridge/PICOBSD Modified: stable/8/release/picobsd/bridge/PICOBSD ============================================================================== --- stable/8/release/picobsd/bridge/PICOBSD Sun Dec 27 10:10:38 2009 (r201044) +++ stable/8/release/picobsd/bridge/PICOBSD Sun Dec 27 10:13:31 2009 (r201045) @@ -46,7 +46,9 @@ options IPDIVERT # divert (for natd) # Support for bridging and bandwidth limiting options DUMMYNET device if_bridge -#options HZ=1000 +# Running with less than 1000 seems to give poor timing on +# qemu, so we set HZ explicitly. +options HZ=1000 device random # used by ssh device pci From owner-svn-src-stable-8@FreeBSD.ORG Sun Dec 27 20:39:59 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1C277106568B; Sun, 27 Dec 2009 20:39:59 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 088D58FC17; Sun, 27 Dec 2009 20:39:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBRKdxfx066810; Sun, 27 Dec 2009 20:39:59 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBRKdwA7066799; Sun, 27 Dec 2009 20:39:58 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <200912272039.nBRKdwA7066799@svn.freebsd.org> From: Konstantin Belousov Date: Sun, 27 Dec 2009 20:39:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201058 - in stable/8: contrib/gcc/config lib/csu/amd64 lib/csu/arm lib/csu/i386-elf lib/csu/ia64 lib/csu/mips lib/csu/powerpc lib/csu/sparc64 X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2009 20:39:59 -0000 Author: kib Date: Sun Dec 27 20:39:58 2009 New Revision: 201058 URL: http://svn.freebsd.org/changeset/base/201058 Log: MFC r200038: Properly support -fPIE by linking PIE binaries with specially-built Scrt1.o instead of crt1.o, since the later is built as non-PIC. Separate i386-elf crt1.c into the pure assembler part and C code, supplying all data extracted by assembler stub as explicit parameters. Hide and localize _start1 symbol used as an interface between asm and C code. Added: stable/8/lib/csu/i386-elf/crt1_c.c - copied unchanged from r200038, head/lib/csu/i386-elf/crt1_c.c stable/8/lib/csu/i386-elf/crt1_s.S - copied unchanged from r200038, head/lib/csu/i386-elf/crt1_s.S Deleted: stable/8/lib/csu/i386-elf/crt1.c Modified: stable/8/contrib/gcc/config/freebsd-spec.h stable/8/lib/csu/amd64/Makefile stable/8/lib/csu/arm/Makefile stable/8/lib/csu/i386-elf/Makefile stable/8/lib/csu/ia64/Makefile stable/8/lib/csu/mips/Makefile stable/8/lib/csu/powerpc/Makefile stable/8/lib/csu/sparc64/Makefile Directory Properties: stable/8/contrib/gcc/ (props changed) stable/8/lib/csu/ (props changed) Modified: stable/8/contrib/gcc/config/freebsd-spec.h ============================================================================== --- stable/8/contrib/gcc/config/freebsd-spec.h Sun Dec 27 19:17:03 2009 (r201057) +++ stable/8/contrib/gcc/config/freebsd-spec.h Sun Dec 27 20:39:58 2009 (r201058) @@ -103,9 +103,10 @@ Boston, MA 02110-1301, USA. */ %{p:gcrt1.o%s} \ %{!p: \ %{profile:gcrt1.o%s} \ - %{!profile:crt1.o%s}}}} \ + %{!profile: \ + %{pie: Scrt1.o%s;:crt1.o%s}}}}} \ crti.o%s \ - %{static:crtbeginT.o%s;shared:crtbeginS.o%s;:crtbegin.o%s}" + %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}" /* Provide an ENDFILE_SPEC appropriate for FreeBSD/i386. Here we tack on our own magical crtend.o file (see crtstuff.c) which provides part of @@ -113,8 +114,7 @@ Boston, MA 02110-1301, USA. */ entering `main', followed by the normal "finalizer" file, `crtn.o'. */ #define FBSD_ENDFILE_SPEC "\ - %{!shared:crtend.o%s} \ - %{shared:crtendS.o%s} \ + %{shared|pie:crtendS.o%s;:crtend.o%s} \ crtn.o%s " /* Provide a LIB_SPEC appropriate for FreeBSD as configured and as Modified: stable/8/lib/csu/amd64/Makefile ============================================================================== --- stable/8/lib/csu/amd64/Makefile Sun Dec 27 19:17:03 2009 (r201057) +++ stable/8/lib/csu/amd64/Makefile Sun Dec 27 20:39:58 2009 (r201058) @@ -4,7 +4,7 @@ SRCS= crt1.c crti.S crtn.S OBJS= ${SRCS:N*.h:R:S/$/.o/g} -OBJS+= gcrt1.o +OBJS+= Scrt1.o gcrt1.o CFLAGS+= -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include CFLAGS+= -fno-omit-frame-pointer @@ -16,6 +16,9 @@ CLEANFILES= ${OBJS} gcrt1.o: crt1.c ${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.CURDIR}/crt1.c +Scrt1.o: crt1.c + ${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1.o ${.CURDIR}/crt1.c + realinstall: ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${OBJS} ${DESTDIR}${LIBDIR} Modified: stable/8/lib/csu/arm/Makefile ============================================================================== --- stable/8/lib/csu/arm/Makefile Sun Dec 27 19:17:03 2009 (r201057) +++ stable/8/lib/csu/arm/Makefile Sun Dec 27 20:39:58 2009 (r201058) @@ -4,7 +4,7 @@ SRCS= crt1.c crti.S crtn.S OBJS= ${SRCS:N*.h:R:S/$/.o/g} -OBJS+= gcrt1.o +OBJS+= Scrt1.o gcrt1.o CFLAGS+= -Wall -Wno-unused \ -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include @@ -16,6 +16,9 @@ CLEANFILES= ${OBJS} gcrt1.o: crt1.c ${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.ALLSRC} +Scrt1.o: crt1.c + ${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1.o ${.ALLSRC} + realinstall: ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${OBJS} ${DESTDIR}${LIBDIR} Modified: stable/8/lib/csu/i386-elf/Makefile ============================================================================== --- stable/8/lib/csu/i386-elf/Makefile Sun Dec 27 19:17:03 2009 (r201057) +++ stable/8/lib/csu/i386-elf/Makefile Sun Dec 27 20:39:58 2009 (r201058) @@ -2,8 +2,8 @@ .PATH: ${.CURDIR}/../common -SRCS= crt1.c crti.S crtn.S -FILES= ${SRCS:N*.h:R:S/$/.o/g} gcrt1.o +SRCS= crti.S crtn.S +FILES= ${SRCS:N*.h:R:S/$/.o/g} gcrt1.o crt1.o Scrt1.o FILESOWN= ${LIBOWN} FILESGRP= ${LIBGRP} FILESMODE= ${LIBMODE} @@ -11,9 +11,23 @@ FILESDIR= ${LIBDIR} WARNS?= 6 CFLAGS+= -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include -CLEANFILES= ${FILES} +CLEANFILES= ${FILES} crt1_c.o crt1_s.o gcrt1_c.o Scrt1_c.o -gcrt1.o: crt1.c - ${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.CURDIR}/crt1.c +gcrt1_c.o: crt1_c.c + ${CC} ${CFLAGS} -DGCRT -c -o gcrt1_c.o ${.CURDIR}/crt1_c.c + +gcrt1.o: gcrt1_c.o crt1_s.o + ${LD} ${LDFLAGS} -o gcrt1.o -r crt1_s.o gcrt1_c.o + +crt1.o: crt1_c.o crt1_s.o + ${LD} ${LDFLAGS} -o crt1.o -r crt1_s.o crt1_c.o + objcopy --localize-symbol _start1 crt1.o + +Scrt1_c.o: crt1_c.c + ${CC} ${CFLAGS} -DGCRT -fPIC -DPIC -c -o Scrt1_c.o ${.CURDIR}/crt1_c.c + +Scrt1.o: Scrt1_c.o crt1_s.o + ${LD} ${LDFLAGS} -o Scrt1.o -r crt1_s.o Scrt1_c.o + objcopy --localize-symbol _start1 Scrt1.o .include Copied: stable/8/lib/csu/i386-elf/crt1_c.c (from r200038, head/lib/csu/i386-elf/crt1_c.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/lib/csu/i386-elf/crt1_c.c Sun Dec 27 20:39:58 2009 (r201058, copy of r200038, head/lib/csu/i386-elf/crt1_c.c) @@ -0,0 +1,95 @@ +/* LINTLIBRARY */ +/*- + * Copyright 1996-1998 John D. Polstra. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef lint +#ifndef __GNUC__ +#error "GCC is needed to compile this file" +#endif +#endif /* lint */ + +#include + +#include "libc_private.h" +#include "crtbrand.c" + +extern int _DYNAMIC; +#pragma weak _DYNAMIC + +typedef void (*fptr)(void); + +extern void _fini(void); +extern void _init(void); +extern int main(int, char **, char **); +extern void _start(char *, ...); + +#ifdef GCRT +extern void _mcleanup(void); +extern void monstartup(void *, void *); +extern int eprol; +extern int etext; +#endif + +char **environ; +const char *__progname = ""; + +void _start1(fptr, int, char *[]) __dead2; + +/* The entry function, C part. */ +void +_start1(fptr cleanup, int argc, char *argv[]) +{ + char **env; + const char *s; + + env = argv + argc + 1; + environ = env; + if (argc > 0 && argv[0] != NULL) { + __progname = argv[0]; + for (s = __progname; *s != '\0'; s++) + if (*s == '/') + __progname = s + 1; + } + + if (&_DYNAMIC != NULL) + atexit(cleanup); + else + _init_tls(); + +#ifdef GCRT + atexit(_mcleanup); +#endif + atexit(_fini); +#ifdef GCRT + monstartup(&eprol, &etext); +__asm__("eprol:"); +#endif + _init(); + exit( main(argc, argv, env) ); +} + +__asm(".hidden _start1"); Copied: stable/8/lib/csu/i386-elf/crt1_s.S (from r200038, head/lib/csu/i386-elf/crt1_s.S) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/lib/csu/i386-elf/crt1_s.S Sun Dec 27 20:39:58 2009 (r201058, copy of r200038, head/lib/csu/i386-elf/crt1_s.S) @@ -0,0 +1,44 @@ +/*- + * Copyright 2009 Konstantin Belousov. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * $FreeBSD$ + */ + + + .text + .align 4 + .globl _start + .type _start, @function +_start: xorl %ebp,%ebp + pushl %ebp + movl %esp,%ebp + andl $0xfffffff0,%esp # align stack + leal 8(%ebp),%eax + pushl %eax # argv + pushl 4(%ebp) # argc + pushl %edx # rtld cleanup + call _start1 + .size _start, . - _start + + .ident "$FreeBSD$" Modified: stable/8/lib/csu/ia64/Makefile ============================================================================== --- stable/8/lib/csu/ia64/Makefile Sun Dec 27 19:17:03 2009 (r201057) +++ stable/8/lib/csu/ia64/Makefile Sun Dec 27 20:39:58 2009 (r201058) @@ -4,7 +4,7 @@ SRCS= crt1.S crti.S crtn.S OBJS= ${SRCS:N*.h:R:S/$/.o/g} -OBJS+= gcrt1.o +OBJS+= Scrt1.o gcrt1.o CFLAGS+= -Wall -Wno-unused \ -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include @@ -16,6 +16,9 @@ CLEANFILES= ${OBJS} gcrt1.o: crt1.S ${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.ALLSRC} +Scrt1.o: crt1.S + ${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1.o ${.ALLSRC} + realinstall: ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${OBJS} ${DESTDIR}${LIBDIR} Modified: stable/8/lib/csu/mips/Makefile ============================================================================== --- stable/8/lib/csu/mips/Makefile Sun Dec 27 19:17:03 2009 (r201057) +++ stable/8/lib/csu/mips/Makefile Sun Dec 27 20:39:58 2009 (r201058) @@ -4,7 +4,7 @@ SRCS= crt1.c crti.S crtn.S OBJS= ${SRCS:N*.h:R:S/$/.o/g} -OBJS+= gcrt1.o +OBJS+= Scrt1.o gcrt1.o CFLAGS+= -Wall -Wno-unused \ -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include @@ -16,6 +16,9 @@ CLEANFILES= ${OBJS} gcrt1.o: crt1.c ${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.ALLSRC} +Scrt1.o: crt1.c + ${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1.o ${.ALLSRC} + realinstall: ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${OBJS} ${DESTDIR}${LIBDIR} Modified: stable/8/lib/csu/powerpc/Makefile ============================================================================== --- stable/8/lib/csu/powerpc/Makefile Sun Dec 27 19:17:03 2009 (r201057) +++ stable/8/lib/csu/powerpc/Makefile Sun Dec 27 20:39:58 2009 (r201058) @@ -4,7 +4,7 @@ SRCS= crt1.c crti.S crtn.S OBJS= ${SRCS:N*.h:R:S/$/.o/g} -OBJS+= gcrt1.o +OBJS+= Scrt1.o gcrt1.o CFLAGS+= -Wall -Wno-unused \ -I${.CURDIR}/../common \ -I${.CURDIR}/../../libc/include @@ -16,6 +16,9 @@ CLEANFILES= ${OBJS} gcrt1.o: crt1.c ${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.ALLSRC} +Scrt1.o: crt1.c + ${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1.o ${.ALLSRC} + realinstall: ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${OBJS} ${DESTDIR}${LIBDIR} Modified: stable/8/lib/csu/sparc64/Makefile ============================================================================== --- stable/8/lib/csu/sparc64/Makefile Sun Dec 27 19:17:03 2009 (r201057) +++ stable/8/lib/csu/sparc64/Makefile Sun Dec 27 20:39:58 2009 (r201058) @@ -4,7 +4,7 @@ SRCS= crt1.c crti.S crtn.S OBJS= ${SRCS:N*.h:R:S/$/.o/g} -OBJS+= gcrt1.o +OBJS+= Scrt1.o gcrt1.o CFLAGS+= -I${.CURDIR}/../common -I${.CURDIR}/../../libc/include all: ${OBJS} @@ -14,6 +14,9 @@ CLEANFILES= ${OBJS} gcrt1.o: crt1.c ${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.ALLSRC} +Scrt1.o: crt1.c + ${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1.o ${.ALLSRC} + realinstall: ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${OBJS} ${DESTDIR}${LIBDIR} From owner-svn-src-stable-8@FreeBSD.ORG Sun Dec 27 22:49:34 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 693571065672; Sun, 27 Dec 2009 22:49:34 +0000 (UTC) (envelope-from mjacob@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 58CE88FC19; Sun, 27 Dec 2009 22:49:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBRMnYRe069961; Sun, 27 Dec 2009 22:49:34 GMT (envelope-from mjacob@svn.freebsd.org) Received: (from mjacob@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBRMnYAf069958; Sun, 27 Dec 2009 22:49:34 GMT (envelope-from mjacob@svn.freebsd.org) Message-Id: <200912272249.nBRMnYAf069958@svn.freebsd.org> From: Matt Jacob Date: Sun, 27 Dec 2009 22:49:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201067 - in stable/8/sys: dev/ips kern X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2009 22:49:34 -0000 Author: mjacob Date: Sun Dec 27 22:49:34 2009 New Revision: 201067 URL: http://svn.freebsd.org/changeset/base/201067 Log: MFC 200620,200621: fix argument order to mtx_init call. Modified: stable/8/sys/dev/ips/ips_pci.c stable/8/sys/kern/uipc_syscalls.c Modified: stable/8/sys/dev/ips/ips_pci.c ============================================================================== --- stable/8/sys/dev/ips/ips_pci.c Sun Dec 27 22:42:47 2009 (r201066) +++ stable/8/sys/dev/ips/ips_pci.c Sun Dec 27 22:49:34 2009 (r201067) @@ -154,7 +154,7 @@ static int ips_pci_attach(device_t dev) } sc->ips_ich.ich_func = ips_intrhook; sc->ips_ich.ich_arg = sc; - mtx_init(&sc->queue_mtx, "IPS bioqueue lock", MTX_DEF, 0); + mtx_init(&sc->queue_mtx, "IPS bioqueue lock", NULL, MTX_DEF); sema_init(&sc->cmd_sema, 0, "IPS Command Semaphore"); bioq_init(&sc->queue); if (config_intrhook_establish(&sc->ips_ich) != 0) { Modified: stable/8/sys/kern/uipc_syscalls.c ============================================================================== --- stable/8/sys/kern/uipc_syscalls.c Sun Dec 27 22:42:47 2009 (r201066) +++ stable/8/sys/kern/uipc_syscalls.c Sun Dec 27 22:49:34 2009 (r201067) @@ -1886,7 +1886,7 @@ kern_sendfile(struct thread *td, struct if (uap->flags & SF_SYNC) { sfs = malloc(sizeof *sfs, M_TEMP, M_WAITOK); memset(sfs, 0, sizeof *sfs); - mtx_init(&sfs->mtx, "sendfile", MTX_DEF, 0); + mtx_init(&sfs->mtx, "sendfile", NULL, MTX_DEF); cv_init(&sfs->cv, "sendfile"); } From owner-svn-src-stable-8@FreeBSD.ORG Sun Dec 27 22:50:26 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4E3EE106568D; Sun, 27 Dec 2009 22:50:26 +0000 (UTC) (envelope-from mjacob@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3EA498FC1D; Sun, 27 Dec 2009 22:50:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBRMoQdE070027; Sun, 27 Dec 2009 22:50:26 GMT (envelope-from mjacob@svn.freebsd.org) Received: (from mjacob@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBRMoQgs070025; Sun, 27 Dec 2009 22:50:26 GMT (envelope-from mjacob@svn.freebsd.org) Message-Id: <200912272250.nBRMoQgs070025@svn.freebsd.org> From: Matt Jacob Date: Sun, 27 Dec 2009 22:50:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201068 - stable/8/sys/dev/ips X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Dec 2009 22:50:26 -0000 Author: mjacob Date: Sun Dec 27 22:50:25 2009 New Revision: 201068 URL: http://svn.freebsd.org/changeset/base/201068 Log: MFC of 198329: Check pointer for NULL before dereferencing it, not after. Modified: stable/8/sys/dev/ips/ips_disk.c Modified: stable/8/sys/dev/ips/ips_disk.c ============================================================================== --- stable/8/sys/dev/ips/ips_disk.c Sun Dec 27 22:49:34 2009 (r201067) +++ stable/8/sys/dev/ips/ips_disk.c Sun Dec 27 22:50:25 2009 (r201068) @@ -192,10 +192,10 @@ ipsd_dump(void *arg, void *virtual, vm_o dp = arg; dsc = dp->d_drv1; - sc = dsc->sc; if (dsc == NULL) return (EINVAL); + sc = dsc->sc; if (ips_get_free_cmd(sc, &command, 0) != 0) { printf("ipsd: failed to get cmd for dump\n"); From owner-svn-src-stable-8@FreeBSD.ORG Mon Dec 28 14:39:21 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9BAD71065692; Mon, 28 Dec 2009 14:39:21 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 892048FC1A; Mon, 28 Dec 2009 14:39:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBSEdLVN092956; Mon, 28 Dec 2009 14:39:21 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBSEdL9D092951; Mon, 28 Dec 2009 14:39:21 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <200912281439.nBSEdL9D092951@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Mon, 28 Dec 2009 14:39:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201127 - stable/8/sys/nfsclient X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2009 14:39:21 -0000 Author: bz Date: Mon Dec 28 14:39:21 2009 New Revision: 201127 URL: http://svn.freebsd.org/changeset/base/201127 Log: MFC r200471, r201044: Add a few more V_hacks to nfsclient to allow machines with a VIMAGE kernel to boot from NFS. [1] Note: this is not a full virtualization of nfsclient. It is only does what advertised above and nothing more. Modified: stable/8/sys/nfsclient/bootp_subr.c stable/8/sys/nfsclient/krpc_subr.c stable/8/sys/nfsclient/nfs_vfsops.c stable/8/sys/nfsclient/nfs_vnops.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/nfsclient/bootp_subr.c ============================================================================== --- stable/8/sys/nfsclient/bootp_subr.c Mon Dec 28 14:16:40 2009 (r201126) +++ stable/8/sys/nfsclient/bootp_subr.c Mon Dec 28 14:39:21 2009 (r201127) @@ -584,6 +584,8 @@ bootpc_call(struct bootpc_globalcontext int retry; const char *s; + CURVNET_SET(TD_TO_VNET(td)); + /* * Create socket and set its recieve timeout. */ @@ -960,6 +962,7 @@ gotreply: out: soclose(so); out0: + CURVNET_RESTORE(); return error; } @@ -974,6 +977,8 @@ bootpc_fakeup_interface(struct bootpc_if struct ifaddr *ifa; struct sockaddr_dl *sdl; + CURVNET_SET(TD_TO_VNET(td)); + error = socreate(AF_INET, &ifctx->so, SOCK_DGRAM, 0, td->td_ucred, td); if (error != 0) panic("nfs_boot: socreate, error=%d", error); @@ -1048,6 +1053,8 @@ bootpc_fakeup_interface(struct bootpc_if ifctx->ireq.ifr_name); ifctx->sdl = sdl; + CURVNET_RESTORE(); + return error; } Modified: stable/8/sys/nfsclient/krpc_subr.c ============================================================================== --- stable/8/sys/nfsclient/krpc_subr.c Mon Dec 28 14:16:40 2009 (r201126) +++ stable/8/sys/nfsclient/krpc_subr.c Mon Dec 28 14:39:21 2009 (r201127) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -55,6 +56,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include + #include #include @@ -213,6 +216,8 @@ krpc_call(struct sockaddr_in *sa, u_int nam = mhead = NULL; from = NULL; + CURVNET_SET(TD_TO_VNET(td)); + /* * Create socket and set its recieve timeout. */ @@ -425,6 +430,7 @@ krpc_call(struct sockaddr_in *sa, u_int if (mhead) m_freem(mhead); if (from) free(from, M_SONAME); soclose(so); + CURVNET_RESTORE(); return error; } Modified: stable/8/sys/nfsclient/nfs_vfsops.c ============================================================================== --- stable/8/sys/nfsclient/nfs_vfsops.c Mon Dec 28 14:16:40 2009 (r201126) +++ stable/8/sys/nfsclient/nfs_vfsops.c Mon Dec 28 14:39:21 2009 (r201127) @@ -64,6 +64,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include + #include #include @@ -825,6 +827,8 @@ nfs_mount(struct mount *mp) has_fh_opt = 0; has_hostname_opt = 0; + CURVNET_SET(CRED_TO_VNET(curthread->td_ucred)); + if (vfs_filteropt(mp->mnt_optnew, nfs_opts)) { error = EINVAL; goto out; @@ -1124,6 +1128,7 @@ out: mp->mnt_kern_flag |= (MNTK_MPSAFE|MNTK_LOOKUP_SHARED); MNT_IUNLOCK(mp); } + CURVNET_RESTORE(); return (error); } Modified: stable/8/sys/nfsclient/nfs_vnops.c ============================================================================== --- stable/8/sys/nfsclient/nfs_vnops.c Mon Dec 28 14:16:40 2009 (r201126) +++ stable/8/sys/nfsclient/nfs_vnops.c Mon Dec 28 14:39:21 2009 (r201127) @@ -1555,14 +1555,21 @@ nfs_create(struct vop_create_args *ap) struct vattr vattr; int v3 = NFS_ISV3(dvp); + CURVNET_SET(CRED_TO_VNET(curthread->td_ucred)); + /* * Oops, not for me.. */ - if (vap->va_type == VSOCK) - return (nfs_mknodrpc(dvp, ap->a_vpp, cnp, vap)); + if (vap->va_type == VSOCK) { + error = nfs_mknodrpc(dvp, ap->a_vpp, cnp, vap); + CURVNET_RESTORE(); + return (error); + } - if ((error = VOP_GETATTR(dvp, &vattr, cnp->cn_cred)) != 0) + if ((error = VOP_GETATTR(dvp, &vattr, cnp->cn_cred)) != 0) { + CURVNET_RESTORE(); return (error); + } if (vap->va_vaflags & VA_EXCLUSIVE) fmode |= O_EXCL; again: @@ -1658,6 +1665,7 @@ nfsmout: KDTRACE_NFS_ATTRCACHE_FLUSH_DONE(dvp); } mtx_unlock(&(VTONFS(dvp))->n_mtx); + CURVNET_RESTORE(); return (error); } From owner-svn-src-stable-8@FreeBSD.ORG Mon Dec 28 14:40:58 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E57241065693; Mon, 28 Dec 2009 14:40:58 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D28EF8FC14; Mon, 28 Dec 2009 14:40:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBSEewtx093046; Mon, 28 Dec 2009 14:40:58 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBSEew1V093040; Mon, 28 Dec 2009 14:40:58 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <200912281440.nBSEew1V093040@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Mon, 28 Dec 2009 14:40:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201128 - in stable/8/sys: kern net netinet netinet6 sys X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2009 14:40:59 -0000 Author: bz Date: Mon Dec 28 14:40:58 2009 New Revision: 201128 URL: http://svn.freebsd.org/changeset/base/201128 Log: MFC r200473: Throughout the network stack we have a few places of if (jailed(cred)) left. If you are running with a vnet (virtual network stack) those will return true and defer you to classic IP-jails handling and thus things will be "denied" or returned with an error. Work around this problem by introducing another "jailed()" function, jailed_without_vnet(), that also takes vnets into account, and permits the calls, should the jail from the given cred have its own virtual network stack. We cannot change the classic jailed() call to do that, as it is used outside the network stack as well. Discussed with: julian, zec, jamie, rwatson (back in Sept) Modified: stable/8/sys/kern/kern_jail.c stable/8/sys/net/rtsock.c stable/8/sys/netinet/raw_ip.c stable/8/sys/netinet6/raw_ip6.c stable/8/sys/sys/jail.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/kern/kern_jail.c ============================================================================== --- stable/8/sys/kern/kern_jail.c Mon Dec 28 14:39:21 2009 (r201127) +++ stable/8/sys/kern/kern_jail.c Mon Dec 28 14:40:58 2009 (r201128) @@ -3161,7 +3161,7 @@ prison_check_af(struct ucred *cred, int pr = cred->cr_prison; #ifdef VIMAGE /* Prisons with their own network stack are not limited. */ - if (pr->pr_flags & PR_VNET) + if (prison_owns_vnet(cred)) return (0); #endif @@ -3222,6 +3222,11 @@ prison_if(struct ucred *cred, struct soc KASSERT(cred != NULL, ("%s: cred is NULL", __func__)); KASSERT(sa != NULL, ("%s: sa is NULL", __func__)); +#ifdef VIMAGE + if (prison_owns_vnet(cred)) + return (0); +#endif + error = 0; switch (sa->sa_family) { @@ -3279,6 +3284,24 @@ jailed(struct ucred *cred) } /* + * Return 1 if the passed credential is in a jail and that jail does not + * have its own virtual network stack, otherwise 0. + */ +int +jailed_without_vnet(struct ucred *cred) +{ + + if (!jailed(cred)) + return (0); +#ifdef VIMAGE + if (prison_owns_vnet(cred)) + return (0); +#endif + + return (1); +} + +/* * Return the correct hostname (domainname, et al) for the passed credential. */ void Modified: stable/8/sys/net/rtsock.c ============================================================================== --- stable/8/sys/net/rtsock.c Mon Dec 28 14:39:21 2009 (r201127) +++ stable/8/sys/net/rtsock.c Mon Dec 28 14:40:58 2009 (r201128) @@ -651,7 +651,7 @@ route_output(struct mbuf *m, struct sock report: RT_LOCK_ASSERT(rt); if ((rt->rt_flags & RTF_HOST) == 0 - ? jailed(curthread->td_ucred) + ? jailed_without_vnet(curthread->td_ucred) : prison_if(curthread->td_ucred, rt_key(rt)) != 0) { RT_UNLOCK(rt); @@ -1312,7 +1312,7 @@ sysctl_dumpentry(struct radix_node *rn, if (w->w_op == NET_RT_FLAGS && !(rt->rt_flags & w->w_arg)) return 0; if ((rt->rt_flags & RTF_HOST) == 0 - ? jailed(w->w_req->td->td_ucred) + ? jailed_without_vnet(w->w_req->td->td_ucred) : prison_if(w->w_req->td->td_ucred, rt_key(rt)) != 0) return (0); bzero((caddr_t)&info, sizeof(info)); Modified: stable/8/sys/netinet/raw_ip.c ============================================================================== --- stable/8/sys/netinet/raw_ip.c Mon Dec 28 14:39:21 2009 (r201127) +++ stable/8/sys/netinet/raw_ip.c Mon Dec 28 14:40:58 2009 (r201128) @@ -291,7 +291,7 @@ rip_input(struct mbuf *m, int off) continue; if (inp->inp_faddr.s_addr != ip->ip_src.s_addr) continue; - if (jailed(inp->inp_cred)) { + if (jailed_without_vnet(inp->inp_cred)) { /* * XXX: If faddr was bound to multicast group, * jailed raw socket will drop datagram. @@ -325,7 +325,7 @@ rip_input(struct mbuf *m, int off) if (!in_nullhost(inp->inp_faddr) && !in_hosteq(inp->inp_faddr, ip->ip_src)) continue; - if (jailed(inp->inp_cred)) { + if (jailed_without_vnet(inp->inp_cred)) { /* * Allow raw socket in jail to receive multicast; * assume process had PRIV_NETINET_RAW at attach, Modified: stable/8/sys/netinet6/raw_ip6.c ============================================================================== --- stable/8/sys/netinet6/raw_ip6.c Mon Dec 28 14:39:21 2009 (r201127) +++ stable/8/sys/netinet6/raw_ip6.c Mon Dec 28 14:40:58 2009 (r201128) @@ -184,7 +184,7 @@ rip6_input(struct mbuf **mp, int *offp, if (!IN6_IS_ADDR_UNSPECIFIED(&in6p->in6p_faddr) && !IN6_ARE_ADDR_EQUAL(&in6p->in6p_faddr, &ip6->ip6_src)) continue; - if (jailed(in6p->inp_cred)) { + if (jailed_without_vnet(in6p->inp_cred)) { /* * Allow raw socket in jail to receive multicast; * assume process had PRIV_NETINET_RAW at attach, Modified: stable/8/sys/sys/jail.h ============================================================================== --- stable/8/sys/sys/jail.h Mon Dec 28 14:39:21 2009 (r201127) +++ stable/8/sys/sys/jail.h Mon Dec 28 14:40:58 2009 (r201128) @@ -335,6 +335,7 @@ struct mount; struct sockaddr; struct statfs; int jailed(struct ucred *cred); +int jailed_without_vnet(struct ucred *); void getcredhostname(struct ucred *, char *, size_t); void getcreddomainname(struct ucred *, char *, size_t); void getcredhostuuid(struct ucred *, char *, size_t); From owner-svn-src-stable-8@FreeBSD.ORG Mon Dec 28 14:44:22 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 61B751065696; Mon, 28 Dec 2009 14:44:22 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4FD528FC19; Mon, 28 Dec 2009 14:44:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBSEiMbm093172; Mon, 28 Dec 2009 14:44:22 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBSEiMep093170; Mon, 28 Dec 2009 14:44:22 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <200912281444.nBSEiMep093170@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Mon, 28 Dec 2009 14:44:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201129 - stable/8/sys/kern X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2009 14:44:22 -0000 Author: bz Date: Mon Dec 28 14:44:22 2009 New Revision: 201129 URL: http://svn.freebsd.org/changeset/base/201129 Log: MFC r200995: Remove an unused global. Modified: stable/8/sys/kern/kern_proc.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/kern/kern_proc.c ============================================================================== --- stable/8/sys/kern/kern_proc.c Mon Dec 28 14:40:58 2009 (r201128) +++ stable/8/sys/kern/kern_proc.c Mon Dec 28 14:44:22 2009 (r201129) @@ -140,7 +140,6 @@ struct sx allproc_lock; struct sx proctree_lock; struct mtx ppeers_lock; uma_zone_t proc_zone; -uma_zone_t ithread_zone; int kstack_pages = KSTACK_PAGES; SYSCTL_INT(_kern, OID_AUTO, kstack_pages, CTLFLAG_RD, &kstack_pages, 0, ""); From owner-svn-src-stable-8@FreeBSD.ORG Mon Dec 28 14:47:25 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B5FEE1065710; Mon, 28 Dec 2009 14:47:25 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8A3F68FC1F; Mon, 28 Dec 2009 14:47:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBSElPpU093286; Mon, 28 Dec 2009 14:47:25 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBSElPeI093284; Mon, 28 Dec 2009 14:47:25 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <200912281447.nBSElPeI093284@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Mon, 28 Dec 2009 14:47:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201130 - stable/8/sys/kern X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Dec 2009 14:47:25 -0000 Author: bz Date: Mon Dec 28 14:47:25 2009 New Revision: 201130 URL: http://svn.freebsd.org/changeset/base/201130 Log: MFC r201000: Remove extra spaces (no functional change). Modified: stable/8/sys/kern/kern_rmlock.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/kern/kern_rmlock.c ============================================================================== --- stable/8/sys/kern/kern_rmlock.c Mon Dec 28 14:44:22 2009 (r201129) +++ stable/8/sys/kern/kern_rmlock.c Mon Dec 28 14:47:25 2009 (r201130) @@ -147,7 +147,7 @@ rm_tracker_add(struct pcpu *pc, struct r next->rmq_prev = &tracker->rmp_cpuQueue; /* Update pointer to first element. */ - pc->pc_rm_queue.rmq_next = &tracker->rmp_cpuQueue; + pc->pc_rm_queue.rmq_next = &tracker->rmp_cpuQueue; } static void inline @@ -278,7 +278,7 @@ _rm_rlock_hard(struct rmlock *rm, struct * for this lock on the per cpu queue. */ for (queue = pc->pc_rm_queue.rmq_next; - queue != &pc->pc_rm_queue; queue = queue->rmq_next) { + queue != &pc->pc_rm_queue; queue = queue->rmq_next) { atracker = (struct rm_priotracker *)queue; if ((atracker->rmp_rmlock == rm) && (atracker->rmp_thread == tracker->rmp_thread)) { @@ -337,7 +337,7 @@ _rm_rlock(struct rmlock *rm, struct rm_p * Fast path to combine two common conditions into a single * conditional jump. */ - if (0 == (td->td_owepreempt | rm->rm_noreadtoken)) + if (0 == (td->td_owepreempt | rm->rm_noreadtoken)) return; /* We do not have a read token and need to acquire one. */ @@ -413,7 +413,7 @@ _rm_wlock(struct rmlock *rm) * before rm_cleanIPI is called. */ #ifdef SMP - smp_rendezvous(smp_no_rendevous_barrier, + smp_rendezvous(smp_no_rendevous_barrier, rm_cleanIPI, smp_no_rendevous_barrier, rm); @@ -487,7 +487,7 @@ _rm_rlock_debug(struct rmlock *rm, struc } void -_rm_runlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, +_rm_runlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, const char *file, int line) { @@ -526,7 +526,7 @@ _rm_rlock_debug(struct rmlock *rm, struc } void -_rm_runlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, +_rm_runlock_debug(struct rmlock *rm, struct rm_priotracker *tracker, const char *file, int line) { From owner-svn-src-stable-8@FreeBSD.ORG Tue Dec 29 04:23:47 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 183341065694; Tue, 29 Dec 2009 04:23:47 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 03BDE8FC15; Tue, 29 Dec 2009 04:23:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBT4Nk4P010463; Tue, 29 Dec 2009 04:23:46 GMT (envelope-from nyan@svn.freebsd.org) Received: (from nyan@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBT4NkxT010461; Tue, 29 Dec 2009 04:23:46 GMT (envelope-from nyan@svn.freebsd.org) Message-Id: <200912290423.nBT4NkxT010461@svn.freebsd.org> From: Takahashi Yoshihiro Date: Tue, 29 Dec 2009 04:23:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201152 - stable/8/sys/boot/pc98/kgzldr X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2009 04:23:47 -0000 Author: nyan Date: Tue Dec 29 04:23:46 2009 New Revision: 201152 URL: http://svn.freebsd.org/changeset/base/201152 Log: MFC: revision 200776 Move cursor position after putting a character. Modified: stable/8/sys/boot/pc98/kgzldr/crt.s Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/boot/pc98/kgzldr/crt.s ============================================================================== --- stable/8/sys/boot/pc98/kgzldr/crt.s Tue Dec 29 02:35:50 2009 (r201151) +++ stable/8/sys/boot/pc98/kgzldr/crt.s Tue Dec 29 04:23:46 2009 (r201152) @@ -75,5 +75,15 @@ crt_putchr.3: cmpw $SCR_ROW*SCR_COL*2,%d stosw # line movw $(SCR_ROW-1)*SCR_COL*2,%dx crt_putchr.4: movw %dx,(%ebx) # Update position + shrw $1,%dx +crt_putchr.5: inb $0x60,%al # Move cursor + testb $0x04,%al + jz crt_putchr.5 + movb $0x49,%al + outb %al,$0x62 + movb %dl,%al + outb %al,$0x60 + movb %dh,%al + outb %al,$0x60 popa # Restore ret # To caller From owner-svn-src-stable-8@FreeBSD.ORG Tue Dec 29 05:35:26 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 158461065672; Tue, 29 Dec 2009 05:35:26 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F337C8FC14; Tue, 29 Dec 2009 05:35:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBT5ZP5K012071; Tue, 29 Dec 2009 05:35:25 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBT5ZP3H012061; Tue, 29 Dec 2009 05:35:25 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <200912290535.nBT5ZP3H012061@svn.freebsd.org> From: Doug Barton Date: Tue, 29 Dec 2009 05:35:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201158 - in stable/8/sys: amd64/conf arm/conf i386/conf ia64/conf mips/conf pc98/conf powerpc/conf sparc64/conf sun4v/conf X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2009 05:35:26 -0000 Author: dougb Date: Tue Dec 29 05:35:25 2009 New Revision: 201158 URL: http://svn.freebsd.org/changeset/base/201158 Log: MFC r200594: Add INCLUDE_CONFIG_FILE, and a note in comments about how to also include the comments with CONFIGARGS Modified: stable/8/sys/amd64/conf/DEFAULTS stable/8/sys/arm/conf/DEFAULTS stable/8/sys/i386/conf/DEFAULTS stable/8/sys/ia64/conf/DEFAULTS stable/8/sys/mips/conf/DEFAULTS stable/8/sys/pc98/conf/DEFAULTS stable/8/sys/powerpc/conf/DEFAULTS stable/8/sys/sparc64/conf/DEFAULTS stable/8/sys/sun4v/conf/DEFAULTS Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) Modified: stable/8/sys/amd64/conf/DEFAULTS ============================================================================== --- stable/8/sys/amd64/conf/DEFAULTS Tue Dec 29 05:30:23 2009 (r201157) +++ stable/8/sys/amd64/conf/DEFAULTS Tue Dec 29 05:35:25 2009 (r201158) @@ -21,3 +21,9 @@ options GEOM_PART_EBR options GEOM_PART_EBR_COMPAT options GEOM_PART_MBR +# Store the plain version of the configuration file in the kernel itself. +# To store the entire file, including comments, put this in /etc/src.conf: +# CONFIGARGS= -C +# See config(8) for more details. +# +options INCLUDE_CONFIG_FILE # Include this file in kernel Modified: stable/8/sys/arm/conf/DEFAULTS ============================================================================== --- stable/8/sys/arm/conf/DEFAULTS Tue Dec 29 05:30:23 2009 (r201157) +++ stable/8/sys/arm/conf/DEFAULTS Tue Dec 29 05:35:25 2009 (r201158) @@ -9,3 +9,10 @@ device mem options GEOM_PART_BSD options GEOM_PART_MBR + +# Store the plain version of the configuration file in the kernel itself. +# To store the entire file, including comments, put this in /etc/src.conf: +# CONFIGARGS= -C +# See config(8) for more details. +# +options INCLUDE_CONFIG_FILE # Include this file in kernel Modified: stable/8/sys/i386/conf/DEFAULTS ============================================================================== --- stable/8/sys/i386/conf/DEFAULTS Tue Dec 29 05:30:23 2009 (r201157) +++ stable/8/sys/i386/conf/DEFAULTS Tue Dec 29 05:35:25 2009 (r201158) @@ -28,3 +28,10 @@ options GEOM_PART_MBR # enable support for native hardware options NATIVE device atpic + +# Store the plain version of the configuration file in the kernel itself. +# To store the entire file, including comments, put this in /etc/src.conf: +# CONFIGARGS= -C +# See config(8) for more details. +# +options INCLUDE_CONFIG_FILE # Include this file in kernel Modified: stable/8/sys/ia64/conf/DEFAULTS ============================================================================== --- stable/8/sys/ia64/conf/DEFAULTS Tue Dec 29 05:30:23 2009 (r201157) +++ stable/8/sys/ia64/conf/DEFAULTS Tue Dec 29 05:35:25 2009 (r201158) @@ -17,3 +17,10 @@ device uart_ns8250 options GEOM_PART_BSD options GEOM_PART_GPT options GEOM_PART_MBR + +# Store the plain version of the configuration file in the kernel itself. +# To store the entire file, including comments, put this in /etc/src.conf: +# CONFIGARGS= -C +# See config(8) for more details. +# +options INCLUDE_CONFIG_FILE # Include this file in kernel Modified: stable/8/sys/mips/conf/DEFAULTS ============================================================================== --- stable/8/sys/mips/conf/DEFAULTS Tue Dec 29 05:30:23 2009 (r201157) +++ stable/8/sys/mips/conf/DEFAULTS Tue Dec 29 05:35:25 2009 (r201158) @@ -11,3 +11,10 @@ device uart_ns8250 options GEOM_PART_BSD options GEOM_PART_MBR + +# Store the plain version of the configuration file in the kernel itself. +# To store the entire file, including comments, put this in /etc/src.conf: +# CONFIGARGS= -C +# See config(8) for more details. +# +options INCLUDE_CONFIG_FILE # Include this file in kernel Modified: stable/8/sys/pc98/conf/DEFAULTS ============================================================================== --- stable/8/sys/pc98/conf/DEFAULTS Tue Dec 29 05:30:23 2009 (r201157) +++ stable/8/sys/pc98/conf/DEFAULTS Tue Dec 29 05:35:25 2009 (r201158) @@ -24,3 +24,10 @@ device uart_ns8250 # Default partitioning schemes options GEOM_PART_BSD options GEOM_PART_PC98 + +# Store the plain version of the configuration file in the kernel itself. +# To store the entire file, including comments, put this in /etc/src.conf: +# CONFIGARGS= -C +# See config(8) for more details. +# +options INCLUDE_CONFIG_FILE # Include this file in kernel Modified: stable/8/sys/powerpc/conf/DEFAULTS ============================================================================== --- stable/8/sys/powerpc/conf/DEFAULTS Tue Dec 29 05:30:23 2009 (r201157) +++ stable/8/sys/powerpc/conf/DEFAULTS Tue Dec 29 05:35:25 2009 (r201158) @@ -14,3 +14,10 @@ device uart_z8530 options GEOM_PART_APM options GEOM_PART_MBR + +# Store the plain version of the configuration file in the kernel itself. +# To store the entire file, including comments, put this in /etc/src.conf: +# CONFIGARGS= -C +# See config(8) for more details. +# +options INCLUDE_CONFIG_FILE # Include this file in kernel Modified: stable/8/sys/sparc64/conf/DEFAULTS ============================================================================== --- stable/8/sys/sparc64/conf/DEFAULTS Tue Dec 29 05:30:23 2009 (r201157) +++ stable/8/sys/sparc64/conf/DEFAULTS Tue Dec 29 05:35:25 2009 (r201158) @@ -19,3 +19,10 @@ options GEOM_PART_VTOC8 # Let sunkbd emulate an AT keyboard by default. options SUNKBD_EMULATE_ATKBD + +# Store the plain version of the configuration file in the kernel itself. +# To store the entire file, including comments, put this in /etc/src.conf: +# CONFIGARGS= -C +# See config(8) for more details. +# +options INCLUDE_CONFIG_FILE # Include this file in kernel Modified: stable/8/sys/sun4v/conf/DEFAULTS ============================================================================== --- stable/8/sys/sun4v/conf/DEFAULTS Tue Dec 29 05:30:23 2009 (r201157) +++ stable/8/sys/sun4v/conf/DEFAULTS Tue Dec 29 05:35:25 2009 (r201158) @@ -11,3 +11,10 @@ device mem # Memory and kernel memory # Default partitioning schemes options GEOM_PART_BSD options GEOM_PART_VTOC8 + +# Store the plain version of the configuration file in the kernel itself. +# To store the entire file, including comments, put this in /etc/src.conf: +# CONFIGARGS= -C +# See config(8) for more details. +# +options INCLUDE_CONFIG_FILE # Include this file in kernel From owner-svn-src-stable-8@FreeBSD.ORG Tue Dec 29 07:08:49 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 142691065672; Tue, 29 Dec 2009 07:08:49 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F3A198FC0C; Tue, 29 Dec 2009 07:08:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBT78mM4014423; Tue, 29 Dec 2009 07:08:48 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBT78mJn014419; Tue, 29 Dec 2009 07:08:48 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <200912290708.nBT78mJn014419@svn.freebsd.org> From: Doug Barton Date: Tue, 29 Dec 2009 07:08:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201172 - in stable/8/etc: mtree namedb rc.d X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2009 07:08:49 -0000 Author: dougb Date: Tue Dec 29 07:08:48 2009 New Revision: 201172 URL: http://svn.freebsd.org/changeset/base/201172 Log: MFC r200448: Since the change to rc.subr in r198162 it's not necessary to specify command in the rc.d script if we have a corresponding ${name}_program entry, which we do for named. Rename named_precmd to named_prestart to make it more clear and match convention. Move the command_args definition related to -u up into _prestart(). It (and the associated $named_uid value) are only used there, and unlike required_* and pidfile don't need to be used until this stage. Fix a silly bug that would only have affected people who were using the new named_wait or named_auto_forward features, AND had set up an rndc.conf file instead of using the automatically generated rndc.key. For named_conf: Add "-c $named_conf" to command_args if it's not set to the default. If it is set to the default and we're using the base BIND it's not necessary. If we're using BIND from the ports the user is likely to have included it in _flags (due to long necessity for doing so) so don't duplicate that if it's set. Add $named_conf to required_files MFC r200563: The named process needs to have a "working directory" that it can write to. This is specified in "options { directory }" in named.conf. So, create /etc/namedb/working with appropriate permissions, and update the entry in named.conf to match. In addition to specifying the working directory, file and path names in named.conf can be specified relative to the directory listed. However, since that directory is now different from /etc/namedb (where the configuration, zone, rndc.*, and other files are located) further update named.conf to specify all file names with fully qualified paths. Also update the comment about file and path names so users know this should be done for all file/path names in the file. This change will eliminate the 'working directory is not writable' messages at boot time without sacrificing security. It will also allow for features in newer versions of BIND (9.7+) to work as designed. Modified: stable/8/etc/mtree/BIND.chroot.dist stable/8/etc/namedb/named.conf stable/8/etc/rc.d/named Directory Properties: stable/8/etc/ (props changed) Modified: stable/8/etc/mtree/BIND.chroot.dist ============================================================================== --- stable/8/etc/mtree/BIND.chroot.dist Tue Dec 29 06:39:07 2009 (r201171) +++ stable/8/etc/mtree/BIND.chroot.dist Tue Dec 29 07:08:48 2009 (r201172) @@ -15,6 +15,8 @@ .. slave uname=bind .. + working uname=bind + .. .. .. /set type=dir uname=bind gname=wheel mode=0755 Modified: stable/8/etc/namedb/named.conf ============================================================================== --- stable/8/etc/namedb/named.conf Tue Dec 29 06:39:07 2009 (r201171) +++ stable/8/etc/namedb/named.conf Tue Dec 29 07:08:48 2009 (r201172) @@ -9,8 +9,9 @@ // or cause huge amounts of useless Internet traffic. options { - // Relative to the chroot directory, if any - directory "/etc/namedb"; + // All file and path names are relative to the chroot directory, + // if any, and should be fully qualified. + directory "/etc/namedb/working"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named_dump.db"; statistics-file "/var/stats/named.stats"; @@ -74,7 +75,7 @@ options { // Also, make sure to enable it in /etc/rc.conf. // The traditional root hints mechanism. Use this, OR the slave zones below. -zone "." { type hint; file "named.root"; }; +zone "." { type hint; file "/etc/namedb/named.root"; }; /* Slaving the following zones from the root name servers has some significant advantages: @@ -94,7 +95,7 @@ zone "." { type hint; file "named.root"; /* zone "." { type slave; - file "slave/root.slave"; + file "/etc/namedb/slave/root.slave"; masters { 192.5.5.241; // F.ROOT-SERVERS.NET. }; @@ -102,7 +103,7 @@ zone "." { }; zone "arpa" { type slave; - file "slave/arpa.slave"; + file "/etc/namedb/slave/arpa.slave"; masters { 192.5.5.241; // F.ROOT-SERVERS.NET. }; @@ -110,7 +111,7 @@ zone "arpa" { }; zone "in-addr.arpa" { type slave; - file "slave/in-addr.arpa.slave"; + file "/etc/namedb/slave/in-addr.arpa.slave"; masters { 192.5.5.241; // F.ROOT-SERVERS.NET. }; @@ -125,116 +126,116 @@ zone "in-addr.arpa" { 2. No spurious traffic will be sent from your network to the roots */ // RFC 1912 -zone "localhost" { type master; file "master/localhost-forward.db"; }; -zone "127.in-addr.arpa" { type master; file "master/localhost-reverse.db"; }; -zone "255.in-addr.arpa" { type master; file "master/empty.db"; }; +zone "localhost" { type master; file "/etc/namedb/master/localhost-forward.db"; }; +zone "127.in-addr.arpa" { type master; file "/etc/namedb/master/localhost-reverse.db"; }; +zone "255.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // RFC 1912-style zone for IPv6 localhost address -zone "0.ip6.arpa" { type master; file "master/localhost-reverse.db"; }; +zone "0.ip6.arpa" { type master; file "/etc/namedb/master/localhost-reverse.db"; }; // "This" Network (RFCs 1912 and 3330) -zone "0.in-addr.arpa" { type master; file "master/empty.db"; }; +zone "0.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // Private Use Networks (RFC 1918) -zone "10.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "16.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "17.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "18.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "19.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "20.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "21.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "22.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "23.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "24.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "25.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "26.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "27.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "28.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "29.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "30.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "31.172.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "168.192.in-addr.arpa" { type master; file "master/empty.db"; }; +zone "10.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "16.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "17.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "18.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "19.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "20.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "21.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "22.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "23.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "24.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "25.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "26.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "27.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "28.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "29.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "30.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "31.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "168.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // Link-local/APIPA (RFCs 3330 and 3927) -zone "254.169.in-addr.arpa" { type master; file "master/empty.db"; }; +zone "254.169.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // TEST-NET for Documentation (RFC 3330) -zone "2.0.192.in-addr.arpa" { type master; file "master/empty.db"; }; +zone "2.0.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // Router Benchmark Testing (RFC 3330) -zone "18.198.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "19.198.in-addr.arpa" { type master; file "master/empty.db"; }; +zone "18.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "19.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IANA Reserved - Old Class E Space -zone "240.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "241.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "242.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "243.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "244.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "245.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "246.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "247.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "248.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "249.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "250.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "251.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "252.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "253.in-addr.arpa" { type master; file "master/empty.db"; }; -zone "254.in-addr.arpa" { type master; file "master/empty.db"; }; +zone "240.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "241.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "242.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "243.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "244.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "245.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "246.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "247.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "248.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "249.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "250.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "251.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "252.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "253.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "254.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IPv6 Unassigned Addresses (RFC 4291) -zone "1.ip6.arpa" { type master; file "master/empty.db"; }; -zone "3.ip6.arpa" { type master; file "master/empty.db"; }; -zone "4.ip6.arpa" { type master; file "master/empty.db"; }; -zone "5.ip6.arpa" { type master; file "master/empty.db"; }; -zone "6.ip6.arpa" { type master; file "master/empty.db"; }; -zone "7.ip6.arpa" { type master; file "master/empty.db"; }; -zone "8.ip6.arpa" { type master; file "master/empty.db"; }; -zone "9.ip6.arpa" { type master; file "master/empty.db"; }; -zone "a.ip6.arpa" { type master; file "master/empty.db"; }; -zone "b.ip6.arpa" { type master; file "master/empty.db"; }; -zone "c.ip6.arpa" { type master; file "master/empty.db"; }; -zone "d.ip6.arpa" { type master; file "master/empty.db"; }; -zone "e.ip6.arpa" { type master; file "master/empty.db"; }; -zone "0.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "1.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "2.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "3.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "4.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "5.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "6.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "7.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "8.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "9.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "a.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "b.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "0.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "1.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "2.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "3.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "4.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "5.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "6.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "7.e.f.ip6.arpa" { type master; file "master/empty.db"; }; +zone "1.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "3.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "4.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "5.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "6.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "7.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "8.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "9.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "a.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "b.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "c.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "d.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "e.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "0.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "1.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "2.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "3.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "4.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "5.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "6.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "7.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "8.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "9.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "a.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "b.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "0.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "1.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "2.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "3.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "4.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "5.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "6.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "7.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IPv6 ULA (RFC 4193) -zone "c.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "d.f.ip6.arpa" { type master; file "master/empty.db"; }; +zone "c.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "d.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IPv6 Link Local (RFC 4291) -zone "8.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "9.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "a.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "b.e.f.ip6.arpa" { type master; file "master/empty.db"; }; +zone "8.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "9.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "a.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "b.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IPv6 Deprecated Site-Local Addresses (RFC 3879) -zone "c.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "d.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "e.e.f.ip6.arpa" { type master; file "master/empty.db"; }; -zone "f.e.f.ip6.arpa" { type master; file "master/empty.db"; }; +zone "c.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "d.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "e.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "f.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }; // IP6.INT is Deprecated (RFC 4159) -zone "ip6.int" { type master; file "master/empty.db"; }; +zone "ip6.int" { type master; file "/etc/namedb/master/empty.db"; }; // NB: Do not use the IP addresses below, they are faked, and only // serve demonstration/documentation purposes! @@ -265,17 +266,16 @@ zone "example.org" { allow-update { key "exampleorgkey"; }; - file "dynamic/example.org"; + file "/etc/namedb/dynamic/example.org"; }; */ /* Example of a slave reverse zone zone "1.168.192.in-addr.arpa" { type slave; - file "slave/1.168.192.in-addr.arpa"; + file "/etc/namedb/slave/1.168.192.in-addr.arpa"; masters { 192.168.1.1; }; }; */ - Modified: stable/8/etc/rc.d/named ============================================================================== --- stable/8/etc/rc.d/named Tue Dec 29 06:39:07 2009 (r201171) +++ stable/8/etc/rc.d/named Tue Dec 29 07:08:48 2009 (r201172) @@ -12,10 +12,9 @@ name="named" rcvar=named_enable -command="/usr/sbin/named" extra_commands="reload" -start_precmd="named_precmd" +start_precmd="named_prestart" start_postcmd="named_poststart" reload_cmd="named_reload" stop_cmd="named_stop" @@ -155,8 +154,17 @@ create_file () { chmod 644 $1 } -named_precmd() +named_prestart() { + command_args="-u ${named_uid:=root}" + + if [ ! "$named_conf" = '/etc/namedb/named.conf' ]; then + case "$named_flags" in + -c*|*' -c'*) ;; # No need to add it + *) command_args="-c $named_conf $command_args" ;; + esac + fi + local line nsip firstns # Is the user using a sandbox? @@ -170,11 +178,11 @@ named_precmd() # Create an rndc.key file for the user if none exists # - if [ -s "${named_chrootdir}/etc/namedb/rndc.conf" ]; then - return 0 - fi confgen_command="${command%/named}/rndc-confgen -a -b256 -u $named_uid \ -c ${named_chrootdir}/etc/namedb/rndc.key" + if [ -s "${named_chrootdir}/etc/namedb/rndc.conf" ]; then + unset confgen_command + fi if [ -s "${named_chrootdir}/etc/namedb/rndc.key" ]; then case `stat -f%Su ${named_chrootdir}/etc/namedb/rndc.key` in root|$named_uid) ;; @@ -260,10 +268,11 @@ named_precmd() } load_rc_config $name + # Updating the following variables requires that rc.conf be loaded first # required_dirs="$named_chrootdir" # if it is set, it must exist +required_files="${named_conf:=/etc/namedb/named.conf}" pidfile="${named_pidfile:-/var/run/named/pid}" -command_args="-u ${named_uid:=root}" run_rc_command "$1" From owner-svn-src-stable-8@FreeBSD.ORG Tue Dec 29 10:05:20 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BAFCB106568B; Tue, 29 Dec 2009 10:05:20 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 903C78FC20; Tue, 29 Dec 2009 10:05:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBTA5KkO018992; Tue, 29 Dec 2009 10:05:20 GMT (envelope-from edwin@svn.freebsd.org) Received: (from edwin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBTA5KW2018989; Tue, 29 Dec 2009 10:05:20 GMT (envelope-from edwin@svn.freebsd.org) Message-Id: <200912291005.nBTA5KW2018989@svn.freebsd.org> From: Edwin Groothuis Date: Tue, 29 Dec 2009 10:05:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201183 - in stable/8: lib/libc/stdtime usr.sbin/zic X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2009 10:05:20 -0000 Author: edwin Date: Tue Dec 29 10:05:20 2009 New Revision: 201183 URL: http://svn.freebsd.org/changeset/base/201183 Log: MFC of r200832, tzdata2009t zic: - Fix URL / reference to Calendrical Calculations: Third Edition libc/stdtime: - Fix typo in tzfile.5 (no changes in our part) Modified: stable/8/lib/libc/stdtime/tzfile.5 stable/8/usr.sbin/zic/Theory Directory Properties: stable/8/lib/libc/ (props changed) stable/8/lib/libc/stdtime/ (props changed) stable/8/usr.sbin/zic/ (props changed) Modified: stable/8/lib/libc/stdtime/tzfile.5 ============================================================================== --- stable/8/lib/libc/stdtime/tzfile.5 Tue Dec 29 09:13:20 2009 (r201182) +++ stable/8/lib/libc/stdtime/tzfile.5 Tue Dec 29 10:05:20 2009 (r201183) @@ -147,6 +147,6 @@ such instants). .Xr ctime 3 , .Xr time2posix 3 , .Xr zic 8 -.\" @(#)tzfile.5 8.2 +.\" @(#)tzfile.5 8.3 .\" This file is in the public domain, so clarified as of .\" 1996-06-05 by Arthur David Olson. Modified: stable/8/usr.sbin/zic/Theory ============================================================================== --- stable/8/usr.sbin/zic/Theory Tue Dec 29 09:13:20 2009 (r201182) +++ stable/8/usr.sbin/zic/Theory Tue Dec 29 10:05:20 2009 (r201183) @@ -1,4 +1,4 @@ -@(#)Theory 8.3 +@(#)Theory 8.4 This file is in the public domain, so clarified as of 2009-05-17 by Arthur David Olson. $FreeBSD$ @@ -361,10 +361,10 @@ abbreviations like `EST'; this avoids th Calendrical issues are a bit out of scope for a time zone database, but they indicate the sort of problems that we would run into if we extended the time zone database further into the past. An excellent -resource in this area is Edward M. Reingold and Nachum Dershowitz, - -Calendrical Calculations: The Millennium Edition -, Cambridge University Press (2001). Other information and +resource in this area is Nachum Dershowitz and Edward M. Reingold, + +Calendrical Calculations: Third Edition +, Cambridge University Press (2008). Other information and sources are given below. They sometimes disagree. From owner-svn-src-stable-8@FreeBSD.ORG Tue Dec 29 10:07:09 2009 Return-Path: Delivered-To: svn-src-stable-8@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AACFF106566B; Tue, 29 Dec 2009 10:07:09 +0000 (UTC) (envelope-from edwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 990B18FC13; Tue, 29 Dec 2009 10:07:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBTA7994019187; Tue, 29 Dec 2009 10:07:09 GMT (envelope-from edwin@svn.freebsd.org) Received: (from edwin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBTA79I0019183; Tue, 29 Dec 2009 10:07:09 GMT (envelope-from edwin@svn.freebsd.org) Message-Id: <200912291007.nBTA79I0019183@svn.freebsd.org> From: Edwin Groothuis Date: Tue, 29 Dec 2009 10:07:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201185 - stable/8/share/zoneinfo X-BeenThere: svn-src-stable-8@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 8-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Dec 2009 10:07:09 -0000 Author: edwin Date: Tue Dec 29 10:07:09 2009 New Revision: 201185 URL: http://svn.freebsd.org/changeset/base/201185 Log: MFC of r200835, tzcode2009t Comment only, no data changes. Modified: stable/8/share/zoneinfo/asia stable/8/share/zoneinfo/europe stable/8/share/zoneinfo/zone.tab Directory Properties: stable/8/share/zoneinfo/ (props changed) Modified: stable/8/share/zoneinfo/asia ============================================================================== --- stable/8/share/zoneinfo/asia Tue Dec 29 10:05:43 2009 (r201184) +++ stable/8/share/zoneinfo/asia Tue Dec 29 10:07:09 2009 (r201185) @@ -1,4 +1,4 @@ -# @(#)asia 8.44 +# @(#)asia 8.48 # This file is in the public domain, so clarified as of # 2009-05-17 by Arthur David Olson. @@ -363,6 +363,69 @@ Zone Asia/Urumqi 5:50:20 - LMT 1928 # or # West Xinjiang, including Aksu, Atushi, Yining, Hetian, Cele, Luopu, Nileke, # Zhaosu, Tekesi, Gongliu, Chabuchaer, Huocheng, Bole, Pishan, Suiding, # and Yarkand. + +# From Luther Ma (2009-10-17): +# Almost all (>99.9%) ethnic Chinese (properly ethnic Han) living in +# Xinjiang use Chinese Standard Time. Some are aware of Xinjiang time, +# but have no need of it. All planes, trains, and schools function on +# what is called "Beijing time." When Han make an appointment in Chinese +# they implicitly use Beijing time. +# +# On the other hand, ethnic Uyghurs, who make up about half the +# population of Xinjiang, typically use "Xinjiang time" which is two +# hours behind Beijing time, or UTC +0600. The government of the Xinjiang +# Uyghur Autonomous Region, (XAUR, or just Xinjiang for short) as well as +# local governments such as the Urumqi city government use both times in +# publications, referring to what is popularly called Xinjiang time as +# "Urumqi time." When Uyghurs make an appointment in the Uyghur language +# they almost invariably use Xinjiang time. +# +# (Their ethnic Han compatriots would typically have no clue of its +# widespread use, however, because so extremely few of them are fluent in +# Uyghur, comparable to the number of Anglo-Americans fluent in Navajo.) +# +# (...As with the rest of China there was a brief interval ending in 1990 +# or 1991 when summer time was in use. The confusion was severe, with +# the province not having dual times but four times in use at the same +# time. Some areas remained on standard Xinjiang time or Beijing time and +# others moving their clocks ahead.) +# +# ...an example of an official website using of Urumqi time. +# +# The first few lines of the Google translation of +# +# http://www.fjysgl.gov.cn/show.aspx?id=2379&cid=39 +# +# (retrieved 2009-10-13) +# > Urumqi fire seven people are missing the alleged losses of at least +# > 500 million yuan +# > +# > (Reporter Dong Liu) the day before 20:20 or so (Urumqi Time 18:20), +# > Urumqi City Department of International Plaza Luther Qiantang River +# > burst fire. As of yesterday, 18:30, Urumqi City Fire officers and men +# > have worked continuously for 22 hours... + +# From Luther Ma (2009-11-19): +# With the risk of being redundant to previous answers these are the most common +# English "transliterations" (w/o using non-English symbols): +# +# 1. Wulumuqi... +# 2. Kashi... +# 3. Urumqi... +# 4. Kashgar... +# ... +# 5. It seems that Uyghurs in Urumqi has been using Xinjiang since at least the +# 1960's. I know of one Han, now over 50, who grew up in the surrounding +# countryside and used Xinjiang time as a child. +# +# 6. Likewise for Kashgar and the rest of south Xinjiang I don't know of any +# start date for Xinjiang time. +# +# Without having access to local historical records, nor the ability to legally +# publish them, I would go with October 1, 1949, when Xinjiang became the Uyghur +# Autonomous Region under the PRC. (Before that Uyghurs, of course, would also +# not be using Beijing time, but some local time.) + Zone Asia/Kashgar 5:03:56 - LMT 1928 # or Kashi or Kaxgar 5:30 - KAST 1940 # Kashgar Time 5:00 - KAST 1980 May @@ -370,8 +433,8 @@ Zone Asia/Kashgar 5:03:56 - LMT 1928 # o # From Lee Yiu Chung (2009-10-24): -# I found there are some mistakes for the historial DST rule for Hong -# Kong. Accoring to the DST record from Hong Kong Observatory (actually, +# I found there are some mistakes for the...DST rule for Hong +# Kong. [According] to the DST record from Hong Kong Observatory (actually, # it is not [an] observatory, but the official meteorological agency of HK, # and also serves as the official timing agency), there are some missing # and incorrect rules. Although the exact switch over time is missing, I Modified: stable/8/share/zoneinfo/europe ============================================================================== --- stable/8/share/zoneinfo/europe Tue Dec 29 10:05:43 2009 (r201184) +++ stable/8/share/zoneinfo/europe Tue Dec 29 10:07:09 2009 (r201185) @@ -1,5 +1,5 @@ #
-# @(#)europe	8.24
+# @(#)europe	8.25
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 
@@ -2130,12 +2130,20 @@ Zone Asia/Irkutsk	 6:57:20 -	LMT	1880
 # From Oscar van Vlijmen (2003-10-18): [This region consists of]
 # Aginskij Buryatskij avtonomnyj okrug, Amurskaya oblast',
 # [parts of] Respublika Sakha (Yakutiya), Chitinskaya oblast'.
+
+# From Oscar van Vlijmen (2009-11-29):
+# ...some regions of RUssia were merged with others since 2005...
+# Some names were changed, no big deal, except for one instance: a new name.
+# YAK/YAKST: UTC+9 Zabajkal'skij kraj.
+
+# From Oscar van Vlijmen (2009-11-29):
 # The Sakha districts are: Aldanskij, Amginskij, Anabarskij,
-# Bulunskij, Verkhnekolymskij, Verkhnevilyujskij, Vilyujskij, Gornyj,
+# Verkhnevilyujskij, Vilyujskij, Gornyj,
 # Zhiganskij, Kobyajskij, Lenskij, Megino-Kangalasskij, Mirninskij,
-# Namskij, Nyurbinskij, Olenekskij, Olekminskij, Srednekolymskij,
+# Namskij, Nyurbinskij, Olenyokskij, Olyokminskij,
 # Suntarskij, Tattinskij, Ust'-Aldanskij, Khangalasskij,
-# Churapchinskij, Eveno-Bytantajskij.
+# Churapchinskij, Eveno-Bytantajskij Natsional'nij.
+
 Zone Asia/Yakutsk	 8:38:40 -	LMT	1919 Dec 15
 			 8:00	-	YAKT	1930 Jun 21 # Yakutsk Time
 			 9:00	Russia	YAK%sT	1991 Mar 31 2:00s
@@ -2145,7 +2153,9 @@ Zone Asia/Yakutsk	 8:38:40 -	LMT	1919 De
 # From Oscar van Vlijmen (2003-10-18): [This region consists of]
 # Evrejskaya avtonomnaya oblast', Khabarovskij kraj, Primorskij kraj,
 # [parts of] Respublika Sakha (Yakutiya).
-# The Sakha districts are: Verkhoyanskij, Tomponskij, Ust'-Majskij,
+
+# From Oscar van Vlijmen (2009-11-29):
+# The Sakha districts are: Bulunskij, Verkhoyanskij, Tomponskij, Ust'-Majskij,
 # Ust'-Yanskij.
 Zone Asia/Vladivostok	 8:47:44 -	LMT	1922 Nov 15
 			 9:00	-	VLAT	1930 Jun 21 # Vladivostok Time
@@ -2166,8 +2176,10 @@ Zone Asia/Sakhalin	 9:30:48 -	LMT	1905 A
 # From Oscar van Vlijmen (2003-10-18): [This region consists of]
 # Magadanskaya oblast', Respublika Sakha (Yakutiya).
 # Probably also: Kuril Islands.
-# The Sakha districts are: Abyjskij, Allaikhovskij, Momskij,
-# Nizhnekolymskij, Ojmyakonskij.
+
+# From Oscar van Vlijmen (2009-11-29):
+# The Sakha districts are: Abyjskij, Allaikhovskij, Verkhhhnekolymskij, Momskij,
+# Nizhnekolymskij, Ojmyakonskij, Srednekolymskij.
 Zone Asia/Magadan	10:03:12 -	LMT	1924 May  2
 			10:00	-	MAGT	1930 Jun 21 # Magadan Time
 			11:00	Russia	MAG%sT	1991 Mar 31 2:00s

Modified: stable/8/share/zoneinfo/zone.tab
==============================================================================
--- stable/8/share/zoneinfo/zone.tab	Tue Dec 29 10:05:43 2009	(r201184)
+++ stable/8/share/zoneinfo/zone.tab	Tue Dec 29 10:07:09 2009	(r201185)
@@ -1,5 +1,5 @@
 # 
-# @(#)zone.tab	8.29
+# @(#)zone.tab	8.31
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 #

From owner-svn-src-stable-8@FreeBSD.ORG  Tue Dec 29 10:15:12 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 26B48106566B;
	Tue, 29 Dec 2009 10:15:12 +0000 (UTC)
	(envelope-from edwin@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 15AF48FC13;
	Tue, 29 Dec 2009 10:15:12 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBTAFBpH019577;
	Tue, 29 Dec 2009 10:15:11 GMT (envelope-from edwin@svn.freebsd.org)
Received: (from edwin@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBTAFBgj019575;
	Tue, 29 Dec 2009 10:15:11 GMT (envelope-from edwin@svn.freebsd.org)
Message-Id: <200912291015.nBTAFBgj019575@svn.freebsd.org>
From: Edwin Groothuis 
Date: Tue, 29 Dec 2009 10:15:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201190 - stable/8/share/zoneinfo
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Tue, 29 Dec 2009 10:15:12 -0000

Author: edwin
Date: Tue Dec 29 10:15:11 2009
New Revision: 201190
URL: http://svn.freebsd.org/changeset/base/201190

Log:
  MFC of tzdata2009u, 201189
  
  Bangladesh will change its clock back to Standard Time on Dec 31, 2009.

Modified:
  stable/8/share/zoneinfo/asia
Directory Properties:
  stable/8/share/zoneinfo/   (props changed)

Modified: stable/8/share/zoneinfo/asia
==============================================================================
--- stable/8/share/zoneinfo/asia	Tue Dec 29 10:13:45 2009	(r201189)
+++ stable/8/share/zoneinfo/asia	Tue Dec 29 10:15:11 2009	(r201190)
@@ -1,4 +1,4 @@
-# @(#)asia	8.48
+# @(#)asia	8.50
 # This file is in the public domain, so clarified as of
 # 2009-05-17 by Arthur David Olson.
 
@@ -196,6 +196,41 @@ Zone	Asia/Bahrain	3:22:20 -	LMT	1920		# 
 # http://www.thaindian.com/newsportal/business/bangladesh-to-continue-indefinitely-with-advanced-time_100259987.html
 # 
 
+# From Alexander Krivenyshev (2009-12-24):
+# According to Bangladesh newspaper "The Daily Star,"
+# Bangladesh will change its clock back to Standard Time on Dec 31, 2009.
+#
+# Clock goes back 1-hr on Dec 31 night.
+# 
+# http://www.thedailystar.net/newDesign/news-details.php?nid=119228
+# 
+# and
+# 
+# http://www.worldtimezone.com/dst_news/dst_news_bangladesh05.html
+# 
+#
+# "...The government yesterday decided to put the clock back by one hour
+# on December 31 midnight and the new time will continue until March 31,
+# 2010 midnight. The decision came at a cabinet meeting at the Prime
+# Minister's Office last night..."
+
+# From Danvin Ruangchan (2009-12-24):
+# ...the news mentions DST will be turned off again 7 months after March
+# 31st on Oct 31, 2010.
+
+# From Arthur David Olson (2009-12-26):
+# Indeed, "The government will advance again the Banglasdesh Standard
+# Time by one one hour on March 31 next year by enforcing the Daylight
+# Saving Time (DST) for seven months. It will continue till October 31
+# until further notice." I take that last sentence as the
+# establishment of a rule.
+
+# Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
+Rule	Dhaka	2009	only	-	Jun	29	23:00	1	S
+Rule	Dhaka	2010	only	-	Jan	1	0:00	-	-
+Rule	Dhaka	2010	max	-	Mar	31	23:00	1	S
+Rule	Dhaka	2010	max	-	Nov	1	0:00	-	-
+
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 Zone	Asia/Dhaka	6:01:40 -	LMT	1890
 			5:53:20	-	HMT	1941 Oct    # Howrah Mean Time?
@@ -203,8 +238,8 @@ Zone	Asia/Dhaka	6:01:40 -	LMT	1890
 			5:30	-	IST	1942 Sep
 			6:30	-	BURT	1951 Sep 30
 			6:00	-	DACT	1971 Mar 26 # Dacca Time
-			6:00	-	BDT	2009 Jun 19 23:00 # Bangladesh Time
-			6:00	1:00	BDST
+			6:00	-	BDT	2009
+			6:00	Dhaka	BD%sT
 
 # Bhutan
 # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]

From owner-svn-src-stable-8@FreeBSD.ORG  Tue Dec 29 21:23:19 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4B8921065676;
	Tue, 29 Dec 2009 21:23:19 +0000 (UTC) (envelope-from mav@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3AB928FC1A;
	Tue, 29 Dec 2009 21:23:19 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBTLNJPo036551;
	Tue, 29 Dec 2009 21:23:19 GMT (envelope-from mav@svn.freebsd.org)
Received: (from mav@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBTLNJWR036548;
	Tue, 29 Dec 2009 21:23:19 GMT (envelope-from mav@svn.freebsd.org)
Message-Id: <200912292123.nBTLNJWR036548@svn.freebsd.org>
From: Alexander Motin 
Date: Tue, 29 Dec 2009 21:23:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201219 - stable/8/sys/geom/raid3
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Tue, 29 Dec 2009 21:23:19 -0000

Author: mav
Date: Tue Dec 29 21:23:18 2009
New Revision: 201219
URL: http://svn.freebsd.org/changeset/base/201219

Log:
  MFC r200821:
  Make graid3 fallback to malloc() when component request size is bigger
  then maximal prepared UMA zone size. This fixes crash with MAXPHYS > 128K.

Modified:
  stable/8/sys/geom/raid3/g_raid3.c
  stable/8/sys/geom/raid3/g_raid3.h
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/geom/raid3/g_raid3.c
==============================================================================
--- stable/8/sys/geom/raid3/g_raid3.c	Tue Dec 29 21:19:52 2009	(r201218)
+++ stable/8/sys/geom/raid3/g_raid3.c	Tue Dec 29 21:23:18 2009	(r201219)
@@ -183,15 +183,17 @@ static void *
 g_raid3_alloc(struct g_raid3_softc *sc, size_t size, int flags)
 {
 	void *ptr;
+	enum g_raid3_zones zone;
 
-	if (g_raid3_use_malloc)
+	if (g_raid3_use_malloc ||
+	    (zone = g_raid3_zone(size)) == G_RAID3_NUM_ZONES)
 		ptr = malloc(size, M_RAID3, flags);
 	else {
-		ptr = uma_zalloc_arg(sc->sc_zones[g_raid3_zone(size)].sz_zone,
-		   &sc->sc_zones[g_raid3_zone(size)], flags);
-		sc->sc_zones[g_raid3_zone(size)].sz_requested++;
+		ptr = uma_zalloc_arg(sc->sc_zones[zone].sz_zone,
+		   &sc->sc_zones[zone], flags);
+		sc->sc_zones[zone].sz_requested++;
 		if (ptr == NULL)
-			sc->sc_zones[g_raid3_zone(size)].sz_failed++;
+			sc->sc_zones[zone].sz_failed++;
 	}
 	return (ptr);
 }
@@ -199,12 +201,14 @@ g_raid3_alloc(struct g_raid3_softc *sc, 
 static void
 g_raid3_free(struct g_raid3_softc *sc, void *ptr, size_t size)
 {
+	enum g_raid3_zones zone;
 
-	if (g_raid3_use_malloc)
+	if (g_raid3_use_malloc ||
+	    (zone = g_raid3_zone(size)) == G_RAID3_NUM_ZONES)
 		free(ptr, M_RAID3);
 	else {
-		uma_zfree_arg(sc->sc_zones[g_raid3_zone(size)].sz_zone,
-		    ptr, &sc->sc_zones[g_raid3_zone(size)]);
+		uma_zfree_arg(sc->sc_zones[zone].sz_zone,
+		    ptr, &sc->sc_zones[zone]);
 	}
 }
 

Modified: stable/8/sys/geom/raid3/g_raid3.h
==============================================================================
--- stable/8/sys/geom/raid3/g_raid3.h	Tue Dec 29 21:19:52 2009	(r201218)
+++ stable/8/sys/geom/raid3/g_raid3.h	Tue Dec 29 21:23:18 2009	(r201219)
@@ -183,7 +183,9 @@ enum g_raid3_zones {
 
 static __inline enum g_raid3_zones
 g_raid3_zone(size_t nbytes) {
-	if (nbytes > 16384)
+	if (nbytes > 65536)
+		return (G_RAID3_NUM_ZONES);
+	else if (nbytes > 16384)
 		return (G_RAID3_ZONE_64K);
 	else if (nbytes > 4096)
 		return (G_RAID3_ZONE_16K);

From owner-svn-src-stable-8@FreeBSD.ORG  Wed Dec 30 16:37:58 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C09321065692;
	Wed, 30 Dec 2009 16:37:58 +0000 (UTC)
	(envelope-from markus@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id AF7A08FC22;
	Wed, 30 Dec 2009 16:37:58 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBUGbwoY064330;
	Wed, 30 Dec 2009 16:37:58 GMT (envelope-from markus@svn.freebsd.org)
Received: (from markus@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBUGbwRR064328;
	Wed, 30 Dec 2009 16:37:58 GMT (envelope-from markus@svn.freebsd.org)
Message-Id: <200912301637.nBUGbwRR064328@svn.freebsd.org>
From: Markus Brueffer 
Date: Wed, 30 Dec 2009 16:37:58 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201260 - stable/8/lib/libc/posix1e
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Wed, 30 Dec 2009 16:37:58 -0000

Author: markus
Date: Wed Dec 30 16:37:58 2009
New Revision: 201260
URL: http://svn.freebsd.org/changeset/base/201260

Log:
  MFC r200992:
  
  Use a local copy of entry_d for finding matches. Otherwise, if entry_d pointed
  to an entry of 'acl', all ACL entries starting with entry_d would be deleted.
  
  Approved by:	emax (mentor)

Modified:
  stable/8/lib/libc/posix1e/acl_delete_entry.c
Directory Properties:
  stable/8/lib/libc/   (props changed)
  stable/8/lib/libc/stdtime/   (props changed)

Modified: stable/8/lib/libc/posix1e/acl_delete_entry.c
==============================================================================
--- stable/8/lib/libc/posix1e/acl_delete_entry.c	Wed Dec 30 15:59:40 2009	(r201259)
+++ stable/8/lib/libc/posix1e/acl_delete_entry.c	Wed Dec 30 16:37:58 2009	(r201260)
@@ -75,6 +75,7 @@ int
 acl_delete_entry(acl_t acl, acl_entry_t entry_d)
 {
 	struct acl *acl_int;
+	struct acl_entry entry_int;
 	int i, j, found = 0;
 
 	if (acl == NULL || entry_d == NULL) {
@@ -94,8 +95,12 @@ acl_delete_entry(acl_t acl, acl_entry_t 
 		errno = EINVAL;
 		return (-1);
 	}
+
+	/* Use a local copy to prevent deletion of more than this entry */
+	entry_int = *entry_d;
+
 	for (i = 0; i < acl->ats_acl.acl_cnt;) {
-		if (_entry_matches(&(acl->ats_acl.acl_entry[i]), entry_d)) {
+		if (_entry_matches(&(acl->ats_acl.acl_entry[i]), &entry_int)) {
 			/* ...shift the remaining entries... */
 			for (j = i; j < acl->ats_acl.acl_cnt - 1; ++j)
 				acl->ats_acl.acl_entry[j] =

From owner-svn-src-stable-8@FreeBSD.ORG  Wed Dec 30 17:22:00 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D63A41065676;
	Wed, 30 Dec 2009 17:22:00 +0000 (UTC) (envelope-from jh@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C543A8FC12;
	Wed, 30 Dec 2009 17:22:00 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBUHM0Pd065312;
	Wed, 30 Dec 2009 17:22:00 GMT (envelope-from jh@svn.freebsd.org)
Received: (from jh@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBUHM03r065310;
	Wed, 30 Dec 2009 17:22:00 GMT (envelope-from jh@svn.freebsd.org)
Message-Id: <200912301722.nBUHM03r065310@svn.freebsd.org>
From: Jaakko Heinonen 
Date: Wed, 30 Dec 2009 17:22:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201263 - stable/8/lib/libc/gen
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Wed, 30 Dec 2009 17:22:00 -0000

Author: jh
Date: Wed Dec 30 17:22:00 2009
New Revision: 201263
URL: http://svn.freebsd.org/changeset/base/201263

Log:
  MFC r199844:
  
  Reset path name back to original correctly in fts_build() when
  FTS_NOCHDIR option is used. fts_build() could strip a trailing slash
  from path name in post-order visit if a path pointing to an empty
  directory was given for fts_open().
  
  PR:		bin/133907, kern/134513
  Approved by:	trasz (mentor)

Modified:
  stable/8/lib/libc/gen/fts.c
Directory Properties:
  stable/8/lib/libc/   (props changed)
  stable/8/lib/libc/stdtime/   (props changed)

Modified: stable/8/lib/libc/gen/fts.c
==============================================================================
--- stable/8/lib/libc/gen/fts.c	Wed Dec 30 17:16:49 2009	(r201262)
+++ stable/8/lib/libc/gen/fts.c	Wed Dec 30 17:22:00 2009	(r201263)
@@ -836,11 +836,8 @@ mem1:				saved_errno = errno;
 	 * If not changing directories, reset the path back to original
 	 * state.
 	 */
-	if (ISSET(FTS_NOCHDIR)) {
-		if (len == sp->fts_pathlen || nitems == 0)
-			--cp;
-		*cp = '\0';
-	}
+	if (ISSET(FTS_NOCHDIR))
+		sp->fts_path[cur->fts_pathlen] = '\0';
 
 	/*
 	 * If descended after called from fts_children or after called from

From owner-svn-src-stable-8@FreeBSD.ORG  Wed Dec 30 17:42:42 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 1B4AD106566C;
	Wed, 30 Dec 2009 17:42:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0A3968FC1A;
	Wed, 30 Dec 2009 17:42:42 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBUHgfIo065822;
	Wed, 30 Dec 2009 17:42:41 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBUHgf0c065820;
	Wed, 30 Dec 2009 17:42:41 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200912301742.nBUHgf0c065820@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 30 Dec 2009 17:42:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201265 - stable/8/sys/boot/i386
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Wed, 30 Dec 2009 17:42:42 -0000

Author: jhb
Date: Wed Dec 30 17:42:41 2009
New Revision: 201265
URL: http://svn.freebsd.org/changeset/base/201265

Log:
  MFC 200872:
  Don't build zfsboot, gptzfsboot, and zfsloader if WITHOUT_ZFS is enabled.

Modified:
  stable/8/sys/boot/i386/Makefile
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/boot/i386/Makefile
==============================================================================
--- stable/8/sys/boot/i386/Makefile	Wed Dec 30 17:23:27 2009	(r201264)
+++ stable/8/sys/boot/i386/Makefile	Wed Dec 30 17:42:41 2009	(r201265)
@@ -1,9 +1,15 @@
 # $FreeBSD$
 
-SUBDIR=		mbr pmbr boot0 boot0sio btx boot2 cdboot gptboot zfsboot \
-		gptzfsboot kgzldr libi386 libfirewire loader zfsloader
+.include 
+
+SUBDIR=		mbr pmbr boot0 boot0sio btx boot2 cdboot gptboot kgzldr \
+		libi386 libfirewire loader
 
 # special boot programs, 'self-extracting boot2+loader'
 SUBDIR+=	pxeldr
 
+.if ${MK_ZFS} != "no"
+SUBDIR+=	zfsboot gptzfsboot zfsloader
+.endif
+
 .include 

From owner-svn-src-stable-8@FreeBSD.ORG  Wed Dec 30 17:53:07 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 838AB106566C;
	Wed, 30 Dec 2009 17:53:07 +0000 (UTC) (envelope-from jhb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 71C4F8FC1A;
	Wed, 30 Dec 2009 17:53:07 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBUHr7Mg066158;
	Wed, 30 Dec 2009 17:53:07 GMT (envelope-from jhb@svn.freebsd.org)
Received: (from jhb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBUHr7ET066155;
	Wed, 30 Dec 2009 17:53:07 GMT (envelope-from jhb@svn.freebsd.org)
Message-Id: <200912301753.nBUHr7ET066155@svn.freebsd.org>
From: John Baldwin 
Date: Wed, 30 Dec 2009 17:53:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201267 - stable/8/lib/libstand
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Wed, 30 Dec 2009 17:53:07 -0000

Author: jhb
Date: Wed Dec 30 17:53:07 2009
New Revision: 201267
URL: http://svn.freebsd.org/changeset/base/201267

Log:
  MFC 200919:
  Fix a bug in gzipfs that prevented lseek() from working and add lseek()
  support to bzip2fs.  This fixes problems with loading compressed amd64
  kernel modules containing debug symbols.

Modified:
  stable/8/lib/libstand/bzipfs.c
  stable/8/lib/libstand/gzipfs.c
Directory Properties:
  stable/8/lib/libstand/   (props changed)

Modified: stable/8/lib/libstand/bzipfs.c
==============================================================================
--- stable/8/lib/libstand/bzipfs.c	Wed Dec 30 17:45:35 2009	(r201266)
+++ stable/8/lib/libstand/bzipfs.c	Wed Dec 30 17:53:07 2009	(r201267)
@@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$");
 #ifndef REGRESSION
 #include "stand.h"
 #else
+#include 
 #include 
 #include 
 #include 
@@ -42,7 +43,7 @@ struct open_file {
 };
 #define F_READ          0x0001  /* file opened for reading */
 #define EOFFSET (ELAST+8)       /* relative seek not supported */
-static inline u_int min(u_int a, u_int b) { return (a < b ? a : b); }
+static inline u_int min(u_int a, u_int b) { return(a < b ? a : b); }
 #define panic(x, y) abort()
 #endif
 
@@ -174,6 +175,8 @@ bzf_open(const char *fname, struct open_
 
     /* Construct new name */
     bzfname = malloc(strlen(fname) + 5);
+    if (bzfname == NULL)
+	return(ENOMEM);
     sprintf(bzfname, "%s.bz2", fname);
 
     /* Try to open the compressed datafile */
@@ -195,13 +198,14 @@ bzf_open(const char *fname, struct open_
 
     /* Allocate a bz_file structure, populate it */
     bzf = malloc(sizeof(struct bz_file));
+    if (bzf == NULL)
+	return(ENOMEM);
     bzero(bzf, sizeof(struct bz_file));
     bzf->bzf_rawfd = rawfd;
 
-    /* Verify that the file is bzipped (XXX why do this afterwards?) */
+    /* Verify that the file is bzipped */
     if (check_header(bzf)) {
 	close(bzf->bzf_rawfd);
-	BZ2_bzDecompressEnd(&(bzf->bzf_bzstream));
 	free(bzf);
 	return(EFTYPE);
     }
@@ -247,7 +251,7 @@ bzf_read(struct open_file *f, void *buf,
 	if (bzf->bzf_bzstream.avail_in == 0) {		/* oops, unexpected EOF */
 	    printf("bzf_read: unexpected EOF\n");
 	    if (bzf->bzf_bzstream.avail_out == size)
-		return (EIO);
+		return(EIO);
 	    break;
 	}
 
@@ -266,6 +270,50 @@ bzf_read(struct open_file *f, void *buf,
     return(0);
 }
 
+static int
+bzf_rewind(struct open_file *f)
+{
+    struct bz_file	*bzf = (struct bz_file *)f->f_fsdata;
+    struct bz_file	*bzf_tmp;
+
+    /*
+     * Since bzip2 does not have an equivalent inflateReset function a crude
+     * one needs to be provided.  The functions all called in such a way that
+     * at any time an error occurs a role back can be done (effectively making
+     * this rewind 'atomic', either the reset occurs successfully or not at all,
+     * with no 'undefined' state happening).
+     */
+
+    /* Allocate a bz_file structure, populate it */
+    bzf_tmp = malloc(sizeof(struct bz_file));
+    if (bzf_tmp == NULL)
+	return(-1);
+    bzero(bzf_tmp, sizeof(struct bz_file));
+    bzf_tmp->bzf_rawfd = bzf->bzf_rawfd;
+
+    /* Initialise the inflation engine */
+    if (BZ2_bzDecompressInit(&(bzf_tmp->bzf_bzstream), 0, 1) != BZ_OK) {
+	free(bzf_tmp);
+	return(-1);
+    }
+
+    /* Seek back to the beginning of the file */
+    if (lseek(bzf->bzf_rawfd, 0, SEEK_SET) == -1) {
+	BZ2_bzDecompressEnd(&(bzf_tmp->bzf_bzstream));
+	free(bzf_tmp);
+	return(-1);
+    }
+
+    /* Free old bz_file data */
+    BZ2_bzDecompressEnd(&(bzf->bzf_bzstream));
+    free(bzf);
+
+    /* Use the new bz_file data */
+    f->f_fsdata = bzf_tmp;
+
+    return(0);
+}
+
 static off_t
 bzf_seek(struct open_file *f, off_t offset, int where)
 {
@@ -284,14 +332,17 @@ bzf_seek(struct open_file *f, off_t offs
 	target = -1;
     default:
 	errno = EINVAL;
-	return (-1);
+	return(-1);
     }
 
     /* Can we get there from here? */
-    if (target < bzf->bzf_bzstream.total_out_lo32) {
+    if (target < bzf->bzf_bzstream.total_out_lo32 && bzf_rewind(f) != 0) {
 	errno = EOFFSET;
 	return -1;
-    } 
+    }
+
+    /* if bzf_rewind was called then bzf has changed */
+    bzf = (struct bz_file *)f->f_fsdata;
 
     /* skip forwards if required */
     while (target > bzf->bzf_bzstream.total_out_lo32) {
@@ -301,7 +352,7 @@ bzf_seek(struct open_file *f, off_t offs
 	    return(-1);
     }
     /* This is where we are (be honest if we overshot) */
-    return (bzf->bzf_bzstream.total_out_lo32);
+    return(bzf->bzf_bzstream.total_out_lo32);
 }
 
 static int

Modified: stable/8/lib/libstand/gzipfs.c
==============================================================================
--- stable/8/lib/libstand/gzipfs.c	Wed Dec 30 17:45:35 2009	(r201266)
+++ stable/8/lib/libstand/gzipfs.c	Wed Dec 30 17:53:07 2009	(r201267)
@@ -212,10 +212,9 @@ zf_open(const char *fname, struct open_f
     bzero(zf, sizeof(struct z_file));
     zf->zf_rawfd = rawfd;
 
-    /* Verify that the file is gzipped (XXX why do this afterwards?) */
+    /* Verify that the file is gzipped */
     if (check_header(zf)) {
 	close(zf->zf_rawfd);
-	inflateEnd(&(zf->zf_zstream));
 	free(zf);
 	return(EFTYPE);
     }
@@ -261,7 +260,7 @@ zf_read(struct open_file *f, void *buf, 
 	if (zf->zf_zstream.avail_in == 0) {		/* oops, unexpected EOF */
 	    printf("zf_read: unexpected EOF\n");
 	    if (zf->zf_zstream.avail_out == size)
-		return (EIO);
+		return(EIO);
 	    break;
 	}
 
@@ -286,12 +285,13 @@ zf_rewind(struct open_file *f)
     struct z_file	*zf = (struct z_file *)f->f_fsdata;
 
     if (lseek(zf->zf_rawfd, zf->zf_dataoffset, SEEK_SET) == -1)
-	return -1;
+	return(-1);
     zf->zf_zstream.avail_in = 0;
     zf->zf_zstream.next_in = NULL;
+    zf->zf_endseen = 0;
     (void)inflateReset(&zf->zf_zstream);
 
-    return 0;
+    return(0);
 }
 
 static off_t
@@ -312,12 +312,12 @@ zf_seek(struct open_file *f, off_t offse
 	target = -1;
     default:
 	errno = EINVAL;
-	return (-1);
+	return(-1);
     }
 
     /* rewind if required */
     if (target < zf->zf_zstream.total_out && zf_rewind(f) != 0)
-	return -1;
+	return(-1);
 
     /* skip forwards if required */
     while (target > zf->zf_zstream.total_out) {
@@ -327,7 +327,7 @@ zf_seek(struct open_file *f, off_t offse
 	    return(-1);
     }
     /* This is where we are (be honest if we overshot) */
-    return (zf->zf_zstream.total_out);
+    return(zf->zf_zstream.total_out);
 }
 
 

From owner-svn-src-stable-8@FreeBSD.ORG  Wed Dec 30 19:25:40 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 63663106566C;
	Wed, 30 Dec 2009 19:25:40 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5221C8FC1B;
	Wed, 30 Dec 2009 19:25:40 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBUJPeRc068331;
	Wed, 30 Dec 2009 19:25:40 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBUJPegE068329;
	Wed, 30 Dec 2009 19:25:40 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <200912301925.nBUJPegE068329@svn.freebsd.org>
From: Doug Barton 
Date: Wed, 30 Dec 2009 19:25:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201271 - stable/8/etc
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Wed, 30 Dec 2009 19:25:40 -0000

Author: dougb
Date: Wed Dec 30 19:25:40 2009
New Revision: 201271
URL: http://svn.freebsd.org/changeset/base/201271

Log:
  MFC r201036:
  
  Delete some trailing whitespace

Modified:
  stable/8/etc/rc.subr
Directory Properties:
  stable/8/etc/   (props changed)

Modified: stable/8/etc/rc.subr
==============================================================================
--- stable/8/etc/rc.subr	Wed Dec 30 19:06:16 2009	(r201270)
+++ stable/8/etc/rc.subr	Wed Dec 30 19:25:40 2009	(r201271)
@@ -738,7 +738,7 @@ $command $rc_flags $command_args"
 				if [ -n "$_nice" ]; then
 					if [ -z "$_user" ]; then
 						_doit="sh -c \"$_doit\""
-					fi	
+					fi
 					_doit="nice -n $_nice $_doit"
 				fi
 			fi
@@ -1063,7 +1063,7 @@ load_rc_config()
 		esac
 	done
 }
-  
+
 #
 # load_rc_config_var name var
 #	Read the rc.conf(5) var for name and set in the

From owner-svn-src-stable-8@FreeBSD.ORG  Wed Dec 30 19:36:40 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 70928106566C;
	Wed, 30 Dec 2009 19:36:40 +0000 (UTC)
	(envelope-from dougb@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5E27E8FC17;
	Wed, 30 Dec 2009 19:36:40 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBUJaexm068675;
	Wed, 30 Dec 2009 19:36:40 GMT (envelope-from dougb@svn.freebsd.org)
Received: (from dougb@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBUJae9c068671;
	Wed, 30 Dec 2009 19:36:40 GMT (envelope-from dougb@svn.freebsd.org)
Message-Id: <200912301936.nBUJae9c068671@svn.freebsd.org>
From: Doug Barton 
Date: Wed, 30 Dec 2009 19:36:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201273 - in stable/8/usr.sbin: . service
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Wed, 30 Dec 2009 19:36:40 -0000

Author: dougb
Date: Wed Dec 30 19:36:40 2009
New Revision: 201273
URL: http://svn.freebsd.org/changeset/base/201273

Log:
  MFC r200743:
  
  The service command is an easy interface to the rc.d system.
  Its primary purpose is to start and stop services provided by
  the rc.d scripts, however it can also be used to list the scripts
  using various criteria.
  
  MFC r200809, r200980, r201035, r201069, 201070:
  
  Updates/fixes suggested after the initial introducition

Added:
     - copied from r200743, head/usr.sbin/service/
Directory Properties:
  stable/8/usr.sbin/service/   (props changed)
Modified:
  stable/8/usr.sbin/Makefile   (contents, props changed)
  stable/8/usr.sbin/service/service.8
  stable/8/usr.sbin/service/service.sh
Directory Properties:
  stable/8/usr.sbin/   (props changed)

Modified: stable/8/usr.sbin/Makefile
==============================================================================
--- stable/8/usr.sbin/Makefile	Wed Dec 30 19:26:46 2009	(r201272)
+++ stable/8/usr.sbin/Makefile	Wed Dec 30 19:36:40 2009	(r201273)
@@ -167,6 +167,7 @@ SUBDIR=	${_ac} \
 	${_sa} \
 	${_sade} \
 	${_sendmail} \
+	service \
 	setfib \
 	setfmac \
 	setpmac \

Modified: stable/8/usr.sbin/service/service.8
==============================================================================
--- head/usr.sbin/service/service.8	Sun Dec 20 01:34:12 2009	(r200743)
+++ stable/8/usr.sbin/service/service.8	Wed Dec 30 19:36:40 2009	(r201273)
@@ -24,18 +24,18 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd December 19, 2009
+.Dd December 26, 2009
 .Dt service 8
 .Os
 .Sh NAME
 .Nm service
-.Nd "service command manual page"
+.Nd "control (start/stop/etc.) or list system services"
 .Sh SYNOPSIS
 .Nm
 .Fl e
 .Nm
 .Op Fl v
-.Fl l|r
+.Fl l | r
 .Nm
 .Op Fl v
 .Ar  start|stop|etc.
@@ -44,7 +44,10 @@ The
 .Nm
 command is an easy interface to the rc.d system.
 Its primary purpose is to start and stop services provided
-by the rc.d scripts, however it can also be used to list
+by the rc.d scripts.
+When used for this purpose it will set the same restricted
+environment that is in use at boot time (see below).
+It can also be used to list
 the scripts using various criteria.
 .Pp
 The options are as follows:
@@ -78,6 +81,20 @@ above, but list all of the files, not ju
 .It Fl v
 Be slightly more verbose
 .El
+.Sh ENVIRONMENT
+When used to run rc.d scripts the
+.Nm
+command sets
+.Ev HOME
+to
+.Pa /
+and
+.Ev PATH
+to
+.Pa /sbin:/bin:/usr/sbin:/usr/bin
+which is how they are set in
+.Pa /etc/rc
+at boot time.
 .Sh EXIT STATUS
 .Ex -std
 .Sh EXAMPLES
@@ -99,8 +116,8 @@ for the names of the rc.d scripts:
 .Dl "}"
 .Dl "complete -F _service service"
 .Sh SEE ALSO
-.Xr bash 1 ,
-.Xr rc.conf 5 .
+.Xr bash 1 Pq Pa ports/shells/bash ,
+.Xr rc.conf 5 ,
 .Xr rc 8 ,
 .Xr rcorder 8
 .Sh HISTORY

Modified: stable/8/usr.sbin/service/service.sh
==============================================================================
--- head/usr.sbin/service/service.sh	Sun Dec 20 01:34:12 2009	(r200743)
+++ stable/8/usr.sbin/service/service.sh	Wed Dec 30 19:36:40 2009	(r201273)
@@ -33,7 +33,7 @@ usage () {
 	echo ''
 	echo 'Usage:'
 	echo "${0##*/} -e"
-	echo "${0##*/} [-v] -l|r"
+	echo "${0##*/} [-v] -l | -r"
 	echo "${0##*/} [-v]  start|stop|etc."
 	echo "${0##*/} -h"
 	echo ''
@@ -106,11 +106,11 @@ else
 	exit 1
 fi
 
+cd /
 for dir in /etc/rc.d $local_startup; do
 	if [ -x "$dir/$script" ]; then
 		[ -n "$VERBOSE" ] && echo "$script is located in $dir"
-		$dir/$script $*
-		exit $?
+		exec env -i HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin $dir/$script $*
 	fi
 done
 

From owner-svn-src-stable-8@FreeBSD.ORG  Wed Dec 30 21:00:54 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 794FA10658AE;
	Wed, 30 Dec 2009 21:00:54 +0000 (UTC)
	(envelope-from marcel@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 5EE908FC13;
	Wed, 30 Dec 2009 21:00:54 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBUL0svl071028;
	Wed, 30 Dec 2009 21:00:54 GMT (envelope-from marcel@svn.freebsd.org)
Received: (from marcel@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBUL0srM071026;
	Wed, 30 Dec 2009 21:00:54 GMT (envelope-from marcel@svn.freebsd.org)
Message-Id: <200912302100.nBUL0srM071026@svn.freebsd.org>
From: Marcel Moolenaar 
Date: Wed, 30 Dec 2009 21:00:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201281 - stable/8/sys/ia64/include
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Wed, 30 Dec 2009 21:00:54 -0000

Author: marcel
Date: Wed Dec 30 21:00:54 2009
New Revision: 201281
URL: http://svn.freebsd.org/changeset/base/201281

Log:
  MFC rev 201032:
  Use unordered memory loads and stores for the in* and out*
  family of functions.

Modified:
  stable/8/sys/ia64/include/cpufunc.h
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/ia64/include/cpufunc.h
==============================================================================
--- stable/8/sys/ia64/include/cpufunc.h	Wed Dec 30 20:49:13 2009	(r201280)
+++ stable/8/sys/ia64/include/cpufunc.h	Wed Dec 30 21:00:54 2009	(r201281)
@@ -64,11 +64,10 @@ extern void *ia64_ioport_address(u_int);
 static __inline uint8_t
 inb(unsigned int port)
 {
-	__volatile uint8_t *p;
 	uint8_t v;
-	p = __PIO_ADDR(port);
+
 	ia64_mf();
-	v = *p;
+	v = ia64_ld1(__PIO_ADDR(port));
 	ia64_mf_a();
 	ia64_mf();
 	return (v);
@@ -77,11 +76,10 @@ inb(unsigned int port)
 static __inline uint16_t
 inw(unsigned int port)
 {
-	__volatile uint16_t *p;
 	uint16_t v;
-	p = __PIO_ADDR(port);
+
 	ia64_mf();
-	v = *p;
+	v = ia64_ld2(__PIO_ADDR(port));
 	ia64_mf_a();
 	ia64_mf();
 	return (v);
@@ -90,11 +88,10 @@ inw(unsigned int port)
 static __inline uint32_t
 inl(unsigned int port)
 {
-	volatile uint32_t *p;
 	uint32_t v;
-	p = __PIO_ADDR(port);
+
 	ia64_mf();
-	v = *p;
+	v = ia64_ld4(__PIO_ADDR(port));
 	ia64_mf_a();
 	ia64_mf();
 	return (v);
@@ -127,10 +124,9 @@ insl(unsigned int port, void *addr, size
 static __inline void
 outb(unsigned int port, uint8_t data)
 {
-	volatile uint8_t *p;
-	p = __PIO_ADDR(port);
+
 	ia64_mf();
-	*p = data;
+	ia64_st1(__PIO_ADDR(port), data);
 	ia64_mf_a();
 	ia64_mf();
 }
@@ -138,10 +134,9 @@ outb(unsigned int port, uint8_t data)
 static __inline void
 outw(unsigned int port, uint16_t data)
 {
-	volatile uint16_t *p;
-	p = __PIO_ADDR(port);
+
 	ia64_mf();
-	*p = data;
+	ia64_st2(__PIO_ADDR(port), data);
 	ia64_mf_a();
 	ia64_mf();
 }
@@ -149,10 +144,9 @@ outw(unsigned int port, uint16_t data)
 static __inline void
 outl(unsigned int port, uint32_t data)
 {
-	volatile uint32_t *p;
-	p = __PIO_ADDR(port);
+
 	ia64_mf();
-	*p = data;
+	ia64_st4(__PIO_ADDR(port), data);
 	ia64_mf_a();
 	ia64_mf();
 }

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:03:29 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7C471106568D;
	Thu, 31 Dec 2009 00:03:29 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 50E368FC0C;
	Thu, 31 Dec 2009 00:03:29 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV03Trc077850;
	Thu, 31 Dec 2009 00:03:29 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV03Tp2077848;
	Thu, 31 Dec 2009 00:03:29 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310003.nBV03Tp2077848@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:03:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201294 - stable/8/sys/dev/usb/serial
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:03:29 -0000

Author: thompsa
Date: Thu Dec 31 00:03:29 2009
New Revision: 201294
URL: http://svn.freebsd.org/changeset/base/201294

Log:
  MFC r199332
  
   Sort ID list by vendor.

Modified:
  stable/8/sys/dev/usb/serial/u3g.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/serial/u3g.c
==============================================================================
--- stable/8/sys/dev/usb/serial/u3g.c	Wed Dec 30 23:26:29 2009	(r201293)
+++ stable/8/sys/dev/usb/serial/u3g.c	Thu Dec 31 00:03:29 2009	(r201294)
@@ -173,6 +173,10 @@ MODULE_DEPEND(u3g, usb, 1, 1, 1);
 
 static const struct usb_device_id u3g_devs[] = {
 #define	U3G_DEV(v,p,i) { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) }
+	/* OEM: Huawei */
+	U3G_DEV(HUAWEI, MOBILE, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E180V, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E220, U3GFL_HUAWEI_INIT),
 	/* OEM: Option */
 	U3G_DEV(OPTION, GT3G, 0),
 	U3G_DEV(OPTION, GT3GQUAD, 0),
@@ -186,10 +190,8 @@ static const struct usb_device_id u3g_de
 	/* OEM: Qualcomm, Inc. */
 	U3G_DEV(QUALCOMMINC, ZTE_STOR, U3GFL_SCSI_EJECT),
 	U3G_DEV(QUALCOMMINC, CDMA_MSM, U3GFL_SCSI_EJECT),
-	/* OEM: Huawei */
-	U3G_DEV(HUAWEI, MOBILE, U3GFL_HUAWEI_INIT),
-	U3G_DEV(HUAWEI, E180V, U3GFL_HUAWEI_INIT),
-	U3G_DEV(HUAWEI, E220, U3GFL_HUAWEI_INIT),
+	/* OEM: Merlin */
+	U3G_DEV(MERLIN, V620, 0),
 	/* OEM: Novatel */
 	U3G_DEV(NOVATEL, CDMA_MODEM, 0),
 	U3G_DEV(NOVATEL, ES620, 0),
@@ -208,8 +210,6 @@ static const struct usb_device_id u3g_de
 	U3G_DEV(NOVATEL, ZEROCD, U3GFL_SCSI_EJECT),
 	U3G_DEV(NOVATEL, U760, U3GFL_SCSI_EJECT),
 	U3G_DEV(DELL, U740, 0),
-	/* OEM: Merlin */
-	U3G_DEV(MERLIN, V620, 0),
 	/* OEM: Sierra Wireless: */
 	U3G_DEV(SIERRA, AIRCARD580, 0),
 	U3G_DEV(SIERRA, AIRCARD595, 0),

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:04:06 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4F0DE106566B;
	Thu, 31 Dec 2009 00:04:06 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 23B488FC18;
	Thu, 31 Dec 2009 00:04:06 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV046Bk077912;
	Thu, 31 Dec 2009 00:04:06 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV046qE077909;
	Thu, 31 Dec 2009 00:04:06 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310004.nBV046qE077909@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:04:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201295 - stable/8/sys/dev/usb/controller
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:04:06 -0000

Author: thompsa
Date: Thu Dec 31 00:04:05 2009
New Revision: 201295
URL: http://svn.freebsd.org/changeset/base/201295

Log:
  MFC r200087
  
   Add uhci/ehci controller ids.
  
  Submitted by:	mitya_cabletv.dp.ua

Modified:
  stable/8/sys/dev/usb/controller/ehci_pci.c
  stable/8/sys/dev/usb/controller/uhci_pci.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/controller/ehci_pci.c
==============================================================================
--- stable/8/sys/dev/usb/controller/ehci_pci.c	Thu Dec 31 00:03:29 2009	(r201294)
+++ stable/8/sys/dev/usb/controller/ehci_pci.c	Thu Dec 31 00:04:05 2009	(r201295)
@@ -193,6 +193,10 @@ ehci_pci_match(device_t self)
 		return "Intel 82801I (ICH9) USB 2.0 controller";
 	case 0x293c8086:
 		return "Intel 82801I (ICH9) USB 2.0 controller";
+	case 0x3a3a8086:
+		return "Intel 82801IJ (ICH10) USB 2.0 controller USB-A";
+	case 0x3a3c8086:
+		return "Intel 82801IJ (ICH10) USB 2.0 controller USB-B";
 
 	case 0x00e01033:
 		return ("NEC uPD 720100 USB 2.0 controller");

Modified: stable/8/sys/dev/usb/controller/uhci_pci.c
==============================================================================
--- stable/8/sys/dev/usb/controller/uhci_pci.c	Thu Dec 31 00:03:29 2009	(r201294)
+++ stable/8/sys/dev/usb/controller/uhci_pci.c	Thu Dec 31 00:04:05 2009	(r201295)
@@ -230,6 +230,18 @@ uhci_pci_match(device_t self)
 		return ("Intel 82801I (ICH9) USB controller");
 	case 0x29398086:
 		return ("Intel 82801I (ICH9) USB controller");
+	case 0x3a348086:
+		return ("Intel 82801IJ (ICH10) USB controller USB-A");
+	case 0x3a358086:
+		return ("Intel 82801IJ (ICH10) USB controller USB-B");
+	case 0x3a368086:
+		return ("Intel 82801IJ (ICH10) USB controller USB-C");
+	case 0x3a378086:
+		return ("Intel 82801IJ (ICH10) USB controller USB-D");
+	case 0x3a388086:
+		return ("Intel 82801IJ (ICH10) USB controller USB-E");
+	case 0x3a398086:
+		return ("Intel 82801IJ (ICH10) USB controller USB-F");
 
 	case 0x719a8086:
 		return ("Intel 82443MX USB controller");

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:04:49 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 3D7B61065676;
	Thu, 31 Dec 2009 00:04:49 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 2BD128FC1D;
	Thu, 31 Dec 2009 00:04:49 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV04nHj077973;
	Thu, 31 Dec 2009 00:04:49 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV04n4W077971;
	Thu, 31 Dec 2009 00:04:49 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310004.nBV04n4W077971@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:04:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201296 - stable/8/sys/dev/usb/input
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:04:49 -0000

Author: thompsa
Date: Thu Dec 31 00:04:48 2009
New Revision: 201296
URL: http://svn.freebsd.org/changeset/base/201296

Log:
  MFC r200304
  
   If the ID byte is non zero then we allow descriptors having multiple sizes.

Modified:
  stable/8/sys/dev/usb/input/uhid.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/input/uhid.c
==============================================================================
--- stable/8/sys/dev/usb/input/uhid.c	Thu Dec 31 00:04:05 2009	(r201295)
+++ stable/8/sys/dev/usb/input/uhid.c	Thu Dec 31 00:04:48 2009	(r201296)
@@ -173,12 +173,21 @@ uhid_intr_callback(struct usb_xfer *xfer
 		DPRINTF("transferred!\n");
 
 		pc = usbd_xfer_get_frame(xfer, 0);
-		if (actlen >= sc->sc_isize) {
+
+		/* 
+		 * If the ID byte is non zero we allow descriptors
+		 * having multiple sizes:
+		 */
+		if ((actlen >= sc->sc_isize) ||
+		    ((actlen > 0) && (sc->sc_iid != 0))) {
+			/* limit report length to the maximum */
+			if (actlen > sc->sc_isize)
+				actlen = sc->sc_isize;
 			usb_fifo_put_data(sc->sc_fifo.fp[USB_FIFO_RX], pc,
-			    0, sc->sc_isize, 1);
+			    0, actlen, 1);
 		} else {
 			/* ignore it */
-			DPRINTF("ignored short transfer, %d bytes\n", actlen);
+			DPRINTF("ignored transfer, %d bytes\n", actlen);
 		}
 
 	case USB_ST_SETUP:

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:05:28 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A135A106566C;
	Thu, 31 Dec 2009 00:05:28 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 557068FC08;
	Thu, 31 Dec 2009 00:05:28 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV05S4Q078046;
	Thu, 31 Dec 2009 00:05:28 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV05Sgg078043;
	Thu, 31 Dec 2009 00:05:28 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310005.nBV05Sgg078043@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:05:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201297 - stable/8/sys/dev/usb/controller
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:05:28 -0000

Author: thompsa
Date: Thu Dec 31 00:05:28 2009
New Revision: 201297
URL: http://svn.freebsd.org/changeset/base/201297

Log:
  MFC r200305
  
   Correct name, 82801IJ -> 82801JI

Modified:
  stable/8/sys/dev/usb/controller/ehci_pci.c
  stable/8/sys/dev/usb/controller/uhci_pci.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/controller/ehci_pci.c
==============================================================================
--- stable/8/sys/dev/usb/controller/ehci_pci.c	Thu Dec 31 00:04:48 2009	(r201296)
+++ stable/8/sys/dev/usb/controller/ehci_pci.c	Thu Dec 31 00:05:28 2009	(r201297)
@@ -194,9 +194,9 @@ ehci_pci_match(device_t self)
 	case 0x293c8086:
 		return "Intel 82801I (ICH9) USB 2.0 controller";
 	case 0x3a3a8086:
-		return "Intel 82801IJ (ICH10) USB 2.0 controller USB-A";
+		return "Intel 82801JI (ICH10) USB 2.0 controller USB-A";
 	case 0x3a3c8086:
-		return "Intel 82801IJ (ICH10) USB 2.0 controller USB-B";
+		return "Intel 82801JI (ICH10) USB 2.0 controller USB-B";
 
 	case 0x00e01033:
 		return ("NEC uPD 720100 USB 2.0 controller");

Modified: stable/8/sys/dev/usb/controller/uhci_pci.c
==============================================================================
--- stable/8/sys/dev/usb/controller/uhci_pci.c	Thu Dec 31 00:04:48 2009	(r201296)
+++ stable/8/sys/dev/usb/controller/uhci_pci.c	Thu Dec 31 00:05:28 2009	(r201297)
@@ -231,17 +231,17 @@ uhci_pci_match(device_t self)
 	case 0x29398086:
 		return ("Intel 82801I (ICH9) USB controller");
 	case 0x3a348086:
-		return ("Intel 82801IJ (ICH10) USB controller USB-A");
+		return ("Intel 82801JI (ICH10) USB controller USB-A");
 	case 0x3a358086:
-		return ("Intel 82801IJ (ICH10) USB controller USB-B");
+		return ("Intel 82801JI (ICH10) USB controller USB-B");
 	case 0x3a368086:
-		return ("Intel 82801IJ (ICH10) USB controller USB-C");
+		return ("Intel 82801JI (ICH10) USB controller USB-C");
 	case 0x3a378086:
-		return ("Intel 82801IJ (ICH10) USB controller USB-D");
+		return ("Intel 82801JI (ICH10) USB controller USB-D");
 	case 0x3a388086:
-		return ("Intel 82801IJ (ICH10) USB controller USB-E");
+		return ("Intel 82801JI (ICH10) USB controller USB-E");
 	case 0x3a398086:
-		return ("Intel 82801IJ (ICH10) USB controller USB-F");
+		return ("Intel 82801JI (ICH10) USB controller USB-F");
 
 	case 0x719a8086:
 		return ("Intel 82443MX USB controller");

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:06:12 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CC0F310656A5;
	Thu, 31 Dec 2009 00:06:12 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B9F588FC0C;
	Thu, 31 Dec 2009 00:06:12 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV06CYT078110;
	Thu, 31 Dec 2009 00:06:12 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV06CMG078106;
	Thu, 31 Dec 2009 00:06:12 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310006.nBV06CMG078106@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:06:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201298 - in stable/8/sys/dev/usb: . net serial
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:06:13 -0000

Author: thompsa
Date: Thu Dec 31 00:06:12 2009
New Revision: 201298
URL: http://svn.freebsd.org/changeset/base/201298

Log:
  MFC r200306
  
   Add new device ids.
  
  PR:		usb/140951, usb/140923
  Submitted by:	Romain Tartiere, Brett Glass

Modified:
  stable/8/sys/dev/usb/net/if_axe.c
  stable/8/sys/dev/usb/serial/uftdi.c
  stable/8/sys/dev/usb/usbdevs
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/net/if_axe.c
==============================================================================
--- stable/8/sys/dev/usb/net/if_axe.c	Thu Dec 31 00:05:28 2009	(r201297)
+++ stable/8/sys/dev/usb/net/if_axe.c	Thu Dec 31 00:06:12 2009	(r201298)
@@ -141,6 +141,7 @@ static const struct usb_device_id axe_de
 	{USB_VPI(USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88172, 0)},
 	{USB_VPI(USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88178, AXE_FLAG_178)},
 	{USB_VPI(USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88772, AXE_FLAG_772)},
+	{USB_VPI(USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88772A, AXE_FLAG_772)},
 	{USB_VPI(USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC210T, 0)},
 	{USB_VPI(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D5055, AXE_FLAG_178)},
 	{USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB2AR, 0)},

Modified: stable/8/sys/dev/usb/serial/uftdi.c
==============================================================================
--- stable/8/sys/dev/usb/serial/uftdi.c	Thu Dec 31 00:05:28 2009	(r201297)
+++ stable/8/sys/dev/usb/serial/uftdi.c	Thu Dec 31 00:06:12 2009	(r201298)
@@ -221,6 +221,7 @@ static struct usb_device_id uftdi_devs[]
 	{USB_VPI(USB_VENDOR_DRESDENELEKTRONIK, USB_PRODUCT_DRESDENELEKTRONIK_WIRELESSHANDHELDTERMINAL, UFTDI_TYPE_8U232AM)},
 	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U100AX, UFTDI_TYPE_SIO)},
 	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_2232C, UFTDI_TYPE_8U232AM)},
+	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_2232D, UFTDI_TYPE_8U232AM)},
 	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U232AM, UFTDI_TYPE_8U232AM)},
 	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U232AM4, UFTDI_TYPE_8U232AM)},
 	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SEMC_DSS20, UFTDI_TYPE_8U232AM)},

Modified: stable/8/sys/dev/usb/usbdevs
==============================================================================
--- stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:05:28 2009	(r201297)
+++ stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:06:12 2009	(r201298)
@@ -904,6 +904,7 @@ product ASANTE EA		0x1427	Ethernet
 product ASIX AX88172		0x1720	10/100 Ethernet
 product ASIX AX88178		0x1780	AX88178
 product ASIX AX88772		0x7720	AX88772
+product ASIX AX88772A		0x772a	AX88772A USB 2.0 10/100 Ethernet
 
 /* ASUS products */
 product ASUS WL167G		0x1707	WL-167g Wireless Adapter
@@ -1319,6 +1320,7 @@ product FTDI SERIAL_8U100AX	0x8372	8U100
 product FTDI SERIAL_8U232AM	0x6001	8U232AM Serial
 product FTDI SERIAL_8U232AM4	0x6004	8U232AM Serial
 product FTDI SERIAL_2232C	0x6010	FT2232C Dual port Serial
+product FTDI SERIAL_2232D	0x9e90	FT2232D Dual port Serial
 /* Gude Analog- und Digitalsysteme products also uses FTDI's id: */
 product FTDI TACTRIX_OPENPORT_13M 0xcc48 OpenPort 1.3 Mitsubishi
 product FTDI TACTRIX_OPENPORT_13S 0xcc49 OpenPort 1.3 Subaru

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:06:53 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 272BC106566B;
	Thu, 31 Dec 2009 00:06:53 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 0B63E8FC1D;
	Thu, 31 Dec 2009 00:06:53 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV06qXG078169;
	Thu, 31 Dec 2009 00:06:52 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV06qs3078167;
	Thu, 31 Dec 2009 00:06:52 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310006.nBV06qs3078167@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:06:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201299 - stable/8/sys/dev/usb/net
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:06:53 -0000

Author: thompsa
Date: Thu Dec 31 00:06:52 2009
New Revision: 201299
URL: http://svn.freebsd.org/changeset/base/201299

Log:
  MFC r200307
  
   Fix dwSignature for NCM mode and add extra debug output.

Modified:
  stable/8/sys/dev/usb/net/if_cdce.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/net/if_cdce.c
==============================================================================
--- stable/8/sys/dev/usb/net/if_cdce.c	Thu Dec 31 00:06:12 2009	(r201298)
+++ stable/8/sys/dev/usb/net/if_cdce.c	Thu Dec 31 00:06:52 2009	(r201299)
@@ -1098,7 +1098,7 @@ cdce_ncm_fill_tx_frames(struct usb_xfer 
 	sc->sc_ncm.dpt.dwSignature[0] = 'N';
 	sc->sc_ncm.dpt.dwSignature[1] = 'C';
 	sc->sc_ncm.dpt.dwSignature[2] = 'M';
-	sc->sc_ncm.dpt.dwSignature[3] = 'x';
+	sc->sc_ncm.dpt.dwSignature[3] = '0';
 	USETW(sc->sc_ncm.dpt.wNextNdpIndex, 0);		/* reserved */
 
 	usbd_copy_in(pc, 0, &(sc->sc_ncm.hdr), sizeof(sc->sc_ncm.hdr));
@@ -1182,7 +1182,7 @@ cdce_ncm_bulk_read_callback(struct usb_x
 		if (actlen < (sizeof(sc->sc_ncm.hdr) +
 		    sizeof(sc->sc_ncm.dpt))) {
 			DPRINTFN(1, "frame too short\n");
-			goto tr_stall;
+			goto tr_setup;
 		}
 		usbd_copy_out(pc, 0, &(sc->sc_ncm.hdr),
 		    sizeof(sc->sc_ncm.hdr));
@@ -1191,7 +1191,12 @@ cdce_ncm_bulk_read_callback(struct usb_x
 		    (sc->sc_ncm.hdr.dwSignature[1] != 'C') ||
 		    (sc->sc_ncm.hdr.dwSignature[2] != 'M') ||
 		    (sc->sc_ncm.hdr.dwSignature[3] != 'H')) {
-			DPRINTFN(1, "invalid HDR signature\n");
+			DPRINTFN(1, "invalid HDR signature: "
+			    "0x%02x:0x%02x:0x%02x:0x%02x\n",
+			    sc->sc_ncm.hdr.dwSignature[0],
+			    sc->sc_ncm.hdr.dwSignature[1],
+			    sc->sc_ncm.hdr.dwSignature[2],
+			    sc->sc_ncm.hdr.dwSignature[3]);
 			goto tr_stall;
 		}
 		temp = UGETW(sc->sc_ncm.hdr.wBlockLength);
@@ -1202,7 +1207,7 @@ cdce_ncm_bulk_read_callback(struct usb_x
 		}
 		temp = UGETW(sc->sc_ncm.hdr.wDptIndex);
 		if ((temp + sizeof(sc->sc_ncm.dpt)) > actlen) {
-			DPRINTFN(1, "invalid DPT index\n");
+			DPRINTFN(1, "invalid DPT index: 0x%04x\n", temp);
 			goto tr_stall;
 		}
 		usbd_copy_out(pc, temp, &(sc->sc_ncm.dpt),
@@ -1211,8 +1216,13 @@ cdce_ncm_bulk_read_callback(struct usb_x
 		if ((sc->sc_ncm.dpt.dwSignature[0] != 'N') ||
 		    (sc->sc_ncm.dpt.dwSignature[1] != 'C') ||
 		    (sc->sc_ncm.dpt.dwSignature[2] != 'M') ||
-		    (sc->sc_ncm.dpt.dwSignature[3] != 'x')) {
-			DPRINTFN(1, "invalid DPT signature\n");
+		    (sc->sc_ncm.dpt.dwSignature[3] != '0')) {
+			DPRINTFN(1, "invalid DPT signature"
+			    "0x%02x:0x%02x:0x%02x:0x%02x\n",
+			    sc->sc_ncm.dpt.dwSignature[0],
+			    sc->sc_ncm.dpt.dwSignature[1],
+			    sc->sc_ncm.dpt.dwSignature[2],
+			    sc->sc_ncm.dpt.dwSignature[3]);
 			goto tr_stall;
 		}
 		nframes = UGETW(sc->sc_ncm.dpt.wLength) / 4;
@@ -1284,6 +1294,7 @@ cdce_ncm_bulk_read_callback(struct usb_x
 		DPRINTFN(1, "Efficiency: %u/%u bytes\n", sumdata, actlen);
 
 	case USB_ST_SETUP:
+tr_setup:
 		usbd_xfer_set_frame_len(xfer, 0, sc->sc_ncm.rx_max);
 		usbd_xfer_set_frames(xfer, 1);
 		usbd_transfer_submit(xfer);

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:07:37 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 74E901065759;
	Thu, 31 Dec 2009 00:07:37 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 633038FC15;
	Thu, 31 Dec 2009 00:07:37 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV07bBo078278;
	Thu, 31 Dec 2009 00:07:37 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV07bhe078276;
	Thu, 31 Dec 2009 00:07:37 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310007.nBV07bhe078276@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:07:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201301 - stable/8/sys/dev/usb/serial
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:07:37 -0000

Author: thompsa
Date: Thu Dec 31 00:07:37 2009
New Revision: 201301
URL: http://svn.freebsd.org/changeset/base/201301

Log:
  MFC r200308
  
   Fix hardware issue with FTDI chips: avoid sending a zero length packet due to
   hardware sending garbage on ZLPs.
  
  Reported by:	Corey Smith
  Submitted by:	HPS

Modified:
  stable/8/sys/dev/usb/serial/uftdi.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/serial/uftdi.c
==============================================================================
--- stable/8/sys/dev/usb/serial/uftdi.c	Thu Dec 31 00:07:26 2009	(r201300)
+++ stable/8/sys/dev/usb/serial/uftdi.c	Thu Dec 31 00:07:37 2009	(r201301)
@@ -165,7 +165,7 @@ static const struct usb_config uftdi_con
 		.endpoint = UE_ADDR_ANY,
 		.direction = UE_DIR_OUT,
 		.bufsize = UFTDI_OBUFSIZE,
-		.flags = {.pipe_bof = 1,.force_short_xfer = 1,},
+		.flags = {.pipe_bof = 1,},
 		.callback = &uftdi_write_callback,
 	},
 

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:08:18 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 282F91065696;
	Thu, 31 Dec 2009 00:08:18 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 15A058FC0C;
	Thu, 31 Dec 2009 00:08:18 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV08H0s078348;
	Thu, 31 Dec 2009 00:08:17 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV08Hes078343;
	Thu, 31 Dec 2009 00:08:17 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310008.nBV08Hes078343@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:08:17 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201302 - in stable/8/sys/dev/usb: . quirk serial
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:08:18 -0000

Author: thompsa
Date: Thu Dec 31 00:08:17 2009
New Revision: 201302
URL: http://svn.freebsd.org/changeset/base/201302

Log:
  MFC r200395
  
   Add a quirk for the Curitel UM175 where setting multiplexing for call
   management over the data endpoint causes communication to die.
  
   Take this one step further and model it on the existing NetBSD quirk and import
   other device IDs from them.
  
  Obtained from:	NetBSD

Modified:
  stable/8/sys/dev/usb/quirk/usb_quirk.c
  stable/8/sys/dev/usb/quirk/usb_quirk.h
  stable/8/sys/dev/usb/serial/umodem.c
  stable/8/sys/dev/usb/usbdevs
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/quirk/usb_quirk.c
==============================================================================
--- stable/8/sys/dev/usb/quirk/usb_quirk.c	Thu Dec 31 00:07:37 2009	(r201301)
+++ stable/8/sys/dev/usb/quirk/usb_quirk.c	Thu Dec 31 00:08:17 2009	(r201302)
@@ -125,6 +125,24 @@ static struct usb_quirk_entry usb_quirks
 	/* MS keyboards do weird things */
 	{USB_QUIRK_ENTRY(USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLINTELLIMOUSE, 0x0000, 0xFFFF, UQ_MS_LEADING_BYTE, UQ_NONE)},
 	{USB_QUIRK_ENTRY(USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY24X, 0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE, UQ_NONE)},
+	/* umodem(4) device quirks */
+	{USB_QUIRK_ENTRY(USB_VENDOR_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS,
+	    0x100, 0x100, UQ_ASSUME_CM_OVER_DATA)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SANYO, USB_PRODUCT_SANYO_SCP4900,
+	    0x000, 0x000, UQ_ASSUME_CM_OVER_DATA)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_T720C,
+	    0x001, 0x001, UQ_ASSUME_CM_OVER_DATA)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_EICON, USB_PRODUCT_EICON_DIVA852,
+	    0x100, 0x100, UQ_ASSUME_CM_OVER_DATA)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SIEMENS2, USB_PRODUCT_SIEMENS2_ES75,
+	    0x000, 0x000, UQ_ASSUME_CM_OVER_DATA)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_QUALCOMM, USB_PRODUCT_QUALCOMM_CDMA_MSM,
+	    0x0000, 0xFFFF, UQ_ASSUME_CM_OVER_DATA)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_QUALCOMM2, USB_PRODUCT_QUALCOMM2_CDMA_MSM,
+	    0x0000, 0xFFFF, UQ_ASSUME_CM_OVER_DATA)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_CURITEL, USB_PRODUCT_CURITEL_UM175,
+	    0x0000, 0xFFFF, UQ_ASSUME_CM_OVER_DATA)},
+
 };
 
 static const char *usb_quirk_str[USB_QUIRK_MAX] = {
@@ -152,6 +170,7 @@ static const char *usb_quirk_str[USB_QUI
 	[UQ_CFG_INDEX_3]	= "UQ_CFG_INDEX_3",
 	[UQ_CFG_INDEX_4]	= "UQ_CFG_INDEX_4",
 	[UQ_CFG_INDEX_0]	= "UQ_CFG_INDEX_0",
+	[UQ_ASSUME_CM_OVER_DATA]= "UQ_ASSUME_CM_OVER_DATA",
 };
 
 /*------------------------------------------------------------------------*

Modified: stable/8/sys/dev/usb/quirk/usb_quirk.h
==============================================================================
--- stable/8/sys/dev/usb/quirk/usb_quirk.h	Thu Dec 31 00:07:37 2009	(r201301)
+++ stable/8/sys/dev/usb/quirk/usb_quirk.h	Thu Dec 31 00:08:17 2009	(r201302)
@@ -53,6 +53,7 @@ enum {	/* keep in sync with usb_quirk_st
 	UQ_CFG_INDEX_3,		/* select configuration index 3 by default */
 	UQ_CFG_INDEX_4,		/* select configuration index 4 by default */
 	UQ_CFG_INDEX_0,		/* select configuration index 0 by default */
+	UQ_ASSUME_CM_OVER_DATA,	/* modem device breaks on cm over data */
 	USB_QUIRK_MAX
 };
 

Modified: stable/8/sys/dev/usb/serial/umodem.c
==============================================================================
--- stable/8/sys/dev/usb/serial/umodem.c	Thu Dec 31 00:07:37 2009	(r201301)
+++ stable/8/sys/dev/usb/serial/umodem.c	Thu Dec 31 00:08:17 2009	(r201302)
@@ -112,6 +112,7 @@ __FBSDID("$FreeBSD$");
 #define	USB_DEBUG_VAR umodem_debug
 #include 
 #include 
+#include 
 
 #include 
 
@@ -349,16 +350,20 @@ umodem_attach(device_t dev)
 		}
 	}
 
-	if (sc->sc_cm_cap & USB_CDC_CM_OVER_DATA) {
-		if (sc->sc_acm_cap & USB_CDC_ACM_HAS_FEATURE) {
+	if (usb_test_quirk(uaa, UQ_ASSUME_CM_OVER_DATA)) {
+		sc->sc_cm_over_data = 1;
+	} else {
+		if (sc->sc_cm_cap & USB_CDC_CM_OVER_DATA) {
+			if (sc->sc_acm_cap & USB_CDC_ACM_HAS_FEATURE) {
 
-			error = umodem_set_comm_feature
-			    (uaa->device, sc->sc_ctrl_iface_no,
-			    UCDC_ABSTRACT_STATE, UCDC_DATA_MULTIPLEXED);
+				error = umodem_set_comm_feature
+				(uaa->device, sc->sc_ctrl_iface_no,
+				 UCDC_ABSTRACT_STATE, UCDC_DATA_MULTIPLEXED);
 
-			/* ignore any errors */
+				/* ignore any errors */
+			}
+			sc->sc_cm_over_data = 1;
 		}
-		sc->sc_cm_over_data = 1;
 	}
 	error = usbd_transfer_setup(uaa->device,
 	    sc->sc_iface_index, sc->sc_xfer,

Modified: stable/8/sys/dev/usb/usbdevs
==============================================================================
--- stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:07:37 2009	(r201301)
+++ stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:08:17 2009	(r201302)
@@ -1212,6 +1212,9 @@ product DRESDENELEKTRONIK WIRELESSHANDHE
 /* Dynastream Innovations */
 product DYNASTREAM ANTDEVBOARD	0x1003	ANT dev board
 
+/* Eicon Networks */
+product EICON DIVA852		0x4905	Diva 852 ISDN TA
+
 /* EIZO products */
 product EIZO HUB		0x0000	hub
 product EIZO MONITOR		0x0001	monitor
@@ -1826,6 +1829,7 @@ product MOSCHIP MCS7830		0x7830	MCS7830 
 /* Motorola products */
 product MOTOROLA MC141555	0x1555	MC141555 hub controller
 product MOTOROLA SB4100		0x4100	SB4100 USB Cable Modem
+product MOTOROLA2 T720C		0x2822	T720c
 product MOTOROLA2 A41XV32X	0x2a22	A41x/V32x Mobile Phones
 product MOTOROLA2 E398		0x4810	E398 Mobile Phone
 product MOTOROLA2 USBLAN	0x600c	USBLAN

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:08:59 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D1EC2106568B;
	Thu, 31 Dec 2009 00:08:59 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BE8848FC17;
	Thu, 31 Dec 2009 00:08:59 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV08xu4078411;
	Thu, 31 Dec 2009 00:08:59 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV08x4N078409;
	Thu, 31 Dec 2009 00:08:59 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310008.nBV08x4N078409@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:08:59 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201303 - stable/8/sys/dev/usb/quirk
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:08:59 -0000

Author: thompsa
Date: Thu Dec 31 00:08:59 2009
New Revision: 201303
URL: http://svn.freebsd.org/changeset/base/201303

Log:
  MFC r200396
  
   Wrap long lines.

Modified:
  stable/8/sys/dev/usb/quirk/usb_quirk.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/quirk/usb_quirk.c
==============================================================================
--- stable/8/sys/dev/usb/quirk/usb_quirk.c	Thu Dec 31 00:08:17 2009	(r201302)
+++ stable/8/sys/dev/usb/quirk/usb_quirk.c	Thu Dec 31 00:08:59 2009	(r201303)
@@ -80,51 +80,91 @@ struct usb_quirk_entry {
 static struct mtx usb_quirk_mtx;
 
 static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = {
-	{USB_QUIRK_ENTRY(USB_VENDOR_ASUS, USB_PRODUCT_ASUS_LCM, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_INSIDEOUT, USB_PRODUCT_INSIDEOUT_EDGEPORT4, 0x094, 0x094, UQ_SWAP_UNICODE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502, 0x0a2, 0x0a2, UQ_BAD_ADC, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502, 0x0a2, 0x0a2, UQ_AU_NO_XU, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70, 0x103, 0x103, UQ_BAD_ADC, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495, 0x000, 0x000, UQ_BAD_AUDIO, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_QTRONIX, USB_PRODUCT_QTRONIX_980N, 0x110, 0x110, UQ_SPUR_BUT_UP, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ALCOR2, USB_PRODUCT_ALCOR2_KBD_HUB, 0x001, 0x001, UQ_SPUR_BUT_UP, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MCT, USB_PRODUCT_MCT_HUB0100, 0x102, 0x102, UQ_BUS_POWERED, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232, 0x102, 0x102, UQ_BUS_POWERED, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41, 0x110, 0x110, UQ_POWER_CLAIM, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1, 0x009, 0x009, UQ_AU_NO_FRAC, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SILICONPORTALS, USB_PRODUCT_SILICONPORTALS_YAPPHONE, 0x100, 0x100, UQ_AU_INP_ASYNC, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN53B, 0x0000, 0xFFFF, UQ_NO_STRINGS, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ELSA, USB_PRODUCT_ELSA_MODEM1, 0x0000, 0xFFFF, UQ_CFG_INDEX_1, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ASUS, USB_PRODUCT_ASUS_LCM,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_INSIDEOUT, USB_PRODUCT_INSIDEOUT_EDGEPORT4,
+	    0x094, 0x094, UQ_SWAP_UNICODE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502,
+	    0x0a2, 0x0a2, UQ_BAD_ADC, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502,
+	    0x0a2, 0x0a2, UQ_AU_NO_XU, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70,
+	    0x103, 0x103, UQ_BAD_ADC, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495,
+	    0x000, 0x000, UQ_BAD_AUDIO, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_QTRONIX, USB_PRODUCT_QTRONIX_980N,
+	    0x110, 0x110, UQ_SPUR_BUT_UP, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ALCOR2, USB_PRODUCT_ALCOR2_KBD_HUB,
+	    0x001, 0x001, UQ_SPUR_BUT_UP, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MCT, USB_PRODUCT_MCT_HUB0100,
+	    0x102, 0x102, UQ_BUS_POWERED, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232,
+	    0x102, 0x102, UQ_BUS_POWERED, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41,
+	    0x110, 0x110, UQ_POWER_CLAIM, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1,
+	    0x009, 0x009, UQ_AU_NO_FRAC, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SILICONPORTALS,
+	    USB_PRODUCT_SILICONPORTALS_YAPPHONE,
+	    0x100, 0x100, UQ_AU_INP_ASYNC, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN53B,
+	    0x0000, 0xFFFF, UQ_NO_STRINGS, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ELSA, USB_PRODUCT_ELSA_MODEM1,
+	    0x0000, 0xFFFF, UQ_CFG_INDEX_1, UQ_NONE)},
 
 	/*
 	 * XXX The following quirks should have a more specific revision
 	 * number:
 	 */
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_895C, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_880C, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_815C, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_810C, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_830C, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_1220C, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_XEROX, USB_PRODUCT_XEROX_WCM15, 0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_895C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_880C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_815C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_810C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_830C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_1220C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_XEROX, USB_PRODUCT_XEROX_WCM15,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
 	/* Devices which should be ignored by uhid */
-	{USB_QUIRK_ENTRY(USB_VENDOR_APC, USB_PRODUCT_APC_UPS, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_CYBERPOWER, USB_PRODUCT_CYBERPOWER_1500CAVRLCD, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_DELORME, USB_PRODUCT_DELORME_EARTHMATE, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD2X20, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD4X20, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_3G, 0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_APC, USB_PRODUCT_APC_UPS,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_CYBERPOWER,
+	    USB_PRODUCT_CYBERPOWER_1500CAVRLCD,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_DELORME, USB_PRODUCT_DELORME_EARTHMATE,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD2X20,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD4X20,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_3G,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
 	/* Devices which should be ignored by both ukbd and uhid */
-	{USB_QUIRK_ENTRY(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_WISPY1A, 0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY1B, 0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TENX, USB_PRODUCT_TENX_UAUDIO0, 0x0101, 0x0101, UQ_AUDIO_SWAP_LR, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_WISPY1A,
+	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY1B,
+	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TENX, USB_PRODUCT_TENX_UAUDIO0,
+	    0x0101, 0x0101, UQ_AUDIO_SWAP_LR, UQ_NONE)},
 	/* MS keyboards do weird things */
-	{USB_QUIRK_ENTRY(USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_WLINTELLIMOUSE, 0x0000, 0xFFFF, UQ_MS_LEADING_BYTE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY24X, 0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MICROSOFT,
+	    USB_PRODUCT_MICROSOFT_WLINTELLIMOUSE,
+	    0x0000, 0xFFFF, UQ_MS_LEADING_BYTE, UQ_NONE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY24X,
+	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE, UQ_NONE)},
 	/* umodem(4) device quirks */
 	{USB_QUIRK_ENTRY(USB_VENDOR_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS,
 	    0x100, 0x100, UQ_ASSUME_CM_OVER_DATA)},

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:09:47 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CF9E1106568B;
	Thu, 31 Dec 2009 00:09:47 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BAD2D8FC0C;
	Thu, 31 Dec 2009 00:09:47 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV09lvV078498;
	Thu, 31 Dec 2009 00:09:47 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV09lnp078496;
	Thu, 31 Dec 2009 00:09:47 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310009.nBV09lnp078496@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:09:47 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201304 - stable/8/sys/kern
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:09:47 -0000

Author: thompsa
Date: Thu Dec 31 00:09:47 2009
New Revision: 201304
URL: http://svn.freebsd.org/changeset/base/201304

Log:
  MFC r200652
  
   If the runcount is non-zero in eventhandler_deregister() then one or more
   threads are executing the eventhandler, sleep in this case to make it safe for
   module unload. If the runcount was up then an entry would have been marked
   EHE_DEAD_PRIORITY so use this as a trigger to do the wakeup in
   eventhandler_prune_list().

Modified:
  stable/8/sys/kern/subr_eventhandler.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/kern/subr_eventhandler.c
==============================================================================
--- stable/8/sys/kern/subr_eventhandler.c	Thu Dec 31 00:08:59 2009	(r201303)
+++ stable/8/sys/kern/subr_eventhandler.c	Thu Dec 31 00:09:47 2009	(r201304)
@@ -178,6 +178,8 @@ eventhandler_deregister(struct eventhand
 		ep->ee_priority = EHE_DEAD_PRIORITY;
 	}
     }
+    while (list->el_runcount > 0)
+	    mtx_sleep(list, &list->el_lock, 0, "evhrm", 0);
     EHL_UNLOCK(list);
 }
 
@@ -225,16 +227,17 @@ void
 eventhandler_prune_list(struct eventhandler_list *list)
 {
     struct eventhandler_entry *ep, *en;
+    int pruned = 0;
 
     CTR2(KTR_EVH, "%s: pruning list \"%s\"", __func__, list->el_name);
     EHL_LOCK_ASSERT(list, MA_OWNED);
-    ep = TAILQ_FIRST(&list->el_entries);
-    while (ep != NULL) {
-	en = TAILQ_NEXT(ep, ee_link);
+    TAILQ_FOREACH_SAFE(ep, &list->el_entries, ee_link, en) {
 	if (ep->ee_priority == EHE_DEAD_PRIORITY) {
 	    TAILQ_REMOVE(&list->el_entries, ep, ee_link);
 	    free(ep, M_EVENTHANDLER);
+	    pruned++;
 	}
-	ep = en;
     }
+    if (pruned > 0)
+	    wakeup(list);
 }

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:10:26 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CB536106566C;
	Thu, 31 Dec 2009 00:10:26 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B875C8FC1A;
	Thu, 31 Dec 2009 00:10:26 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0AQQE078606;
	Thu, 31 Dec 2009 00:10:26 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0AQKH078600;
	Thu, 31 Dec 2009 00:10:26 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310010.nBV0AQKH078600@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:10:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201305 - in stable/8/sys/dev/usb: . serial
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:10:26 -0000

Author: thompsa
Date: Thu Dec 31 00:10:26 2009
New Revision: 201305
URL: http://svn.freebsd.org/changeset/base/201305

Log:
  MFC r200653
  
   Use the EVENTHANDLER system to hook into the usb device configuration and
   perform a function such as ejecting a 3G autoinstaller disk. The eventhandler
   system properly tracks threads and is safe to unload, remove the
   setting/clearing of a function pointer in the kernel by u3g(4) which included a
   tsleep for safety.

Modified:
  stable/8/sys/dev/usb/serial/u3g.c
  stable/8/sys/dev/usb/usb_device.c
  stable/8/sys/dev/usb/usb_dynamic.c
  stable/8/sys/dev/usb/usb_dynamic.h
  stable/8/sys/dev/usb/usbdi.h
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/serial/u3g.c
==============================================================================
--- stable/8/sys/dev/usb/serial/u3g.c	Thu Dec 31 00:09:47 2009	(r201304)
+++ stable/8/sys/dev/usb/serial/u3g.c	Thu Dec 31 00:10:26 2009	(r201305)
@@ -122,8 +122,13 @@ static void u3g_stop_read(struct ucom_so
 static void u3g_start_write(struct ucom_softc *ucom);
 static void u3g_stop_write(struct ucom_softc *ucom);
 
+
+static void u3g_test_autoinst(void *, struct usb_device *,
+		struct usb_attach_arg *);
 static int u3g_driver_loaded(struct module *mod, int what, void *arg);
 
+static eventhandler_tag u3g_etag;
+
 static const struct usb_config u3g_config[U3G_N_TRANSFER] = {
 
 	[U3G_BULK_WR] = {
@@ -360,58 +365,48 @@ u3g_sael_m460_init(struct usb_device *ud
 	}
 }
 
-static int
-u3g_lookup_huawei(struct usb_attach_arg *uaa)
-{
-	/* Calling the lookup function will also set the driver info! */
-	return (usbd_lookup_id_by_uaa(u3g_devs, sizeof(u3g_devs), uaa));
-}
-
 /*
  * The following function handles 3G modem devices (E220, Mobile,
  * etc.) with auto-install flash disks for Windows/MacOSX on the first
  * interface.  After some command or some delay they change appearance
  * to a modem.
  */
-static usb_error_t
-u3g_test_huawei_autoinst(struct usb_device *udev,
+static void
+u3g_test_autoinst(void *arg, struct usb_device *udev,
     struct usb_attach_arg *uaa)
 {
 	struct usb_interface *iface;
 	struct usb_interface_descriptor *id;
 	uint32_t flags;
 
-	if (udev == NULL) {
-		return (USB_ERR_INVAL);
-	}
+	if (uaa->dev_state != UAA_DEV_READY)
+		return;
+
 	iface = usbd_get_iface(udev, 0);
-	if (iface == NULL) {
-		return (USB_ERR_INVAL);
-	}
+	if (iface == NULL)
+		return;
 	id = iface->idesc;
-	if (id == NULL) {
-		return (USB_ERR_INVAL);
-	}
-	if (id->bInterfaceClass != UICLASS_MASS) {
-		return (USB_ERR_INVAL);
-	}
-	if (u3g_lookup_huawei(uaa)) {
+	if (id == NULL || id->bInterfaceClass != UICLASS_MASS)
+		return;
+	if (usbd_lookup_id_by_uaa(u3g_devs, sizeof(u3g_devs), uaa)) {
 		/* no device match */
-		return (USB_ERR_INVAL);
+		return;
 	}
 	flags = USB_GET_DRIVER_INFO(uaa);
 
 	if (flags & U3GFL_HUAWEI_INIT) {
 		u3g_huawei_init(udev);
 	} else if (flags & U3GFL_SCSI_EJECT) {
-		return (usb_test_autoinstall(udev, 0, 1));
+		if (usb_test_autoinstall(udev, 0, 1) != 0)
+			return;
 	} else if (flags & U3GFL_SIERRA_INIT) {
 		u3g_sierra_init(udev);
 	} else {
 		/* no quirks */
-		return (USB_ERR_INVAL);
+		return;
 	}
-	return (0);			/* success */
+	uaa->dev_state = UAA_DEV_EJECTING;
+	return;		/* success */
 }
 
 static int
@@ -420,10 +415,11 @@ u3g_driver_loaded(struct module *mod, in
 	switch (what) {
 	case MOD_LOAD:
 		/* register our autoinstall handler */
-		usb_test_huawei_autoinst_p = &u3g_test_huawei_autoinst;
+		u3g_etag = EVENTHANDLER_REGISTER(usb_dev_configured,
+		    u3g_test_autoinst, NULL, EVENTHANDLER_PRI_ANY);
 		break;
 	case MOD_UNLOAD:
-		usb_test_huawei_unload(NULL);
+		EVENTHANDLER_DEREGISTER(usb_dev_configured, u3g_etag);
 		break;
 	default:
 		return (EOPNOTSUPP);
@@ -445,7 +441,7 @@ u3g_probe(device_t self)
 	if (uaa->info.bInterfaceClass != UICLASS_VENDOR) {
 		return (ENXIO);
 	}
-	return (u3g_lookup_huawei(uaa));
+	return (usbd_lookup_id_by_uaa(u3g_devs, sizeof(u3g_devs), uaa));
 }
 
 static int

Modified: stable/8/sys/dev/usb/usb_device.c
==============================================================================
--- stable/8/sys/dev/usb/usb_device.c	Thu Dec 31 00:09:47 2009	(r201304)
+++ stable/8/sys/dev/usb/usb_device.c	Thu Dec 31 00:10:26 2009	(r201305)
@@ -1204,6 +1204,7 @@ usb_init_attach_arg(struct usb_device *u
 	uaa->device = udev;
 	uaa->usb_mode = udev->flags.usb_mode;
 	uaa->port = udev->port_no;
+	uaa->dev_state = UAA_DEV_READY;
 
 	uaa->info.idVendor = UGETW(udev->ddesc.idVendor);
 	uaa->info.idProduct = UGETW(udev->ddesc.idProduct);
@@ -1453,6 +1454,9 @@ usb_alloc_device(device_t parent_dev, st
 	size_t scratch_size;
 	usb_error_t err;
 	uint8_t device_index;
+	uint8_t config_index;
+	uint8_t config_quirk;
+	uint8_t set_config_failed;
 
 	DPRINTF("parent_dev=%p, bus=%p, parent_hub=%p, depth=%u, "
 	    "port_index=%u, port_no=%u, speed=%u, usb_mode=%u\n",
@@ -1732,96 +1736,91 @@ usb_alloc_device(device_t parent_dev, st
 	/* fetch the vendor and product strings from the device */
 	usbd_set_device_strings(udev);
 
-	if (udev->flags.usb_mode == USB_MODE_HOST) {
-		uint8_t config_index;
-		uint8_t config_quirk;
-		uint8_t set_config_failed = 0;
+	if (udev->flags.usb_mode == USB_MODE_DEVICE) {
+		/* USB device mode setup is complete */
+		err = 0;
+		goto config_done;
+	}
 
-		/*
-		 * Most USB devices should attach to config index 0 by
-		 * default
-		 */
-		if (usb_test_quirk(&uaa, UQ_CFG_INDEX_0)) {
-			config_index = 0;
-			config_quirk = 1;
-		} else if (usb_test_quirk(&uaa, UQ_CFG_INDEX_1)) {
-			config_index = 1;
-			config_quirk = 1;
-		} else if (usb_test_quirk(&uaa, UQ_CFG_INDEX_2)) {
-			config_index = 2;
-			config_quirk = 1;
-		} else if (usb_test_quirk(&uaa, UQ_CFG_INDEX_3)) {
-			config_index = 3;
-			config_quirk = 1;
-		} else if (usb_test_quirk(&uaa, UQ_CFG_INDEX_4)) {
-			config_index = 4;
-			config_quirk = 1;
-		} else {
-			config_index = 0;
-			config_quirk = 0;
-		}
+	/*
+	 * Most USB devices should attach to config index 0 by
+	 * default
+	 */
+	if (usb_test_quirk(&uaa, UQ_CFG_INDEX_0)) {
+		config_index = 0;
+		config_quirk = 1;
+	} else if (usb_test_quirk(&uaa, UQ_CFG_INDEX_1)) {
+		config_index = 1;
+		config_quirk = 1;
+	} else if (usb_test_quirk(&uaa, UQ_CFG_INDEX_2)) {
+		config_index = 2;
+		config_quirk = 1;
+	} else if (usb_test_quirk(&uaa, UQ_CFG_INDEX_3)) {
+		config_index = 3;
+		config_quirk = 1;
+	} else if (usb_test_quirk(&uaa, UQ_CFG_INDEX_4)) {
+		config_index = 4;
+		config_quirk = 1;
+	} else {
+		config_index = 0;
+		config_quirk = 0;
+	}
 
+	set_config_failed = 0;
 repeat_set_config:
 
-		DPRINTF("setting config %u\n", config_index);
+	DPRINTF("setting config %u\n", config_index);
 
-		/* get the USB device configured */
-		err = usbd_set_config_index(udev, config_index);
-		if (err) {
-			if (udev->ddesc.bNumConfigurations != 0) {
-				if (!set_config_failed) {
-					set_config_failed = 1;
-					/* XXX try to re-enumerate the device */
-					err = usbd_req_re_enumerate(
-					    udev, NULL);
-					if (err == 0)
-					    goto repeat_set_config;
-				}
-				DPRINTFN(0, "Failure selecting "
-				    "configuration index %u: %s, port %u, "
-				    "addr %u (ignored)\n",
-				    config_index, usbd_errstr(err), udev->port_no,
-				    udev->address);
+	/* get the USB device configured */
+	err = usbd_set_config_index(udev, config_index);
+	if (err) {
+		if (udev->ddesc.bNumConfigurations != 0) {
+			if (!set_config_failed) {
+				set_config_failed = 1;
+				/* XXX try to re-enumerate the device */
+				err = usbd_req_re_enumerate(udev, NULL);
+				if (err == 0)
+					goto repeat_set_config;
 			}
+			DPRINTFN(0, "Failure selecting configuration index %u:"
+			    "%s, port %u, addr %u (ignored)\n",
+			    config_index, usbd_errstr(err), udev->port_no,
+			    udev->address);
+		}
+		/*
+		 * Some USB devices do not have any configurations. Ignore any
+		 * set config failures!
+		 */
+		err = 0;
+		goto config_done;
+	}
+	if (!config_quirk && config_index + 1 < udev->ddesc.bNumConfigurations) {
+		if ((udev->cdesc->bNumInterface < 2) &&
+		    usbd_get_no_descriptors(udev->cdesc, UDESC_ENDPOINT) == 0) {
+			DPRINTFN(0, "Found no endpoints, trying next config\n");
+			config_index++;
+			goto repeat_set_config;
+		}
+		if (config_index == 0) {
 			/*
-			 * Some USB devices do not have any
-			 * configurations. Ignore any set config
-			 * failures!
+			 * Try to figure out if we have an
+			 * auto-install disk there:
 			 */
-			err = 0;
-		} else if (config_quirk) {
-			/* user quirk selects configuration index */
-		} else if ((config_index + 1) < udev->ddesc.bNumConfigurations) {
-
-			if ((udev->cdesc->bNumInterface < 2) &&
-			    (usbd_get_no_descriptors(udev->cdesc,
-			    UDESC_ENDPOINT) == 0)) {
-				DPRINTFN(0, "Found no endpoints "
-				    "(trying next config)\n");
+			if (usb_test_autoinstall(udev, 0, 0) == 0) {
+				DPRINTFN(0, "Found possible auto-install "
+				    "disk (trying next config)\n");
 				config_index++;
 				goto repeat_set_config;
 			}
-			if (config_index == 0) {
-				/*
-				 * Try to figure out if we have an
-				 * auto-install disk there:
-				 */
-				if (usb_test_autoinstall(udev, 0, 0) == 0) {
-					DPRINTFN(0, "Found possible auto-install "
-					    "disk (trying next config)\n");
-					config_index++;
-					goto repeat_set_config;
-				}
-			}
-		} else if (usb_test_huawei_autoinst_p(udev, &uaa) == 0) {
-			DPRINTFN(0, "Found Huawei auto-install disk\n");
-			/* leave device unconfigured */
-			usb_unconfigure(udev, 0);
 		}
-	} else {
-		err = 0;		/* set success */
+	}
+	EVENTHANDLER_INVOKE(usb_dev_configured, udev, &uaa);
+	if (uaa.dev_state != UAA_DEV_READY) {
+		/* leave device unconfigured */
+		usb_unconfigure(udev, 0);
 	}
 
+config_done:
 	DPRINTF("new dev (addr %d), udev=%p, parent_hub=%p\n",
 	    udev->address, udev, udev->parent_hub);
 

Modified: stable/8/sys/dev/usb/usb_dynamic.c
==============================================================================
--- stable/8/sys/dev/usb/usb_dynamic.c	Thu Dec 31 00:09:47 2009	(r201304)
+++ stable/8/sys/dev/usb/usb_dynamic.c	Thu Dec 31 00:10:26 2009	(r201305)
@@ -57,7 +57,6 @@ static usb_handle_req_t usb_temp_get_des
 static usb_temp_setup_by_index_t usb_temp_setup_by_index_w;
 static usb_temp_unsetup_t usb_temp_unsetup_w;
 static usb_test_quirk_t usb_test_quirk_w;
-static usb_test_huawei_autoinst_t usb_test_huawei_autoinst_w;
 static usb_quirk_ioctl_t usb_quirk_ioctl_w;
 
 /* global variables */
@@ -65,7 +64,6 @@ usb_handle_req_t *usb_temp_get_desc_p = 
 usb_temp_setup_by_index_t *usb_temp_setup_by_index_p = &usb_temp_setup_by_index_w;
 usb_temp_unsetup_t *usb_temp_unsetup_p = &usb_temp_unsetup_w;
 usb_test_quirk_t *usb_test_quirk_p = &usb_test_quirk_w;
-usb_test_huawei_autoinst_t *usb_test_huawei_autoinst_p = &usb_test_huawei_autoinst_w;
 usb_quirk_ioctl_t *usb_quirk_ioctl_p = &usb_quirk_ioctl_w;
 devclass_t usb_devclass_ptr = NULL;
 
@@ -105,13 +103,6 @@ usb_temp_unsetup_w(struct usb_device *ud
 	}
 }
 
-static usb_error_t
-usb_test_huawei_autoinst_w(struct usb_device *udev,
-    struct usb_attach_arg *uaa)
-{
-	return (USB_ERR_INVAL);
-}
-
 void
 usb_quirk_unload(void *arg)
 {
@@ -156,17 +147,3 @@ usb_bus_unload(void *arg)
 
 	pause("WAIT", hz);
 }
-
-void
-usb_test_huawei_unload(void *arg)
-{
-	/* reset function pointers */
-
-	usb_test_huawei_autoinst_p = &usb_test_huawei_autoinst_w;
-
-	/* wait for CPU to exit the loaded functions, if any */
-
-	/* XXX this is a tradeoff */
-
-	pause("WAIT", 16*hz);
-}

Modified: stable/8/sys/dev/usb/usb_dynamic.h
==============================================================================
--- stable/8/sys/dev/usb/usb_dynamic.h	Thu Dec 31 00:09:47 2009	(r201304)
+++ stable/8/sys/dev/usb/usb_dynamic.h	Thu Dec 31 00:10:26 2009	(r201305)
@@ -37,8 +37,6 @@ struct usb_device_request;
 
 typedef usb_error_t	(usb_temp_setup_by_index_t)(struct usb_device *udev,
 			    uint16_t index);
-typedef usb_error_t	(usb_test_huawei_autoinst_t)(struct usb_device *udev, 
-			    struct usb_attach_arg *uaa);
 typedef uint8_t		(usb_test_quirk_t)(const struct usbd_lookup_info *info,
 			    uint16_t quirk);
 typedef int		(usb_quirk_ioctl_t)(unsigned long cmd, caddr_t data,
@@ -51,13 +49,11 @@ extern usb_handle_req_t *usb_temp_get_de
 extern usb_temp_setup_by_index_t *usb_temp_setup_by_index_p;
 extern usb_temp_unsetup_t *usb_temp_unsetup_p;
 extern usb_test_quirk_t *usb_test_quirk_p;
-extern usb_test_huawei_autoinst_t *usb_test_huawei_autoinst_p;
 extern usb_quirk_ioctl_t *usb_quirk_ioctl_p;
 extern devclass_t usb_devclass_ptr;
 
 /* function prototypes */
 
-void	usb_test_huawei_unload(void *);
 void	usb_temp_unload(void *);
 void	usb_quirk_unload(void *);
 void	usb_bus_unload(void *);

Modified: stable/8/sys/dev/usb/usbdi.h
==============================================================================
--- stable/8/sys/dev/usb/usbdi.h	Thu Dec 31 00:09:47 2009	(r201304)
+++ stable/8/sys/dev/usb/usbdi.h	Thu Dec 31 00:10:26 2009	(r201305)
@@ -29,6 +29,7 @@
 struct usb_fifo;
 struct usb_xfer;
 struct usb_device;
+struct usb_attach_arg;
 struct usb_interface;
 struct usb_endpoint;
 struct usb_page_cache;
@@ -98,6 +99,13 @@ typedef int (usb_fifo_ioctl_t)(struct us
 typedef void (usb_fifo_cmd_t)(struct usb_fifo *fifo);
 typedef void (usb_fifo_filter_t)(struct usb_fifo *fifo, struct usb_mbuf *m);
 
+
+/* USB events */
+#include 
+typedef void (*usb_dev_configured_t)(void *, struct usb_device *,
+    struct usb_attach_arg *);
+EVENTHANDLER_DECLARE(usb_dev_configured, usb_dev_configured_t);
+
 /*
  * The following macros are used used to convert milliseconds into
  * HZ. We use 1024 instead of 1000 milliseconds per second to save a
@@ -338,6 +346,10 @@ struct usb_attach_arg {
 	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
+#define UAA_DEV_EJECTING	2
 };
 
 /*

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:12:39 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 0669410656AB;
	Thu, 31 Dec 2009 00:12:39 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E630A8FC1A;
	Thu, 31 Dec 2009 00:12:38 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0Cca2078741;
	Thu, 31 Dec 2009 00:12:38 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0Ccga078738;
	Thu, 31 Dec 2009 00:12:38 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310012.nBV0Ccga078738@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:12:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201306 - in stable/8/sys/dev/usb: . serial
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:12:39 -0000

Author: thompsa
Date: Thu Dec 31 00:12:38 2009
New Revision: 201306
URL: http://svn.freebsd.org/changeset/base/201306

Log:
  MFC r200657
  
   Add a bunch of new 3G ids obtained from from various operating systems and
   Internet sources.

Modified:
  stable/8/sys/dev/usb/serial/u3g.c
  stable/8/sys/dev/usb/usbdevs
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/serial/u3g.c
==============================================================================
--- stable/8/sys/dev/usb/serial/u3g.c	Thu Dec 31 00:10:26 2009	(r201305)
+++ stable/8/sys/dev/usb/serial/u3g.c	Thu Dec 31 00:12:38 2009	(r201306)
@@ -178,33 +178,123 @@ MODULE_DEPEND(u3g, usb, 1, 1, 1);
 
 static const struct usb_device_id u3g_devs[] = {
 #define	U3G_DEV(v,p,i) { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) }
-	/* OEM: Huawei */
-	U3G_DEV(HUAWEI, MOBILE, U3GFL_HUAWEI_INIT),
+	U3G_DEV(ACERP, H10, 0),
+	U3G_DEV(AIRPLUS, MCD650, 0),
+	U3G_DEV(AIRPRIME, PC5220, 0),
+	U3G_DEV(ALINK, 3G, 0),
+	U3G_DEV(ALINK, 3GU, 0),
+	U3G_DEV(ALINK, DWM652U5, 0),
+	U3G_DEV(AMOI, H01, 0),
+	U3G_DEV(AMOI, H01A, 0),
+	U3G_DEV(AMOI, H02, 0),
+	U3G_DEV(ANYDATA, ADU_620UW, 0),
+	U3G_DEV(ANYDATA, ADU_500A, 0),
+	U3G_DEV(ANYDATA, ADU_E100X, 0),
+	U3G_DEV(AXESSTEL, DATAMODEM, 0),
+	U3G_DEV(CMOTECH, CDMA_MODEM1, 0),
+	U3G_DEV(DELL, U5500, 0),
+	U3G_DEV(DELL, U5505, 0),
+	U3G_DEV(DELL, U5510, 0),
+	U3G_DEV(DELL, U5520, 0),
+	U3G_DEV(DELL, U5520_2, 0),
+	U3G_DEV(DELL, U5520_3, 0),
+	U3G_DEV(DELL, U5700, 0),
+	U3G_DEV(DELL, U5700_2, 0),
+	U3G_DEV(DELL, U5700_3, 0),
+	U3G_DEV(DELL, U5700_4, 0),
+	U3G_DEV(DELL, U5720, 0),
+	U3G_DEV(DELL, U5720_2, 0),
+	U3G_DEV(DELL, U5730, 0),
+	U3G_DEV(DELL, U5730_2, 0),
+	U3G_DEV(DELL, U5730_3, 0),
+	U3G_DEV(DELL, U740, 0),
+	U3G_DEV(DLINK3, DWM652, 0),
+	U3G_DEV(HP, EV2200, 0),
+	U3G_DEV(HP, HS2300, 0),
+	U3G_DEV(HUAWEI, E220BIS, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1401, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1402, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1403, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1404, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1405, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1406, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1407, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1408, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1409, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E140A, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E140B, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E140D, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E140E, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E140F, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1410, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1411, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1412, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1413, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1414, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1415, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1416, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1417, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1418, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1419, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E141A, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E141B, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E141C, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E141D, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E141E, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E141F, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1420, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1421, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1422, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1423, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1424, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1425, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1426, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1427, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1428, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1429, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E142A, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E142B, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E142C, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E142D, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E142E, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E142F, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1430, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1431, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1432, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1433, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1434, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1435, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1436, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1437, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1438, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E1439, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E143A, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E143B, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E143C, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E143D, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E143E, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E143F, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E14AC, U3GFL_HUAWEI_INIT),
 	U3G_DEV(HUAWEI, E180V, U3GFL_HUAWEI_INIT),
 	U3G_DEV(HUAWEI, E220, U3GFL_HUAWEI_INIT),
-	/* OEM: Option */
-	U3G_DEV(OPTION, GT3G, 0),
-	U3G_DEV(OPTION, GT3GQUAD, 0),
-	U3G_DEV(OPTION, GT3GPLUS, 0),
-	U3G_DEV(OPTION, GTMAX36, 0),
-	U3G_DEV(OPTION, GTHSDPA, 0),
-	U3G_DEV(OPTION, GTMAXHSUPA, 0),
-	U3G_DEV(OPTION, GTMAXHSUPAE, 0),
-	U3G_DEV(OPTION, GTMAX380HSUPAE, 0),
-	U3G_DEV(OPTION, VODAFONEMC3G, 0),
-	/* OEM: Qualcomm, Inc. */
-	U3G_DEV(QUALCOMMINC, ZTE_STOR, U3GFL_SCSI_EJECT),
-	U3G_DEV(QUALCOMMINC, CDMA_MSM, U3GFL_SCSI_EJECT),
-	/* OEM: Merlin */
+	U3G_DEV(HUAWEI, MOBILE, U3GFL_HUAWEI_INIT),
+	U3G_DEV(KYOCERA2, KPC680, 0),
+	U3G_DEV(KYOCERA2, CDMA_MSM_K, 0),
 	U3G_DEV(MERLIN, V620, 0),
-	/* OEM: Novatel */
-	U3G_DEV(NOVATEL, CDMA_MODEM, 0),
+	U3G_DEV(NOVATEL, E725, 0),
 	U3G_DEV(NOVATEL, ES620, 0),
+	U3G_DEV(NOVATEL, ES620_2, 0),
+	U3G_DEV(NOVATEL, EU730, 0),
+	U3G_DEV(NOVATEL, EU740, 0),
+	U3G_DEV(NOVATEL, EU870D, 0),
+	U3G_DEV(NOVATEL, MC760, 0),
 	U3G_DEV(NOVATEL, MC950D, 0),
 	U3G_DEV(NOVATEL, U720, 0),
 	U3G_DEV(NOVATEL, U727, 0),
+	U3G_DEV(NOVATEL, U727_2, 0),
 	U3G_DEV(NOVATEL, U740, 0),
 	U3G_DEV(NOVATEL, U740_2, 0),
+	U3G_DEV(NOVATEL, U760, U3GFL_SCSI_EJECT),
 	U3G_DEV(NOVATEL, U870, 0),
 	U3G_DEV(NOVATEL, V620, 0),
 	U3G_DEV(NOVATEL, V640, 0),
@@ -212,41 +302,199 @@ static const struct usb_device_id u3g_de
 	U3G_DEV(NOVATEL, V740, 0),
 	U3G_DEV(NOVATEL, X950D, 0),
 	U3G_DEV(NOVATEL, XU870, 0),
-	U3G_DEV(NOVATEL, ZEROCD, U3GFL_SCSI_EJECT),
-	U3G_DEV(NOVATEL, U760, U3GFL_SCSI_EJECT),
-	U3G_DEV(DELL, U740, 0),
-	/* OEM: Sierra Wireless: */
-	U3G_DEV(SIERRA, AIRCARD580, 0),
-	U3G_DEV(SIERRA, AIRCARD595, 0),
+	U3G_DEV(OPTION, GT3G_1, 0),
+	U3G_DEV(OPTION, GT3G_2, 0),
+	U3G_DEV(OPTION, GT3G_3, 0),
+	U3G_DEV(OPTION, GT3G_4, 0),
+	U3G_DEV(OPTION, GT3G_5, 0),
+	U3G_DEV(OPTION, GT3G_6, 0),
+	U3G_DEV(OPTION, E6500, 0),
+	U3G_DEV(OPTION, E6501, 0),
+	U3G_DEV(OPTION, E6601, 0),
+	U3G_DEV(OPTION, E6721, 0),
+	U3G_DEV(OPTION, E6741, 0),
+	U3G_DEV(OPTION, E6761, 0),
+	U3G_DEV(OPTION, E6800, 0),
+	U3G_DEV(OPTION, E7021, 0),
+	U3G_DEV(OPTION, E7041, 0),
+	U3G_DEV(OPTION, E7061, 0),
+	U3G_DEV(OPTION, E7100, 0),
+	U3G_DEV(OPTION, GTM380, 0),
+	U3G_DEV(OPTION, GT3G, 0),
+	U3G_DEV(OPTION, GT3GPLUS, 0),
+	U3G_DEV(OPTION, GT3GQUAD, 0),
+	U3G_DEV(OPTION, GTHSDPA, 0),
+	U3G_DEV(OPTION, GTMAX36, 0),
+	U3G_DEV(OPTION, GTMAX380HSUPAE, 0),
+	U3G_DEV(OPTION, GTMAXHSUPA, 0),
+	U3G_DEV(OPTION, GTMAXHSUPAE, 0),
+	U3G_DEV(OPTION, VODAFONEMC3G, 0),
+	U3G_DEV(QISDA, H21_1, 0),
+	U3G_DEV(QISDA, H21_2, 0),
+	U3G_DEV(QISDA, H20_1, 0),
+	U3G_DEV(QISDA, H20_2, 0),
+	U3G_DEV(QUALCOMM2, AC8700, 0),
+	U3G_DEV(QUALCOMM2, MF330, 0),
+	U3G_DEV(QUALCOMMINC, E0002, 0),
+	U3G_DEV(QUALCOMMINC, E0003, 0),
+	U3G_DEV(QUALCOMMINC, E0004, 0),
+	U3G_DEV(QUALCOMMINC, E0005, 0),
+	U3G_DEV(QUALCOMMINC, E0006, 0),
+	U3G_DEV(QUALCOMMINC, E0007, 0),
+	U3G_DEV(QUALCOMMINC, E0008, 0),
+	U3G_DEV(QUALCOMMINC, E0009, 0),
+	U3G_DEV(QUALCOMMINC, E000A, 0),
+	U3G_DEV(QUALCOMMINC, E000B, 0),
+	U3G_DEV(QUALCOMMINC, E000C, 0),
+	U3G_DEV(QUALCOMMINC, E000D, 0),
+	U3G_DEV(QUALCOMMINC, E000E, 0),
+	U3G_DEV(QUALCOMMINC, E000F, 0),
+	U3G_DEV(QUALCOMMINC, E0010, 0),
+	U3G_DEV(QUALCOMMINC, E0011, 0),
+	U3G_DEV(QUALCOMMINC, E0012, 0),
+	U3G_DEV(QUALCOMMINC, E0013, 0),
+	U3G_DEV(QUALCOMMINC, E0014, 0),
+	U3G_DEV(QUALCOMMINC, MF628, 0),
+	U3G_DEV(QUALCOMMINC, E0016, 0),
+	U3G_DEV(QUALCOMMINC, E0017, 0),
+	U3G_DEV(QUALCOMMINC, E0018, 0),
+	U3G_DEV(QUALCOMMINC, E0019, 0),
+	U3G_DEV(QUALCOMMINC, E0020, 0),
+	U3G_DEV(QUALCOMMINC, E0021, 0),
+	U3G_DEV(QUALCOMMINC, E0022, 0),
+	U3G_DEV(QUALCOMMINC, E0023, 0),
+	U3G_DEV(QUALCOMMINC, E0024, 0),
+	U3G_DEV(QUALCOMMINC, E0025, 0),
+	U3G_DEV(QUALCOMMINC, E0026, 0),
+	U3G_DEV(QUALCOMMINC, E0027, 0),
+	U3G_DEV(QUALCOMMINC, E0028, 0),
+	U3G_DEV(QUALCOMMINC, E0029, 0),
+	U3G_DEV(QUALCOMMINC, E0030, 0),
+	U3G_DEV(QUALCOMMINC, MF626, 0),
+	U3G_DEV(QUALCOMMINC, E0032, 0),
+	U3G_DEV(QUALCOMMINC, E0033, 0),
+	U3G_DEV(QUALCOMMINC, E0037, 0),
+	U3G_DEV(QUALCOMMINC, E0039, 0),
+	U3G_DEV(QUALCOMMINC, E0042, 0),
+	U3G_DEV(QUALCOMMINC, E0043, 0),
+	U3G_DEV(QUALCOMMINC, E0048, 0),
+	U3G_DEV(QUALCOMMINC, E0049, 0),
+	U3G_DEV(QUALCOMMINC, E0051, 0),
+	U3G_DEV(QUALCOMMINC, E0052, 0),
+	U3G_DEV(QUALCOMMINC, E0054, 0),
+	U3G_DEV(QUALCOMMINC, E0055, 0),
+	U3G_DEV(QUALCOMMINC, E0057, 0),
+	U3G_DEV(QUALCOMMINC, E0058, 0),
+	U3G_DEV(QUALCOMMINC, E0059, 0),
+	U3G_DEV(QUALCOMMINC, E0060, 0),
+	U3G_DEV(QUALCOMMINC, E0061, 0),
+	U3G_DEV(QUALCOMMINC, E0062, 0),
+	U3G_DEV(QUALCOMMINC, E0063, 0),
+	U3G_DEV(QUALCOMMINC, E0064, 0),
+	U3G_DEV(QUALCOMMINC, E0066, 0),
+	U3G_DEV(QUALCOMMINC, E0069, 0),
+	U3G_DEV(QUALCOMMINC, E0070, 0),
+	U3G_DEV(QUALCOMMINC, E0073, 0),
+	U3G_DEV(QUALCOMMINC, E0076, 0),
+	U3G_DEV(QUALCOMMINC, E0078, 0),
+	U3G_DEV(QUALCOMMINC, E0082, 0),
+	U3G_DEV(QUALCOMMINC, E0086, 0),
+	U3G_DEV(QUALCOMMINC, E2002, 0),
+	U3G_DEV(QUALCOMMINC, E2003, 0),
+	U3G_DEV(QUALCOMMINC, AC8710, 0),
+	U3G_DEV(QUALCOMMINC, AC2726, 0),
+	U3G_DEV(QUALCOMMINC, AC8700, 0),
+	U3G_DEV(QUALCOMMINC, CDMA_MSM, U3GFL_SCSI_EJECT),
+	U3G_DEV(QUALCOMMINC, ZTE_STOR, U3GFL_SCSI_EJECT),
+	U3G_DEV(QUANTA, Q101, 0),
+	U3G_DEV(QUANTA, Q111, 0),
+	U3G_DEV(QUANTA, GLX, 0),
+	U3G_DEV(QUANTA, GKE, 0),
+	U3G_DEV(QUANTA, GLE, 0),
+	U3G_DEV(SIERRA, AC402, 0),
 	U3G_DEV(SIERRA, AC595U, 0),
 	U3G_DEV(SIERRA, AC597E, 0),
-	U3G_DEV(SIERRA, C597, 0),
+	U3G_DEV(SIERRA, AC875E, 0),
+	U3G_DEV(SIERRA, AC875U, 0),
+	U3G_DEV(SIERRA, AC875U_2, 0),
 	U3G_DEV(SIERRA, AC880, 0),
 	U3G_DEV(SIERRA, AC880E, 0),
 	U3G_DEV(SIERRA, AC880U, 0),
 	U3G_DEV(SIERRA, AC881, 0),
 	U3G_DEV(SIERRA, AC881E, 0),
 	U3G_DEV(SIERRA, AC881U, 0),
+	U3G_DEV(SIERRA, AC885E, 0),
+	U3G_DEV(SIERRA, AC885E_2, 0),
 	U3G_DEV(SIERRA, AC885U, 0),
+	U3G_DEV(SIERRA, AIRCARD580, 0),
+	U3G_DEV(SIERRA, AIRCARD595, 0),
+	U3G_DEV(SIERRA, AIRCARD875, 0),
+	U3G_DEV(SIERRA, C22, 0),
+	U3G_DEV(SIERRA, C597, 0),
+	U3G_DEV(SIERRA, C888, 0),
+	U3G_DEV(SIERRA, E0029, 0),
+	U3G_DEV(SIERRA, E6892, 0),
+	U3G_DEV(SIERRA, E6893, 0),
 	U3G_DEV(SIERRA, EM5625, 0),
+	U3G_DEV(SIERRA, EM5725, 0),
 	U3G_DEV(SIERRA, MC5720, 0),
 	U3G_DEV(SIERRA, MC5720_2, 0),
 	U3G_DEV(SIERRA, MC5725, 0),
-	U3G_DEV(SIERRA, MINI5725, 0),
-	U3G_DEV(SIERRA, AIRCARD875, 0),
+	U3G_DEV(SIERRA, MC5727, 0),
+	U3G_DEV(SIERRA, MC5727_2, 0),
+	U3G_DEV(SIERRA, MC5728, 0),
 	U3G_DEV(SIERRA, MC8755, 0),
 	U3G_DEV(SIERRA, MC8755_2, 0),
 	U3G_DEV(SIERRA, MC8755_3, 0),
+	U3G_DEV(SIERRA, MC8755_4, 0),
 	U3G_DEV(SIERRA, MC8765, 0),
-	U3G_DEV(SIERRA, AC875U, 0),
+	U3G_DEV(SIERRA, MC8765_2, 0),
+	U3G_DEV(SIERRA, MC8765_3, 0),
+	U3G_DEV(SIERRA, MC8775, 0),
 	U3G_DEV(SIERRA, MC8775_2, 0),
 	U3G_DEV(SIERRA, MC8780, 0),
+	U3G_DEV(SIERRA, MC8780_2, 0),
+	U3G_DEV(SIERRA, MC8780_3, 0),
 	U3G_DEV(SIERRA, MC8781, 0),
-	U3G_DEV(HP, HS2300, 0),
-	/* Sierra TruInstaller device ID */
-	U3G_DEV(SIERRA, TRUINSTALL, U3GFL_SIERRA_INIT),
-	/* PRUEBA SILABS */
+	U3G_DEV(SIERRA, MC8781_2, 0),
+	U3G_DEV(SIERRA, MC8781_3, 0),
+	U3G_DEV(SIERRA, MC8785, 0),
+	U3G_DEV(SIERRA, MC8785_2, 0),
+	U3G_DEV(SIERRA, MC8790, 0),
+	U3G_DEV(SIERRA, MC8791, 0),
+	U3G_DEV(SIERRA, MC8792, 0),
+	U3G_DEV(SIERRA, MINI5725, 0),
+	U3G_DEV(SIERRA, T11, 0),
+	U3G_DEV(SIERRA, T598, 0),
 	U3G_DEV(SILABS, SAEL, U3GFL_SAEL_M460_INIT),
+	U3G_DEV(STELERA, C105, 0),
+	U3G_DEV(STELERA, E1003, 0),
+	U3G_DEV(STELERA, E1004, 0),
+	U3G_DEV(STELERA, E1005, 0),
+	U3G_DEV(STELERA, E1006, 0),
+	U3G_DEV(STELERA, E1007, 0),
+	U3G_DEV(STELERA, E1008, 0),
+	U3G_DEV(STELERA, E1009, 0),
+	U3G_DEV(STELERA, E100A, 0),
+	U3G_DEV(STELERA, E100B, 0),
+	U3G_DEV(STELERA, E100C, 0),
+	U3G_DEV(STELERA, E100D, 0),
+	U3G_DEV(STELERA, E100E, 0),
+	U3G_DEV(STELERA, E100F, 0),
+	U3G_DEV(STELERA, E1010, 0),
+	U3G_DEV(STELERA, E1011, 0),
+	U3G_DEV(STELERA, E1012, 0),
+	U3G_DEV(TCTMOBILE, X060S, 0),
+	U3G_DEV(TELIT, UC864E, 0),
+	U3G_DEV(TELIT, UC864G, 0),
+	U3G_DEV(TLAYTECH, TEU800, 0),
+	U3G_DEV(TOSHIBA, G450, 0),
+	U3G_DEV(TOSHIBA, HSDPA, 0),
+	U3G_DEV(YISO, C893, 0),
+	/* Autoinstallers */
+	U3G_DEV(NOVATEL, ZEROCD, U3GFL_SCSI_EJECT),
+	U3G_DEV(SIERRA, TRUINSTALL, U3GFL_SIERRA_INIT),
+#undef	U3G_DEV
 };
 
 static void

Modified: stable/8/sys/dev/usb/usbdevs
==============================================================================
--- stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:10:26 2009	(r201305)
+++ stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:12:38 2009	(r201306)
@@ -554,6 +554,7 @@ vendor PLX		0x10b5	PLX
 vendor ASANTE		0x10bd	Asante
 vendor SILABS		0x10c4	Silicon Labs
 vendor ACTIONS		0x10d6  Actions
+vendor AIRPLUS		0x1011  Airplus
 vendor ANALOG		0x1110	Analog Devices
 vendor TENX		0x1130	Ten X Technology, Inc.
 vendor ISSC		0x1131	Integrated System Solution Corp.
@@ -561,6 +562,7 @@ vendor JRC		0x1145	Japan Radio Company
 vendor SPHAIRON		0x114b	Sphairon Access Systems GmbH
 vendor DELORME		0x1163	DeLorme
 vendor SERVERWORKS	0x1166	ServerWorks
+vendor DLINK3		0x1186	Dlink
 vendor ACERCM		0x1189	Acer Communications & Multimedia
 vendor SIERRA		0x1199	Sierra Wireless
 vendor TOPFIELD		0x11db	Topfield Co., Ltd
@@ -609,6 +611,7 @@ vendor SPARKLAN		0x15a9	SparkLAN
 vendor SOHOWARE		0x15e8	SOHOware
 vendor UMAX		0x1606	UMAX Data Systems
 vendor INSIDEOUT	0x1608	Inside Out Networks
+vendor AMOI		0x1614	Amoi Electronics
 vendor GOODWAY		0x1631	Good Way Technology
 vendor ENTREGA		0x1645	Entrega
 vendor ACTIONTEC	0x1668	Actiontec Electronics
@@ -628,10 +631,15 @@ vendor LINKSYS3		0x1915	Linksys
 vendor QUALCOMMINC	0x19d2	Qualcomm, Incorporated
 vendor WCH2		0x1a86	QinHeng Electronics
 vendor STELERA		0x1a8d	Stelera Wireless
+vendor TCTMOBILE	0x1bbb  TCT Mobile
+vendor TELIT		0x1bc7  Telit
 vendor MPMAN		0x1cae	MpMan
 vendor DRESDENELEKTRONIK 0x1cf1 dresden elektronik
+vendor QISDA		0x1da5  Qisda
+vendor ALINK		0x1e0e  Alink
 vendor DLINK		0x2001	D-Link
 vendor PLANEX2		0x2019	Planex Communications
+vendor TLAYTECH		0x20b9	Tlay Tech
 vendor ERICSSON		0x2282	Ericsson
 vendor MOTOROLA2	0x22b8	Motorola
 vendor TRIPPLITE	0x2478	Tripp-Lite
@@ -739,6 +747,7 @@ product ACERP ACERSCAN_620U	0x2060	Acers
 product ACERP ACERSCAN_4300U	0x20b0	Benq 3300U/4300U
 product ACERP ACERSCAN_640BT	0x20be	Acerscan 640BT
 product ACERP ACERSCAN_1240U	0x20c0	Acerscan 1240U
+product ACERP H10		0x4068	AWL400 Wireless Adapter
 product ACERP ATAPI		0x6003	ATA/ATAPI Adapter
 product ACERP AWL300		0x9000	AWL300 Wireless Adapter
 product ACERP AWL400		0x9001	AWL400 Wireless Adapter
@@ -815,6 +824,9 @@ product AIPTEK POCKETCAM3M	0x2011	Pocket
 product AIPTEK2 PENCAM_MEGA_1_3 0x504a	PenCam Mega 1.3
 product AIPTEK2 SUNPLUS_TECH	0x0c15	Sunplus Technology Inc.
 
+/* AirPlis products */
+product AIRPLUS MCD650		0x3198	MCD650 modem
+
 /* AirPrime products */
 product AIRPRIME PC5220		0x0112	CDMA Wireless PC Card
 
@@ -833,6 +845,11 @@ product ALCOR SM_KBD		0x9410	MicroConnec
 product ALCOR NEC_KBD_HUB	0x9472	NEC Kbd Hub
 product ALCOR AU6390	0x6390	AU6390 USB-IDE converter
 
+/* Alink products */
+product ALINK DWM652U5		0xce16	DWM-652
+product ALINK 3G		0x9000	3G modem
+product ALINK 3GU		0x9200	3G modem
+
 /* Altec Lansing products */
 product ALTEC ADA70		0x0070	ADA70 Speakers
 product ALTEC ASC495		0xff05	ASC495 Speakers
@@ -840,6 +857,11 @@ product ALTEC ASC495		0xff05	ASC495 Spea
 /* Allied Telesyn International products */
 product ALLIEDTELESYN ATUSB100	0xb100	AT-USB100
 
+/* Amoi products */
+product AMOI H01		0x0800	H01 3G modem
+product AMOI H01A		0x7002	H01A 3G modem
+product AMOI H02		0x0802	H02 3G modem
+
 /* American Power Conversion products */
 product APC UPS			0x0002	Uninterruptible Power Supply
 
@@ -855,6 +877,7 @@ product ANCHOR EZUSB		0x2131	EZUSB
 product ANCHOR EZLINK		0x2720	EZLINK
 
 /* AnyData products */
+product ANYDATA ADU_620UW	0x6202	CDMA 2000 EV-DO USB Modem
 product ANYDATA ADU_E100X	0x6501	CDMA 2000 1xRTT/EV-DO USB Modem
 product ANYDATA ADU_500A	0x6502	CDMA 2000 EV-DO USB Modem
 
@@ -1149,7 +1172,22 @@ product DELL BC02		0x8000	BC02 Bluetooth
 product DELL PRISM_GT_1		0x8102	PrismGT USB 2.0 WLAN
 product DELL TM350		0x8103	TrueMobile 350 Bluetooth USB Adapter
 product DELL PRISM_GT_2		0x8104	PrismGT USB 2.0 WLAN
+product DELL U5700		0x8114	Dell 5700 3G
+product DELL U5500		0x8115	Dell 5500 3G
+product DELL U5505		0x8116	Dell 5505 3G
+product DELL U5700_2		0x8117	Dell 5700 3G
+product DELL U5510		0x8118	Dell 5510 3G
+product DELL U5700_3		0x8128	Dell 5700 3G
+product DELL U5700_4		0x8129	Dell 5700 3G
+product DELL U5720		0x8133	Dell 5720 3G
+product DELL U5720_2		0x8134	Dell 5720 3G
 product DELL U740		0x8135	Dell U740 CDMA
+product DELL U5520		0x8136	Dell 5520 3G
+product DELL U5520_2		0x8137	Dell 5520 3G
+product DELL U5520_3		0x8138	Dell 5520 3G
+product DELL U5730		0x8180	Dell 5730 3G
+product DELL U5730_2		0x8181	Dell 5730 3G
+product DELL U5730_3		0x8182	Dell 5730 3G
 
 /* Delorme Paublishing products */
 product DELORME EARTHMATE	0x0100	Earthmate GPS
@@ -1198,6 +1236,7 @@ product DLINK2 DWLG122C1	0x3c03	DWL-G122
 product DLINK2 WUA1340		0x3c04	WUA-1340
 product DLINK2 DWA111		0x3c06	DWA-111
 product DLINK2 DWA110		0x3c07	DWA-110
+product DLINK3 DWM652		0x3e04	DWM-652
 
 /* DMI products */
 product DMI CFSM_RW		0xa109	CF/SM Reader/Writer
@@ -1489,6 +1528,7 @@ product HP P1100		0x3102	Photosmart P110
 product HP OJ4215		0x3d11	OfficeJet 4215
 product HP HN210E		0x811c	Ethernet HN210E
 product HP2 C500		0x6002	PhotoSmart C500
+product HP EV2200		0x1b1d  ev2200 HSDPA (aka MC5720)
 product HP HS2300		0x1e1d  hs2300 HSDPA (aka MC8775)
 
 /* HTC products */
@@ -1499,7 +1539,71 @@ product HTC SMARTPHONE		0x0a51	SmartPhon
 /* HUAWEI products */
 product HUAWEI MOBILE		0x1001	Huawei Mobile
 product HUAWEI E220		0x1003	Huawei HSDPA modem
+product HUAWEI E220BIS		0x1004	Huawei HSDPA modem
+product HUAWEI E1401		0x1401	3G modem
+product HUAWEI E1402		0x1402	3G modem
+product HUAWEI E1403		0x1403	3G modem
+product HUAWEI E1404		0x1404	3G modem
+product HUAWEI E1405		0x1405	3G modem
+product HUAWEI E1406		0x1406	3G modem
+product HUAWEI E1407		0x1407	3G modem
+product HUAWEI E1408		0x1408	3G modem
+product HUAWEI E1409		0x1409	3G modem
+product HUAWEI E140A		0x140a	3G modem
+product HUAWEI E140B		0x140b	3G modem
 product HUAWEI E180V		0x140c	Huawei Mobile E180V
+product HUAWEI E140D		0x140d	3G modem
+product HUAWEI E140E		0x140e	3G modem
+product HUAWEI E140F		0x140f	3G modem
+product HUAWEI E1410		0x1410	3G modem
+product HUAWEI E1411		0x1411	3G modem
+product HUAWEI E1412		0x1412	3G modem
+product HUAWEI E1413		0x1413	3G modem
+product HUAWEI E1414		0x1414	3G modem
+product HUAWEI E1415		0x1415	3G modem
+product HUAWEI E1416		0x1416	3G modem
+product HUAWEI E1417		0x1417	3G modem
+product HUAWEI E1418		0x1418	3G modem
+product HUAWEI E1419		0x1419	3G modem
+product HUAWEI E141A		0x141a	3G modem
+product HUAWEI E141B		0x141b	3G modem
+product HUAWEI E141C		0x141c	3G modem
+product HUAWEI E141D		0x141d	3G modem
+product HUAWEI E141E		0x141e	3G modem
+product HUAWEI E141F		0x141f	3G modem
+product HUAWEI E1420		0x1420	3G modem
+product HUAWEI E1421		0x1421	3G modem
+product HUAWEI E1422		0x1422	3G modem
+product HUAWEI E1423		0x1423	3G modem
+product HUAWEI E1424		0x1424	3G modem
+product HUAWEI E1425		0x1425	3G modem
+product HUAWEI E1426		0x1426	3G modem
+product HUAWEI E1427		0x1427	3G modem
+product HUAWEI E1428		0x1428	3G modem
+product HUAWEI E1429		0x1429	3G modem
+product HUAWEI E142A		0x142a	3G modem
+product HUAWEI E142B		0x142b	3G modem
+product HUAWEI E142C		0x142c	3G modem
+product HUAWEI E142D		0x142d	3G modem
+product HUAWEI E142E		0x142e	3G modem
+product HUAWEI E142F		0x142f	3G modem
+product HUAWEI E1430		0x1430	3G modem
+product HUAWEI E1431		0x1431	3G modem
+product HUAWEI E1432		0x1432	3G modem
+product HUAWEI E1433		0x1433	3G modem
+product HUAWEI E1434		0x1434	3G modem
+product HUAWEI E1435		0x1435	3G modem
+product HUAWEI E1436		0x1436	3G modem
+product HUAWEI E1437		0x1437	3G modem
+product HUAWEI E1438		0x1438	3G modem
+product HUAWEI E1439		0x1439	3G modem
+product HUAWEI E143A		0x143a	3G modem
+product HUAWEI E143B		0x143b	3G modem
+product HUAWEI E143C		0x143c	3G modem
+product HUAWEI E143D		0x143d	3G modem
+product HUAWEI E143E		0x143e	3G modem
+product HUAWEI E143F		0x143f	3G modem
+product HUAWEI E14AC		0x14ac	3G modem
 
 /* HUAWEI 3com products */
 product HUAWEI3COM WUB320G	0x0009	Aolynk WUB320g
@@ -1640,6 +1744,7 @@ product KYOCERA FINECAM_S5	0x0103	Fineca
 product KYOCERA FINECAM_L3	0x0105	Finecam L3
 product KYOCERA AHK3001V	0x0203	AH-K3001V
 product KYOCERA2 CDMA_MSM_K	0x17da	Qualcomm Kyocera CDMA Technologies MSM
+product KYOCERA2 KPC680		0x180a	Qualcomm Kyocera CDMA Technologies MSM
 
 /* LaCie products */
 product LACIE HD		0xa601	Hard Disk
@@ -1908,7 +2013,6 @@ product NOVATECH RT2573		0x9021	RT2573
 
 /* Novatel Wireless products */
 product NOVATEL V640		0x1100	Merlin V620
-product NOVATEL CDMA_MODEM	0x1110	Novatel Wireless Merlin CDMA
 product NOVATEL V620		0x1110	Merlin V620
 product NOVATEL V740		0x1120	Merlin V740
 product NOVATEL V720		0x1130	Merlin V720
@@ -1917,13 +2021,20 @@ product NOVATEL U740_2		0x1410	Merlin U7
 product NOVATEL U870		0x1420	Merlin U870
 product NOVATEL XU870		0x1430	Merlin XU870
 product NOVATEL X950D		0x1450	Merlin X950D
-product NOVATEL ES620		0x2100	ES620 CDMA
+product NOVATEL ES620		0x2100	Expedite ES620
+product NOVATEL E725		0x2120	Expedite E725
+product NOVATEL ES620_2		0x2130	Expedite ES620
 product NOVATEL U720		0x2110	Merlin U720
+product NOVATEL EU730		0x2400	Expedite EU730
+product NOVATEL EU740		0x2410	Expedite EU740
+product NOVATEL EU870D		0x2420	Expedite EU870D
 product NOVATEL U727		0x4100	Merlin U727 CDMA
 product NOVATEL MC950D		0x4400	Novatel MC950D HSUPA
 product NOVATEL ZEROCD		0x5010	Novatel ZeroCD
 product NOVATEL ZEROCD2		0x5030	Novatel ZeroCD
+product NOVATEL U727_2		0x5100	Merlin U727 CDMA
 product NOVATEL U760		0x6000	Novatel U760
+product NOVATEL MC760		0x6002	Novatel MC760
 product NOVATEL2 FLEXPACKGPS	0x0100	NovAtel FlexPack GPS receiver
 
 /* Merlin products */
@@ -1960,6 +2071,24 @@ product OPTION GTHSDPA		0x6971	GlobeTrot
 product OPTION GTMAXHSUPA	0x7001	GlobeTrotter HSUPA
 product OPTION GTMAXHSUPAE	0x6901	GlobeTrotter HSUPA PCIe
 product OPTION GTMAX380HSUPAE	0x7211	GlobeTrotter 380HSUPA PCIe
+product OPTION GT3G_1		0x6050	3G modem
+product OPTION GT3G_2		0x6100	3G modem
+product OPTION GT3G_3		0x6150	3G modem
+product OPTION GT3G_4		0x6200	3G modem
+product OPTION GT3G_5		0x6250	3G modem
+product OPTION GT3G_6		0x6350	3G modem
+product OPTION E6500		0x6500	3G modem
+product OPTION E6501		0x6501	3G modem
+product OPTION E6601		0x6601	3G modem
+product OPTION E6721		0x6721	3G modem
+product OPTION E6741		0x6741	3G modem
+product OPTION E6761		0x6761	3G modem
+product OPTION E6800		0x6800	3G modem
+product OPTION E7021		0x7021	3G modem
+product OPTION E7041		0x7041	3G modem
+product OPTION E7061		0x7061	3G modem
+product OPTION E7100		0x7100	3G modem
+product OPTION GTM380		0x7201	3G modem
 
 /* OQO */
 product OQO WIFI01		0x0002	model 01 WiFi interface
@@ -2080,13 +2209,96 @@ product QCOM RT2573		0x6196	RT2573
 product QCOM RT2573_2		0x6229	RT2573
 product QCOM RT2573_3		0x6238	RT2573
 
+/* Qisda products */
+product QISDA H21_1		0x4512	3G modem
+product QISDA H21_2		0x4523	3G modem
+product QISDA H20_1		0x4515	3G modem
+product QISDA H20_2		0x4519	3G modem
+
 /* Qualcomm products */
 product QUALCOMM CDMA_MSM	0x6000	CDMA Technologies MSM phone
 product QUALCOMM2 RWT_FCT	0x3100	RWT FCT-CDMA 2000 1xRTT modem
 product QUALCOMM2 CDMA_MSM	0x3196	CDMA Technologies MSM modem
+product QUALCOMM2 AC8700	0x6000	AC8700
+product QUALCOMM2 MF330		0x6613	MF330
 product QUALCOMMINC CDMA_MSM	0x0001	CDMA Technologies MSM modem
 product QUALCOMMINC ZTE_STOR	0x2000	USB ZTE Storage
+product QUALCOMMINC AC8710	0xfff1	3G modem
+product QUALCOMMINC AC2726	0xfff5	3G modem
 product QUALCOMMINC AC8700	0xfffe	CDMA 1xEVDO USB modem
+product QUALCOMMINC E0002	0x0002	3G modem
+product QUALCOMMINC E0003	0x0003	3G modem
+product QUALCOMMINC E0004	0x0004	3G modem
+product QUALCOMMINC E0005	0x0005	3G modem
+product QUALCOMMINC E0006	0x0006	3G modem
+product QUALCOMMINC E0007	0x0007	3G modem
+product QUALCOMMINC E0008	0x0008	3G modem
+product QUALCOMMINC E0009	0x0009	3G modem
+product QUALCOMMINC E000A	0x000a	3G modem
+product QUALCOMMINC E000B	0x000b	3G modem
+product QUALCOMMINC E000C	0x000c	3G modem
+product QUALCOMMINC E000D	0x000d	3G modem
+product QUALCOMMINC E000E	0x000e	3G modem
+product QUALCOMMINC E000F	0x000f	3G modem
+product QUALCOMMINC E0010	0x0010	3G modem
+product QUALCOMMINC E0011	0x0011	3G modem
+product QUALCOMMINC E0012	0x0012	3G modem
+product QUALCOMMINC E0013	0x0013	3G modem
+product QUALCOMMINC E0014	0x0014	3G modem
+product QUALCOMMINC MF628	0x0015	3G modem
+product QUALCOMMINC E0016	0x0016	3G modem
+product QUALCOMMINC E0017	0x0017	3G modem
+product QUALCOMMINC E0018	0x0018	3G modem
+product QUALCOMMINC E0019	0x0019	3G modem
+product QUALCOMMINC E0020	0x0020	3G modem
+product QUALCOMMINC E0021	0x0021	3G modem
+product QUALCOMMINC E0022	0x0022	3G modem
+product QUALCOMMINC E0023	0x0023	3G modem
+product QUALCOMMINC E0024	0x0024	3G modem
+product QUALCOMMINC E0025	0x0025	3G modem
+product QUALCOMMINC E0026	0x0026	3G modem
+product QUALCOMMINC E0027	0x0027	3G modem
+product QUALCOMMINC E0028	0x0028	3G modem
+product QUALCOMMINC E0029	0x0029	3G modem
+product QUALCOMMINC E0030	0x0030	3G modem
+product QUALCOMMINC MF626	0x0031	3G modem
+product QUALCOMMINC E0032	0x0032	3G modem
+product QUALCOMMINC E0033	0x0033	3G modem
+product QUALCOMMINC E0037	0x0037	3G modem
+product QUALCOMMINC E0039	0x0039	3G modem
+product QUALCOMMINC E0042	0x0042	3G modem
+product QUALCOMMINC E0043	0x0043	3G modem
+product QUALCOMMINC E0048	0x0048	3G modem
+product QUALCOMMINC E0049	0x0049	3G modem
+product QUALCOMMINC E0051	0x0051	3G modem
+product QUALCOMMINC E0052	0x0052	3G modem
+product QUALCOMMINC E0054	0x0054	3G modem
+product QUALCOMMINC E0055	0x0055	3G modem
+product QUALCOMMINC E0057	0x0057	3G modem
+product QUALCOMMINC E0058	0x0058	3G modem
+product QUALCOMMINC E0059	0x0059	3G modem
+product QUALCOMMINC E0060	0x0060	3G modem
+product QUALCOMMINC E0061	0x0061	3G modem
+product QUALCOMMINC E0062	0x0062	3G modem
+product QUALCOMMINC E0063	0x0063	3G modem
+product QUALCOMMINC E0064	0x0064	3G modem
+product QUALCOMMINC E0066	0x0066	3G modem
+product QUALCOMMINC E0069	0x0069	3G modem
+product QUALCOMMINC E0070	0x0070	3G modem
+product QUALCOMMINC E0073	0x0073	3G modem
+product QUALCOMMINC E0076	0x0076	3G modem
+product QUALCOMMINC E0078	0x0078	3G modem
+product QUALCOMMINC E0082	0x0082	3G modem
+product QUALCOMMINC E0086	0x0086	3G modem
+product QUALCOMMINC E2002	0x2002	3G modem
+product QUALCOMMINC E2003	0x2003	3G modem
+
+/* Quanta products */
+product QUANTA Q101		0xea02	HSDPA modem
+product QUANTA Q111		0xea03	HSDPA modem
+product QUANTA GLX		0xea04	HSDPA modem
+product QUANTA GKE		0xea05	HSDPA modem
+product QUANTA GLE		0xea06	HSDPA modem
 
 /* Qtronix products */
 product QTRONIX 980N		0x2011	Scorpion-980N keyboard
@@ -2210,33 +2422,62 @@ product SIEMENS3 X65		0x0003	X65
 product SIEMENS3 X75		0x0004	X75
 
 /* Sierra Wireless products */
-product SIERRA AIRCARD580	0x0112	Sierra Wireless AirCard 580
+product SIERRA EM5625		0x0017	EM5625
+product SIERRA MC5720_2		0x0018	MC5720
+product SIERRA MC5725		0x0020	MC5725
 product SIERRA AIRCARD595	0x0019	Sierra Wireless AirCard 595
-product SIERRA AC595U		0x0120	Sierra Wireless AirCard 595U
 product SIERRA AC597E		0x0021	Sierra Wireless AirCard 597E
+product SIERRA EM5725		0x0022	EM5725
 product SIERRA C597		0x0023	Sierra Wireless Compass 597
-product SIERRA AC875		0x6820	Sierra Wireless AirCard 875
-product SIERRA AC880		0x6850	Sierra Wireless AirCard 880
-product SIERRA AC881		0x6851	Sierra Wireless AirCard 881
-product SIERRA AC880E		0x6852	Sierra Wireless AirCard 880E
-product SIERRA AC881E		0x6853	Sierra Wireless AirCard 881E
-product SIERRA AC880U		0x6855	Sierra Wireless AirCard 880U
-product SIERRA AC881U		0x6856	Sierra Wireless AirCard 881U
-product SIERRA AC885U		0x6880	Sierra Wireless AirCard 885U
-product SIERRA EM5625		0x0017	EM5625
+product SIERRA MC5727		0x0024	MC5727
+product SIERRA T598		0x0025	T598
+product SIERRA T11		0x0026	T11
+product SIERRA AC402		0x0027	AC402
+product SIERRA MC5728		0x0028	MC5728
+product SIERRA E0029		0x0029	E0029
+product SIERRA AIRCARD580	0x0112	Sierra Wireless AirCard 580
+product SIERRA AC595U		0x0120	Sierra Wireless AirCard 595U
 product SIERRA MC5720		0x0218	MC5720 Wireless Modem
-product SIERRA MC5720_2		0x0018	MC5720
-product SIERRA MC5725		0x0020	MC5725
 product SIERRA MINI5725		0x0220	Sierra Wireless miniPCI 5275
+product SIERRA MC5727_2		0x0224	MC5727
 product SIERRA MC8755_2		0x6802	MC8755
 product SIERRA MC8765		0x6803	MC8765
 product SIERRA MC8755		0x6804	MC8755
+product SIERRA MC8765_2		0x6805	MC8765
+product SIERRA MC8755_4		0x6808	MC8755
+product SIERRA MC8765_3		0x6809	MC8765
 product SIERRA AC875U		0x6812	AC875U HSDPA USB Modem
 product SIERRA MC8755_3		0x6813	MC8755 HSDPA
 product SIERRA MC8775_2		0x6815	MC8775
-product SIERRA AIRCARD875	0x6820	Aircard 875 HSDPA
+product SIERRA MC8775		0x6816	MC8775
+product SIERRA AC875		0x6820	Sierra Wireless AirCard 875
+product SIERRA AC875U_2		0x6821	AC875U
+product SIERRA AC875E		0x6822	AC875E
 product SIERRA MC8780		0x6832	MC8780
 product SIERRA MC8781		0x6833	MC8781
+product SIERRA MC8780_2		0x6834	MC8780
+product SIERRA MC8781_2		0x6835	MC8781
+product SIERRA MC8780_3		0x6838	MC8780
+product SIERRA MC8781_3		0x6839	MC8781
+product SIERRA MC8785		0x683A	MC8785
+product SIERRA MC8785_2		0x683B	MC8785
+product SIERRA MC8790		0x683C	MC8790
+product SIERRA MC8791		0x683D	MC8791
+product SIERRA MC8792		0x683E	MC8792
+product SIERRA AC880		0x6850	Sierra Wireless AirCard 880
+product SIERRA AC881		0x6851	Sierra Wireless AirCard 881
+product SIERRA AC880E		0x6852	Sierra Wireless AirCard 880E
+product SIERRA AC881E		0x6853	Sierra Wireless AirCard 881E
+product SIERRA AC880U		0x6855	Sierra Wireless AirCard 880U
+product SIERRA AC881U		0x6856	Sierra Wireless AirCard 881U
+product SIERRA AC885E		0x6859	AC885E
+product SIERRA AC885E_2		0x685A	AC885E
+product SIERRA AC885U		0x6880	Sierra Wireless AirCard 885U
+product SIERRA C888		0x6890	C888
+product SIERRA C22		0x6891	C22
+product SIERRA E6892		0x6892	E6892
+product SIERRA E6893		0x6893	E6893
+product SIERRA AIRCARD875	0x6820	Aircard 875 HSDPA
 product SIERRA TRUINSTALL	0x0fff	Aircard Tru Installer
 
 /* Sigmatel products */
@@ -2351,6 +2592,22 @@ product SPHAIRON UB801R		0x0110	UB801R
 /* Stelera Wireless products */
 product STELERA ZEROCD		0x1000	Zerocd Installer
 product STELERA C105		0x1002	Stelera/Bandrish C105 USB
+product STELERA E1003		0x1003	3G modem
+product STELERA E1004		0x1004	3G modem
+product STELERA E1005		0x1005	3G modem
+product STELERA E1006		0x1006	3G modem
+product STELERA E1007		0x1007	3G modem
+product STELERA E1008		0x1008	3G modem
+product STELERA E1009		0x1009	3G modem
+product STELERA E100A		0x100a	3G modem
+product STELERA E100B		0x100b	3G modem
+product STELERA E100C		0x100c	3G modem
+product STELERA E100D		0x100d	3G modem
+product STELERA E100E		0x100e	3G modem
+product STELERA E100F		0x100f	3G modem
+product STELERA E1010		0x1010	3G modem
+product STELERA E1011		0x1011	3G modem
+product STELERA E1012		0x1012	3G modem
 
 /* MpMan products */
 product MPMAN MPF400_1		0x36d0	MPF400 Music Player 1Go
@@ -2407,6 +2664,9 @@ product TAPWAVE ZODIAC		0x0100	Zodiac
 /* Taugagreining products */
 product TAUGA CAMERAMATE	0x0005	CameraMate (DPCM_USB)
 
+/* TCTMobile products */
+product TCTMOBILE X060S		0x0000	X060S 3G modem
+
 /* TDK products */
 product TDK UPA9664		0x0115	USB-PDC Adapter UPA9664
 product TDK UCA1464		0x0116	USB-cdmaOne Adapter UCA1464
@@ -2425,6 +2685,10 @@ product TEKRAM ZD1211_2		0x6630	ZD1211
 /* Telex Communications products */
 product TELEX MIC1		0x0001	Enhanced USB Microphone
 
+/* Telit products */
+product TELIT UC864E		0x1003	UC864E 3G modem
+product TELIT UC864G		0x1004	UC864G 3G modem
+
 /* Ten X Technology, Inc. */
 product TENX UAUDIO0		0xf211	USB audio headset
 
@@ -2435,11 +2699,16 @@ product TI TUSB2046		0x2046	TUSB2046 hub
 /* Thrustmaster products */
 product THRUST FUSION_PAD	0xa0a3	Fusion Digital Gamepad
 
+/* TLayTech products */
+product TLAYTECH TEU800		0x1682	TEU800 3G modem
+
 /* Topre Corporation products */
 product TOPRE HHKB		0x0100	HHKB Professional
 
 /* Toshiba Corporation products */
 product TOSHIBA POCKETPC_E740	0x0706	PocketPC e740
+product TOSHIBA G450		0x0d45	G450 modem
+product TOSHIBA HSDPA		0x1302	G450 modem
 
 /* Trek Technology products */
 product TREK THUMBDRIVE		0x1111	ThumbDrive

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:13:25 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 34C0B10656A6;
	Thu, 31 Dec 2009 00:13:25 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 227018FC1D;
	Thu, 31 Dec 2009 00:13:25 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0DPi6078804;
	Thu, 31 Dec 2009 00:13:25 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0DPt3078802;
	Thu, 31 Dec 2009 00:13:25 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310013.nBV0DPt3078802@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:13:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201307 - stable/8/sys/dev/usb/serial
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:13:25 -0000

Author: thompsa
Date: Thu Dec 31 00:13:24 2009
New Revision: 201307
URL: http://svn.freebsd.org/changeset/base/201307

Log:
  MFC r200658
  
   Keep list sorted.

Modified:
  stable/8/sys/dev/usb/serial/u3g.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/serial/u3g.c
==============================================================================
--- stable/8/sys/dev/usb/serial/u3g.c	Thu Dec 31 00:12:38 2009	(r201306)
+++ stable/8/sys/dev/usb/serial/u3g.c	Thu Dec 31 00:13:24 2009	(r201307)
@@ -187,8 +187,8 @@ static const struct usb_device_id u3g_de
 	U3G_DEV(AMOI, H01, 0),
 	U3G_DEV(AMOI, H01A, 0),
 	U3G_DEV(AMOI, H02, 0),
-	U3G_DEV(ANYDATA, ADU_620UW, 0),
 	U3G_DEV(ANYDATA, ADU_500A, 0),
+	U3G_DEV(ANYDATA, ADU_620UW, 0),
 	U3G_DEV(ANYDATA, ADU_E100X, 0),
 	U3G_DEV(AXESSTEL, DATAMODEM, 0),
 	U3G_DEV(CMOTECH, CDMA_MODEM1, 0),
@@ -211,7 +211,6 @@ static const struct usb_device_id u3g_de
 	U3G_DEV(DLINK3, DWM652, 0),
 	U3G_DEV(HP, EV2200, 0),
 	U3G_DEV(HP, HS2300, 0),
-	U3G_DEV(HUAWEI, E220BIS, U3GFL_HUAWEI_INIT),
 	U3G_DEV(HUAWEI, E1401, U3GFL_HUAWEI_INIT),
 	U3G_DEV(HUAWEI, E1402, U3GFL_HUAWEI_INIT),
 	U3G_DEV(HUAWEI, E1403, U3GFL_HUAWEI_INIT),
@@ -277,9 +276,10 @@ static const struct usb_device_id u3g_de
 	U3G_DEV(HUAWEI, E14AC, U3GFL_HUAWEI_INIT),
 	U3G_DEV(HUAWEI, E180V, U3GFL_HUAWEI_INIT),
 	U3G_DEV(HUAWEI, E220, U3GFL_HUAWEI_INIT),
+	U3G_DEV(HUAWEI, E220BIS, U3GFL_HUAWEI_INIT),
 	U3G_DEV(HUAWEI, MOBILE, U3GFL_HUAWEI_INIT),
-	U3G_DEV(KYOCERA2, KPC680, 0),
 	U3G_DEV(KYOCERA2, CDMA_MSM_K, 0),
+	U3G_DEV(KYOCERA2, KPC680, 0),
 	U3G_DEV(MERLIN, V620, 0),
 	U3G_DEV(NOVATEL, E725, 0),
 	U3G_DEV(NOVATEL, ES620, 0),
@@ -302,12 +302,6 @@ static const struct usb_device_id u3g_de
 	U3G_DEV(NOVATEL, V740, 0),
 	U3G_DEV(NOVATEL, X950D, 0),
 	U3G_DEV(NOVATEL, XU870, 0),
-	U3G_DEV(OPTION, GT3G_1, 0),
-	U3G_DEV(OPTION, GT3G_2, 0),
-	U3G_DEV(OPTION, GT3G_3, 0),
-	U3G_DEV(OPTION, GT3G_4, 0),
-	U3G_DEV(OPTION, GT3G_5, 0),
-	U3G_DEV(OPTION, GT3G_6, 0),
 	U3G_DEV(OPTION, E6500, 0),
 	U3G_DEV(OPTION, E6501, 0),
 	U3G_DEV(OPTION, E6601, 0),
@@ -319,22 +313,32 @@ static const struct usb_device_id u3g_de
 	U3G_DEV(OPTION, E7041, 0),
 	U3G_DEV(OPTION, E7061, 0),
 	U3G_DEV(OPTION, E7100, 0),
-	U3G_DEV(OPTION, GTM380, 0),
 	U3G_DEV(OPTION, GT3G, 0),
 	U3G_DEV(OPTION, GT3GPLUS, 0),
 	U3G_DEV(OPTION, GT3GQUAD, 0),
+	U3G_DEV(OPTION, GT3G_1, 0),
+	U3G_DEV(OPTION, GT3G_2, 0),
+	U3G_DEV(OPTION, GT3G_3, 0),
+	U3G_DEV(OPTION, GT3G_4, 0),
+	U3G_DEV(OPTION, GT3G_5, 0),
+	U3G_DEV(OPTION, GT3G_6, 0),
 	U3G_DEV(OPTION, GTHSDPA, 0),
+	U3G_DEV(OPTION, GTM380, 0),
 	U3G_DEV(OPTION, GTMAX36, 0),
 	U3G_DEV(OPTION, GTMAX380HSUPAE, 0),
 	U3G_DEV(OPTION, GTMAXHSUPA, 0),
 	U3G_DEV(OPTION, GTMAXHSUPAE, 0),
 	U3G_DEV(OPTION, VODAFONEMC3G, 0),
-	U3G_DEV(QISDA, H21_1, 0),
-	U3G_DEV(QISDA, H21_2, 0),
 	U3G_DEV(QISDA, H20_1, 0),
 	U3G_DEV(QISDA, H20_2, 0),
+	U3G_DEV(QISDA, H21_1, 0),
+	U3G_DEV(QISDA, H21_2, 0),
 	U3G_DEV(QUALCOMM2, AC8700, 0),
 	U3G_DEV(QUALCOMM2, MF330, 0),
+	U3G_DEV(QUALCOMMINC, AC2726, 0),
+	U3G_DEV(QUALCOMMINC, AC8700, 0),
+	U3G_DEV(QUALCOMMINC, AC8710, 0),
+	U3G_DEV(QUALCOMMINC, CDMA_MSM, U3GFL_SCSI_EJECT),
 	U3G_DEV(QUALCOMMINC, E0002, 0),
 	U3G_DEV(QUALCOMMINC, E0003, 0),
 	U3G_DEV(QUALCOMMINC, E0004, 0),
@@ -354,7 +358,6 @@ static const struct usb_device_id u3g_de
 	U3G_DEV(QUALCOMMINC, E0012, 0),
 	U3G_DEV(QUALCOMMINC, E0013, 0),
 	U3G_DEV(QUALCOMMINC, E0014, 0),
-	U3G_DEV(QUALCOMMINC, MF628, 0),
 	U3G_DEV(QUALCOMMINC, E0016, 0),
 	U3G_DEV(QUALCOMMINC, E0017, 0),
 	U3G_DEV(QUALCOMMINC, E0018, 0),
@@ -370,7 +373,6 @@ static const struct usb_device_id u3g_de
 	U3G_DEV(QUALCOMMINC, E0028, 0),
 	U3G_DEV(QUALCOMMINC, E0029, 0),
 	U3G_DEV(QUALCOMMINC, E0030, 0),
-	U3G_DEV(QUALCOMMINC, MF626, 0),
 	U3G_DEV(QUALCOMMINC, E0032, 0),
 	U3G_DEV(QUALCOMMINC, E0033, 0),
 	U3G_DEV(QUALCOMMINC, E0037, 0),
@@ -401,16 +403,14 @@ static const struct usb_device_id u3g_de
 	U3G_DEV(QUALCOMMINC, E0086, 0),
 	U3G_DEV(QUALCOMMINC, E2002, 0),
 	U3G_DEV(QUALCOMMINC, E2003, 0),
-	U3G_DEV(QUALCOMMINC, AC8710, 0),
-	U3G_DEV(QUALCOMMINC, AC2726, 0),
-	U3G_DEV(QUALCOMMINC, AC8700, 0),
-	U3G_DEV(QUALCOMMINC, CDMA_MSM, U3GFL_SCSI_EJECT),
+	U3G_DEV(QUALCOMMINC, MF626, 0),
+	U3G_DEV(QUALCOMMINC, MF628, 0),
 	U3G_DEV(QUALCOMMINC, ZTE_STOR, U3GFL_SCSI_EJECT),
-	U3G_DEV(QUANTA, Q101, 0),
-	U3G_DEV(QUANTA, Q111, 0),
-	U3G_DEV(QUANTA, GLX, 0),
 	U3G_DEV(QUANTA, GKE, 0),
 	U3G_DEV(QUANTA, GLE, 0),
+	U3G_DEV(QUANTA, GLX, 0),
+	U3G_DEV(QUANTA, Q101, 0),
+	U3G_DEV(QUANTA, Q111, 0),
 	U3G_DEV(SIERRA, AC402, 0),
 	U3G_DEV(SIERRA, AC595U, 0),
 	U3G_DEV(SIERRA, AC597E, 0),

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:14:02 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 71EEE106566C;
	Thu, 31 Dec 2009 00:14:02 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 603AB8FC17;
	Thu, 31 Dec 2009 00:14:02 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0E2n9078865;
	Thu, 31 Dec 2009 00:14:02 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0E2NX078863;
	Thu, 31 Dec 2009 00:14:02 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310014.nBV0E2NX078863@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:14:02 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201308 - stable/8/sys/dev/usb/controller
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:14:02 -0000

Author: thompsa
Date: Thu Dec 31 00:14:02 2009
New Revision: 201308
URL: http://svn.freebsd.org/changeset/base/201308

Log:
  MFC r200822
  
   Add more EHCI pci ids.

Modified:
  stable/8/sys/dev/usb/controller/ehci_pci.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/controller/ehci_pci.c
==============================================================================
--- stable/8/sys/dev/usb/controller/ehci_pci.c	Thu Dec 31 00:13:24 2009	(r201307)
+++ stable/8/sys/dev/usb/controller/ehci_pci.c	Thu Dec 31 00:14:02 2009	(r201308)
@@ -197,6 +197,10 @@ ehci_pci_match(device_t self)
 		return "Intel 82801JI (ICH10) USB 2.0 controller USB-A";
 	case 0x3a3c8086:
 		return "Intel 82801JI (ICH10) USB 2.0 controller USB-B";
+	case 0x3b348086:
+		return ("Intel PCH USB 2.0 controller USB-A");
+	case 0x3b3c8086:
+		return ("Intel PCH USB 2.0 controller USB-B");
 
 	case 0x00e01033:
 		return ("NEC uPD 720100 USB 2.0 controller");
@@ -213,6 +217,12 @@ ehci_pci_match(device_t self)
 		return "NVIDIA nForce4 USB 2.0 controller";
 	case 0x03f210de:
 		return "NVIDIA nForce MCP61 USB 2.0 controller";
+	case 0x0aa610de:
+		return "NVIDIA nForce MCP79 USB 2.0 controller";
+	case 0x0aa910de:
+		return "NVIDIA nForce MCP79 USB 2.0 controller";
+	case 0x0aaa10de:
+		return "NVIDIA nForce MCP79 USB 2.0 controller";
 
 	case 0x15621131:
 		return "Philips ISP156x USB 2.0 controller";

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:14:37 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id ACC6F10656BD;
	Thu, 31 Dec 2009 00:14:37 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 9B15A8FC1F;
	Thu, 31 Dec 2009 00:14:37 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0Eb42078924;
	Thu, 31 Dec 2009 00:14:37 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0EbwQ078922;
	Thu, 31 Dec 2009 00:14:37 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310014.nBV0EbwQ078922@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:14:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201309 - stable/8/sys/dev/usb/controller
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:14:38 -0000

Author: thompsa
Date: Thu Dec 31 00:14:37 2009
New Revision: 201309
URL: http://svn.freebsd.org/changeset/base/201309

Log:
  MFC r200823
  
   Add more OHCI pci ids.

Modified:
  stable/8/sys/dev/usb/controller/ohci_pci.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/controller/ohci_pci.c
==============================================================================
--- stable/8/sys/dev/usb/controller/ohci_pci.c	Thu Dec 31 00:14:02 2009	(r201308)
+++ stable/8/sys/dev/usb/controller/ohci_pci.c	Thu Dec 31 00:14:37 2009	(r201309)
@@ -175,6 +175,12 @@ ohci_pci_match(device_t self)
 
 	case 0x03f110de:
 		return ("nVidia nForce MCP61 USB Controller");
+	case 0x0aa510de:
+		return ("nVidia nForce MCP79 USB Controller");
+	case 0x0aa710de:
+		return ("nVidia nForce MCP79 USB Controller");
+	case 0x0aa810de:
+		return ("nVidia nForce MCP79 USB Controller");
 
 	case 0x70011039:
 		return ("SiS 5571 USB controller");

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:15:36 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E31E510656AB;
	Thu, 31 Dec 2009 00:15:36 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id D0A188FC0C;
	Thu, 31 Dec 2009 00:15:36 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0FaFS079005;
	Thu, 31 Dec 2009 00:15:36 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0FaSD079003;
	Thu, 31 Dec 2009 00:15:36 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310015.nBV0FaSD079003@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:15:36 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201310 - stable/8/sys/dev/sound/usb
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:15:37 -0000

Author: thompsa
Date: Thu Dec 31 00:15:36 2009
New Revision: 201310
URL: http://svn.freebsd.org/changeset/base/201310

Log:
  MFC r200825
  
   - add support for more than 2 audio channels. [1]
   - add support for more sample rates
  
  Submitted by:	[1] ariff (earlier version), Hans Petter Selasky

Modified:
  stable/8/sys/dev/sound/usb/uaudio.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/sound/usb/uaudio.c
==============================================================================
--- stable/8/sys/dev/sound/usb/uaudio.c	Thu Dec 31 00:14:37 2009	(r201309)
+++ stable/8/sys/dev/sound/usb/uaudio.c	Thu Dec 31 00:15:36 2009	(r201310)
@@ -87,20 +87,27 @@
 #include 
 #include "feeder_if.h"
 
-static int uaudio_default_rate = 96000;
+static int uaudio_default_rate = 0;		/* use rate list */
 static int uaudio_default_bits = 32;
-static int uaudio_default_channels = 2;
+static int uaudio_default_channels = 0;		/* use default */
 
 #if USB_DEBUG
 static int uaudio_debug = 0;
 
 SYSCTL_NODE(_hw_usb, OID_AUTO, uaudio, CTLFLAG_RW, 0, "USB uaudio");
+
 SYSCTL_INT(_hw_usb_uaudio, OID_AUTO, debug, CTLFLAG_RW,
     &uaudio_debug, 0, "uaudio debug level");
+
+TUNABLE_INT("hw.usb.uaudio.default_rate", &uaudio_default_rate);
 SYSCTL_INT(_hw_usb_uaudio, OID_AUTO, default_rate, CTLFLAG_RW,
     &uaudio_default_rate, 0, "uaudio default sample rate");
+
+TUNABLE_INT("hw.usb.uaudio.default_bits", &uaudio_default_bits);
 SYSCTL_INT(_hw_usb_uaudio, OID_AUTO, default_bits, CTLFLAG_RW,
     &uaudio_default_bits, 0, "uaudio default sample bits");
+
+TUNABLE_INT("hw.usb.uaudio.default_channels", &uaudio_default_channels);
 SYSCTL_INT(_hw_usb_uaudio, OID_AUTO, default_channels, CTLFLAG_RW,
     &uaudio_default_channels, 0, "uaudio default sample channels");
 #endif
@@ -169,10 +176,16 @@ struct uaudio_chan {
 	uint32_t intr_size;		/* in bytes */
 	uint32_t intr_frames;		/* in units */
 	uint32_t sample_rate;
+	uint32_t frames_per_second;
+	uint32_t sample_rem;
+	uint32_t sample_curr;
+
 	uint32_t format;
 	uint32_t pcm_format[2];
 
-	uint16_t bytes_per_frame;
+	uint16_t bytes_per_frame[2];
+
+	uint16_t sample_size;
 
 	uint8_t	valid;
 	uint8_t	iface_index;
@@ -330,7 +343,7 @@ static usb_callback_t umidi_write_clear_
 static usb_callback_t umidi_bulk_write_callback;
 
 static void	uaudio_chan_fill_info_sub(struct uaudio_softc *,
-		    struct usb_device *, uint32_t, uint16_t, uint8_t, uint8_t);
+		    struct usb_device *, uint32_t, uint8_t, uint8_t);
 static void	uaudio_chan_fill_info(struct uaudio_softc *,
 		    struct usb_device *);
 static void	uaudio_mixer_add_ctl_sub(struct uaudio_softc *,
@@ -787,8 +800,7 @@ uaudio_chan_dump_ep_desc(const usb2_endp
 
 static void
 uaudio_chan_fill_info_sub(struct uaudio_softc *sc, struct usb_device *udev,
-    uint32_t rate, uint16_t fps, uint8_t channels,
-    uint8_t bit_resolution)
+    uint32_t rate, uint8_t channels, uint8_t bit_resolution)
 {
 	struct usb_descriptor *desc = NULL;
 	const struct usb2_audio_streaming_interface_descriptor *asid = NULL;
@@ -811,7 +823,6 @@ uaudio_chan_fill_info_sub(struct uaudio_
 	uint8_t bBitResolution;
 	uint8_t x;
 	uint8_t audio_if = 0;
-	uint8_t sample_size;
 
 	while ((desc = usb_desc_foreach(cd, desc))) {
 
@@ -1040,16 +1051,10 @@ uaudio_chan_fill_info_sub(struct uaudio_
 						chan->usb2_cfg =
 						    uaudio_cfg_play;
 
-					sample_size = ((
+					chan->sample_size = ((
 					    UAUDIO_MAX_CHAN(chan->p_asf1d->bNrChannels) *
 					    chan->p_asf1d->bBitResolution) / 8);
 
-					/*
-					 * NOTE: "chan->bytes_per_frame"
-					 * should not be zero!
-					 */
-					chan->bytes_per_frame = ((rate / fps) * sample_size);
-
 					if (sc->sc_sndstat_valid) {
 						sbuf_printf(&sc->sc_sndstat, "\n\t"
 						    "mode %d.%d:(%s) %dch, %d/%dbit, %s, %dHz",
@@ -1067,12 +1072,32 @@ uaudio_chan_fill_info_sub(struct uaudio_
 	}
 }
 
+/* This structure defines all the supported rates. */
+
+static const uint32_t uaudio_rate_list[] = {
+	96000,
+	88000,
+	80000,
+	72000,
+	64000,
+	56000,
+	48000,
+	44100,
+	40000,
+	32000,
+	24000,
+	22050,
+	16000,
+	11025,
+	8000,
+	0
+};
+
 static void
 uaudio_chan_fill_info(struct uaudio_softc *sc, struct usb_device *udev)
 {
 	uint32_t rate = uaudio_default_rate;
-	uint32_t z;
-	uint16_t fps = usbd_get_isoc_fps(udev);
+	uint8_t z;
 	uint8_t bits = uaudio_default_bits;
 	uint8_t y;
 	uint8_t channels = uaudio_default_channels;
@@ -1083,14 +1108,24 @@ uaudio_chan_fill_info(struct uaudio_soft
 		/* set a valid value */
 		bits = 32;
 	}
-	rate -= (rate % fps);
-	if ((rate == 0) || (rate > 192000)) {
-		/* set a valid value */
-		rate = 192000 - (192000 % fps);
-	}
-	if ((channels == 0) || (channels > 2)) {
-		/* set a valid value */
-		channels = 2;
+	if (channels == 0) {
+		switch (usbd_get_speed(udev)) {
+		case USB_SPEED_LOW:
+		case USB_SPEED_FULL:
+			/*
+			 * Due to high bandwidth usage and problems
+			 * with HIGH-speed split transactions we
+			 * disable surround setups on FULL-speed USB
+			 * by default
+			 */
+			channels = 2;
+			break;
+		default:
+			channels = 16;
+			break;
+		}
+	} else if (channels > 16) {
+		channels = 16;
 	}
 	if (sbuf_new(&sc->sc_sndstat, NULL, 4096, SBUF_AUTOEXTEND)) {
 		sc->sc_sndstat_valid = 1;
@@ -1099,8 +1134,14 @@ uaudio_chan_fill_info(struct uaudio_soft
 
 	for (x = channels; x; x--) {
 		for (y = bits; y; y -= 8) {
-			for (z = rate; z; z -= fps) {
-				uaudio_chan_fill_info_sub(sc, udev, z, fps, x, y);
+
+			/* try user defined rate, if any */
+			if (rate != 0)
+				uaudio_chan_fill_info_sub(sc, udev, rate, x, y);
+
+			/* try find a matching rate, if any */
+			for (z = 0; uaudio_rate_list[z]; z++) {
+				uaudio_chan_fill_info_sub(sc, udev, uaudio_rate_list[z], x, y);
 
 				if (sc->sc_rec_chan.valid &&
 				    sc->sc_play_chan.valid) {
@@ -1116,18 +1157,6 @@ done:
 	}
 }
 
-/*
- * The following function sets up data size and block count for the
- * next audio transfer.
- */
-static void
-uaudio_setup_blockcount(struct uaudio_chan *ch,
-    uint32_t *total, uint32_t *blockcount)
-{
-	*total = ch->intr_size;
-	*blockcount = ch->intr_frames;
-}
-
 static void
 uaudio_chan_play_callback(struct usb_xfer *xfer, usb_error_t error)
 {
@@ -1137,12 +1166,11 @@ uaudio_chan_play_callback(struct usb_xfe
 	uint32_t blockcount;
 	uint32_t n;
 	uint32_t offset;
-	int actlen, sumlen;
+	int actlen;
+	int sumlen;
 
 	usbd_xfer_status(xfer, &actlen, &sumlen, NULL, NULL);
 
-	uaudio_setup_blockcount(ch, &total, &blockcount);
-
 	if (ch->end == ch->start) {
 		DPRINTF("no buffer!\n");
 		return;
@@ -1153,22 +1181,39 @@ uaudio_chan_play_callback(struct usb_xfe
 tr_transferred:
 		if (actlen < sumlen) {
 			DPRINTF("short transfer, "
-			    "%d of %d bytes\n", actlen, total);
+			    "%d of %d bytes\n", actlen, sumlen);
 		}
 		chn_intr(ch->pcm_ch);
 
 	case USB_ST_SETUP:
-		if (ch->bytes_per_frame > usbd_xfer_max_framelen(xfer)) {
+		if (ch->bytes_per_frame[1] > usbd_xfer_max_framelen(xfer)) {
 			DPRINTF("bytes per transfer, %d, "
 			    "exceeds maximum, %d!\n",
-			    ch->bytes_per_frame,
+			    ch->bytes_per_frame[1],
 			    usbd_xfer_max_framelen(xfer));
 			break;
 		}
-		/* setup frame length */
+
+		blockcount = ch->intr_frames;
+
+		/* setup number of frames */
 		usbd_xfer_set_frames(xfer, blockcount);
-		for (n = 0; n != blockcount; n++)
-			usbd_xfer_set_frame_len(xfer, n, ch->bytes_per_frame);
+
+		/* reset total length */
+		total = 0;
+
+		/* setup frame lengths */
+		for (n = 0; n != blockcount; n++) {
+			ch->sample_curr += ch->sample_rem;
+			if (ch->sample_curr >= ch->frames_per_second) {
+				ch->sample_curr -= ch->frames_per_second;
+				usbd_xfer_set_frame_len(xfer, n, ch->bytes_per_frame[1]);
+				total += ch->bytes_per_frame[1];
+			} else {
+				usbd_xfer_set_frame_len(xfer, n, ch->bytes_per_frame[0]);
+				total += ch->bytes_per_frame[0];
+			}
+		}
 
 		DPRINTFN(6, "transfer %d bytes\n", total);
 
@@ -1210,7 +1255,6 @@ uaudio_chan_record_callback(struct usb_x
 	struct usb_page_cache *pc;
 	uint32_t n;
 	uint32_t m;
-	uint32_t total;
 	uint32_t blockcount;
 	uint32_t offset0;
 	uint32_t offset1;
@@ -1222,8 +1266,6 @@ uaudio_chan_record_callback(struct usb_x
 	usbd_xfer_status(xfer, &actlen, NULL, NULL, &nframes);
 	mfl = usbd_xfer_max_framelen(xfer);
 
-	uaudio_setup_blockcount(ch, &total, &blockcount);
-
 	if (ch->end == ch->start) {
 		DPRINTF("no buffer!\n");
 		return;
@@ -1231,12 +1273,8 @@ uaudio_chan_record_callback(struct usb_x
 
 	switch (USB_GET_STATE(xfer)) {
 	case USB_ST_TRANSFERRED:
-		if (actlen < total) {
-			DPRINTF("short transfer, "
-			    "%d of %d bytes\n", actlen, total);
-		} else {
-			DPRINTFN(6, "transferred %d bytes\n", actlen);
-		}
+
+		DPRINTFN(6, "transferred %d bytes\n", actlen);
 
 		offset0 = 0;
 		pc = usbd_xfer_get_frame(xfer, 0);
@@ -1271,6 +1309,8 @@ uaudio_chan_record_callback(struct usb_x
 
 	case USB_ST_SETUP:
 tr_setup:
+		blockcount = ch->intr_frames;
+
 		usbd_xfer_set_frames(xfer, blockcount);
 		for (n = 0; n < blockcount; n++) {
 			usbd_xfer_set_frame_len(xfer, n, mfl);
@@ -1295,6 +1335,8 @@ uaudio_chan_init(struct uaudio_softc *sc
 	    &sc->sc_play_chan : &sc->sc_rec_chan);
 	uint32_t buf_size;
 	uint32_t frames;
+	uint32_t format;
+	uint16_t fps;
 	uint8_t endpoint;
 	uint8_t blocks;
 	uint8_t iface_index;
@@ -1302,7 +1344,9 @@ uaudio_chan_init(struct uaudio_softc *sc
 	uint8_t fps_shift;
 	usb_error_t err;
 
-	if (usbd_get_isoc_fps(sc->sc_udev) < 8000) {
+	fps = usbd_get_isoc_fps(sc->sc_udev);
+
+	if (fps < 8000) {
 		/* FULL speed USB */
 		frames = 8;
 	} else {
@@ -1310,10 +1354,6 @@ uaudio_chan_init(struct uaudio_softc *sc
 		frames = UAUDIO_NFRAMES;
 	}
 
-	/* compute required buffer size */
-
-	buf_size = (ch->bytes_per_frame * frames);
-
 	/* setup play/record format */
 
 	ch->pcm_cap.fmtlist = ch->pcm_format;
@@ -1329,15 +1369,34 @@ uaudio_chan_init(struct uaudio_softc *sc
 	ch->pcm_ch = c;
 	ch->pcm_mtx = c->lock;
 
-	if (ch->p_asf1d->bNrChannels >= 2)
-		ch->pcm_cap.fmtlist[0] =
-		    SND_FORMAT(ch->p_fmt->freebsd_fmt, 2, 0);
-	else
-		ch->pcm_cap.fmtlist[0] =
-		    SND_FORMAT(ch->p_fmt->freebsd_fmt, 1, 0);
+	format = ch->p_fmt->freebsd_fmt;
+
+	switch (ch->p_asf1d->bNrChannels) {
+	case 2:
+		/* stereo */
+		format = SND_FORMAT(format, 2, 0);
+		break;
+	case 1:
+		/* mono */
+		format = SND_FORMAT(format, 1, 0);
+		break;
+	default:
+		/* surround and more */
+		format = feeder_matrix_default_format(
+		    SND_FORMAT(format, ch->p_asf1d->bNrChannels, 0));
+		break;
+	}
 
+	ch->pcm_cap.fmtlist[0] = format;
 	ch->pcm_cap.fmtlist[1] = 0;
 
+	/* check if format is not supported */
+
+	if (format == 0) {
+		DPRINTF("The selected audio format is not supported\n");
+		goto error;
+	}
+
 	/* set alternate interface corresponding to the mode */
 
 	endpoint = ch->p_ed1->bEndpointAddress;
@@ -1377,10 +1436,27 @@ uaudio_chan_init(struct uaudio_softc *sc
 
 	fps_shift = usbd_xfer_get_fps_shift(ch->xfer[0]);
 
-	/* setup frame sizes */
+	/* down shift number of frames per second, if any */
+	fps >>= fps_shift;
+	frames >>= fps_shift;
+
+	/* bytes per frame should not be zero */
+	ch->bytes_per_frame[0] = ((ch->sample_rate / fps) * ch->sample_size);
+	ch->bytes_per_frame[1] = (((ch->sample_rate + fps - 1) / fps) * ch->sample_size);
+
+	/* setup data rate dithering, if any */
+	ch->frames_per_second = fps;
+	ch->sample_rem = ch->sample_rate % fps;
+	ch->sample_curr = 0;
+	ch->frames_per_second = fps;
+
+	/* compute required buffer size */
+	buf_size = (ch->bytes_per_frame[1] * frames);
+
 	ch->intr_size = buf_size;
-	ch->intr_frames = (frames >> fps_shift);
-	ch->bytes_per_frame <<= fps_shift;
+	ch->intr_frames = frames;
+
+	DPRINTF("fps=%d sample_rem=%d\n", fps, ch->sample_rem);
 
 	if (ch->intr_frames == 0) {
 		DPRINTF("frame shift is too high!\n");

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:17:10 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 46D7A106566B;
	Thu, 31 Dec 2009 00:17:10 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 353618FC17;
	Thu, 31 Dec 2009 00:17:10 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0HA77079093;
	Thu, 31 Dec 2009 00:17:10 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0HAWr079091;
	Thu, 31 Dec 2009 00:17:10 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310017.nBV0HAWr079091@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:17:10 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201311 - stable/8/sys/dev/usb/serial
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:17:10 -0000

Author: thompsa
Date: Thu Dec 31 00:17:09 2009
New Revision: 201311
URL: http://svn.freebsd.org/changeset/base/201311

Log:
  MFC r200826
  
   add new ID to UFTDI driver.
  
  Submitted by:	YAMAMOTO, Shigeru

Modified:
  stable/8/sys/dev/usb/serial/uftdi.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/serial/uftdi.c
==============================================================================
--- stable/8/sys/dev/usb/serial/uftdi.c	Thu Dec 31 00:15:36 2009	(r201310)
+++ stable/8/sys/dev/usb/serial/uftdi.c	Thu Dec 31 00:17:09 2009	(r201311)
@@ -252,6 +252,7 @@ static struct usb_device_id uftdi_devs[]
 	{USB_VPI(USB_VENDOR_BBELECTRONICS, USB_PRODUCT_BBELECTRONICS_USOTL4, UFTDI_TYPE_8U232AM)},
 	{USB_VPI(USB_VENDOR_MARVELL, USB_PRODUCT_MARVELL_SHEEVAPLUG, UFTDI_TYPE_8U232AM)},
 	{USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_PCOPRS1, UFTDI_TYPE_8U232AM)},
+	{USB_VPI(USB_VENDOR_RATOC, USB_PRODUCT_RATOC_REXUSB60F, UFTDI_TYPE_8U232AM)},
 };
 
 static int

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:18:00 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4AEF8106568D;
	Thu, 31 Dec 2009 00:18:00 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 398148FC18;
	Thu, 31 Dec 2009 00:18:00 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0I01n079174;
	Thu, 31 Dec 2009 00:18:00 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0I0mP079172;
	Thu, 31 Dec 2009 00:18:00 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310018.nBV0I0mP079172@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:18:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201312 - stable/8/sys/dev/usb
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:18:00 -0000

Author: thompsa
Date: Thu Dec 31 00:17:59 2009
New Revision: 201312
URL: http://svn.freebsd.org/changeset/base/201312

Log:
  MFC r200827
  
   Add missed usb product define in r200826.

Modified:
  stable/8/sys/dev/usb/usbdevs
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/usbdevs
==============================================================================
--- stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:17:09 2009	(r201311)
+++ stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:17:59 2009	(r201312)
@@ -2346,6 +2346,7 @@ product ROCKFIRE GAMEPAD	0x2033	gamepad 
 
 /* RATOC Systems products */
 product RATOC REXUSB60		0xb000	REX-USB60
+product RATOC REXUSB60F		0xb020	REX-USB60F
 
 /* Sagem products */
 product SAGEM USBSERIAL		0x0027	USB-Serial Controller

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:18:39 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BF1E510656C4;
	Thu, 31 Dec 2009 00:18:38 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B274A8FC08;
	Thu, 31 Dec 2009 00:18:38 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0Ichn079241;
	Thu, 31 Dec 2009 00:18:38 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0Ick2079239;
	Thu, 31 Dec 2009 00:18:38 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310018.nBV0Ick2079239@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:18:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201313 - stable/8/sys/dev/usb
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:18:39 -0000

Author: thompsa
Date: Thu Dec 31 00:18:38 2009
New Revision: 201313
URL: http://svn.freebsd.org/changeset/base/201313

Log:
  MFC r200885
  
   Sync usb vendor/product defines to p4

Modified:
  stable/8/sys/dev/usb/usbdevs
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/usbdevs
==============================================================================
--- stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:17:59 2009	(r201312)
+++ stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:18:38 2009	(r201313)
@@ -328,6 +328,7 @@ vendor AVISION		0x0638	Avision
 vendor TEAC		0x0644	TEAC
 vendor SGI		0x065e	Silicon Graphics
 vendor SANWASUPPLY	0x0663	Sanwa Supply
+vendor MEGATEC		0x0665	Megatec
 vendor LINKSYS		0x066b	Linksys
 vendor ACERSA		0x066e	Acer Semiconductor America
 vendor SIGMATEL		0x066f	Sigmatel
@@ -666,6 +667,7 @@ vendor SITECOM		0x6189	Sitecom
 vendor ARKMICRO		0x6547	Arkmicro Technologies Inc.
 vendor 3COM2		0x6891	3Com
 vendor INTEL		0x8086	Intel
+vendor INTEL2		0x8087	Intel
 vendor SITECOM2		0x9016	Sitecom
 vendor MOSCHIP		0x9710	MosChip Semiconductor
 vendor MARVELL		0x9e88	Marvell Technology Group Ltd.
@@ -1062,6 +1064,7 @@ product CHIC CYPRESS		0x0003	Cypress USB
 
 /* Chicony products */
 product CHICONY KB8933		0x0001	KB-8933 keyboard
+product CHICONY CNF7129		0xb071	Notebook Web Camera
 product CHICONY2 TWINKLECAM	0x600d	TwinkleCam USB camera
 
 /* CH Products */
@@ -1628,6 +1631,7 @@ product INSYSTEM STORAGE_V2	0x5701	USB S
 /* Intel products */
 product INTEL EASYPC_CAMERA	0x0110	Easy PC Camera
 product INTEL TESTBOARD		0x9890	82930 test board
+product INTEL2 IRMH        	0x0020	Integrated Rate Matching Hub
 
 /* Intersil products */
 product INTERSIL PRISM_GT	0x1000	PrismGT USB 2.0 WLAN
@@ -2136,7 +2140,10 @@ product PHILIPS UM10016		0x1552	ISP 1581
 product PHILIPS DIVAUSB		0x1801	DIVA USB mp3 player
 
 /* Philips Semiconductor products */
-product PHILIPSSEMI HUB1122	0x1122	hub
+product PHILIPSSEMI HUB1122	0x1122	HUB
+
+/* Megatec */
+product MEGATEC UPS		0x5161	Protocol based UPS
 
 /* P.I. Engineering products */
 product PIENGINEERING PS2USB	0x020b	PS2 to Mac USB Adapter

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:19:17 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 19F8E1065697;
	Thu, 31 Dec 2009 00:19:17 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 064228FC13;
	Thu, 31 Dec 2009 00:19:17 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0JHSF079356;
	Thu, 31 Dec 2009 00:19:17 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0JG42079352;
	Thu, 31 Dec 2009 00:19:16 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310019.nBV0JG42079352@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:19:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201314 - in stable/8/sys/dev/usb: quirk storage
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:19:17 -0000

Author: thompsa
Date: Thu Dec 31 00:19:16 2009
New Revision: 201314
URL: http://svn.freebsd.org/changeset/base/201314

Log:
  MFC r200886
  
   Move all Mass Storage Quirks over to the USB quirk module.
  
  Submitted by:	Hans Petter Selasky

Modified:
  stable/8/sys/dev/usb/quirk/usb_quirk.c
  stable/8/sys/dev/usb/quirk/usb_quirk.h
  stable/8/sys/dev/usb/storage/umass.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/quirk/usb_quirk.c
==============================================================================
--- stable/8/sys/dev/usb/quirk/usb_quirk.c	Thu Dec 31 00:18:38 2009	(r201313)
+++ stable/8/sys/dev/usb/quirk/usb_quirk.c	Thu Dec 31 00:19:16 2009	(r201314)
@@ -66,7 +66,7 @@ MODULE_VERSION(usb_quirk, 1);
 #define	USB_QUIRK_ENTRY(v,p,l,h,...) \
   .vid = (v), .pid = (p), .lo_rev = (l), .hi_rev = (h), .quirks = { __VA_ARGS__ }
 
-#define	USB_DEV_QUIRKS_MAX 128
+#define	USB_DEV_QUIRKS_MAX 256
 #define	USB_SUB_QUIRKS_MAX 8
 
 struct usb_quirk_entry {
@@ -183,10 +183,396 @@ static struct usb_quirk_entry usb_quirks
 	{USB_QUIRK_ENTRY(USB_VENDOR_CURITEL, USB_PRODUCT_CURITEL_UM175,
 	    0x0000, 0xFFFF, UQ_ASSUME_CM_OVER_DATA)},
 
+	/* USB Mass Storage Class Quirks */
+	{USB_QUIRK_ENTRY(USB_VENDOR_ASAHIOPTICAL, 0,
+	    0x0000, 0xFFFF, UQ_MSC_NO_RS_CLEAR_UA, UQ_MATCH_VENDOR_ONLY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_ATTACHE, 0x0000,
+	    0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_A256MB,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_DISKPRO512,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ADDONICS2, USB_PRODUCT_ADDONICS2_CABLE_205,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_AIPTEK, USB_PRODUCT_AIPTEK_POCKETCAM3M,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_AIPTEK2, USB_PRODUCT_AIPTEK2_SUNPLUS_TECH,
+	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_SDCR_6335,
+	    0x0000, 0xFFFF, UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU6390,
+	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_UMCR_9361,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_TRANSCEND,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO230,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO330,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_USB2SCSI,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_CASIO, USB_PRODUCT_CASIO_QV_DIGICAM,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_CCYU, USB_PRODUCT_CCYU_ED1064,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_CENTURY, USB_PRODUCT_CENTURY_EX35QUAT,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP,
+	    UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_XX6830XX,
+	    0x0000, 0xFFFF, UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_DESKNOTE, USB_PRODUCT_DESKNOTE_UCR_61S2B,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_DMI, USB_PRODUCT_DMI_CFSM_RW,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_875DC,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_895,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_FEIYA, USB_PRODUCT_FEIYA_5IN1,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_FREECOM, USB_PRODUCT_FREECOM_DVD,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_FUJIPHOTO, USB_PRODUCT_FUJIPHOTO_MASS0100,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_NO_RS_CLEAR_UA)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE,
+	    UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE_2,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB_2,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_WRONG_CSWSIG)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FG,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FGSM,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_DZ_MV100A,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_USB,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_CDW4E,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_ATAPI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_CDW8200,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_IMAGINATION, USB_PRODUCT_IMAGINATION_DBX1,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_WRONG_CSWSIG)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_USBCABLE,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP, UQ_MSC_ALT_IFACE_1)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ATAPI,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_STORAGE_V2,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_IU_CD2,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_DVR_UEH8,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP100,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_TEST_UNIT_READY)}, /* XXX ZIP drives can also use ATAPI */
+	{USB_QUIRK_ENTRY(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_L3,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S3X,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S4,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S5,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_LACIE, USB_PRODUCT_LACIE_HD,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_CF_READER,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_JUMPSHOT,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443SU2,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443U2,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_DUBPXXG,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_DPCM,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIDB25,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIHD50,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_E223,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_F300,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_CDRRW,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI | UQ_MSC_FORCE_PROTO_ATAPI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_FDD,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_E398,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_INQUIRY_EVPD, UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MPMAN, 0,
+	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE, UQ_MATCH_VENDOR_ONLY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_RS_CLEAR_UA)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY2,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN,
+	    0x0000, 0xFFFF, UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN_8813,
+	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_STARREADER,
+	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_NEODIO, USB_PRODUCT_NEODIO_ND3260,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_FORCE_SHORT_INQ)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_NETAC, USB_PRODUCT_NETAC_CF_CARD,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_NETAC, USB_PRODUCT_NETAC_ONLYDISK,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_CLIK_40,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_NIKON, USB_PRODUCT_NIKON_D300,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C1,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_WRONG_CSWSIG)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C700,
+	    0x0000, 0xFFFF, UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_SDS_HOTFIND_D,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFMS_RW,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_COMBO,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER2,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDCFE_B_CF_READER,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDSM_B_READER,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_READER,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_UCF100,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_NO_INQUIRY | UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC2, USB_PRODUCT_ONSPEC2_IMAGEMATE_SDDR55,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXL840AN,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB20AN,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB35AN,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_LS120CAM,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_UFI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_SPE3030CC,
+	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_PLEXTOR, USB_PRODUCT_PLEXTOR_40_12_40U,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_TEST_UNIT_READY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_PNY, USB_PRODUCT_PNY_ATTACHE2,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_START_STOP)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SAMSUNG_TECHWIN, USB_PRODUCT_SAMSUNG_TECHWIN_DIGIMAX_410,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR05A,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_READ_CAP_OFFBY1, UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR09,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_READ_CAP_OFFBY1,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR12,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_READ_CAP_OFFBY1, UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ2_256,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_128,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_256,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR31,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_READ_CAP_OFFBY1)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_SL11R,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSB,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP, UQ_MSC_SHUTTLE_INIT)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CDRW,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CF,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBATAPI,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBCFSM,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_HIFD,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_SDDR09,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_ZIOMMC,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SIGMATEL, USB_PRODUCT_SIGMATEL_I_BEAD100,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_SHUTTLE_INIT)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SIIG, USB_PRODUCT_SIIG_WINTERREADER,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SKANHEX, USB_PRODUCT_SKANHEX_MD_7425,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SKANHEX, USB_PRODUCT_SKANHEX_SX_520Z,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_HANDYCAM,
+	    0x0500, 0x0500, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC,
+	    UQ_MSC_RBC_PAD_TO_12)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_40_MS,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
+	    0x0500, 0x0500, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC,
+	    UQ_MSC_RBC_PAD_TO_12)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
+	    0x0600, 0x0600, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC,
+	    UQ_MSC_RBC_PAD_TO_12)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_HANDYCAM,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_MSC,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_MSC_U03,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_NW_MS7,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_PEG_N760C,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_MSACUS1,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_PORTABLE_HDD_V2,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_SUPERTOP, USB_PRODUCT_SUPERTOP_IDE,
+	    0x0000, 0xFFFF, UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TAUGA, USB_PRODUCT_TAUGA_CAMERAMATE,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TEAC, USB_PRODUCT_TEAC_FD05PUB,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TECLAST, USB_PRODUCT_TECLAST_TLC300,
+	    0x0000, 0xFFFF, UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TREK, USB_PRODUCT_TREK_MEMKEY,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TREK, USB_PRODUCT_TREK_THUMBDRIVE_8MB,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_C3310,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_MP3,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_RBC)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_T33520,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_TWINMOS, USB_PRODUCT_TWINMOS_MDIV,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_VIA, USB_PRODUCT_VIA_USB2IDEBRIDGE,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_VIVITAR, USB_PRODUCT_VIVITAR_35XX,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_COMBO,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_EXTHDD,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_MYBOOK,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY_EVPD)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_MYPASSWORD,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_SHORT_INQ)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_WINMAXGROUP, USB_PRODUCT_WINMAXGROUP_FLASH64MC,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_YANO, USB_PRODUCT_YANO_FW800HD,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_YANO, USB_PRODUCT_YANO_U640MO,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_FORCE_SHORT_INQ)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
+	    0x0000, 0x007F, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI,
+	    UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED,
+	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
+	    0x0080, 0x0080, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_UFI,
+	    UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED,
+	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
+	    0x0081, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_UFI,
+	    UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED, UQ_MSC_NO_GETMAXLUN)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ZORAN, USB_PRODUCT_ZORAN_EX20DSC,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_MEIZU, USB_PRODUCT_MEIZU_M6_SL,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_INQUIRY, UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ACTIONS, USB_PRODUCT_ACTIONS_MP4,
+	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_SYNC_CACHE)},
+	{USB_QUIRK_ENTRY(USB_VENDOR_ASUS, USB_PRODUCT_ASUS_GMSC,
+	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
 };
 
 static const char *usb_quirk_str[USB_QUIRK_MAX] = {
 	[UQ_NONE]		= "UQ_NONE",
+	[UQ_MATCH_VENDOR_ONLY]	= "UQ_MATCH_VENDOR_ONLY",
 	[UQ_AUDIO_SWAP_LR]	= "UQ_AUDIO_SWAP_LR",
 	[UQ_AU_INP_ASYNC]	= "UQ_AU_INP_ASYNC",
 	[UQ_AU_NO_FRAC]		= "UQ_AU_NO_FRAC",
@@ -210,7 +596,29 @@ static const char *usb_quirk_str[USB_QUI
 	[UQ_CFG_INDEX_3]	= "UQ_CFG_INDEX_3",
 	[UQ_CFG_INDEX_4]	= "UQ_CFG_INDEX_4",
 	[UQ_CFG_INDEX_0]	= "UQ_CFG_INDEX_0",
-	[UQ_ASSUME_CM_OVER_DATA]= "UQ_ASSUME_CM_OVER_DATA",
+	[UQ_ASSUME_CM_OVER_DATA]	= "UQ_ASSUME_CM_OVER_DATA",
+	[UQ_MSC_NO_TEST_UNIT_READY]	= "UQ_MSC_NO_TEST_UNIT_READY",
+	[UQ_MSC_NO_RS_CLEAR_UA]		= "UQ_MSC_NO_RS_CLEAR_UA",
+	[UQ_MSC_NO_START_STOP]		= "UQ_MSC_NO_START_STOP",
+	[UQ_MSC_NO_GETMAXLUN]		= "UQ_MSC_NO_GETMAXLUN",
+	[UQ_MSC_NO_INQUIRY]		= "UQ_MSC_NO_INQUIRY",
+	[UQ_MSC_NO_INQUIRY_EVPD]	= "UQ_MSC_NO_INQUIRY_EVPD",
+	[UQ_MSC_NO_SYNC_CACHE]		= "UQ_MSC_NO_SYNC_CACHE",
+	[UQ_MSC_SHUTTLE_INIT]		= "UQ_MSC_SHUTTLE_INIT",
+	[UQ_MSC_ALT_IFACE_1]		= "UQ_MSC_ALT_IFACE_1",
+	[UQ_MSC_FLOPPY_SPEED]		= "UQ_MSC_FLOPPY_SPEED",
+	[UQ_MSC_IGNORE_RESIDUE]		= "UQ_MSC_IGNORE_RESIDUE",
+	[UQ_MSC_WRONG_CSWSIG]		= "UQ_MSC_WRONG_CSWSIG",
+	[UQ_MSC_RBC_PAD_TO_12]		= "UQ_MSC_RBC_PAD_TO_12",
+	[UQ_MSC_READ_CAP_OFFBY1]	= "UQ_MSC_READ_CAP_OFFBY1",
+	[UQ_MSC_FORCE_SHORT_INQ]	= "UQ_MSC_FORCE_SHORT_INQ",
+	[UQ_MSC_FORCE_WIRE_BBB]		= "UQ_MSC_FORCE_WIRE_BBB",
+	[UQ_MSC_FORCE_WIRE_CBI]		= "UQ_MSC_FORCE_WIRE_CBI",
+	[UQ_MSC_FORCE_WIRE_CBI_I]	= "UQ_MSC_FORCE_WIRE_CBI_I",
+	[UQ_MSC_FORCE_PROTO_SCSI]	= "UQ_MSC_FORCE_PROTO_SCSI",
+	[UQ_MSC_FORCE_PROTO_ATAPI]	= "UQ_MSC_FORCE_PROTO_ATAPI",
+	[UQ_MSC_FORCE_PROTO_UFI]	= "UQ_MSC_FORCE_PROTO_UFI",
+	[UQ_MSC_FORCE_PROTO_RBC]	= "UQ_MSC_FORCE_PROTO_RBC",
 };
 
 /*------------------------------------------------------------------------*
@@ -246,11 +654,22 @@ usb_test_quirk_by_info(const struct usbd
 	for (x = 0; x != USB_DEV_QUIRKS_MAX; x++) {
 		/* see if quirk information does not match */
 		if ((usb_quirks[x].vid != info->idVendor) ||
-		    (usb_quirks[x].pid != info->idProduct) ||
 		    (usb_quirks[x].lo_rev > info->bcdDevice) ||
 		    (usb_quirks[x].hi_rev < info->bcdDevice)) {
 			continue;
 		}
+		/* see if quirk only should match vendor ID */
+		if (usb_quirks[x].pid != info->idProduct) {
+			if (usb_quirks[x].pid != 0)
+				continue;
+
+			for (y = 0; y != USB_SUB_QUIRKS_MAX; y++) {
+				if (usb_quirks[x].quirks[y] == UQ_MATCH_VENDOR_ONLY)
+					break;
+			}
+			if (y == USB_SUB_QUIRKS_MAX)
+				continue;
+		}
 		/* lookup quirk */
 		for (y = 0; y != USB_SUB_QUIRKS_MAX; y++) {
 			if (usb_quirks[x].quirks[y] == quirk) {

Modified: stable/8/sys/dev/usb/quirk/usb_quirk.h
==============================================================================
--- stable/8/sys/dev/usb/quirk/usb_quirk.h	Thu Dec 31 00:18:38 2009	(r201313)
+++ stable/8/sys/dev/usb/quirk/usb_quirk.h	Thu Dec 31 00:19:16 2009	(r201314)
@@ -30,6 +30,11 @@
 /* NOTE: UQ_NONE is not a valid quirk */
 enum {	/* keep in sync with usb_quirk_str table */
 	UQ_NONE,
+
+	UQ_MATCH_VENDOR_ONLY,
+
+	/* Various quirks */
+
 	UQ_AUDIO_SWAP_LR,	/* left and right sound channels are swapped */
 	UQ_AU_INP_ASYNC,	/* input is async despite claim of adaptive */
 	UQ_AU_NO_FRAC,		/* don't adjust for fractional samples */
@@ -54,6 +59,31 @@ enum {	/* keep in sync with usb_quirk_st
 	UQ_CFG_INDEX_4,		/* select configuration index 4 by default */
 	UQ_CFG_INDEX_0,		/* select configuration index 0 by default */
 	UQ_ASSUME_CM_OVER_DATA,	/* modem device breaks on cm over data */
+
+	/* USB Mass Storage Quirks. See "storage/umass.c" for a detailed description. */
+	UQ_MSC_NO_TEST_UNIT_READY,
+	UQ_MSC_NO_RS_CLEAR_UA,
+	UQ_MSC_NO_START_STOP,
+	UQ_MSC_NO_GETMAXLUN,
+	UQ_MSC_NO_INQUIRY,
+	UQ_MSC_NO_INQUIRY_EVPD,
+	UQ_MSC_NO_SYNC_CACHE,
+	UQ_MSC_SHUTTLE_INIT,
+	UQ_MSC_ALT_IFACE_1,
+	UQ_MSC_FLOPPY_SPEED,
+	UQ_MSC_IGNORE_RESIDUE,
+	UQ_MSC_WRONG_CSWSIG,
+	UQ_MSC_RBC_PAD_TO_12,
+	UQ_MSC_READ_CAP_OFFBY1,
+	UQ_MSC_FORCE_SHORT_INQ,
+	UQ_MSC_FORCE_WIRE_BBB,
+	UQ_MSC_FORCE_WIRE_CBI,
+	UQ_MSC_FORCE_WIRE_CBI_I,
+	UQ_MSC_FORCE_PROTO_SCSI,
+	UQ_MSC_FORCE_PROTO_ATAPI,
+	UQ_MSC_FORCE_PROTO_UFI,
+	UQ_MSC_FORCE_PROTO_RBC,
+
 	USB_QUIRK_MAX
 };
 

Modified: stable/8/sys/dev/usb/storage/umass.c
==============================================================================
--- stable/8/sys/dev/usb/storage/umass.c	Thu Dec 31 00:18:38 2009	(r201313)
+++ stable/8/sys/dev/usb/storage/umass.c	Thu Dec 31 00:19:16 2009	(r201314)
@@ -127,6 +127,8 @@ __FBSDID("$FreeBSD$");
 #include 
 #include "usbdevs.h"
 
+#include 
+
 #include 
 #include 
 #include 
@@ -311,32 +313,18 @@ typedef void (umass_callback_t)(struct u
 typedef uint8_t (umass_transform_t)(struct umass_softc *sc, uint8_t *cmd_ptr,
     	uint8_t cmd_len);
 
-struct umass_devdescr {
-	uint32_t vid;
-#define	VID_WILDCARD	0xffffffff
-#define	VID_EOT		0xfffffffe
-	uint32_t pid;
-#define	PID_WILDCARD	0xffffffff
-#define	PID_EOT		0xfffffffe
-	uint32_t rid;
-#define	RID_WILDCARD	0xffffffff
-#define	RID_EOT		0xfffffffe
-
-	/* wire and command protocol */
-	uint16_t proto;
-#define	UMASS_PROTO_DEFAULT	0x0000	/* use protocol indicated by USB descriptors */
+/* Wire and command protocol */
 #define	UMASS_PROTO_BBB		0x0001	/* USB wire protocol */
 #define	UMASS_PROTO_CBI		0x0002
 #define	UMASS_PROTO_CBI_I	0x0004
-#define	UMASS_PROTO_WIRE		0x00ff	/* USB wire protocol mask */
-#define	UMASS_PROTO_SCSI		0x0100	/* command protocol */
+#define	UMASS_PROTO_WIRE	0x00ff	/* USB wire protocol mask */
+#define	UMASS_PROTO_SCSI	0x0100	/* command protocol */
 #define	UMASS_PROTO_ATAPI	0x0200
 #define	UMASS_PROTO_UFI		0x0400
 #define	UMASS_PROTO_RBC		0x0800
 #define	UMASS_PROTO_COMMAND	0xff00	/* command protocol mask */
 
-	/* Device specific quirks */
-	uint16_t quirks;
+/* Device specific quirks */
 #define	NO_QUIRKS		0x0000
 	/*
 	 * The drive does not support Test Unit Ready. Convert to Start Unit
@@ -384,608 +372,6 @@ struct umass_devdescr {
 	 * result.
 	 */
 #define	NO_SYNCHRONIZE_CACHE	0x4000
-};
-
-static const struct umass_devdescr umass_devdescr[] = {
-	{USB_VENDOR_ASAHIOPTICAL, PID_WILDCARD, RID_WILDCARD,
-		UMASS_PROTO_DEFAULT,
-		RS_NO_CLEAR_UA
-	},
-	{USB_VENDOR_ADDON, USB_PRODUCT_ADDON_ATTACHE, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		IGNORE_RESIDUE
-	},
-	{USB_VENDOR_ADDON, USB_PRODUCT_ADDON_A256MB, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		IGNORE_RESIDUE
-	},
-	{USB_VENDOR_ADDON, USB_PRODUCT_ADDON_DISKPRO512, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		IGNORE_RESIDUE
-	},
-	{USB_VENDOR_ADDONICS2, USB_PRODUCT_ADDONICS2_CABLE_205, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_AIPTEK, USB_PRODUCT_AIPTEK_POCKETCAM3M, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_AIPTEK2, USB_PRODUCT_AIPTEK2_SUNPLUS_TECH, RID_WILDCARD,
-		UMASS_PROTO_DEFAULT,
-		NO_SYNCHRONIZE_CACHE
-	},
-	{USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_SDCR_6335, RID_WILDCARD,
-		UMASS_PROTO_DEFAULT,
-		NO_TEST_UNIT_READY | NO_SYNCHRONIZE_CACHE
-	},
-	{USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU6390, RID_WILDCARD,
-		UMASS_PROTO_DEFAULT,
-		NO_SYNCHRONIZE_CACHE
-	},
-	{USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_UMCR_9361, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_GETMAXLUN
-	},
-	{USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_TRANSCEND, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_GETMAXLUN
-	},
-	{USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO230, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO330, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_USB2SCSI, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_CASIO, USB_PRODUCT_CASIO_QV_DIGICAM, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_CBI,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_CCYU, USB_PRODUCT_CCYU_ED1064, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_CENTURY, USB_PRODUCT_CENTURY_EX35QUAT, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
-	},
-	{USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_XX6830XX, RID_WILDCARD,
-		UMASS_PROTO_DEFAULT,
-		NO_GETMAXLUN | NO_SYNCHRONIZE_CACHE
-	},
-	{USB_VENDOR_DESKNOTE, USB_PRODUCT_DESKNOTE_UCR_61S2B, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_DMI, USB_PRODUCT_DMI_CFSM_RW, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_GETMAXLUN
-	},
-	{USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_875DC, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_CBI,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_895, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_GETMAXLUN
-	},
-	{USB_VENDOR_FEIYA, USB_PRODUCT_FEIYA_5IN1, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_FREECOM, USB_PRODUCT_FREECOM_DVD, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_FUJIPHOTO, USB_PRODUCT_FUJIPHOTO_MASS0100, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
-		RS_NO_CLEAR_UA
-	},
-	{USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
-		    | NO_SYNCHRONIZE_CACHE
-	},
-	{USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE_2, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
-		FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
-	},
-	{USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
-	},
-	{USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB_2, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		WRONG_CSWSIG
-	},
-	{USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FG, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FGSM, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_DZ_MV100A, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_CBI,
-		NO_GETMAXLUN
-	},
-	{USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_USB, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_HP, USB_PRODUCT_HP_CDW4E, RID_WILDCARD,
-		UMASS_PROTO_ATAPI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_HP, USB_PRODUCT_HP_CDW8200, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
-		NO_TEST_UNIT_READY | NO_START_STOP
-	},
-	{USB_VENDOR_IMAGINATION, USB_PRODUCT_IMAGINATION_DBX1, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		WRONG_CSWSIG
-	},
-	{USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_USBCABLE, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_CBI,
-		NO_TEST_UNIT_READY | NO_START_STOP | ALT_IFACE_1
-	},
-	{USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ATAPI, RID_WILDCARD,
-		UMASS_PROTO_RBC | UMASS_PROTO_CBI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_STORAGE_V2, RID_WILDCARD,
-		UMASS_PROTO_RBC | UMASS_PROTO_CBI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_IODATA, USB_PRODUCT_IODATA_IU_CD2, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_IODATA, USB_PRODUCT_IODATA_DVR_UEH8, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP100, RID_WILDCARD,
-		/*
-		 * XXX This is not correct as there are Zip drives that use
-		 * ATAPI.
-		 */
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_TEST_UNIT_READY
-	},
-	{USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_L3, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S3X, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_CBI,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S4, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_CBI,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S5, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_LACIE, USB_PRODUCT_LACIE_HD, RID_WILDCARD,
-		UMASS_PROTO_RBC | UMASS_PROTO_CBI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_CF_READER, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_JUMPSHOT, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443SU2, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443U2, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_MELCO, USB_PRODUCT_MELCO_DUBPXXG, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		FORCE_SHORT_INQUIRY | NO_START_STOP | IGNORE_RESIDUE
-	},
-	{USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_DPCM, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_CBI,
-		NO_TEST_UNIT_READY | NO_START_STOP
-	},
-	{USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIDB25, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIHD50, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_E223, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_F300, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_CDRRW, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_CBI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_FDD, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_GETMAXLUN
-	},
-	{USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_E398, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		FORCE_SHORT_INQUIRY | NO_INQUIRY_EVPD | NO_GETMAXLUN
-	},
-	{USB_VENDOR_MPMAN, PID_WILDCARD, RID_WILDCARD,
-		UMASS_PROTO_DEFAULT,
-		NO_SYNCHRONIZE_CACHE
-	},
-	{USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		IGNORE_RESIDUE | NO_GETMAXLUN | RS_NO_CLEAR_UA
-	},
-	{USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY2, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN, RID_WILDCARD,
-		UMASS_PROTO_DEFAULT,
-		IGNORE_RESIDUE | NO_SYNCHRONIZE_CACHE
-	},
-	{USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN_8813, RID_WILDCARD,
-		UMASS_PROTO_DEFAULT,
-		NO_SYNCHRONIZE_CACHE
-	},
-	{USB_VENDOR_MYSON, USB_PRODUCT_MYSON_STARREADER, RID_WILDCARD,
-		UMASS_PROTO_DEFAULT,
-		NO_SYNCHRONIZE_CACHE
-	},
-	{USB_VENDOR_NEODIO, USB_PRODUCT_NEODIO_ND3260, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		FORCE_SHORT_INQUIRY
-	},
-	{USB_VENDOR_NETAC, USB_PRODUCT_NETAC_CF_CARD, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_NETAC, USB_PRODUCT_NETAC_ONLYDISK, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		IGNORE_RESIDUE
-	},
-	{USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_CLIK_40, RID_WILDCARD,
-		UMASS_PROTO_ATAPI,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_NIKON, USB_PRODUCT_NIKON_D300, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C1, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		WRONG_CSWSIG
-	},
-	{USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C700, RID_WILDCARD,
-		UMASS_PROTO_DEFAULT,
-		NO_GETMAXLUN
-	},
-	{USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_SDS_HOTFIND_D, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_GETMAXLUN | NO_SYNCHRONIZE_CACHE
-	},
-	{USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFMS_RW, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_COMBO, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER2, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDCFE_B_CF_READER, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDSM_B_READER, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_READER, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_UCF100, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
-		NO_INQUIRY | NO_GETMAXLUN
-	},
-	{USB_VENDOR_ONSPEC2, USB_PRODUCT_ONSPEC2_IMAGEMATE_SDDR55, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_GETMAXLUN
-	},
-	{USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXL840AN, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
-		NO_GETMAXLUN
-	},
-	{USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB20AN, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB35AN, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_LS120CAM, RID_WILDCARD,
-		UMASS_PROTO_UFI,
-		NO_QUIRKS
-	},
-	{ USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_SPE3030CC, RID_WILDCARD,
-		UMASS_PROTO_DEFAULT,
-		NO_SYNCHRONIZE_CACHE
-	},
-	{USB_VENDOR_PLEXTOR, USB_PRODUCT_PLEXTOR_40_12_40U, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_TEST_UNIT_READY
-	},
-	{USB_VENDOR_PNY, USB_PRODUCT_PNY_ATTACHE2, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		IGNORE_RESIDUE | NO_START_STOP
-	},
-	{USB_VENDOR_SAMSUNG_TECHWIN, USB_PRODUCT_SAMSUNG_TECHWIN_DIGIMAX_410, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR05A, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_CBI,
-		READ_CAPACITY_OFFBY1 | NO_GETMAXLUN
-	},
-	{USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR09, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		READ_CAPACITY_OFFBY1 | NO_GETMAXLUN
-	},
-	{USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR12, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_CBI,
-		READ_CAPACITY_OFFBY1 | NO_GETMAXLUN
-	},
-	{USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ2_256, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		IGNORE_RESIDUE
-	},
-	{USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_128, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		IGNORE_RESIDUE
-	},
-	{USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_256, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		IGNORE_RESIDUE
-	},
-	{USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR31, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		READ_CAPACITY_OFFBY1
-	},
-	{USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_SL11R, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_BBB,
-		NO_INQUIRY
-	},
-	{USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSB, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_CBI_I,
-		NO_TEST_UNIT_READY | NO_START_STOP | SHUTTLE_INIT
-	},
-	{USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CDRW, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_CBI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CF, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_CBI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBATAPI, RID_WILDCARD,
-		UMASS_PROTO_ATAPI | UMASS_PROTO_CBI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBCFSM, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_BBB,
-		NO_QUIRKS
-	},
-	{USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_HIFD, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_CBI,
-		NO_GETMAXLUN
-	},
-	{USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_SDDR09, RID_WILDCARD,
-		UMASS_PROTO_SCSI,
-		NO_GETMAXLUN
-	},
-	{USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_ZIOMMC, RID_WILDCARD,
-		UMASS_PROTO_SCSI | UMASS_PROTO_CBI,
-		NO_GETMAXLUN

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:19:52 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id E29941065676;
	Thu, 31 Dec 2009 00:19:52 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id CF1568FC1E;
	Thu, 31 Dec 2009 00:19:52 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0JqvL079427;
	Thu, 31 Dec 2009 00:19:52 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0JqfH079425;
	Thu, 31 Dec 2009 00:19:52 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310019.nBV0JqfH079425@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:19:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201315 - stable/8/sys/dev/usb/quirk
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:19:53 -0000

Author: thompsa
Date: Thu Dec 31 00:19:52 2009
New Revision: 201315
URL: http://svn.freebsd.org/changeset/base/201315

Log:
  MFC r200887
  
   Shorten the USB_QUIRK_ENTRY macro and undef it at the end, its only internal.

Modified:
  stable/8/sys/dev/usb/quirk/usb_quirk.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/quirk/usb_quirk.c
==============================================================================
--- stable/8/sys/dev/usb/quirk/usb_quirk.c	Thu Dec 31 00:19:16 2009	(r201314)
+++ stable/8/sys/dev/usb/quirk/usb_quirk.c	Thu Dec 31 00:19:52 2009	(r201315)
@@ -60,12 +60,6 @@
 MODULE_DEPEND(usb_quirk, usb, 1, 1, 1);
 MODULE_VERSION(usb_quirk, 1);
 
-/*
- * The following macro adds one or more quirks for a USB device:
- */
-#define	USB_QUIRK_ENTRY(v,p,l,h,...) \
-  .vid = (v), .pid = (p), .lo_rev = (l), .hi_rev = (h), .quirks = { __VA_ARGS__ }
-
 #define	USB_DEV_QUIRKS_MAX 256
 #define	USB_SUB_QUIRKS_MAX 8
 
@@ -79,496 +73,499 @@ struct usb_quirk_entry {
 
 static struct mtx usb_quirk_mtx;
 
+#define	USB_QUIRK(v,p,l,h,...) \
+  .vid = (v), .pid = (p), .lo_rev = (l), .hi_rev = (h), .quirks = { __VA_ARGS__ }
 static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = {
-	{USB_QUIRK_ENTRY(USB_VENDOR_ASUS, USB_PRODUCT_ASUS_LCM,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_INSIDEOUT, USB_PRODUCT_INSIDEOUT_EDGEPORT4,
-	    0x094, 0x094, UQ_SWAP_UNICODE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502,
-	    0x0a2, 0x0a2, UQ_BAD_ADC, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502,
-	    0x0a2, 0x0a2, UQ_AU_NO_XU, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70,
-	    0x103, 0x103, UQ_BAD_ADC, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495,
-	    0x000, 0x000, UQ_BAD_AUDIO, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_QTRONIX, USB_PRODUCT_QTRONIX_980N,
-	    0x110, 0x110, UQ_SPUR_BUT_UP, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ALCOR2, USB_PRODUCT_ALCOR2_KBD_HUB,
-	    0x001, 0x001, UQ_SPUR_BUT_UP, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MCT, USB_PRODUCT_MCT_HUB0100,
-	    0x102, 0x102, UQ_BUS_POWERED, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232,
-	    0x102, 0x102, UQ_BUS_POWERED, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41,
-	    0x110, 0x110, UQ_POWER_CLAIM, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1,
-	    0x009, 0x009, UQ_AU_NO_FRAC, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SILICONPORTALS,
+	{USB_QUIRK(USB_VENDOR_ASUS, USB_PRODUCT_ASUS_LCM,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_INSIDEOUT, USB_PRODUCT_INSIDEOUT_EDGEPORT4,
+	    0x094, 0x094, UQ_SWAP_UNICODE)},
+	{USB_QUIRK(USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502,
+	    0x0a2, 0x0a2, UQ_BAD_ADC)},
+	{USB_QUIRK(USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502,
+	    0x0a2, 0x0a2, UQ_AU_NO_XU)},
+	{USB_QUIRK(USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70,
+	    0x103, 0x103, UQ_BAD_ADC)},
+	{USB_QUIRK(USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495,
+	    0x000, 0x000, UQ_BAD_AUDIO)},
+	{USB_QUIRK(USB_VENDOR_QTRONIX, USB_PRODUCT_QTRONIX_980N,
+	    0x110, 0x110, UQ_SPUR_BUT_UP)},
+	{USB_QUIRK(USB_VENDOR_ALCOR2, USB_PRODUCT_ALCOR2_KBD_HUB,
+	    0x001, 0x001, UQ_SPUR_BUT_UP)},
+	{USB_QUIRK(USB_VENDOR_MCT, USB_PRODUCT_MCT_HUB0100,
+	    0x102, 0x102, UQ_BUS_POWERED)},
+	{USB_QUIRK(USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232,
+	    0x102, 0x102, UQ_BUS_POWERED)},
+	{USB_QUIRK(USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41,
+	    0x110, 0x110, UQ_POWER_CLAIM)},
+	{USB_QUIRK(USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1,
+	    0x009, 0x009, UQ_AU_NO_FRAC)},
+	{USB_QUIRK(USB_VENDOR_SILICONPORTALS,
 	    USB_PRODUCT_SILICONPORTALS_YAPPHONE,
-	    0x100, 0x100, UQ_AU_INP_ASYNC, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN53B,
-	    0x0000, 0xFFFF, UQ_NO_STRINGS, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ELSA, USB_PRODUCT_ELSA_MODEM1,
-	    0x0000, 0xFFFF, UQ_CFG_INDEX_1, UQ_NONE)},
+	    0x100, 0x100, UQ_AU_INP_ASYNC)},
+	{USB_QUIRK(USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN53B,
+	    0x0000, 0xFFFF, UQ_NO_STRINGS)},
+	{USB_QUIRK(USB_VENDOR_ELSA, USB_PRODUCT_ELSA_MODEM1,
+	    0x0000, 0xFFFF, UQ_CFG_INDEX_1)},
 
 	/*
 	 * XXX The following quirks should have a more specific revision
 	 * number:
 	 */
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_895C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_880C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_815C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_810C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_830C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_1220C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_XEROX, USB_PRODUCT_XEROX_WCM15,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR, UQ_NONE)},
+	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_895C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
+	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_880C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
+	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_815C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
+	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_810C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
+	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_830C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
+	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_1220C,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
+	{USB_QUIRK(USB_VENDOR_XEROX, USB_PRODUCT_XEROX_WCM15,
+	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
 	/* Devices which should be ignored by uhid */
-	{USB_QUIRK_ENTRY(USB_VENDOR_APC, USB_PRODUCT_APC_UPS,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_CYBERPOWER,
+	{USB_QUIRK(USB_VENDOR_APC, USB_PRODUCT_APC_UPS,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_CYBERPOWER,
 	    USB_PRODUCT_CYBERPOWER_1500CAVRLCD,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_DELORME, USB_PRODUCT_DELORME_EARTHMATE,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD2X20,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD4X20,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_3G,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE, UQ_NONE)},
+	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_DELORME, USB_PRODUCT_DELORME_EARTHMATE,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD2X20,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD4X20,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_3G,
+	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
 	/* Devices which should be ignored by both ukbd and uhid */
-	{USB_QUIRK_ENTRY(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_WISPY1A,
-	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY1B,
-	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TENX, USB_PRODUCT_TENX_UAUDIO0,
-	    0x0101, 0x0101, UQ_AUDIO_SWAP_LR, UQ_NONE)},
+	{USB_QUIRK(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_WISPY1A,
+	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY1B,
+	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE)},
+	{USB_QUIRK(USB_VENDOR_TENX, USB_PRODUCT_TENX_UAUDIO0,
+	    0x0101, 0x0101, UQ_AUDIO_SWAP_LR)},
 	/* MS keyboards do weird things */
-	{USB_QUIRK_ENTRY(USB_VENDOR_MICROSOFT,
+	{USB_QUIRK(USB_VENDOR_MICROSOFT,
 	    USB_PRODUCT_MICROSOFT_WLINTELLIMOUSE,
-	    0x0000, 0xFFFF, UQ_MS_LEADING_BYTE, UQ_NONE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY24X,
-	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE, UQ_NONE)},
+	    0x0000, 0xFFFF, UQ_MS_LEADING_BYTE)},
+	{USB_QUIRK(USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY24X,
+	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE)},
 	/* umodem(4) device quirks */
-	{USB_QUIRK_ENTRY(USB_VENDOR_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS,
+	{USB_QUIRK(USB_VENDOR_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS,
 	    0x100, 0x100, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SANYO, USB_PRODUCT_SANYO_SCP4900,
+	{USB_QUIRK(USB_VENDOR_SANYO, USB_PRODUCT_SANYO_SCP4900,
 	    0x000, 0x000, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_T720C,
+	{USB_QUIRK(USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_T720C,
 	    0x001, 0x001, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_EICON, USB_PRODUCT_EICON_DIVA852,
+	{USB_QUIRK(USB_VENDOR_EICON, USB_PRODUCT_EICON_DIVA852,
 	    0x100, 0x100, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SIEMENS2, USB_PRODUCT_SIEMENS2_ES75,
+	{USB_QUIRK(USB_VENDOR_SIEMENS2, USB_PRODUCT_SIEMENS2_ES75,
 	    0x000, 0x000, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_QUALCOMM, USB_PRODUCT_QUALCOMM_CDMA_MSM,
+	{USB_QUIRK(USB_VENDOR_QUALCOMM, USB_PRODUCT_QUALCOMM_CDMA_MSM,
 	    0x0000, 0xFFFF, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_QUALCOMM2, USB_PRODUCT_QUALCOMM2_CDMA_MSM,
+	{USB_QUIRK(USB_VENDOR_QUALCOMM2, USB_PRODUCT_QUALCOMM2_CDMA_MSM,
 	    0x0000, 0xFFFF, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_CURITEL, USB_PRODUCT_CURITEL_UM175,
+	{USB_QUIRK(USB_VENDOR_CURITEL, USB_PRODUCT_CURITEL_UM175,
 	    0x0000, 0xFFFF, UQ_ASSUME_CM_OVER_DATA)},
 
 	/* USB Mass Storage Class Quirks */
-	{USB_QUIRK_ENTRY(USB_VENDOR_ASAHIOPTICAL, 0,
+	{USB_QUIRK(USB_VENDOR_ASAHIOPTICAL, 0,
 	    0x0000, 0xFFFF, UQ_MSC_NO_RS_CLEAR_UA, UQ_MATCH_VENDOR_ONLY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_ATTACHE, 0x0000,
+	{USB_QUIRK(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_ATTACHE, 0x0000,
 	    0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_A256MB,
+	{USB_QUIRK(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_A256MB,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_DISKPRO512,
+	{USB_QUIRK(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_DISKPRO512,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ADDONICS2, USB_PRODUCT_ADDONICS2_CABLE_205,
+	{USB_QUIRK(USB_VENDOR_ADDONICS2, USB_PRODUCT_ADDONICS2_CABLE_205,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_AIPTEK, USB_PRODUCT_AIPTEK_POCKETCAM3M,
+	{USB_QUIRK(USB_VENDOR_AIPTEK, USB_PRODUCT_AIPTEK_POCKETCAM3M,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_AIPTEK2, USB_PRODUCT_AIPTEK2_SUNPLUS_TECH,
+	{USB_QUIRK(USB_VENDOR_AIPTEK2, USB_PRODUCT_AIPTEK2_SUNPLUS_TECH,
 	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_SDCR_6335,
+	{USB_QUIRK(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_SDCR_6335,
 	    0x0000, 0xFFFF, UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU6390,
+	{USB_QUIRK(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU6390,
 	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_UMCR_9361,
+	{USB_QUIRK(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_UMCR_9361,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_TRANSCEND,
+	{USB_QUIRK(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_TRANSCEND,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO230,
+	{USB_QUIRK(USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO230,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO330,
+	{USB_QUIRK(USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO330,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_USB2SCSI,
+	{USB_QUIRK(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_USB2SCSI,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_CASIO, USB_PRODUCT_CASIO_QV_DIGICAM,
+	{USB_QUIRK(USB_VENDOR_CASIO, USB_PRODUCT_CASIO_QV_DIGICAM,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_CCYU, USB_PRODUCT_CCYU_ED1064,
+	{USB_QUIRK(USB_VENDOR_CCYU, USB_PRODUCT_CCYU_ED1064,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_CENTURY, USB_PRODUCT_CENTURY_EX35QUAT,
+	{USB_QUIRK(USB_VENDOR_CENTURY, USB_PRODUCT_CENTURY_EX35QUAT,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP,
 	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_XX6830XX,
+	{USB_QUIRK(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_XX6830XX,
 	    0x0000, 0xFFFF, UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_DESKNOTE, USB_PRODUCT_DESKNOTE_UCR_61S2B,
+	{USB_QUIRK(USB_VENDOR_DESKNOTE, USB_PRODUCT_DESKNOTE_UCR_61S2B,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_DMI, USB_PRODUCT_DMI_CFSM_RW,
+	{USB_QUIRK(USB_VENDOR_DMI, USB_PRODUCT_DMI_CFSM_RW,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_875DC,
+	{USB_QUIRK(USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_875DC,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_895,
+	{USB_QUIRK(USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_895,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_FEIYA, USB_PRODUCT_FEIYA_5IN1,
+	{USB_QUIRK(USB_VENDOR_FEIYA, USB_PRODUCT_FEIYA_5IN1,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_FREECOM, USB_PRODUCT_FREECOM_DVD,
+	{USB_QUIRK(USB_VENDOR_FREECOM, USB_PRODUCT_FREECOM_DVD,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_FUJIPHOTO, USB_PRODUCT_FUJIPHOTO_MASS0100,
+	{USB_QUIRK(USB_VENDOR_FUJIPHOTO, USB_PRODUCT_FUJIPHOTO_MASS0100,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_NO_RS_CLEAR_UA)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE,
+	{USB_QUIRK(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE,
 	    UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE_2,
+	{USB_QUIRK(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE_2,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB,
+	{USB_QUIRK(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB_2,
+	{USB_QUIRK(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB_2,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_WRONG_CSWSIG)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FG,
+	{USB_QUIRK(USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FG,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FGSM,
+	{USB_QUIRK(USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FGSM,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_DZ_MV100A,
+	{USB_QUIRK(USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_DZ_MV100A,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_USB,
+	{USB_QUIRK(USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_USB,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_CDW4E,
+	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_CDW4E,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_HP, USB_PRODUCT_HP_CDW8200,
+	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_CDW8200,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_IMAGINATION, USB_PRODUCT_IMAGINATION_DBX1,
+	{USB_QUIRK(USB_VENDOR_IMAGINATION, USB_PRODUCT_IMAGINATION_DBX1,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_WRONG_CSWSIG)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_USBCABLE,
+	{USB_QUIRK(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_USBCABLE,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP, UQ_MSC_ALT_IFACE_1)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ATAPI,
+	{USB_QUIRK(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ATAPI,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_STORAGE_V2,
+	{USB_QUIRK(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_STORAGE_V2,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_IU_CD2,
+	{USB_QUIRK(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_IU_CD2,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_DVR_UEH8,
+	{USB_QUIRK(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_DVR_UEH8,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP100,
+	{USB_QUIRK(USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP100,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_TEST_UNIT_READY)}, /* XXX ZIP drives can also use ATAPI */
-	{USB_QUIRK_ENTRY(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_L3,
+	{USB_QUIRK(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_L3,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S3X,
+	{USB_QUIRK(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S3X,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S4,
+	{USB_QUIRK(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S4,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S5,
+	{USB_QUIRK(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S5,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_LACIE, USB_PRODUCT_LACIE_HD,
+	{USB_QUIRK(USB_VENDOR_LACIE, USB_PRODUCT_LACIE_HD,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_CF_READER,
+	{USB_QUIRK(USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_CF_READER,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_JUMPSHOT,
+	{USB_QUIRK(USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_JUMPSHOT,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443SU2,
+	{USB_QUIRK(USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443SU2,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443U2,
+	{USB_QUIRK(USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443U2,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_DUBPXXG,
+	{USB_QUIRK(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_DUBPXXG,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_DPCM,
+	{USB_QUIRK(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_DPCM,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIDB25,
+	{USB_QUIRK(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIDB25,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIHD50,
+	{USB_QUIRK(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIHD50,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_E223,
+	{USB_QUIRK(USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_E223,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_F300,
+	{USB_QUIRK(USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_F300,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_CDRRW,
+	{USB_QUIRK(USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_CDRRW,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI | UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_FDD,
+	{USB_QUIRK(USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_FDD,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_E398,
+	{USB_QUIRK(USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_E398,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_INQUIRY_EVPD, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MPMAN, 0,
+	{USB_QUIRK(USB_VENDOR_MPMAN, 0,
 	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE, UQ_MATCH_VENDOR_ONLY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY,
+	{USB_QUIRK(USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_RS_CLEAR_UA)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY2,
+	{USB_QUIRK(USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY2,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN,
+	{USB_QUIRK(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN,
 	    0x0000, 0xFFFF, UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN_8813,
+	{USB_QUIRK(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN_8813,
 	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_STARREADER,
+	{USB_QUIRK(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_STARREADER,
 	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_NEODIO, USB_PRODUCT_NEODIO_ND3260,
+	{USB_QUIRK(USB_VENDOR_NEODIO, USB_PRODUCT_NEODIO_ND3260,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_FORCE_SHORT_INQ)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_NETAC, USB_PRODUCT_NETAC_CF_CARD,
+	{USB_QUIRK(USB_VENDOR_NETAC, USB_PRODUCT_NETAC_CF_CARD,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_NETAC, USB_PRODUCT_NETAC_ONLYDISK,
+	{USB_QUIRK(USB_VENDOR_NETAC, USB_PRODUCT_NETAC_ONLYDISK,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_CLIK_40,
+	{USB_QUIRK(USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_CLIK_40,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_NIKON, USB_PRODUCT_NIKON_D300,
+	{USB_QUIRK(USB_VENDOR_NIKON, USB_PRODUCT_NIKON_D300,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C1,
+	{USB_QUIRK(USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C1,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_WRONG_CSWSIG)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C700,
+	{USB_QUIRK(USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C700,
 	    0x0000, 0xFFFF, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_SDS_HOTFIND_D,
+	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_SDS_HOTFIND_D,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFMS_RW,
+	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFMS_RW,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_COMBO,
+	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_COMBO,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER,
+	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER2,
+	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER2,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDCFE_B_CF_READER,
+	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDCFE_B_CF_READER,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDSM_B_READER,
+	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDSM_B_READER,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_READER,
+	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_READER,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_UCF100,
+	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_UCF100,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_NO_INQUIRY | UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ONSPEC2, USB_PRODUCT_ONSPEC2_IMAGEMATE_SDDR55,
+	{USB_QUIRK(USB_VENDOR_ONSPEC2, USB_PRODUCT_ONSPEC2_IMAGEMATE_SDDR55,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXL840AN,
+	{USB_QUIRK(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXL840AN,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB20AN,
+	{USB_QUIRK(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB20AN,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB35AN,
+	{USB_QUIRK(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB35AN,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_LS120CAM,
+	{USB_QUIRK(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_LS120CAM,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_UFI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_SPE3030CC,
+	{USB_QUIRK(USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_SPE3030CC,
 	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_PLEXTOR, USB_PRODUCT_PLEXTOR_40_12_40U,
+	{USB_QUIRK(USB_VENDOR_PLEXTOR, USB_PRODUCT_PLEXTOR_40_12_40U,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_TEST_UNIT_READY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_PNY, USB_PRODUCT_PNY_ATTACHE2,
+	{USB_QUIRK(USB_VENDOR_PNY, USB_PRODUCT_PNY_ATTACHE2,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_START_STOP)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SAMSUNG_TECHWIN, USB_PRODUCT_SAMSUNG_TECHWIN_DIGIMAX_410,
+	{USB_QUIRK(USB_VENDOR_SAMSUNG_TECHWIN, USB_PRODUCT_SAMSUNG_TECHWIN_DIGIMAX_410,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR05A,
+	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR05A,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_READ_CAP_OFFBY1, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR09,
+	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR09,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_READ_CAP_OFFBY1,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR12,
+	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR12,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_READ_CAP_OFFBY1, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ2_256,
+	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ2_256,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_128,
+	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_128,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_256,
+	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_256,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR31,
+	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR31,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_READ_CAP_OFFBY1)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_SL11R,
+	{USB_QUIRK(USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_SL11R,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSB,
+	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSB,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP, UQ_MSC_SHUTTLE_INIT)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CDRW,
+	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CDRW,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CF,
+	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CF,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBATAPI,
+	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBATAPI,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBCFSM,
+	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBCFSM,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI,
+	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_HIFD,
+	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_HIFD,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_SDDR09,
+	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_SDDR09,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_ZIOMMC,
+	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_ZIOMMC,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SIGMATEL, USB_PRODUCT_SIGMATEL_I_BEAD100,
+	{USB_QUIRK(USB_VENDOR_SIGMATEL, USB_PRODUCT_SIGMATEL_I_BEAD100,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_SHUTTLE_INIT)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SIIG, USB_PRODUCT_SIIG_WINTERREADER,
+	{USB_QUIRK(USB_VENDOR_SIIG, USB_PRODUCT_SIIG_WINTERREADER,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SKANHEX, USB_PRODUCT_SKANHEX_MD_7425,
+	{USB_QUIRK(USB_VENDOR_SKANHEX, USB_PRODUCT_SKANHEX_MD_7425,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SKANHEX, USB_PRODUCT_SKANHEX_SX_520Z,
+	{USB_QUIRK(USB_VENDOR_SKANHEX, USB_PRODUCT_SKANHEX_SX_520Z,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_HANDYCAM,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_HANDYCAM,
 	    0x0500, 0x0500, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC,
 	    UQ_MSC_RBC_PAD_TO_12)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_40_MS,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_40_MS,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
 	    0x0500, 0x0500, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC,
 	    UQ_MSC_RBC_PAD_TO_12)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
 	    0x0600, 0x0600, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC,
 	    UQ_MSC_RBC_PAD_TO_12)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_HANDYCAM,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_HANDYCAM,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_MSC,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_MSC,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_MSC_U03,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_MSC_U03,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_NW_MS7,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_NW_MS7,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_PEG_N760C,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_PEG_N760C,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_MSACUS1,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_MSACUS1,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SONY, USB_PRODUCT_SONY_PORTABLE_HDD_V2,
+	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_PORTABLE_HDD_V2,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_SUPERTOP, USB_PRODUCT_SUPERTOP_IDE,
+	{USB_QUIRK(USB_VENDOR_SUPERTOP, USB_PRODUCT_SUPERTOP_IDE,
 	    0x0000, 0xFFFF, UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TAUGA, USB_PRODUCT_TAUGA_CAMERAMATE,
+	{USB_QUIRK(USB_VENDOR_TAUGA, USB_PRODUCT_TAUGA_CAMERAMATE,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TEAC, USB_PRODUCT_TEAC_FD05PUB,
+	{USB_QUIRK(USB_VENDOR_TEAC, USB_PRODUCT_TEAC_FD05PUB,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TECLAST, USB_PRODUCT_TECLAST_TLC300,
+	{USB_QUIRK(USB_VENDOR_TECLAST, USB_PRODUCT_TECLAST_TLC300,
 	    0x0000, 0xFFFF, UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TREK, USB_PRODUCT_TREK_MEMKEY,
+	{USB_QUIRK(USB_VENDOR_TREK, USB_PRODUCT_TREK_MEMKEY,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TREK, USB_PRODUCT_TREK_THUMBDRIVE_8MB,
+	{USB_QUIRK(USB_VENDOR_TREK, USB_PRODUCT_TREK_THUMBDRIVE_8MB,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_C3310,
+	{USB_QUIRK(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_C3310,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_MP3,
+	{USB_QUIRK(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_MP3,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_T33520,
+	{USB_QUIRK(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_T33520,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_TWINMOS, USB_PRODUCT_TWINMOS_MDIV,
+	{USB_QUIRK(USB_VENDOR_TWINMOS, USB_PRODUCT_TWINMOS_MDIV,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_VIA, USB_PRODUCT_VIA_USB2IDEBRIDGE,
+	{USB_QUIRK(USB_VENDOR_VIA, USB_PRODUCT_VIA_USB2IDEBRIDGE,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_VIVITAR, USB_PRODUCT_VIVITAR_35XX,
+	{USB_QUIRK(USB_VENDOR_VIVITAR, USB_PRODUCT_VIVITAR_35XX,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_COMBO,
+	{USB_QUIRK(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_COMBO,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_EXTHDD,
+	{USB_QUIRK(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_EXTHDD,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_MYBOOK,
+	{USB_QUIRK(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_MYBOOK,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY_EVPD)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_MYPASSWORD,
+	{USB_QUIRK(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_MYPASSWORD,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_SHORT_INQ)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_WINMAXGROUP, USB_PRODUCT_WINMAXGROUP_FLASH64MC,
+	{USB_QUIRK(USB_VENDOR_WINMAXGROUP, USB_PRODUCT_WINMAXGROUP_FLASH64MC,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_YANO, USB_PRODUCT_YANO_FW800HD,
+	{USB_QUIRK(USB_VENDOR_YANO, USB_PRODUCT_YANO_FW800HD,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_YANO, USB_PRODUCT_YANO_U640MO,
+	{USB_QUIRK(USB_VENDOR_YANO, USB_PRODUCT_YANO_U640MO,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_FORCE_SHORT_INQ)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
+	{USB_QUIRK(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
 	    0x0000, 0x007F, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI,
 	    UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED,
 	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
+	{USB_QUIRK(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
 	    0x0080, 0x0080, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_UFI,
 	    UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED,
 	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
+	{USB_QUIRK(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
 	    0x0081, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_UFI,
 	    UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ZORAN, USB_PRODUCT_ZORAN_EX20DSC,
+	{USB_QUIRK(USB_VENDOR_ZORAN, USB_PRODUCT_ZORAN_EX20DSC,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_MEIZU, USB_PRODUCT_MEIZU_M6_SL,
+	{USB_QUIRK(USB_VENDOR_MEIZU, USB_PRODUCT_MEIZU_M6_SL,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_INQUIRY, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ACTIONS, USB_PRODUCT_ACTIONS_MP4,
+	{USB_QUIRK(USB_VENDOR_ACTIONS, USB_PRODUCT_ACTIONS_MP4,
 	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
 	    UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK_ENTRY(USB_VENDOR_ASUS, USB_PRODUCT_ASUS_GMSC,
+	{USB_QUIRK(USB_VENDOR_ASUS, USB_PRODUCT_ASUS_GMSC,
 	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
 };
+#undef USB_QUIRK
 
 static const char *usb_quirk_str[USB_QUIRK_MAX] = {
 	[UQ_NONE]		= "UQ_NONE",

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:20:54 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id BE3051065695;
	Thu, 31 Dec 2009 00:20:54 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id AA0848FC20;
	Thu, 31 Dec 2009 00:20:54 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0KsL6079516;
	Thu, 31 Dec 2009 00:20:54 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0Ks8r079504;
	Thu, 31 Dec 2009 00:20:54 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310020.nBV0Ks8r079504@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:20:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201316 - in stable/8/sys/dev/usb: . net serial wlan
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:20:54 -0000

Author: thompsa
Date: Thu Dec 31 00:20:54 2009
New Revision: 201316
URL: http://svn.freebsd.org/changeset/base/201316

Log:
  MFC r201028
  
   Use macros to strip off USB_VENDOR_ and USB_PRODUCT_ from some id tables to make
   them more compact and readable.

Modified:
  stable/8/sys/dev/usb/net/if_aue.c
  stable/8/sys/dev/usb/net/if_axe.c
  stable/8/sys/dev/usb/net/if_cue.c
  stable/8/sys/dev/usb/net/if_kue.c
  stable/8/sys/dev/usb/serial/uftdi.c
  stable/8/sys/dev/usb/serial/uplcom.c
  stable/8/sys/dev/usb/serial/uslcom.c
  stable/8/sys/dev/usb/serial/uvisor.c
  stable/8/sys/dev/usb/usbdevs
  stable/8/sys/dev/usb/wlan/if_rum.c
  stable/8/sys/dev/usb/wlan/if_ural.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/net/if_aue.c
==============================================================================
--- stable/8/sys/dev/usb/net/if_aue.c	Thu Dec 31 00:19:52 2009	(r201315)
+++ stable/8/sys/dev/usb/net/if_aue.c	Thu Dec 31 00:20:54 2009	(r201316)
@@ -112,74 +112,76 @@ SYSCTL_INT(_hw_usb_aue, OID_AUTO, debug,
  * Various supported device vendors/products.
  */
 static const struct usb_device_id aue_devs[] = {
-    {USB_VPI(USB_VENDOR_3COM, USB_PRODUCT_3COM_3C460B, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_DSB650TX_PNA, 0)},
-    {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_UFE1000, AUE_FLAG_LSYS)},
-    {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX10, 0)},
-    {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX1, AUE_FLAG_PNA | AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX2, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX4, AUE_FLAG_PNA)},
-    {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX5, AUE_FLAG_PNA)},
-    {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX6, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX7, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX8, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_XX9, AUE_FLAG_PNA)},
-    {USB_VPI(USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_SS1001, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ACCTON, USB_PRODUCT_ACCTON_USB320_EC, 0)},
-    {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_2, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_3, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII_4, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUSII, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ADMTEK, USB_PRODUCT_ADMTEK_PEGASUS, AUE_FLAG_PNA | AUE_FLAG_DUAL_PHY)},
-    {USB_VPI(USB_VENDOR_AEI, USB_PRODUCT_AEI_FASTETHERNET, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ALLIEDTELESYN, USB_PRODUCT_ALLIEDTELESYN_ATUSB100, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC110T, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_USB2LAN, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB100, 0)},
-    {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBE100, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBEL100, 0)},
-    {USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USBLP100, AUE_FLAG_PNA)},
-    {USB_VPI(USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TXS, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB_TX, 0)},
-    {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX1, AUE_FLAG_LSYS)},
-    {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX2, AUE_FLAG_LSYS | AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX3, AUE_FLAG_LSYS | AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX4, AUE_FLAG_LSYS | AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX_PNA, AUE_FLAG_PNA)},
-    {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650TX, AUE_FLAG_LSYS)},
-    {USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650, AUE_FLAG_LSYS)},
-    {USB_VPI(USB_VENDOR_ELCON, USB_PRODUCT_ELCON_PLAN, AUE_FLAG_PNA | AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSB20, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBLTX, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX0, 0)},
-    {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX1, AUE_FLAG_LSYS)},
-    {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX2, 0)},
-    {USB_VPI(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_LDUSBTX3, AUE_FLAG_LSYS)},
-    {USB_VPI(USB_VENDOR_ELSA, USB_PRODUCT_ELSA_USB2ETHERNET, 0)},
-    {USB_VPI(USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNBR402W, 0)},
-    {USB_VPI(USB_VENDOR_HAWKING, USB_PRODUCT_HAWKING_UF100, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_HP, USB_PRODUCT_HP_HN210E, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTXS, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETTX, 0)},
-    {USB_VPI(USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_KNU101TX, 0)},
-    {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100H1, AUE_FLAG_LSYS | AUE_FLAG_PNA)},
-    {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100TX, AUE_FLAG_LSYS)},
-    {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA, AUE_FLAG_LSYS)},
-    {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX1, AUE_FLAG_LSYS | AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX2, AUE_FLAG_LSYS | AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10T, AUE_FLAG_LSYS)},
-    {USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUA2TX5, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX1, 0)},
-    {USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX5, 0)},
-    {USB_VPI(USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_MN110, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_FA101, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_SIEMENS, USB_PRODUCT_SIEMENS_SPEEDSTREAM, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_SIIG2, USB_PRODUCT_SIIG2_USBTOETHER, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTNIC, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_SMC, USB_PRODUCT_SMC_2202USB, 0)},
-    {USB_VPI(USB_VENDOR_SMC, USB_PRODUCT_SMC_2206USB, AUE_FLAG_PII)},
-    {USB_VPI(USB_VENDOR_SOHOWARE, USB_PRODUCT_SOHOWARE_NUB100, 0)},
-    {USB_VPI(USB_VENDOR_SOHOWARE, USB_PRODUCT_SOHOWARE_NUB110, AUE_FLAG_PII)},
+#define	AUE_DEV(v,p,i) { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) }
+    AUE_DEV(3COM, 3C460B, AUE_FLAG_PII),
+    AUE_DEV(ABOCOM, DSB650TX_PNA, 0),
+    AUE_DEV(ABOCOM, UFE1000, AUE_FLAG_LSYS),
+    AUE_DEV(ABOCOM, XX10, 0),
+    AUE_DEV(ABOCOM, XX1, AUE_FLAG_PNA | AUE_FLAG_PII),
+    AUE_DEV(ABOCOM, XX2, AUE_FLAG_PII),
+    AUE_DEV(ABOCOM, XX4, AUE_FLAG_PNA),
+    AUE_DEV(ABOCOM, XX5, AUE_FLAG_PNA),
+    AUE_DEV(ABOCOM, XX6, AUE_FLAG_PII),
+    AUE_DEV(ABOCOM, XX7, AUE_FLAG_PII),
+    AUE_DEV(ABOCOM, XX8, AUE_FLAG_PII),
+    AUE_DEV(ABOCOM, XX9, AUE_FLAG_PNA),
+    AUE_DEV(ACCTON, SS1001, AUE_FLAG_PII),
+    AUE_DEV(ACCTON, USB320_EC, 0),
+    AUE_DEV(ADMTEK, PEGASUSII_2, AUE_FLAG_PII),
+    AUE_DEV(ADMTEK, PEGASUSII_3, AUE_FLAG_PII),
+    AUE_DEV(ADMTEK, PEGASUSII_4, AUE_FLAG_PII),
+    AUE_DEV(ADMTEK, PEGASUSII, AUE_FLAG_PII),
+    AUE_DEV(ADMTEK, PEGASUS, AUE_FLAG_PNA | AUE_FLAG_DUAL_PHY),
+    AUE_DEV(AEI, FASTETHERNET, AUE_FLAG_PII),
+    AUE_DEV(ALLIEDTELESYN, ATUSB100, AUE_FLAG_PII),
+    AUE_DEV(ATEN, UC110T, AUE_FLAG_PII),
+    AUE_DEV(BELKIN, USB2LAN, AUE_FLAG_PII),
+    AUE_DEV(BILLIONTON, USB100, 0),
+    AUE_DEV(BILLIONTON, USBE100, AUE_FLAG_PII),
+    AUE_DEV(BILLIONTON, USBEL100, 0),
+    AUE_DEV(BILLIONTON, USBLP100, AUE_FLAG_PNA),
+    AUE_DEV(COREGA, FETHER_USB_TXS, AUE_FLAG_PII),
+    AUE_DEV(COREGA, FETHER_USB_TX, 0),
+    AUE_DEV(DLINK, DSB650TX1, AUE_FLAG_LSYS),
+    AUE_DEV(DLINK, DSB650TX2, AUE_FLAG_LSYS | AUE_FLAG_PII),
+    AUE_DEV(DLINK, DSB650TX3, AUE_FLAG_LSYS | AUE_FLAG_PII),
+    AUE_DEV(DLINK, DSB650TX4, AUE_FLAG_LSYS | AUE_FLAG_PII),
+    AUE_DEV(DLINK, DSB650TX_PNA, AUE_FLAG_PNA),
+    AUE_DEV(DLINK, DSB650TX, AUE_FLAG_LSYS),
+    AUE_DEV(DLINK, DSB650, AUE_FLAG_LSYS),
+    AUE_DEV(ELCON, PLAN, AUE_FLAG_PNA | AUE_FLAG_PII),
+    AUE_DEV(ELECOM, LDUSB20, AUE_FLAG_PII),
+    AUE_DEV(ELECOM, LDUSBLTX, AUE_FLAG_PII),
+    AUE_DEV(ELECOM, LDUSBTX0, 0),
+    AUE_DEV(ELECOM, LDUSBTX1, AUE_FLAG_LSYS),
+    AUE_DEV(ELECOM, LDUSBTX2, 0),
+    AUE_DEV(ELECOM, LDUSBTX3, AUE_FLAG_LSYS),
+    AUE_DEV(ELSA, USB2ETHERNET, 0),
+    AUE_DEV(GIGABYTE, GNBR402W, 0),
+    AUE_DEV(HAWKING, UF100, AUE_FLAG_PII),
+    AUE_DEV(HP, HN210E, AUE_FLAG_PII),
+    AUE_DEV(IODATA, USBETTXS, AUE_FLAG_PII),
+    AUE_DEV(IODATA, USBETTX, 0),
+    AUE_DEV(KINGSTON, KNU101TX, 0),
+    AUE_DEV(LINKSYS, USB100H1, AUE_FLAG_LSYS | AUE_FLAG_PNA),
+    AUE_DEV(LINKSYS, USB100TX, AUE_FLAG_LSYS),
+    AUE_DEV(LINKSYS, USB10TA, AUE_FLAG_LSYS),
+    AUE_DEV(LINKSYS, USB10TX1, AUE_FLAG_LSYS | AUE_FLAG_PII),
+    AUE_DEV(LINKSYS, USB10TX2, AUE_FLAG_LSYS | AUE_FLAG_PII),
+    AUE_DEV(LINKSYS, USB10T, AUE_FLAG_LSYS),
+    AUE_DEV(MELCO, LUA2TX5, AUE_FLAG_PII),
+    AUE_DEV(MELCO, LUATX1, 0),
+    AUE_DEV(MELCO, LUATX5, 0),
+    AUE_DEV(MICROSOFT, MN110, AUE_FLAG_PII),
+    AUE_DEV(NETGEAR, FA101, AUE_FLAG_PII),
+    AUE_DEV(SIEMENS, SPEEDSTREAM, AUE_FLAG_PII),
+    AUE_DEV(SIIG2, USBTOETHER, AUE_FLAG_PII),
+    AUE_DEV(SMARTBRIDGES, SMARTNIC, AUE_FLAG_PII),
+    AUE_DEV(SMC, 2202USB, 0),
+    AUE_DEV(SMC, 2206USB, AUE_FLAG_PII),
+    AUE_DEV(SOHOWARE, NUB100, 0),
+    AUE_DEV(SOHOWARE, NUB110, AUE_FLAG_PII),
+#undef AUE_DEV
 };
 
 /* prototypes */

Modified: stable/8/sys/dev/usb/net/if_axe.c
==============================================================================
--- stable/8/sys/dev/usb/net/if_axe.c	Thu Dec 31 00:19:52 2009	(r201315)
+++ stable/8/sys/dev/usb/net/if_axe.c	Thu Dec 31 00:20:54 2009	(r201316)
@@ -135,32 +135,34 @@ SYSCTL_INT(_hw_usb_axe, OID_AUTO, debug,
  * Various supported device vendors/products.
  */
 static const struct usb_device_id axe_devs[] = {
-	{USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_UF200, 0)},
-	{USB_VPI(USB_VENDOR_ACERCM, USB_PRODUCT_ACERCM_EP1427X2, 0)},
-	{USB_VPI(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_ETHERNET, AXE_FLAG_772)},
-	{USB_VPI(USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88172, 0)},
-	{USB_VPI(USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88178, AXE_FLAG_178)},
-	{USB_VPI(USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88772, AXE_FLAG_772)},
-	{USB_VPI(USB_VENDOR_ASIX, USB_PRODUCT_ASIX_AX88772A, AXE_FLAG_772)},
-	{USB_VPI(USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC210T, 0)},
-	{USB_VPI(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D5055, AXE_FLAG_178)},
-	{USB_VPI(USB_VENDOR_BILLIONTON, USB_PRODUCT_BILLIONTON_USB2AR, 0)},
-	{USB_VPI(USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_USB200MV2, AXE_FLAG_772)},
-	{USB_VPI(USB_VENDOR_COREGA, USB_PRODUCT_COREGA_FETHER_USB2_TX, 0)},
-	{USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DUBE100, 0)},
-	{USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DUBE100B1, AXE_FLAG_772)},
-	{USB_VPI(USB_VENDOR_GOODWAY, USB_PRODUCT_GOODWAY_GWUSB2E, 0)},
-	{USB_VPI(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_ETGUS2, AXE_FLAG_178)},
-	{USB_VPI(USB_VENDOR_JVC, USB_PRODUCT_JVC_MP_PRX1, 0)},
-	{USB_VPI(USB_VENDOR_LINKSYS2, USB_PRODUCT_LINKSYS2_USB200M, 0)},
-	{USB_VPI(USB_VENDOR_LINKSYS4, USB_PRODUCT_LINKSYS4_USB1000, AXE_FLAG_178)},
-	{USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUAU2KTX, 0)},
-	{USB_VPI(USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_FA120, 0)},
-	{USB_VPI(USB_VENDOR_OQO, USB_PRODUCT_OQO_ETHER01PLUS, AXE_FLAG_772)},
-	{USB_VPI(USB_VENDOR_PLANEX3, USB_PRODUCT_PLANEX3_GU1000T, AXE_FLAG_178)},
-	{USB_VPI(USB_VENDOR_SITECOM, USB_PRODUCT_SITECOM_LN029, 0)},
-	{USB_VPI(USB_VENDOR_SITECOMEU, USB_PRODUCT_SITECOMEU_LN028, AXE_FLAG_178)},
-	{USB_VPI(USB_VENDOR_SYSTEMTALKS, USB_PRODUCT_SYSTEMTALKS_SGCX2UL, 0)},
+#define	AXE_DEV(v,p,i) { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) }
+	AXE_DEV(ABOCOM, UF200, 0),
+	AXE_DEV(ACERCM, EP1427X2, 0),
+	AXE_DEV(APPLE, ETHERNET, AXE_FLAG_772),
+	AXE_DEV(ASIX, AX88172, 0),
+	AXE_DEV(ASIX, AX88178, AXE_FLAG_178),
+	AXE_DEV(ASIX, AX88772, AXE_FLAG_772),
+	AXE_DEV(ASIX, AX88772A, AXE_FLAG_772),
+	AXE_DEV(ATEN, UC210T, 0),
+	AXE_DEV(BELKIN, F5D5055, AXE_FLAG_178),
+	AXE_DEV(BILLIONTON, USB2AR, 0),
+	AXE_DEV(CISCOLINKSYS, USB200MV2, AXE_FLAG_772),
+	AXE_DEV(COREGA, FETHER_USB2_TX, 0),
+	AXE_DEV(DLINK, DUBE100, 0),
+	AXE_DEV(DLINK, DUBE100B1, AXE_FLAG_772),
+	AXE_DEV(GOODWAY, GWUSB2E, 0),
+	AXE_DEV(IODATA, ETGUS2, AXE_FLAG_178),
+	AXE_DEV(JVC, MP_PRX1, 0),
+	AXE_DEV(LINKSYS2, USB200M, 0),
+	AXE_DEV(LINKSYS4, USB1000, AXE_FLAG_178),
+	AXE_DEV(MELCO, LUAU2KTX, 0),
+	AXE_DEV(NETGEAR, FA120, 0),
+	AXE_DEV(OQO, ETHER01PLUS, AXE_FLAG_772),
+	AXE_DEV(PLANEX3, GU1000T, AXE_FLAG_178),
+	AXE_DEV(SITECOM, LN029, 0),
+	AXE_DEV(SITECOMEU, LN028, AXE_FLAG_178),
+	AXE_DEV(SYSTEMTALKS, SGCX2UL, 0),
+#undef AXE_DEV
 };
 
 static device_probe_t axe_probe;

Modified: stable/8/sys/dev/usb/net/if_cue.c
==============================================================================
--- stable/8/sys/dev/usb/net/if_cue.c	Thu Dec 31 00:19:52 2009	(r201315)
+++ stable/8/sys/dev/usb/net/if_cue.c	Thu Dec 31 00:20:54 2009	(r201316)
@@ -90,9 +90,11 @@ __FBSDID("$FreeBSD$");
 /* Belkin F5U111 adapter covered by NETMATE entry */
 
 static const struct usb_device_id cue_devs[] = {
-	{USB_VPI(USB_VENDOR_CATC, USB_PRODUCT_CATC_NETMATE, 0)},
-	{USB_VPI(USB_VENDOR_CATC, USB_PRODUCT_CATC_NETMATE2, 0)},
-	{USB_VPI(USB_VENDOR_SMARTBRIDGES, USB_PRODUCT_SMARTBRIDGES_SMARTLINK, 0)},
+#define	CUE_DEV(v,p) { USB_VP(USB_VENDOR_##v, USB_PRODUCT_##v##_##p) }
+	CUE_DEV(CATC, NETMATE),
+	CUE_DEV(CATC, NETMATE2),
+	CUE_DEV(SMARTBRIDGES, SMARTLINK),
+#undef CUE_DEV
 };
 
 /* prototypes */

Modified: stable/8/sys/dev/usb/net/if_kue.c
==============================================================================
--- stable/8/sys/dev/usb/net/if_kue.c	Thu Dec 31 00:19:52 2009	(r201315)
+++ stable/8/sys/dev/usb/net/if_kue.c	Thu Dec 31 00:20:54 2009	(r201316)
@@ -102,40 +102,41 @@ __FBSDID("$FreeBSD$");
  * Various supported device vendors/products.
  */
 static const struct usb_device_id kue_devs[] = {
-	{USB_VPI(USB_VENDOR_3COM, USB_PRODUCT_3COM_3C19250, 0)},
-	{USB_VPI(USB_VENDOR_3COM, USB_PRODUCT_3COM_3C460, 0)},
-	{USB_VPI(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_URE450, 0)},
-	{USB_VPI(USB_VENDOR_ADS, USB_PRODUCT_ADS_UBS10BT, 0)},
-	{USB_VPI(USB_VENDOR_ADS, USB_PRODUCT_ADS_UBS10BTX, 0)},
-	{USB_VPI(USB_VENDOR_AOX, USB_PRODUCT_AOX_USB101, 0)},
-	{USB_VPI(USB_VENDOR_ASANTE, USB_PRODUCT_ASANTE_EA, 0)},
-	{USB_VPI(USB_VENDOR_ATEN, USB_PRODUCT_ATEN_DSB650C, 0)},
-	{USB_VPI(USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC10T, 0)},
-	{USB_VPI(USB_VENDOR_COREGA, USB_PRODUCT_COREGA_ETHER_USB_T, 0)},
-	{USB_VPI(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DSB650C, 0)},
-	{USB_VPI(USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_E45, 0)},
-	{USB_VPI(USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_XX1, 0)},
-	{USB_VPI(USB_VENDOR_ENTREGA, USB_PRODUCT_ENTREGA_XX2, 0)},
-	{USB_VPI(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBETT, 0)},
-	{USB_VPI(USB_VENDOR_JATON, USB_PRODUCT_JATON_EDA, 0)},
-	{USB_VPI(USB_VENDOR_KINGSTON, USB_PRODUCT_KINGSTON_XX1, 0)},
-	{USB_VPI(USB_VENDOR_KLSI, USB_PRODUCT_AOX_USB101, 0)},
-	{USB_VPI(USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BT, 0)},
-	{USB_VPI(USB_VENDOR_KLSI, USB_PRODUCT_KLSI_DUH3E10BTN, 0)},
-	{USB_VPI(USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10T, 0)},
-	{USB_VPI(USB_VENDOR_MOBILITY, USB_PRODUCT_MOBILITY_EA, 0)},
-	{USB_VPI(USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_EA101, 0)},
-	{USB_VPI(USB_VENDOR_NETGEAR, USB_PRODUCT_NETGEAR_EA101X, 0)},
-	{USB_VPI(USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET, 0)},
-	{USB_VPI(USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET2, 0)},
-	{USB_VPI(USB_VENDOR_PERACOM, USB_PRODUCT_PERACOM_ENET3, 0)},
-	{USB_VPI(USB_VENDOR_PORTGEAR, USB_PRODUCT_PORTGEAR_EA8, 0)},
-	{USB_VPI(USB_VENDOR_PORTGEAR, USB_PRODUCT_PORTGEAR_EA9, 0)},
-	{USB_VPI(USB_VENDOR_PORTSMITH, USB_PRODUCT_PORTSMITH_EEA, 0)},
-	{USB_VPI(USB_VENDOR_SHARK, USB_PRODUCT_SHARK_PA, 0)},
-	{USB_VPI(USB_VENDOR_SILICOM, USB_PRODUCT_SILICOM_GPE, 0)},
-	{USB_VPI(USB_VENDOR_SILICOM, USB_PRODUCT_SILICOM_U2E, 0)},
-	{USB_VPI(USB_VENDOR_SMC, USB_PRODUCT_SMC_2102USB, 0)},
+#define	KUE_DEV(v,p) { USB_VP(USB_VENDOR_##v, USB_PRODUCT_##v##_##p) }
+	KUE_DEV(3COM, 3C19250),
+	KUE_DEV(3COM, 3C460),
+	KUE_DEV(ABOCOM, URE450),
+	KUE_DEV(ADS, UBS10BT),
+	KUE_DEV(ADS, UBS10BTX),
+	KUE_DEV(AOX, USB101),
+	KUE_DEV(ASANTE, EA),
+	KUE_DEV(ATEN, DSB650C),
+	KUE_DEV(ATEN, UC10T),
+	KUE_DEV(COREGA, ETHER_USB_T),
+	KUE_DEV(DLINK, DSB650C),
+	KUE_DEV(ENTREGA, E45),
+	KUE_DEV(ENTREGA, XX1),
+	KUE_DEV(ENTREGA, XX2),
+	KUE_DEV(IODATA, USBETT),
+	KUE_DEV(JATON, EDA),
+	KUE_DEV(KINGSTON, XX1),
+	KUE_DEV(KLSI, DUH3E10BT),
+	KUE_DEV(KLSI, DUH3E10BTN),
+	KUE_DEV(LINKSYS, USB10T),
+	KUE_DEV(MOBILITY, EA),
+	KUE_DEV(NETGEAR, EA101),
+	KUE_DEV(NETGEAR, EA101X),
+	KUE_DEV(PERACOM, ENET),
+	KUE_DEV(PERACOM, ENET2),
+	KUE_DEV(PERACOM, ENET3),
+	KUE_DEV(PORTGEAR, EA8),
+	KUE_DEV(PORTGEAR, EA9),
+	KUE_DEV(PORTSMITH, EEA),
+	KUE_DEV(SHARK, PA),
+	KUE_DEV(SILICOM, GPE),
+	KUE_DEV(SILICOM, U2E),
+	KUE_DEV(SMC, 2102USB),
+#undef KUE_DEV
 };
 
 /* prototypes */

Modified: stable/8/sys/dev/usb/serial/uftdi.c
==============================================================================
--- stable/8/sys/dev/usb/serial/uftdi.c	Thu Dec 31 00:19:52 2009	(r201315)
+++ stable/8/sys/dev/usb/serial/uftdi.c	Thu Dec 31 00:20:54 2009	(r201316)
@@ -216,43 +216,46 @@ MODULE_DEPEND(uftdi, ucom, 1, 1, 1);
 MODULE_DEPEND(uftdi, usb, 1, 1, 1);
 
 static struct usb_device_id uftdi_devs[] = {
-	{USB_VPI(USB_VENDOR_ATMEL, USB_PRODUCT_ATMEL_STK541, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_DRESDENELEKTRONIK, USB_PRODUCT_DRESDENELEKTRONIK_SENSORTERMINALBOARD, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_DRESDENELEKTRONIK, USB_PRODUCT_DRESDENELEKTRONIK_WIRELESSHANDHELDTERMINAL, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U100AX, UFTDI_TYPE_SIO)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_2232C, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_2232D, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U232AM, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SERIAL_8U232AM4, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_SEMC_DSS20, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_631, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_632, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_633, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_634, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CFA_635, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_USBSERIAL, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MX2_3, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MX4_5, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_LK202, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_LK204, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TACTRIX_OPENPORT_13M, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TACTRIX_OPENPORT_13S, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_TACTRIX_OPENPORT_13U, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_EISCOU, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_UOPTBR, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_EMCU2D, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_PCMSFU, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_EMCU2H, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_MAXSTREAM, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CTI_USB_NANO_485, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_FTDI, USB_PRODUCT_FTDI_CTI_USB_MINI_485, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_SIIG2, USB_PRODUCT_SIIG2_US2308, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_INTREPIDCS, USB_PRODUCT_INTREPIDCS_VALUECAN, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_INTREPIDCS, USB_PRODUCT_INTREPIDCS_NEOVI, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_BBELECTRONICS, USB_PRODUCT_BBELECTRONICS_USOTL4, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_MARVELL, USB_PRODUCT_MARVELL_SHEEVAPLUG, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_PCOPRS1, UFTDI_TYPE_8U232AM)},
-	{USB_VPI(USB_VENDOR_RATOC, USB_PRODUCT_RATOC_REXUSB60F, UFTDI_TYPE_8U232AM)},
+#define	UFTDI_DEV(v,p,t) \
+  { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, UFTDI_TYPE_##t) }
+	UFTDI_DEV(ATMEL, STK541, 8U232AM),
+	UFTDI_DEV(DRESDENELEKTRONIK, SENSORTERMINALBOARD, 8U232AM),
+	UFTDI_DEV(DRESDENELEKTRONIK, WIRELESSHANDHELDTERMINAL, 8U232AM),
+	UFTDI_DEV(FTDI, SERIAL_8U100AX, SIO),
+	UFTDI_DEV(FTDI, SERIAL_2232C, 8U232AM),
+	UFTDI_DEV(FTDI, SERIAL_2232D, 8U232AM),
+	UFTDI_DEV(FTDI, SERIAL_8U232AM, 8U232AM),
+	UFTDI_DEV(FTDI, SERIAL_8U232AM4, 8U232AM),
+	UFTDI_DEV(FTDI, SEMC_DSS20, 8U232AM),
+	UFTDI_DEV(FTDI, CFA_631, 8U232AM),
+	UFTDI_DEV(FTDI, CFA_632, 8U232AM),
+	UFTDI_DEV(FTDI, CFA_633, 8U232AM),
+	UFTDI_DEV(FTDI, CFA_634, 8U232AM),
+	UFTDI_DEV(FTDI, CFA_635, 8U232AM),
+	UFTDI_DEV(FTDI, USBSERIAL, 8U232AM),
+	UFTDI_DEV(FTDI, MX2_3, 8U232AM),
+	UFTDI_DEV(FTDI, MX4_5, 8U232AM),
+	UFTDI_DEV(FTDI, LK202, 8U232AM),
+	UFTDI_DEV(FTDI, LK204, 8U232AM),
+	UFTDI_DEV(FTDI, TACTRIX_OPENPORT_13M, 8U232AM),
+	UFTDI_DEV(FTDI, TACTRIX_OPENPORT_13S, 8U232AM),
+	UFTDI_DEV(FTDI, TACTRIX_OPENPORT_13U, 8U232AM),
+	UFTDI_DEV(FTDI, EISCOU, 8U232AM),
+	UFTDI_DEV(FTDI, UOPTBR, 8U232AM),
+	UFTDI_DEV(FTDI, EMCU2D, 8U232AM),
+	UFTDI_DEV(FTDI, PCMSFU, 8U232AM),
+	UFTDI_DEV(FTDI, EMCU2H, 8U232AM),
+	UFTDI_DEV(FTDI, MAXSTREAM, 8U232AM),
+	UFTDI_DEV(FTDI, CTI_USB_NANO_485, 8U232AM),
+	UFTDI_DEV(FTDI, CTI_USB_MINI_485, 8U232AM),
+	UFTDI_DEV(SIIG2, US2308, 8U232AM),
+	UFTDI_DEV(INTREPIDCS, VALUECAN, 8U232AM),
+	UFTDI_DEV(INTREPIDCS, NEOVI, 8U232AM),
+	UFTDI_DEV(BBELECTRONICS, USOTL4, 8U232AM),
+	UFTDI_DEV(MARVELL, SHEEVAPLUG, 8U232AM),
+	UFTDI_DEV(MELCO, PCOPRS1, 8U232AM),
+	UFTDI_DEV(RATOC, REXUSB60F, 8U232AM),
+#undef UFTDI_DEV
 };
 
 static int

Modified: stable/8/sys/dev/usb/serial/uplcom.c
==============================================================================
--- stable/8/sys/dev/usb/serial/uplcom.c	Thu Dec 31 00:19:52 2009	(r201315)
+++ stable/8/sys/dev/usb/serial/uplcom.c	Thu Dec 31 00:20:54 2009	(r201316)
@@ -243,57 +243,57 @@ static struct ucom_callback uplcom_callb
 	.ucom_poll = &uplcom_poll,
 };
 
-#define	USB_UPL(v,p,rl,rh,t)				\
-  USB_VENDOR(v), USB_PRODUCT(p), USB_DEV_BCD_GTEQ(rl),	\
-  USB_DEV_BCD_LTEQ(rh), USB_DRIVER_INFO(t)
+#define	UPLCOM_DEV(v,p,rl,rh,t)				\
+  { USB_VENDOR(USB_VENDOR_##v), USB_PRODUCT(USB_PRODUCT_##v##_##p), \
+    USB_DEV_BCD_GTEQ(rl), USB_DEV_BCD_LTEQ(rh), USB_DRIVER_INFO(TYPE_##t) }
 
 static const struct usb_device_id uplcom_devs[] = {
 	/* Belkin F5U257 */
-	{USB_UPL(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5U257, 0, 0xFFFF, TYPE_PL2303X)},
+	UPLCOM_DEV(BELKIN, F5U257, 0, 0xFFFF, PL2303X),
 	/* I/O DATA USB-RSAQ */
-	{USB_UPL(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_USBRSAQ, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(IODATA, USBRSAQ, 0, 0xFFFF, PL2303),
 	/* I/O DATA USB-RSAQ2 */
-	{USB_UPL(USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_RSAQ2, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(PROLIFIC, RSAQ2, 0, 0xFFFF, PL2303),
 	/* I/O DATA USB-RSAQ3 */
-	{USB_UPL(USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_RSAQ3, 0, 0xFFFF, TYPE_PL2303X)},
+	UPLCOM_DEV(PROLIFIC, RSAQ3, 0, 0xFFFF, PL2303X),
 	/* PLANEX USB-RS232 URS-03 */
-	{USB_UPL(USB_VENDOR_ATEN, USB_PRODUCT_ATEN_UC232A, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(ATEN, UC232A, 0, 0xFFFF, PL2303),
 	/* TrendNet TU-S9 */
-	{USB_UPL(USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2303, 0x0400, 0xFFFF, TYPE_PL2303X)},
+	UPLCOM_DEV(PROLIFIC, PL2303, 0x0400, 0xFFFF, PL2303X),
 	/* ST Lab USB-SERIAL-4 */
-	{USB_UPL(USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2303, 0x0300, 0x03FF, TYPE_PL2303X)},
+	UPLCOM_DEV(PROLIFIC, PL2303, 0x0300, 0x03FF, PL2303X),
 	/* IOGEAR/ATEN UC-232A (also ST Lab USB-SERIAL-1) */
-	{USB_UPL(USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PL2303, 0, 0x02FF, TYPE_PL2303)},
+	UPLCOM_DEV(PROLIFIC, PL2303, 0, 0x02FF, PL2303),
 	/* TDK USB-PHS Adapter UHA6400 */
-	{USB_UPL(USB_VENDOR_TDK, USB_PRODUCT_TDK_UHA6400, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(TDK, UHA6400, 0, 0xFFFF, PL2303),
 	/* RATOC REX-USB60 */
-	{USB_UPL(USB_VENDOR_RATOC, USB_PRODUCT_RATOC_REXUSB60, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(RATOC, REXUSB60, 0, 0xFFFF, PL2303),
 	/* ELECOM UC-SGT */
-	{USB_UPL(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_UCSGT, 0, 0xFFFF, TYPE_PL2303)},
-	{USB_UPL(USB_VENDOR_ELECOM, USB_PRODUCT_ELECOM_UCSGT0, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(ELECOM, UCSGT, 0, 0xFFFF, PL2303),
+	UPLCOM_DEV(ELECOM, UCSGT0, 0, 0xFFFF, PL2303),
 	/* Sagem USB-Serial Controller */
-	{USB_UPL(USB_VENDOR_SAGEM, USB_PRODUCT_SAGEM_USBSERIAL, 0, 0xFFFF, TYPE_PL2303X)},
+	UPLCOM_DEV(SAGEM, USBSERIAL, 0, 0xFFFF, PL2303X),
 	/* Sony Ericsson USB Cable */
-	{USB_UPL(USB_VENDOR_SONYERICSSON, USB_PRODUCT_SONYERICSSON_DCU10, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(SONYERICSSON, DCU10, 0, 0xFFFF, PL2303),
 	/* SOURCENEXT KeikaiDenwa 8 */
-	{USB_UPL(USB_VENDOR_SOURCENEXT, USB_PRODUCT_SOURCENEXT_KEIKAI8, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(SOURCENEXT, KEIKAI8, 0, 0xFFFF, PL2303),
 	/* SOURCENEXT KeikaiDenwa 8 with charger */
-	{USB_UPL(USB_VENDOR_SOURCENEXT, USB_PRODUCT_SOURCENEXT_KEIKAI8_CHG, 0, 0, TYPE_PL2303)},
+	UPLCOM_DEV(SOURCENEXT, KEIKAI8_CHG, 0, 0, PL2303),
 	/* HAL Corporation Crossam2+USB */
-	{USB_UPL(USB_VENDOR_HAL, USB_PRODUCT_HAL_IMR001, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(HAL, IMR001, 0, 0xFFFF, PL2303),
 	/* Sitecom USB to Serial */
-	{USB_UPL(USB_VENDOR_SITECOM, USB_PRODUCT_SITECOM_SERIAL, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(SITECOM, SERIAL, 0, 0xFFFF, PL2303),
 	/* Tripp-Lite U209-000-R */
-	{USB_UPL(USB_VENDOR_TRIPPLITE, USB_PRODUCT_TRIPPLITE_U209, 0, 0xFFFF, TYPE_PL2303X)},
-	{USB_UPL(USB_VENDOR_RADIOSHACK, USB_PRODUCT_RADIOSHACK_USBCABLE, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(TRIPPLITE, U209, 0, 0xFFFF, PL2303X),
+	UPLCOM_DEV(RADIOSHACK, USBCABLE, 0, 0xFFFF, PL2303),
 	/* Prolific Pharos */
-	{USB_UPL(USB_VENDOR_PROLIFIC, USB_PRODUCT_PROLIFIC_PHAROS, 0, 0xFFFF, TYPE_PL2303)},
+	UPLCOM_DEV(PROLIFIC, PHAROS, 0, 0xFFFF, PL2303),
 	/* Willcom W-SIM */
-	{USB_UPL(USB_VENDOR_PROLIFIC2, USB_PRODUCT_PROLIFIC2_WSIM, 0, 0xFFFF, TYPE_PL2303X)},
+	UPLCOM_DEV(PROLIFIC2, WSIM, 0, 0xFFFF, PL2303X),
 	/* Mobile Action MA-620 Infrared Adapter */
-	{USB_UPL(USB_VENDOR_MOBILEACTION, USB_PRODUCT_MOBILEACTION_MA620, 0, 0xFFFF, TYPE_PL2303X)},
-
+	UPLCOM_DEV(MOBILEACTION, MA620, 0, 0xFFFF, PL2303X),
 };
+#undef UPLCOM_DEV
 
 static device_method_t uplcom_methods[] = {
 	DEVMETHOD(device_probe, uplcom_probe),

Modified: stable/8/sys/dev/usb/serial/uslcom.c
==============================================================================
--- stable/8/sys/dev/usb/serial/uslcom.c	Thu Dec 31 00:19:52 2009	(r201315)
+++ stable/8/sys/dev/usb/serial/uslcom.c	Thu Dec 31 00:20:54 2009	(r201316)
@@ -175,24 +175,26 @@ static struct ucom_callback uslcom_callb
 };
 
 static const struct usb_device_id uslcom_devs[] = {
-    { USB_VPI(USB_VENDOR_BALTECH,	USB_PRODUCT_BALTECH_CARDREADER, 0) },
-    { USB_VPI(USB_VENDOR_DYNASTREAM,	USB_PRODUCT_DYNASTREAM_ANTDEVBOARD, 0) },
-    { USB_VPI(USB_VENDOR_JABLOTRON,	USB_PRODUCT_JABLOTRON_PC60B, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_ARGUSISP, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_CRUMB128, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_DEGREE, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_BURNSIDE, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_HELICOM, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_LIPOWSKY_HARP, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_LIPOWSKY_JTAG, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_LIPOWSKY_LIN, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_POLOLU, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_CP2102, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_CP210X_2, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_SUUNTO, 0) },
-    { USB_VPI(USB_VENDOR_SILABS,	USB_PRODUCT_SILABS_TRAQMATE, 0) },
-    { USB_VPI(USB_VENDOR_SILABS2,	USB_PRODUCT_SILABS2_DCU11CLONE, 0) },
-    { USB_VPI(USB_VENDOR_USI,		USB_PRODUCT_USI_MC60, 0) },
+#define	USLCOM_DEV(v,p)  { USB_VP(USB_VENDOR_##v, USB_PRODUCT_##v##_##p) }
+    USLCOM_DEV(BALTECH, CARDREADER),
+    USLCOM_DEV(DYNASTREAM, ANTDEVBOARD),
+    USLCOM_DEV(JABLOTRON, PC60B),
+    USLCOM_DEV(SILABS, ARGUSISP),
+    USLCOM_DEV(SILABS, CRUMB128),
+    USLCOM_DEV(SILABS, DEGREE),
+    USLCOM_DEV(SILABS, BURNSIDE),
+    USLCOM_DEV(SILABS, HELICOM),
+    USLCOM_DEV(SILABS, LIPOWSKY_HARP),
+    USLCOM_DEV(SILABS, LIPOWSKY_JTAG),
+    USLCOM_DEV(SILABS, LIPOWSKY_LIN),
+    USLCOM_DEV(SILABS, POLOLU),
+    USLCOM_DEV(SILABS, CP2102),
+    USLCOM_DEV(SILABS, CP210X_2),
+    USLCOM_DEV(SILABS, SUUNTO),
+    USLCOM_DEV(SILABS, TRAQMATE),
+    USLCOM_DEV(SILABS2, DCU11CLONE),
+    USLCOM_DEV(USI, MC60),
+#undef USLCOM_DEV
 };
 
 static device_method_t uslcom_methods[] = {

Modified: stable/8/sys/dev/usb/serial/uvisor.c
==============================================================================
--- stable/8/sys/dev/usb/serial/uvisor.c	Thu Dec 31 00:19:52 2009	(r201315)
+++ stable/8/sys/dev/usb/serial/uvisor.c	Thu Dec 31 00:20:54 2009	(r201316)
@@ -261,32 +261,34 @@ MODULE_DEPEND(uvisor, ucom, 1, 1, 1);
 MODULE_DEPEND(uvisor, usb, 1, 1, 1);
 
 static const struct usb_device_id uvisor_devs[] = {
-	{USB_VPI(USB_VENDOR_ACEECA, USB_PRODUCT_ACEECA_MEZ1000, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_GARMIN, USB_PRODUCT_GARMIN_IQUE_3600, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_FOSSIL, USB_PRODUCT_FOSSIL_WRISTPDA, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_HANDSPRING, USB_PRODUCT_HANDSPRING_VISOR, UVISOR_FLAG_VISOR)},
-	{USB_VPI(USB_VENDOR_HANDSPRING, USB_PRODUCT_HANDSPRING_TREO, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_HANDSPRING, USB_PRODUCT_HANDSPRING_TREO600, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_PALM, USB_PRODUCT_PALM_M500, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_PALM, USB_PRODUCT_PALM_M505, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_PALM, USB_PRODUCT_PALM_M515, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_PALM, USB_PRODUCT_PALM_I705, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_PALM, USB_PRODUCT_PALM_M125, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_PALM, USB_PRODUCT_PALM_M130, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_PALM, USB_PRODUCT_PALM_TUNGSTEN_Z, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_PALM, USB_PRODUCT_PALM_TUNGSTEN_T, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_PALM, USB_PRODUCT_PALM_ZIRE, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_PALM, USB_PRODUCT_PALM_ZIRE31, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_SAMSUNG, USB_PRODUCT_SAMSUNG_I500, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_40, 0)},
-	{USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_41, 0)},
-	{USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_S360, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_NX60, UVISOR_FLAG_PALM4)},
-	{USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_35, UVISOR_FLAG_PALM35)},
-/*  {USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_25, UVISOR_FLAG_PALM4 )}, */
-	{USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_TJ37, UVISOR_FLAG_PALM4)},
-/*  {USB_VPI(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_TH55, UVISOR_FLAG_PALM4 )}, See PR 80935 */
-	{USB_VPI(USB_VENDOR_TAPWAVE, USB_PRODUCT_TAPWAVE_ZODIAC, UVISOR_FLAG_PALM4)},
+#define	UVISOR_DEV(v,p,i) { USB_VPI(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, i) }
+	UVISOR_DEV(ACEECA, MEZ1000, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(GARMIN, IQUE_3600, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(FOSSIL, WRISTPDA, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(HANDSPRING, VISOR, UVISOR_FLAG_VISOR),
+	UVISOR_DEV(HANDSPRING, TREO, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(HANDSPRING, TREO600, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(PALM, M500, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(PALM, M505, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(PALM, M515, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(PALM, I705, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(PALM, M125, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(PALM, M130, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(PALM, TUNGSTEN_Z, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(PALM, TUNGSTEN_T, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(PALM, ZIRE, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(PALM, ZIRE31, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(SAMSUNG, I500, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(SONY, CLIE_40, 0),
+	UVISOR_DEV(SONY, CLIE_41, 0),
+	UVISOR_DEV(SONY, CLIE_S360, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(SONY, CLIE_NX60, UVISOR_FLAG_PALM4),
+	UVISOR_DEV(SONY, CLIE_35, UVISOR_FLAG_PALM35),
+/*  UVISOR_DEV(SONY, CLIE_25, UVISOR_FLAG_PALM4 ), */
+	UVISOR_DEV(SONY, CLIE_TJ37, UVISOR_FLAG_PALM4),
+/*  UVISOR_DEV(SONY, CLIE_TH55, UVISOR_FLAG_PALM4 ), See PR 80935 */
+	UVISOR_DEV(TAPWAVE, ZODIAC, UVISOR_FLAG_PALM4),
+#undef UVISOR_DEV
 };
 
 static int

Modified: stable/8/sys/dev/usb/usbdevs
==============================================================================
--- stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:19:52 2009	(r201315)
+++ stable/8/sys/dev/usb/usbdevs	Thu Dec 31 00:20:54 2009	(r201316)
@@ -941,6 +941,7 @@ product ASUS RT2573_2		0x1724	RT2573
 product ASUS LCM		0x1726	LCM display
 product ASUS P535		0x420f	ASUS P535 PDA
 product	ASUS GMSC		0x422f	ASUS Generic Mass Storage
+product ASUS RT2570		0x1706	RT2500USB Wireless Adapter
 
 /* ATen products */
 product ATEN UC1284		0x2001	Parallel printer

Modified: stable/8/sys/dev/usb/wlan/if_rum.c
==============================================================================
--- stable/8/sys/dev/usb/wlan/if_rum.c	Thu Dec 31 00:19:52 2009	(r201315)
+++ stable/8/sys/dev/usb/wlan/if_rum.c	Thu Dec 31 00:20:54 2009	(r201316)
@@ -86,54 +86,56 @@ SYSCTL_INT(_hw_usb_rum, OID_AUTO, debug,
 #endif
 
 static const struct usb_device_id rum_devs[] = {
-    { USB_VP(USB_VENDOR_ABOCOM,		USB_PRODUCT_ABOCOM_HWU54DM) },
-    { USB_VP(USB_VENDOR_ABOCOM,		USB_PRODUCT_ABOCOM_RT2573_2) },
-    { USB_VP(USB_VENDOR_ABOCOM,		USB_PRODUCT_ABOCOM_RT2573_3) },
-    { USB_VP(USB_VENDOR_ABOCOM,		USB_PRODUCT_ABOCOM_RT2573_4) },
-    { USB_VP(USB_VENDOR_ABOCOM,		USB_PRODUCT_ABOCOM_WUG2700) },
-    { USB_VP(USB_VENDOR_AMIT,		USB_PRODUCT_AMIT_CGWLUSB2GO) },
-    { USB_VP(USB_VENDOR_ASUS,		USB_PRODUCT_ASUS_RT2573_1) },
-    { USB_VP(USB_VENDOR_ASUS,		USB_PRODUCT_ASUS_RT2573_2) },
-    { USB_VP(USB_VENDOR_BELKIN,		USB_PRODUCT_BELKIN_F5D7050A) },
-    { USB_VP(USB_VENDOR_BELKIN,		USB_PRODUCT_BELKIN_F5D9050V3) },
-    { USB_VP(USB_VENDOR_CISCOLINKSYS,	USB_PRODUCT_CISCOLINKSYS_WUSB54GC) },
-    { USB_VP(USB_VENDOR_CISCOLINKSYS,	USB_PRODUCT_CISCOLINKSYS_WUSB54GR) },
-    { USB_VP(USB_VENDOR_CONCEPTRONIC2,	USB_PRODUCT_CONCEPTRONIC2_C54RU2) },
-    { USB_VP(USB_VENDOR_COREGA,		USB_PRODUCT_COREGA_CGWLUSB2GL) },
-    { USB_VP(USB_VENDOR_COREGA,		USB_PRODUCT_COREGA_CGWLUSB2GPX) },
-    { USB_VP(USB_VENDOR_DICKSMITH,	USB_PRODUCT_DICKSMITH_CWD854F) },
-    { USB_VP(USB_VENDOR_DICKSMITH,	USB_PRODUCT_DICKSMITH_RT2573) },
-    { USB_VP(USB_VENDOR_DLINK2,		USB_PRODUCT_DLINK2_DWLG122C1) },
-    { USB_VP(USB_VENDOR_DLINK2,		USB_PRODUCT_DLINK2_WUA1340) },
-    { USB_VP(USB_VENDOR_DLINK2,		USB_PRODUCT_DLINK2_DWA111) },
-    { USB_VP(USB_VENDOR_DLINK2,		USB_PRODUCT_DLINK2_DWA110) },
-    { USB_VP(USB_VENDOR_GIGABYTE,	USB_PRODUCT_GIGABYTE_GNWB01GS) },
-    { USB_VP(USB_VENDOR_GIGABYTE,	USB_PRODUCT_GIGABYTE_GNWI05GS) },
-    { USB_VP(USB_VENDOR_GIGASET,	USB_PRODUCT_GIGASET_RT2573) },
-    { USB_VP(USB_VENDOR_GOODWAY,	USB_PRODUCT_GOODWAY_RT2573) },
-    { USB_VP(USB_VENDOR_GUILLEMOT,	USB_PRODUCT_GUILLEMOT_HWGUSB254LB) },
-    { USB_VP(USB_VENDOR_GUILLEMOT,	USB_PRODUCT_GUILLEMOT_HWGUSB254V2AP) },
-    { USB_VP(USB_VENDOR_HUAWEI3COM,	USB_PRODUCT_HUAWEI3COM_WUB320G) },
-    { USB_VP(USB_VENDOR_MELCO,		USB_PRODUCT_MELCO_G54HP) },
-    { USB_VP(USB_VENDOR_MELCO,		USB_PRODUCT_MELCO_SG54HP) },
-    { USB_VP(USB_VENDOR_MSI,		USB_PRODUCT_MSI_RT2573_1) },
-    { USB_VP(USB_VENDOR_MSI,		USB_PRODUCT_MSI_RT2573_2) },
-    { USB_VP(USB_VENDOR_MSI,		USB_PRODUCT_MSI_RT2573_3) },
-    { USB_VP(USB_VENDOR_MSI,		USB_PRODUCT_MSI_RT2573_4) },
-    { USB_VP(USB_VENDOR_NOVATECH,	USB_PRODUCT_NOVATECH_RT2573) },
-    { USB_VP(USB_VENDOR_PLANEX2,	USB_PRODUCT_PLANEX2_GWUS54HP) },
-    { USB_VP(USB_VENDOR_PLANEX2,	USB_PRODUCT_PLANEX2_GWUS54MINI2) },
-    { USB_VP(USB_VENDOR_PLANEX2,	USB_PRODUCT_PLANEX2_GWUSMM) },
-    { USB_VP(USB_VENDOR_QCOM,		USB_PRODUCT_QCOM_RT2573) },
-    { USB_VP(USB_VENDOR_QCOM,		USB_PRODUCT_QCOM_RT2573_2) },
-    { USB_VP(USB_VENDOR_QCOM,		USB_PRODUCT_QCOM_RT2573_3) },
-    { USB_VP(USB_VENDOR_RALINK,		USB_PRODUCT_RALINK_RT2573) },
-    { USB_VP(USB_VENDOR_RALINK,		USB_PRODUCT_RALINK_RT2573_2) },
-    { USB_VP(USB_VENDOR_RALINK,		USB_PRODUCT_RALINK_RT2671) },
-    { USB_VP(USB_VENDOR_SITECOMEU,	USB_PRODUCT_SITECOMEU_WL113R2) },
-    { USB_VP(USB_VENDOR_SITECOMEU,	USB_PRODUCT_SITECOMEU_WL172) },
-    { USB_VP(USB_VENDOR_SPARKLAN,	USB_PRODUCT_SPARKLAN_RT2573) },
-    { USB_VP(USB_VENDOR_SURECOM,	USB_PRODUCT_SURECOM_RT2573) },
+#define	RUM_DEV(v,p)  { USB_VP(USB_VENDOR_##v, USB_PRODUCT_##v##_##p) }
+    RUM_DEV(ABOCOM, HWU54DM),
+    RUM_DEV(ABOCOM, RT2573_2),
+    RUM_DEV(ABOCOM, RT2573_3),
+    RUM_DEV(ABOCOM, RT2573_4),
+    RUM_DEV(ABOCOM, WUG2700),
+    RUM_DEV(AMIT, CGWLUSB2GO),
+    RUM_DEV(ASUS, RT2573_1),
+    RUM_DEV(ASUS, RT2573_2),
+    RUM_DEV(BELKIN, F5D7050A),
+    RUM_DEV(BELKIN, F5D9050V3),
+    RUM_DEV(CISCOLINKSYS, WUSB54GC),
+    RUM_DEV(CISCOLINKSYS, WUSB54GR),
+    RUM_DEV(CONCEPTRONIC2, C54RU2),
+    RUM_DEV(COREGA, CGWLUSB2GL),
+    RUM_DEV(COREGA, CGWLUSB2GPX),
+    RUM_DEV(DICKSMITH, CWD854F),
+    RUM_DEV(DICKSMITH, RT2573),
+    RUM_DEV(DLINK2, DWLG122C1),
+    RUM_DEV(DLINK2, WUA1340),
+    RUM_DEV(DLINK2, DWA111),
+    RUM_DEV(DLINK2, DWA110),
+    RUM_DEV(GIGABYTE, GNWB01GS),
+    RUM_DEV(GIGABYTE, GNWI05GS),
+    RUM_DEV(GIGASET, RT2573),
+    RUM_DEV(GOODWAY, RT2573),
+    RUM_DEV(GUILLEMOT, HWGUSB254LB),
+    RUM_DEV(GUILLEMOT, HWGUSB254V2AP),
+    RUM_DEV(HUAWEI3COM, WUB320G),
+    RUM_DEV(MELCO, G54HP),
+    RUM_DEV(MELCO, SG54HP),
+    RUM_DEV(MSI, RT2573_1),
+    RUM_DEV(MSI, RT2573_2),
+    RUM_DEV(MSI, RT2573_3),
+    RUM_DEV(MSI, RT2573_4),
+    RUM_DEV(NOVATECH, RT2573),
+    RUM_DEV(PLANEX2, GWUS54HP),
+    RUM_DEV(PLANEX2, GWUS54MINI2),
+    RUM_DEV(PLANEX2, GWUSMM),
+    RUM_DEV(QCOM, RT2573),
+    RUM_DEV(QCOM, RT2573_2),
+    RUM_DEV(QCOM, RT2573_3),
+    RUM_DEV(RALINK, RT2573),
+    RUM_DEV(RALINK, RT2573_2),
+    RUM_DEV(RALINK, RT2671),
+    RUM_DEV(SITECOMEU, WL113R2),
+    RUM_DEV(SITECOMEU, WL172),
+    RUM_DEV(SPARKLAN, RT2573),
+    RUM_DEV(SURECOM, RT2573),
+#undef RUM_DEV
 };
 
 MODULE_DEPEND(rum, wlan, 1, 1, 1);

Modified: stable/8/sys/dev/usb/wlan/if_ural.c
==============================================================================
--- stable/8/sys/dev/usb/wlan/if_ural.c	Thu Dec 31 00:19:52 2009	(r201315)
+++ stable/8/sys/dev/usb/wlan/if_ural.c	Thu Dec 31 00:20:54 2009	(r201316)
@@ -92,35 +92,37 @@ SYSCTL_INT(_hw_usb_ural, OID_AUTO, debug
 
 /* various supported device vendors/products */
 static const struct usb_device_id ural_devs[] = {
-	{ USB_VP(USB_VENDOR_ASUS, USB_PRODUCT_ASUS_WL167G) },
-	{ USB_VP(USB_VENDOR_ASUS, USB_PRODUCT_RALINK_RT2570) },
-	{ USB_VP(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D7050) },
-	{ USB_VP(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F5D7051) },
-	{ USB_VP(USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_HU200TS) },
-	{ USB_VP(USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_WUSB54G) },
-	{ USB_VP(USB_VENDOR_CISCOLINKSYS, USB_PRODUCT_CISCOLINKSYS_WUSB54GP) },
-	{ USB_VP(USB_VENDOR_CONCEPTRONIC2, USB_PRODUCT_CONCEPTRONIC2_C54RU) },
-	{ USB_VP(USB_VENDOR_DLINK, USB_PRODUCT_DLINK_DWLG122) },
-	{ USB_VP(USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GN54G) },
-	{ USB_VP(USB_VENDOR_GIGABYTE, USB_PRODUCT_GIGABYTE_GNWBKG) },
-	{ USB_VP(USB_VENDOR_GUILLEMOT, USB_PRODUCT_GUILLEMOT_HWGUSB254) },
-	{ USB_VP(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_KG54) },
-	{ USB_VP(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_KG54AI) },
-	{ USB_VP(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_KG54YB) },
-	{ USB_VP(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_NINWIFI) },
-	{ USB_VP(USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570) },
-	{ USB_VP(USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570_2) },
-	{ USB_VP(USB_VENDOR_MSI, USB_PRODUCT_MSI_RT2570_3) },
-	{ USB_VP(USB_VENDOR_NOVATECH, USB_PRODUCT_NOVATECH_NV902) },
-	{ USB_VP(USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570) },
-	{ USB_VP(USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570_2) },
-	{ USB_VP(USB_VENDOR_RALINK, USB_PRODUCT_RALINK_RT2570_3) },
-	{ USB_VP(USB_VENDOR_SIEMENS2, USB_PRODUCT_SIEMENS2_WL54G) },
-	{ USB_VP(USB_VENDOR_SMC, USB_PRODUCT_SMC_2862WG) },
-	{ USB_VP(USB_VENDOR_SPHAIRON, USB_PRODUCT_SPHAIRON_UB801R) },
-	{ USB_VP(USB_VENDOR_SURECOM, USB_PRODUCT_SURECOM_RT2570) },
-	{ USB_VP(USB_VENDOR_VTECH, USB_PRODUCT_VTECH_RT2570) },
-	{ USB_VP(USB_VENDOR_ZINWELL, USB_PRODUCT_ZINWELL_RT2570) },
+#define	URAL_DEV(v,p)  { USB_VP(USB_VENDOR_##v, USB_PRODUCT_##v##_##p) }
+	URAL_DEV(ASUS, WL167G),
+	URAL_DEV(ASUS, RT2570),
+	URAL_DEV(BELKIN, F5D7050),
+	URAL_DEV(BELKIN, F5D7051),
+	URAL_DEV(CISCOLINKSYS, HU200TS),
+	URAL_DEV(CISCOLINKSYS, WUSB54G),
+	URAL_DEV(CISCOLINKSYS, WUSB54GP),
+	URAL_DEV(CONCEPTRONIC2, C54RU),
+	URAL_DEV(DLINK, DWLG122),
+	URAL_DEV(GIGABYTE, GN54G),
+	URAL_DEV(GIGABYTE, GNWBKG),
+	URAL_DEV(GUILLEMOT, HWGUSB254),
+	URAL_DEV(MELCO, KG54),
+	URAL_DEV(MELCO, KG54AI),
+	URAL_DEV(MELCO, KG54YB),
+	URAL_DEV(MELCO, NINWIFI),
+	URAL_DEV(MSI, RT2570),
+	URAL_DEV(MSI, RT2570_2),
+	URAL_DEV(MSI, RT2570_3),
+	URAL_DEV(NOVATECH, NV902),
+	URAL_DEV(RALINK, RT2570),
+	URAL_DEV(RALINK, RT2570_2),
+	URAL_DEV(RALINK, RT2570_3),
+	URAL_DEV(SIEMENS2, WL54G),
+	URAL_DEV(SMC, 2862WG),
+	URAL_DEV(SPHAIRON, UB801R),
+	URAL_DEV(SURECOM, RT2570),
+	URAL_DEV(VTECH, RT2570),
+	URAL_DEV(ZINWELL, RT2570),
+#undef URAL_DEV
 };
 
 static usb_callback_t ural_bulk_read_callback;

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 00:30:46 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 188E8106566B;
	Thu, 31 Dec 2009 00:30:46 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 047D38FC0C;
	Thu, 31 Dec 2009 00:30:46 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV0UjIg079953;
	Thu, 31 Dec 2009 00:30:45 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV0UjD6079951;
	Thu, 31 Dec 2009 00:30:45 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310030.nBV0UjD6079951@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 00:30:45 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201317 - stable/8/sys/dev/usb/quirk
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 00:30:46 -0000

Author: thompsa
Date: Thu Dec 31 00:30:45 2009
New Revision: 201317
URL: http://svn.freebsd.org/changeset/base/201317

Log:
  MFC r201071
  
   Compact USB_VENDOR_X and USB_PRODUCT_Y in the quirk tables.

Modified:
  stable/8/sys/dev/usb/quirk/usb_quirk.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/usb/quirk/usb_quirk.c
==============================================================================
--- stable/8/sys/dev/usb/quirk/usb_quirk.c	Thu Dec 31 00:20:54 2009	(r201316)
+++ stable/8/sys/dev/usb/quirk/usb_quirk.c	Thu Dec 31 00:30:45 2009	(r201317)
@@ -73,498 +73,373 @@ struct usb_quirk_entry {
 
 static struct mtx usb_quirk_mtx;
 
+#define	USB_QUIRK_VP(v,p,l,h,...) \
+  { .vid = (v), .pid = (p), .lo_rev = (l), .hi_rev = (h), \
+    .quirks = { __VA_ARGS__ } }
 #define	USB_QUIRK(v,p,l,h,...) \
-  .vid = (v), .pid = (p), .lo_rev = (l), .hi_rev = (h), .quirks = { __VA_ARGS__ }
+  USB_QUIRK_VP(USB_VENDOR_##v, USB_PRODUCT_##v##_##p, l, h, __VA_ARGS__)
+
 static struct usb_quirk_entry usb_quirks[USB_DEV_QUIRKS_MAX] = {
-	{USB_QUIRK(USB_VENDOR_ASUS, USB_PRODUCT_ASUS_LCM,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_INSIDEOUT, USB_PRODUCT_INSIDEOUT_EDGEPORT4,
-	    0x094, 0x094, UQ_SWAP_UNICODE)},
-	{USB_QUIRK(USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502,
-	    0x0a2, 0x0a2, UQ_BAD_ADC)},
-	{USB_QUIRK(USB_VENDOR_DALLAS, USB_PRODUCT_DALLAS_J6502,
-	    0x0a2, 0x0a2, UQ_AU_NO_XU)},
-	{USB_QUIRK(USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ADA70,
-	    0x103, 0x103, UQ_BAD_ADC)},
-	{USB_QUIRK(USB_VENDOR_ALTEC, USB_PRODUCT_ALTEC_ASC495,
-	    0x000, 0x000, UQ_BAD_AUDIO)},
-	{USB_QUIRK(USB_VENDOR_QTRONIX, USB_PRODUCT_QTRONIX_980N,
-	    0x110, 0x110, UQ_SPUR_BUT_UP)},
-	{USB_QUIRK(USB_VENDOR_ALCOR2, USB_PRODUCT_ALCOR2_KBD_HUB,
-	    0x001, 0x001, UQ_SPUR_BUT_UP)},
-	{USB_QUIRK(USB_VENDOR_MCT, USB_PRODUCT_MCT_HUB0100,
-	    0x102, 0x102, UQ_BUS_POWERED)},
-	{USB_QUIRK(USB_VENDOR_MCT, USB_PRODUCT_MCT_USB232,
-	    0x102, 0x102, UQ_BUS_POWERED)},
-	{USB_QUIRK(USB_VENDOR_TI, USB_PRODUCT_TI_UTUSB41,
-	    0x110, 0x110, UQ_POWER_CLAIM)},
-	{USB_QUIRK(USB_VENDOR_TELEX, USB_PRODUCT_TELEX_MIC1,
-	    0x009, 0x009, UQ_AU_NO_FRAC)},
-	{USB_QUIRK(USB_VENDOR_SILICONPORTALS,
-	    USB_PRODUCT_SILICONPORTALS_YAPPHONE,
-	    0x100, 0x100, UQ_AU_INP_ASYNC)},
-	{USB_QUIRK(USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_UN53B,
-	    0x0000, 0xFFFF, UQ_NO_STRINGS)},
-	{USB_QUIRK(USB_VENDOR_ELSA, USB_PRODUCT_ELSA_MODEM1,
-	    0x0000, 0xFFFF, UQ_CFG_INDEX_1)},
+	USB_QUIRK(ASUS, LCM, 0x0000, 0xffff, UQ_HID_IGNORE),
+	USB_QUIRK(INSIDEOUT, EDGEPORT4, 0x094, 0x094, UQ_SWAP_UNICODE),
+	USB_QUIRK(DALLAS, J6502, 0x0a2, 0x0a2, UQ_BAD_ADC),
+	USB_QUIRK(DALLAS, J6502, 0x0a2, 0x0a2, UQ_AU_NO_XU),
+	USB_QUIRK(ALTEC, ADA70, 0x103, 0x103, UQ_BAD_ADC),
+	USB_QUIRK(ALTEC, ASC495, 0x000, 0x000, UQ_BAD_AUDIO),
+	USB_QUIRK(QTRONIX, 980N, 0x110, 0x110, UQ_SPUR_BUT_UP),
+	USB_QUIRK(ALCOR2, KBD_HUB, 0x001, 0x001, UQ_SPUR_BUT_UP),
+	USB_QUIRK(MCT, HUB0100, 0x102, 0x102, UQ_BUS_POWERED),
+	USB_QUIRK(MCT, USB232, 0x102, 0x102, UQ_BUS_POWERED),
+	USB_QUIRK(TI, UTUSB41, 0x110, 0x110, UQ_POWER_CLAIM),
+	USB_QUIRK(TELEX, MIC1, 0x009, 0x009, UQ_AU_NO_FRAC),
+	USB_QUIRK(SILICONPORTALS, YAPPHONE, 0x100, 0x100, UQ_AU_INP_ASYNC),
+	USB_QUIRK(LOGITECH, UN53B, 0x0000, 0xffff, UQ_NO_STRINGS),
+	USB_QUIRK(ELSA, MODEM1, 0x0000, 0xffff, UQ_CFG_INDEX_1),
 
 	/*
 	 * XXX The following quirks should have a more specific revision
 	 * number:
 	 */
-	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_895C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
-	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_880C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
-	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_815C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
-	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_810C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
-	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_830C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
-	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_1220C,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
-	{USB_QUIRK(USB_VENDOR_XEROX, USB_PRODUCT_XEROX_WCM15,
-	    0x0000, 0xFFFF, UQ_BROKEN_BIDIR)},
+	USB_QUIRK(HP, 895C, 0x0000, 0xffff, UQ_BROKEN_BIDIR),
+	USB_QUIRK(HP, 880C, 0x0000, 0xffff, UQ_BROKEN_BIDIR),
+	USB_QUIRK(HP, 815C, 0x0000, 0xffff, UQ_BROKEN_BIDIR),
+	USB_QUIRK(HP, 810C, 0x0000, 0xffff, UQ_BROKEN_BIDIR),
+	USB_QUIRK(HP, 830C, 0x0000, 0xffff, UQ_BROKEN_BIDIR),
+	USB_QUIRK(HP, 1220C, 0x0000, 0xffff, UQ_BROKEN_BIDIR),
+	USB_QUIRK(XEROX, WCM15, 0x0000, 0xffff, UQ_BROKEN_BIDIR),
 	/* Devices which should be ignored by uhid */
-	{USB_QUIRK(USB_VENDOR_APC, USB_PRODUCT_APC_UPS,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_F6C550AVR,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_CYBERPOWER,
-	    USB_PRODUCT_CYBERPOWER_1500CAVRLCD,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_DELORME, USB_PRODUCT_DELORME_EARTHMATE,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD2X20,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_ITUNERNET, USB_PRODUCT_ITUNERNET_USBLCD4X20,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS1,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_MGE, USB_PRODUCT_MGE_UPS2,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_APPLE, USB_PRODUCT_APPLE_IPHONE_3G,
-	    0x0000, 0xFFFF, UQ_HID_IGNORE)},
+	USB_QUIRK(APC, UPS, 0x0000, 0xffff, UQ_HID_IGNORE),
+	USB_QUIRK(BELKIN, F6C550AVR, 0x0000, 0xffff, UQ_HID_IGNORE),
+	USB_QUIRK(CYBERPOWER, 1500CAVRLCD, 0x0000, 0xffff, UQ_HID_IGNORE),
+	USB_QUIRK(DELORME, EARTHMATE, 0x0000, 0xffff, UQ_HID_IGNORE),
+	USB_QUIRK(ITUNERNET, USBLCD2X20, 0x0000, 0xffff, UQ_HID_IGNORE),
+	USB_QUIRK(ITUNERNET, USBLCD4X20, 0x0000, 0xffff, UQ_HID_IGNORE),
+	USB_QUIRK(MGE, UPS1, 0x0000, 0xffff, UQ_HID_IGNORE),
+	USB_QUIRK(MGE, UPS2, 0x0000, 0xffff, UQ_HID_IGNORE),
+	USB_QUIRK(APPLE, IPHONE, 0x0000, 0xffff, UQ_HID_IGNORE),
+	USB_QUIRK(APPLE, IPHONE_3G, 0x0000, 0xffff, UQ_HID_IGNORE),
 	/* Devices which should be ignored by both ukbd and uhid */
-	{USB_QUIRK(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_WISPY1A,
-	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY1B,
-	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE)},
-	{USB_QUIRK(USB_VENDOR_TENX, USB_PRODUCT_TENX_UAUDIO0,
-	    0x0101, 0x0101, UQ_AUDIO_SWAP_LR)},
+	USB_QUIRK(CYPRESS, WISPY1A, 0x0000, 0xffff, UQ_KBD_IGNORE, UQ_HID_IGNORE),
+	USB_QUIRK(METAGEEK, WISPY1B, 0x0000, 0xffff, UQ_KBD_IGNORE, UQ_HID_IGNORE),
+	USB_QUIRK(TENX, UAUDIO0, 0x0101, 0x0101, UQ_AUDIO_SWAP_LR),
 	/* MS keyboards do weird things */
-	{USB_QUIRK(USB_VENDOR_MICROSOFT,
-	    USB_PRODUCT_MICROSOFT_WLINTELLIMOUSE,
-	    0x0000, 0xFFFF, UQ_MS_LEADING_BYTE)},
-	{USB_QUIRK(USB_VENDOR_METAGEEK, USB_PRODUCT_METAGEEK_WISPY24X,
-	    0x0000, 0xFFFF, UQ_KBD_IGNORE, UQ_HID_IGNORE)},
+	USB_QUIRK(MICROSOFT, WLINTELLIMOUSE, 0x0000, 0xffff, UQ_MS_LEADING_BYTE),
+	USB_QUIRK(METAGEEK, WISPY24X, 0x0000, 0xffff, UQ_KBD_IGNORE, UQ_HID_IGNORE),
 	/* umodem(4) device quirks */
-	{USB_QUIRK(USB_VENDOR_METRICOM, USB_PRODUCT_METRICOM_RICOCHET_GS,
-	    0x100, 0x100, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK(USB_VENDOR_SANYO, USB_PRODUCT_SANYO_SCP4900,
-	    0x000, 0x000, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK(USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_T720C,
-	    0x001, 0x001, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK(USB_VENDOR_EICON, USB_PRODUCT_EICON_DIVA852,
-	    0x100, 0x100, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK(USB_VENDOR_SIEMENS2, USB_PRODUCT_SIEMENS2_ES75,
-	    0x000, 0x000, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK(USB_VENDOR_QUALCOMM, USB_PRODUCT_QUALCOMM_CDMA_MSM,
-	    0x0000, 0xFFFF, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK(USB_VENDOR_QUALCOMM2, USB_PRODUCT_QUALCOMM2_CDMA_MSM,
-	    0x0000, 0xFFFF, UQ_ASSUME_CM_OVER_DATA)},
-	{USB_QUIRK(USB_VENDOR_CURITEL, USB_PRODUCT_CURITEL_UM175,
-	    0x0000, 0xFFFF, UQ_ASSUME_CM_OVER_DATA)},
+	USB_QUIRK(METRICOM, RICOCHET_GS, 0x100, 0x100, UQ_ASSUME_CM_OVER_DATA),
+	USB_QUIRK(SANYO, SCP4900, 0x000, 0x000, UQ_ASSUME_CM_OVER_DATA),
+	USB_QUIRK(MOTOROLA2, T720C, 0x001, 0x001, UQ_ASSUME_CM_OVER_DATA),
+	USB_QUIRK(EICON, DIVA852, 0x100, 0x100, UQ_ASSUME_CM_OVER_DATA),
+	USB_QUIRK(SIEMENS2, ES75, 0x000, 0x000, UQ_ASSUME_CM_OVER_DATA),
+	USB_QUIRK(QUALCOMM, CDMA_MSM, 0x0000, 0xffff, UQ_ASSUME_CM_OVER_DATA),
+	USB_QUIRK(QUALCOMM2, CDMA_MSM, 0x0000, 0xffff, UQ_ASSUME_CM_OVER_DATA),
+	USB_QUIRK(CURITEL, UM175, 0x0000, 0xffff, UQ_ASSUME_CM_OVER_DATA),
 
 	/* USB Mass Storage Class Quirks */
-	{USB_QUIRK(USB_VENDOR_ASAHIOPTICAL, 0,
-	    0x0000, 0xFFFF, UQ_MSC_NO_RS_CLEAR_UA, UQ_MATCH_VENDOR_ONLY)},
-	{USB_QUIRK(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_ATTACHE, 0x0000,
-	    0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_A256MB,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_ADDON, USB_PRODUCT_ADDON_DISKPRO512,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_ADDONICS2, USB_PRODUCT_ADDONICS2_CABLE_205,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_AIPTEK, USB_PRODUCT_AIPTEK_POCKETCAM3M,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_AIPTEK2, USB_PRODUCT_AIPTEK2_SUNPLUS_TECH,
-	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_SDCR_6335,
-	    0x0000, 0xFFFF, UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU6390,
-	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_UMCR_9361,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_TRANSCEND,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO230,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_ASAHIOPTICAL, USB_PRODUCT_ASAHIOPTICAL_OPTIO330,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_BELKIN, USB_PRODUCT_BELKIN_USB2SCSI,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_CASIO, USB_PRODUCT_CASIO_QV_DIGICAM,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_CCYU, USB_PRODUCT_CCYU_ED1064,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_CENTURY, USB_PRODUCT_CENTURY_EX35QUAT,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
+	USB_QUIRK_VP(USB_VENDOR_ASAHIOPTICAL, 0, UQ_MSC_NO_RS_CLEAR_UA,
+	    UQ_MATCH_VENDOR_ONLY),
+	USB_QUIRK(ADDON, ATTACHE, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(ADDON, A256MB, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(ADDON, DISKPRO512, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(ADDONICS2, CABLE_205, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(AIPTEK, POCKETCAM3M, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(AIPTEK2, SUNPLUS_TECH, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(ALCOR, SDCR_6335, 0x0000, 0xffff, UQ_MSC_NO_TEST_UNIT_READY,
+	    UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(ALCOR, AU6390, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(ALCOR, UMCR_9361, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(ALCOR, TRANSCEND, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(ASAHIOPTICAL, OPTIO230, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(ASAHIOPTICAL, OPTIO330, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(BELKIN, USB2SCSI, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(CASIO, QV_DIGICAM, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(CCYU, ED1064, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(CENTURY, EX35QUAT, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ,
+	    UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(CYPRESS, XX6830XX, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN,
+	    UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(DESKNOTE, UCR_61S2B, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(DMI, CFSM_RW, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(EPSON, STYLUS_875DC, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(EPSON, STYLUS_895, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(FEIYA, 5IN1, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(FREECOM, DVD, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(FUJIPHOTO, MASS0100, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI_I,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_RS_CLEAR_UA),
+	USB_QUIRK(GENESYS, GL641USB2IDE, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ,
+	    UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(GENESYS, GL641USB2IDE_2, 0x0000, 0xffff,
+	    UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
 	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP,
-	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_CYPRESS, USB_PRODUCT_CYPRESS_XX6830XX,
-	    0x0000, 0xFFFF, UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_DESKNOTE, USB_PRODUCT_DESKNOTE_UCR_61S2B,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_DMI, USB_PRODUCT_DMI_CFSM_RW,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_875DC,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_EPSON, USB_PRODUCT_EPSON_STYLUS_895,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_FEIYA, USB_PRODUCT_FEIYA_5IN1,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_FREECOM, USB_PRODUCT_FREECOM_DVD,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_FUJIPHOTO, USB_PRODUCT_FUJIPHOTO_MASS0100,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_NO_RS_CLEAR_UA)},
-	{USB_QUIRK(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE,
-	    UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB2IDE_2,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_GENESYS, USB_PRODUCT_GENESYS_GL641USB_2,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_WRONG_CSWSIG)},
-	{USB_QUIRK(USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FG,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_HAGIWARA, USB_PRODUCT_HAGIWARA_FGSM,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_DZ_MV100A,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_HITACHI, USB_PRODUCT_HITACHI_DVDCAM_USB,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_CDW4E,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK(USB_VENDOR_HP, USB_PRODUCT_HP_CDW8200,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP)},
-	{USB_QUIRK(USB_VENDOR_IMAGINATION, USB_PRODUCT_IMAGINATION_DBX1,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_WRONG_CSWSIG)},
-	{USB_QUIRK(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_USBCABLE,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP, UQ_MSC_ALT_IFACE_1)},
-	{USB_QUIRK(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_ATAPI,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK(USB_VENDOR_INSYSTEM, USB_PRODUCT_INSYSTEM_STORAGE_V2,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_IU_CD2,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_IODATA, USB_PRODUCT_IODATA_DVR_UEH8,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_IOMEGA, USB_PRODUCT_IOMEGA_ZIP100,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_TEST_UNIT_READY)}, /* XXX ZIP drives can also use ATAPI */
-	{USB_QUIRK(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_L3,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S3X,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S4,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_FINECAM_S5,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_LACIE, USB_PRODUCT_LACIE_HD,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK(USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_CF_READER,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_LEXAR, USB_PRODUCT_LEXAR_JUMPSHOT,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443SU2,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_LOGITEC, USB_PRODUCT_LOGITEC_LDR_H443U2,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,)},
-	{USB_QUIRK(USB_VENDOR_MELCO, USB_PRODUCT_MELCO_DUBPXXG,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_DPCM,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP)},
-	{USB_QUIRK(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIDB25,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_MICROTECH, USB_PRODUCT_MICROTECH_SCSIHD50,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_E223,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_MINOLTA, USB_PRODUCT_MINOLTA_F300,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_CDRRW,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI | UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK(USB_VENDOR_MITSUMI, USB_PRODUCT_MITSUMI_FDD,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_MOTOROLA2, USB_PRODUCT_MOTOROLA2_E398,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_INQUIRY_EVPD, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_MPMAN, 0,
-	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE, UQ_MATCH_VENDOR_ONLY)},
-	{USB_QUIRK(USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_RS_CLEAR_UA)},
-	{USB_QUIRK(USB_VENDOR_MSYSTEMS, USB_PRODUCT_MSYSTEMS_DISKONKEY2,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN,
-	    0x0000, 0xFFFF, UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_HEDEN_8813,
-	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_MYSON, USB_PRODUCT_MYSON_STARREADER,
-	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_NEODIO, USB_PRODUCT_NEODIO_ND3260,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_FORCE_SHORT_INQ)},
-	{USB_QUIRK(USB_VENDOR_NETAC, USB_PRODUCT_NETAC_CF_CARD,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_NETAC, USB_PRODUCT_NETAC_ONLYDISK,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_NETCHIP, USB_PRODUCT_NETCHIP_CLIK_40,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_NIKON, USB_PRODUCT_NIKON_D300,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C1,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_WRONG_CSWSIG)},
-	{USB_QUIRK(USB_VENDOR_OLYMPUS, USB_PRODUCT_OLYMPUS_C700,
-	    0x0000, 0xFFFF, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_SDS_HOTFIND_D,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFMS_RW,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_COMBO,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_CFSM_READER2,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDCFE_B_CF_READER,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_MDSM_B_READER,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_READER,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_ONSPEC, USB_PRODUCT_ONSPEC_UCF100,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_NO_INQUIRY | UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_ONSPEC2, USB_PRODUCT_ONSPEC2_IMAGEMATE_SDDR55,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXL840AN,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB20AN,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_KXLCB35AN,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_PANASONIC, USB_PRODUCT_PANASONIC_LS120CAM,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_UFI)},
-	{USB_QUIRK(USB_VENDOR_PHILIPS, USB_PRODUCT_PHILIPS_SPE3030CC,
-	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_PLEXTOR, USB_PRODUCT_PLEXTOR_40_12_40U,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_TEST_UNIT_READY)},
-	{USB_QUIRK(USB_VENDOR_PNY, USB_PRODUCT_PNY_ATTACHE2,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_START_STOP)},
-	{USB_QUIRK(USB_VENDOR_SAMSUNG_TECHWIN, USB_PRODUCT_SAMSUNG_TECHWIN_DIGIMAX_410,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR05A,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_READ_CAP_OFFBY1, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR09,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_READ_CAP_OFFBY1,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR12,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_READ_CAP_OFFBY1, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ2_256,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_128,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDCZ4_256,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_SANDISK, USB_PRODUCT_SANDISK_SDDR31,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_READ_CAP_OFFBY1)},
-	{USB_QUIRK(USB_VENDOR_SCANLOGIC, USB_PRODUCT_SCANLOGIC_SL11R,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSB,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_START_STOP, UQ_MSC_SHUTTLE_INIT)},
-	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CDRW,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_CF,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBATAPI,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSBCFSM,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_EUSCSI,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_HIFD,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_SDDR09,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_SHUTTLE, USB_PRODUCT_SHUTTLE_ZIOMMC,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_SIGMATEL, USB_PRODUCT_SIGMATEL_I_BEAD100,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_SHUTTLE_INIT)},
-	{USB_QUIRK(USB_VENDOR_SIIG, USB_PRODUCT_SIIG_WINTERREADER,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_SKANHEX, USB_PRODUCT_SKANHEX_MD_7425,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_SKANHEX, USB_PRODUCT_SKANHEX_SX_520Z,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_HANDYCAM,
-	    0x0500, 0x0500, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC,
-	    UQ_MSC_RBC_PAD_TO_12)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_CLIE_40_MS,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
-	    0x0500, 0x0500, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC,
-	    UQ_MSC_RBC_PAD_TO_12)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
-	    0x0600, 0x0600, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC,
-	    UQ_MSC_RBC_PAD_TO_12)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_DSC,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_HANDYCAM,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_MSC,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_MSC_U03,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_NW_MS7,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_MS_PEG_N760C,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_MSACUS1,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_SONY, USB_PRODUCT_SONY_PORTABLE_HDD_V2,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_SUPERTOP, USB_PRODUCT_SUPERTOP_IDE,
-	    0x0000, 0xFFFF, UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_TAUGA, USB_PRODUCT_TAUGA_CAMERAMATE,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_TEAC, USB_PRODUCT_TEAC_FD05PUB,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI)},
-	{USB_QUIRK(USB_VENDOR_TECLAST, USB_PRODUCT_TECLAST_TLC300,
-	    0x0000, 0xFFFF, UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_TREK, USB_PRODUCT_TREK_MEMKEY,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_TREK, USB_PRODUCT_TREK_THUMBDRIVE_8MB,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_C3310,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI)},
-	{USB_QUIRK(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_MP3,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_RBC)},
-	{USB_QUIRK(USB_VENDOR_TRUMPION, USB_PRODUCT_TRUMPION_T33520,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_TWINMOS, USB_PRODUCT_TWINMOS_MDIV,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI)},
-	{USB_QUIRK(USB_VENDOR_VIA, USB_PRODUCT_VIA_USB2IDEBRIDGE,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_VIVITAR, USB_PRODUCT_VIVITAR_35XX,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_COMBO,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_EXTHDD,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_MYBOOK,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY_EVPD)},
-	{USB_QUIRK(USB_VENDOR_WESTERN, USB_PRODUCT_WESTERN_MYPASSWORD,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_SHORT_INQ)},
-	{USB_QUIRK(USB_VENDOR_WINMAXGROUP, USB_PRODUCT_WINMAXGROUP_FLASH64MC,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY)},
-	{USB_QUIRK(USB_VENDOR_YANO, USB_PRODUCT_YANO_FW800HD,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE)},
-	{USB_QUIRK(USB_VENDOR_YANO, USB_PRODUCT_YANO_U640MO,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI,
-	    UQ_MSC_FORCE_SHORT_INQ)},
-	{USB_QUIRK(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
-	    0x0000, 0x007F, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_UFI,
-	    UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED,
-	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
-	    0x0080, 0x0080, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_UFI,
-	    UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED,
-	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_YEDATA, USB_PRODUCT_YEDATA_FLASHBUSTERU,
-	    0x0081, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_UFI,
-	    UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED, UQ_MSC_NO_GETMAXLUN)},
-	{USB_QUIRK(USB_VENDOR_ZORAN, USB_PRODUCT_ZORAN_EX20DSC,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_ATAPI)},
-	{USB_QUIRK(USB_VENDOR_MEIZU, USB_PRODUCT_MEIZU_M6_SL,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_INQUIRY, UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_ACTIONS, USB_PRODUCT_ACTIONS_MP4,
-	    0x0000, 0xFFFF, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI,
-	    UQ_MSC_NO_SYNC_CACHE)},
-	{USB_QUIRK(USB_VENDOR_ASUS, USB_PRODUCT_ASUS_GMSC,
-	    0x0000, 0xFFFF, UQ_MSC_NO_SYNC_CACHE)},
+	    UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(GENESYS, GL641USB, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ,
+	    UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(GENESYS, GL641USB_2, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_WRONG_CSWSIG),
+	USB_QUIRK(HAGIWARA, FG, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(HAGIWARA, FGSM, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(HITACHI, DVDCAM_DZ_MV100A, 0x0000, 0xffff,
+	    UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(HITACHI, DVDCAM_USB, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI_I,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(HP, CDW4E, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_ATAPI),
+	USB_QUIRK(HP, CDW8200, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI_I,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_TEST_UNIT_READY,
+	    UQ_MSC_NO_START_STOP),
+	USB_QUIRK(IMAGINATION, DBX1, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_WRONG_CSWSIG),
+	USB_QUIRK(INSYSTEM, USBCABLE, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_TEST_UNIT_READY,
+	    UQ_MSC_NO_START_STOP, UQ_MSC_ALT_IFACE_1),
+	USB_QUIRK(INSYSTEM, ATAPI, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_RBC),
+	USB_QUIRK(INSYSTEM, STORAGE_V2, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_RBC),
+	USB_QUIRK(IODATA, IU_CD2, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(IODATA, DVR_UEH8, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(IOMEGA, ZIP100, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_TEST_UNIT_READY), /* XXX ZIP drives can also use ATAPI */
+	USB_QUIRK(KYOCERA, FINECAM_L3, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(KYOCERA, FINECAM_S3X, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(KYOCERA, FINECAM_S4, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(KYOCERA, FINECAM_S5, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(LACIE, HD, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_RBC),
+	USB_QUIRK(LEXAR, CF_READER, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(LEXAR, JUMPSHOT, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(LOGITEC, LDR_H443SU2, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(LOGITEC, LDR_H443U2, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI,),
+	USB_QUIRK(MELCO, DUBPXXG, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ,
+	    UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(MICROTECH, DPCM, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_TEST_UNIT_READY,
+	    UQ_MSC_NO_START_STOP),
+	USB_QUIRK(MICROTECH, SCSIDB25, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(MICROTECH, SCSIHD50, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(MINOLTA, E223, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(MINOLTA, F300, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(MITSUMI, CDRRW, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI |
+	    UQ_MSC_FORCE_PROTO_ATAPI),
+	USB_QUIRK(MITSUMI, FDD, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(MOTOROLA2, E398, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ,
+	    UQ_MSC_NO_INQUIRY_EVPD, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK_VP(USB_VENDOR_MPMAN, 0, UQ_MSC_NO_SYNC_CACHE,
+	    UQ_MATCH_VENDOR_ONLY),
+	USB_QUIRK(MSYSTEMS, DISKONKEY, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE, UQ_MSC_NO_GETMAXLUN,
+	    UQ_MSC_NO_RS_CLEAR_UA),
+	USB_QUIRK(MSYSTEMS, DISKONKEY2, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_ATAPI),
+	USB_QUIRK(MYSON, HEDEN, 0x0000, 0xffff, UQ_MSC_IGNORE_RESIDUE,
+	    UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(MYSON, HEDEN_8813, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(MYSON, STARREADER, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(NEODIO, ND3260, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ),
+	USB_QUIRK(NETAC, CF_CARD, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(NETAC, ONLYDISK, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(NETCHIP, CLIK_40, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_ATAPI,
+	    UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(NIKON, D300, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(OLYMPUS, C1, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_WRONG_CSWSIG),
+	USB_QUIRK(OLYMPUS, C700, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(ONSPEC, SDS_HOTFIND_D, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(ONSPEC, CFMS_RW, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(ONSPEC, CFSM_COMBO, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(ONSPEC, CFSM_READER, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(ONSPEC, CFSM_READER2, 0x0000, 0xffff,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(ONSPEC, MDCFE_B_CF_READER, 0x0000, 0xffff,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(ONSPEC, MDSM_B_READER, 0x0000, 0xffff,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(ONSPEC, READER, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(ONSPEC, UCF100, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_INQUIRY | UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(ONSPEC2, IMAGEMATE_SDDR55, 0x0000, 0xffff,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(PANASONIC, KXL840AN, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(PANASONIC, KXLCB20AN, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(PANASONIC, KXLCB35AN, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(PANASONIC, LS120CAM, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_UFI),
+	USB_QUIRK(PHILIPS, SPE3030CC, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(PLEXTOR, 40_12_40U, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_TEST_UNIT_READY),
+	USB_QUIRK(PNY, ATTACHE2, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE,
+	    UQ_MSC_NO_START_STOP),
+	USB_QUIRK_VP(USB_VENDOR_SAMSUNG_TECHWIN,
+	    USB_PRODUCT_SAMSUNG_TECHWIN_DIGIMAX_410, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(SANDISK, SDDR05A, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_READ_CAP_OFFBY1,
+	    UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(SANDISK, SDDR09, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_READ_CAP_OFFBY1, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(SANDISK, SDDR12, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_READ_CAP_OFFBY1,
+	    UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(SANDISK, SDCZ2_256, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(SANDISK, SDCZ4_128, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(SANDISK, SDCZ4_256, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(SANDISK, SDDR31, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_READ_CAP_OFFBY1),
+	USB_QUIRK(SCANLOGIC, SL11R, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(SHUTTLE, EUSB, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI_I,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_TEST_UNIT_READY,
+	    UQ_MSC_NO_START_STOP, UQ_MSC_SHUTTLE_INIT),
+	USB_QUIRK(SHUTTLE, CDRW, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_ATAPI),
+	USB_QUIRK(SHUTTLE, CF, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_ATAPI),
+	USB_QUIRK(SHUTTLE, EUSBATAPI, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_ATAPI),
+	USB_QUIRK(SHUTTLE, EUSBCFSM, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(SHUTTLE, EUSCSI, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(SHUTTLE, HIFD, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(SHUTTLE, SDDR09, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI,
+	    UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(SHUTTLE, ZIOMMC, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(SIGMATEL, I_BEAD100, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_SHUTTLE_INIT),
+	USB_QUIRK(SIIG, WINTERREADER, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(SKANHEX, MD_7425, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(SKANHEX, SX_520Z, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(SONY, HANDYCAM, 0x0500, 0x0500, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_RBC, UQ_MSC_RBC_PAD_TO_12),
+	USB_QUIRK(SONY, CLIE_40_MS, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(SONY, DSC, 0x0500, 0x0500, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_RBC, UQ_MSC_RBC_PAD_TO_12),
+	USB_QUIRK(SONY, DSC, 0x0600, 0x0600, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_RBC, UQ_MSC_RBC_PAD_TO_12),
+	USB_QUIRK(SONY, DSC, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_RBC),
+	USB_QUIRK(SONY, HANDYCAM, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_RBC),
+	USB_QUIRK(SONY, MSC, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_RBC),
+	USB_QUIRK(SONY, MS_MSC_U03, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_UFI, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(SONY, MS_NW_MS7, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(SONY, MS_PEG_N760C, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(SONY, MSACUS1, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(SONY, PORTABLE_HDD_V2, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(SUPERTOP, IDE, 0x0000, 0xffff, UQ_MSC_IGNORE_RESIDUE,
+	    UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(TAUGA, CAMERAMATE, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(TEAC, FD05PUB, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_UFI),
+	USB_QUIRK(TECLAST, TLC300, 0x0000, 0xffff, UQ_MSC_NO_TEST_UNIT_READY,
+	    UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(TREK, MEMKEY, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(TREK, THUMBDRIVE_8MB, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(TRUMPION, C3310, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_UFI),
+	USB_QUIRK(TRUMPION, MP3, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_RBC),
+	USB_QUIRK(TRUMPION, T33520, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(TWINMOS, MDIV, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI),
+	USB_QUIRK(VIA, USB2IDEBRIDGE, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(VIVITAR, 35XX, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(WESTERN, COMBO, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ,
+	    UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(WESTERN, EXTHDD, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ,
+	    UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(WESTERN, MYBOOK, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY_EVPD),
+	USB_QUIRK(WESTERN, MYPASSWORD, 0x0000, 0xffff, UQ_MSC_FORCE_SHORT_INQ),
+	USB_QUIRK(WINMAXGROUP, FLASH64MC, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY),
+	USB_QUIRK(YANO, FW800HD, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ,
+	    UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE),
+	USB_QUIRK(YANO, U640MO, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI_I,
+	    UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_FORCE_SHORT_INQ),
+	USB_QUIRK(YEDATA, FLASHBUSTERU, 0x0000, 0x007F, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_UFI, UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED,
+	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(YEDATA, FLASHBUSTERU, 0x0080, 0x0080, UQ_MSC_FORCE_WIRE_CBI_I,
+	    UQ_MSC_FORCE_PROTO_UFI, UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED,
+	    UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(YEDATA, FLASHBUSTERU, 0x0081, 0xFFFF, UQ_MSC_FORCE_WIRE_CBI_I,
+	    UQ_MSC_FORCE_PROTO_UFI, UQ_MSC_NO_RS_CLEAR_UA, UQ_MSC_FLOPPY_SPEED,
+	    UQ_MSC_NO_GETMAXLUN),
+	USB_QUIRK(ZORAN, EX20DSC, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI,
+	    UQ_MSC_FORCE_PROTO_ATAPI),
+	USB_QUIRK(MEIZU, M6_SL, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY, UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(ACTIONS, MP4, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB,
+	    UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_SYNC_CACHE),
+	USB_QUIRK(ASUS, GMSC, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE),
 };
+#undef USB_QUIRK_VP
 #undef USB_QUIRK
 
 static const char *usb_quirk_str[USB_QUIRK_MAX] = {

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 06:59:15 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id F1E2F106566C;
	Thu, 31 Dec 2009 06:59:15 +0000 (UTC)
	(envelope-from thompsa@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DF1938FC16;
	Thu, 31 Dec 2009 06:59:15 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV6xFil088907;
	Thu, 31 Dec 2009 06:59:15 GMT (envelope-from thompsa@svn.freebsd.org)
Received: (from thompsa@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV6xFkv088905;
	Thu, 31 Dec 2009 06:59:15 GMT (envelope-from thompsa@svn.freebsd.org)
Message-Id: <200912310659.nBV6xFkv088905@svn.freebsd.org>
From: Andrew Thompson 
Date: Thu, 31 Dec 2009 06:59:15 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201327 - stable/8/sys/dev/usb
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 06:59:16 -0000

Author: thompsa
Date: Thu Dec 31 06:59:15 2009
New Revision: 201327
URL: http://svn.freebsd.org/changeset/base/201327

Log:
  Sync usbdevs to fix the build.
  
  Pointy hat:	me

Modified:
  stable/8/sys/dev/usb/usbdevs

Modified: stable/8/sys/dev/usb/usbdevs
==============================================================================
--- stable/8/sys/dev/usb/usbdevs	Thu Dec 31 06:09:32 2009	(r201326)
+++ stable/8/sys/dev/usb/usbdevs	Thu Dec 31 06:59:15 2009	(r201327)
@@ -1144,6 +1144,7 @@ product CTX EX1300		0x9999	Ex1300 hub
 product CURITEL HX550C		0x1101	CDMA 2000 1xRTT USB modem (HX-550C)
 product CURITEL HX57XB		0x2101	CDMA 2000 1xRTT USB modem (HX-570/575B/PR-600)
 product CURITEL PC5740		0x3701	Broadband Wireless modem
+product CURITEL UM175		0x3714	EVDO modem
 
 /* CyberPower products */
 product CYBERPOWER 1500CAVRLCD	0x0501	1500CAVRLCD

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 07:28:44 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 65DF4106566C;
	Thu, 31 Dec 2009 07:28:44 +0000 (UTC) (envelope-from jh@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 396648FC16;
	Thu, 31 Dec 2009 07:28:44 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV7SiH1089622;
	Thu, 31 Dec 2009 07:28:44 GMT (envelope-from jh@svn.freebsd.org)
Received: (from jh@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV7Si5A089620;
	Thu, 31 Dec 2009 07:28:44 GMT (envelope-from jh@svn.freebsd.org)
Message-Id: <200912310728.nBV7Si5A089620@svn.freebsd.org>
From: Jaakko Heinonen 
Date: Thu, 31 Dec 2009 07:28:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201329 - stable/8/sys/fs/nfsclient
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 07:28:44 -0000

Author: jh
Date: Thu Dec 31 07:28:43 2009
New Revision: 201329
URL: http://svn.freebsd.org/changeset/base/201329

Log:
  MFC r198289:
  
  Fix comment typos.
  
  Approved by:	trasz (mentor)

Modified:
  stable/8/sys/fs/nfsclient/nfs_clstate.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/fs/nfsclient/nfs_clstate.c
==============================================================================
--- stable/8/sys/fs/nfsclient/nfs_clstate.c	Thu Dec 31 07:28:13 2009	(r201328)
+++ stable/8/sys/fs/nfsclient/nfs_clstate.c	Thu Dec 31 07:28:43 2009	(r201329)
@@ -36,9 +36,9 @@ __FBSDID("$FreeBSD$");
  * - The correct granularity of an OpenOwner is not nearly so
  *   obvious. An OpenOwner does the following:
  *   - provides a serial sequencing of Open/Close/Lock-with-new-lockowner
- *   - is used to check for Open/SHare contention (not applicable to
+ *   - is used to check for Open/Share contention (not applicable to
  *     this client, since all Opens are Deny_None)
- *   As such, I considered both extrema.
+ *   As such, I considered both extreme.
  *   1 OpenOwner per ClientID - Simple to manage, but fully serializes
  *   all Open, Close and Lock (with a new lockowner) Ops.
  *   1 OpenOwner for each Open - This one results in an OpenConfirm for
@@ -50,8 +50,8 @@ __FBSDID("$FreeBSD$");
  *   which of these the vnodeop close applies to. This is handled by
  *   delaying the Close Op(s) until all of the Opens have been closed.
  *   (It is not yet obvious if this is the correct granularity.)
- * - How the code handles serailization:
- *   - For the ClientId, is uses an exclusive lock while getting its
+ * - How the code handles serialization:
+ *   - For the ClientId, it uses an exclusive lock while getting its
  *     SetClientId and during recovery. Otherwise, it uses a shared
  *     lock via a reference count.
  *   - For the rest of the data structures, it uses an SMP mutex

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 07:32:05 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 13F221065692;
	Thu, 31 Dec 2009 07:32:05 +0000 (UTC) (envelope-from jh@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 012FA8FC13;
	Thu, 31 Dec 2009 07:32:05 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV7W4gT089740;
	Thu, 31 Dec 2009 07:32:04 GMT (envelope-from jh@svn.freebsd.org)
Received: (from jh@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV7W4Bk089738;
	Thu, 31 Dec 2009 07:32:04 GMT (envelope-from jh@svn.freebsd.org)
Message-Id: <200912310732.nBV7W4Bk089738@svn.freebsd.org>
From: Jaakko Heinonen 
Date: Thu, 31 Dec 2009 07:32:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201330 - stable/8/sys/fs/nfsclient
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 07:32:05 -0000

Author: jh
Date: Thu Dec 31 07:32:04 2009
New Revision: 201330
URL: http://svn.freebsd.org/changeset/base/201330

Log:
  MFC r198290:
  
  Fix ordering of nfscl_modevent() and ncl_uninit(). nfscl_modevent() must
  be called after ncl_uninit() when unloading the nfscl module because
  ncl_uninit() uses ncl_iod_mutex which is destroyed in nfscl_modevent().
  
  Approved by:	trasz (mentor)

Modified:
  stable/8/sys/fs/nfsclient/nfs_clport.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/fs/nfsclient/nfs_clport.c
==============================================================================
--- stable/8/sys/fs/nfsclient/nfs_clport.c	Thu Dec 31 07:28:43 2009	(r201329)
+++ stable/8/sys/fs/nfsclient/nfs_clport.c	Thu Dec 31 07:32:04 2009	(r201330)
@@ -1261,7 +1261,7 @@ static moduledata_t nfscl_mod = {
 	nfscl_modevent,
 	NULL,
 };
-DECLARE_MODULE(nfscl, nfscl_mod, SI_SUB_VFS, SI_ORDER_ANY);
+DECLARE_MODULE(nfscl, nfscl_mod, SI_SUB_VFS, SI_ORDER_FIRST);
 
 /* So that loader and kldload(2) can find us, wherever we are.. */
 MODULE_VERSION(nfscl, 1);

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 07:34:39 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 761F7106566C;
	Thu, 31 Dec 2009 07:34:39 +0000 (UTC) (envelope-from jh@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 4A2D78FC08;
	Thu, 31 Dec 2009 07:34:39 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBV7YdpK089839;
	Thu, 31 Dec 2009 07:34:39 GMT (envelope-from jh@svn.freebsd.org)
Received: (from jh@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBV7Yd1Z089836;
	Thu, 31 Dec 2009 07:34:39 GMT (envelope-from jh@svn.freebsd.org)
Message-Id: <200912310734.nBV7Yd1Z089836@svn.freebsd.org>
From: Jaakko Heinonen 
Date: Thu, 31 Dec 2009 07:34:39 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201331 - stable/8/sys/fs/nfsclient
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 07:34:39 -0000

Author: jh
Date: Thu Dec 31 07:34:38 2009
New Revision: 201331
URL: http://svn.freebsd.org/changeset/base/201331

Log:
  MFC r198291:
  
  Unloading of the nfscl module is unsupported because newnfslock doesn't
  support unloading. It's not trivial to implement newnfslock unloading so
  for now just admit that unloading is unsupported and refuse to attempt
  unload in all nfscl module event handlers.
  
  Approved by:	trasz (mentor)

Modified:
  stable/8/sys/fs/nfsclient/nfs_clport.c
  stable/8/sys/fs/nfsclient/nfs_clsubs.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/fs/nfsclient/nfs_clport.c
==============================================================================
--- stable/8/sys/fs/nfsclient/nfs_clport.c	Thu Dec 31 07:32:04 2009	(r201330)
+++ stable/8/sys/fs/nfsclient/nfs_clport.c	Thu Dec 31 07:34:38 2009	(r201331)
@@ -1243,6 +1243,10 @@ nfscl_modevent(module_t mod, int type, v
 			break;
 		}
 
+		/*
+		 * XXX: Unloading of nfscl module is unsupported.
+		 */
+#if 0
 		ncl_call_invalcaches = NULL;
 		nfsd_call_nfscl = NULL;
 		/* and get rid of the mutexes */
@@ -1250,6 +1254,9 @@ nfscl_modevent(module_t mod, int type, v
 		mtx_destroy(&ncl_iod_mutex);
 		loaded = 0;
 		break;
+#else
+		/* FALLTHROUGH */
+#endif
 	default:
 		error = EOPNOTSUPP;
 		break;

Modified: stable/8/sys/fs/nfsclient/nfs_clsubs.c
==============================================================================
--- stable/8/sys/fs/nfsclient/nfs_clsubs.c	Thu Dec 31 07:32:04 2009	(r201330)
+++ stable/8/sys/fs/nfsclient/nfs_clsubs.c	Thu Dec 31 07:34:38 2009	(r201331)
@@ -87,6 +87,10 @@ extern struct nfsstats newnfsstats;
 int
 ncl_uninit(struct vfsconf *vfsp)
 {
+	/*
+	 * XXX: Unloading of nfscl module is unsupported.
+	 */
+#if 0
 	int i;
 
 	/*
@@ -104,6 +108,9 @@ ncl_uninit(struct vfsconf *vfsp)
 	mtx_unlock(&ncl_iod_mutex);
 	ncl_nhuninit();
 	return (0);
+#else
+	return (EOPNOTSUPP);
+#endif
 }
 
 void 

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 10:00:49 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 90D61106566B;
	Thu, 31 Dec 2009 10:00:49 +0000 (UTC)
	(envelope-from obrien@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7E4898FC1F;
	Thu, 31 Dec 2009 10:00:49 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBVA0nZ0092994;
	Thu, 31 Dec 2009 10:00:49 GMT (envelope-from obrien@svn.freebsd.org)
Received: (from obrien@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBVA0nvL092992;
	Thu, 31 Dec 2009 10:00:49 GMT (envelope-from obrien@svn.freebsd.org)
Message-Id: <200912311000.nBVA0nvL092992@svn.freebsd.org>
From: "David E. O'Brien" 
Date: Thu, 31 Dec 2009 10:00:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201335 - stable/8
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 10:00:49 -0000

Author: obrien
Date: Thu Dec 31 10:00:49 2009
New Revision: 201335
URL: http://svn.freebsd.org/changeset/base/201335

Log:
  Happy New Year 2010! :-)

Modified:
  stable/8/COPYRIGHT

Modified: stable/8/COPYRIGHT
==============================================================================
--- stable/8/COPYRIGHT	Thu Dec 31 10:00:37 2009	(r201334)
+++ stable/8/COPYRIGHT	Thu Dec 31 10:00:49 2009	(r201335)
@@ -4,7 +4,7 @@
 The compilation of software known as FreeBSD is distributed under the
 following terms:
 
-Copyright (c) 1992-2009 The FreeBSD Project. All rights reserved.
+Copyright (c) 1992-2010 The FreeBSD Project. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 10:53:05 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 4C041106566C;
	Thu, 31 Dec 2009 10:53:05 +0000 (UTC) (envelope-from ed@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 39B1E8FC18;
	Thu, 31 Dec 2009 10:53:05 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBVAr5d2095560;
	Thu, 31 Dec 2009 10:53:05 GMT (envelope-from ed@svn.freebsd.org)
Received: (from ed@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBVAr5Dm095558;
	Thu, 31 Dec 2009 10:53:05 GMT (envelope-from ed@svn.freebsd.org)
Message-Id: <200912311053.nBVAr5Dm095558@svn.freebsd.org>
From: Ed Schouten 
Date: Thu, 31 Dec 2009 10:53:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201337 - stable/8/sys/kern
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 10:53:05 -0000

Author: ed
Date: Thu Dec 31 10:53:04 2009
New Revision: 201337
URL: http://svn.freebsd.org/changeset/base/201337

Log:
  MFC r198185:
  
    Print backspaces after echoing an EOF.
  
    Applications like shells expect EOF to give no graphical output, while
    our implementation prints ^D by default (tunable with stty echoctl).
    Make the new implementation behave like the old TTY code. Print two
    backspaces afterwards.
  
  I totally forgot to MFC this, because the 8.0 freeze took a little
  longer than I expected.
  
  Reminded by:	koitsu

Modified:
  stable/8/sys/kern/tty_ttydisc.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/kern/tty_ttydisc.c
==============================================================================
--- stable/8/sys/kern/tty_ttydisc.c	Thu Dec 31 10:00:55 2009	(r201336)
+++ stable/8/sys/kern/tty_ttydisc.c	Thu Dec 31 10:53:04 2009	(r201337)
@@ -624,15 +624,21 @@ ttydisc_echo_force(struct tty *tp, char 
 		/*
 		 * Only use ^X notation when ECHOCTL is turned on and
 		 * we've got an quoted control character.
+		 *
+		 * Print backspaces when echoing an end-of-file.
 		 */
-		char ob[2] = { '^', '?' };
+		char ob[4] = "^?\b\b";
 
 		/* Print ^X notation. */
 		if (c != 0x7f)
 			ob[1] = c + 'A' - 1;
 
-		tp->t_column += 2;
-		return ttyoutq_write_nofrag(&tp->t_outq, ob, 2);
+		if (!quote && CMP_CC(VEOF, c)) {
+			return ttyoutq_write_nofrag(&tp->t_outq, ob, 4);
+		} else {
+			tp->t_column += 2;
+			return ttyoutq_write_nofrag(&tp->t_outq, ob, 2);
+		}
 	} else {
 		/* Can just be printed. */
 		tp->t_column++;

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 11:49:14 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 125EA1065670;
	Thu, 31 Dec 2009 11:49:14 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DBA718FC17;
	Thu, 31 Dec 2009 11:49:13 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBVBnDBJ096811;
	Thu, 31 Dec 2009 11:49:13 GMT (envelope-from kib@svn.freebsd.org)
Received: (from kib@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBVBnDDu096809;
	Thu, 31 Dec 2009 11:49:13 GMT (envelope-from kib@svn.freebsd.org)
Message-Id: <200912311149.nBVBnDDu096809@svn.freebsd.org>
From: Konstantin Belousov 
Date: Thu, 31 Dec 2009 11:49:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201338 - stable/8/sys/kern
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 11:49:14 -0000

Author: kib
Date: Thu Dec 31 11:49:13 2009
New Revision: 201338
URL: http://svn.freebsd.org/changeset/base/201338

Log:
  MFC r201134:
  Add a knob to allow reclaim of the directory vnodes that are source of
  the namecache records.

Modified:
  stable/8/sys/kern/vfs_subr.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/kern/vfs_subr.c
==============================================================================
--- stable/8/sys/kern/vfs_subr.c	Thu Dec 31 10:53:04 2009	(r201337)
+++ stable/8/sys/kern/vfs_subr.c	Thu Dec 31 11:49:13 2009	(r201338)
@@ -152,6 +152,10 @@ SYSCTL_LONG(_vfs, OID_AUTO, wantfreevnod
 static u_long freevnodes;
 SYSCTL_LONG(_vfs, OID_AUTO, freevnodes, CTLFLAG_RD, &freevnodes, 0, "");
 
+static int vlru_allow_cache_src;
+SYSCTL_INT(_vfs, OID_AUTO, vlru_allow_cache_src, CTLFLAG_RW,
+    &vlru_allow_cache_src, 0, "Allow vlru to reclaim source vnode");
+
 /*
  * Various variables used for debugging the new implementation of
  * reassignbuf().
@@ -643,7 +647,9 @@ vlrureclaim(struct mount *mp)
 		 * If it's been deconstructed already, it's still
 		 * referenced, or it exceeds the trigger, skip it.
 		 */
-		if (vp->v_usecount || !LIST_EMPTY(&(vp)->v_cache_src) ||
+		if (vp->v_usecount ||
+		    (!vlru_allow_cache_src &&
+			!LIST_EMPTY(&(vp)->v_cache_src)) ||
 		    (vp->v_iflag & VI_DOOMED) != 0 || (vp->v_object != NULL &&
 		    vp->v_object->resident_page_count > trigger)) {
 			VI_UNLOCK(vp);
@@ -668,7 +674,9 @@ vlrureclaim(struct mount *mp)
 		 * interlock, the other thread will be unable to drop the
 		 * vnode lock before our VOP_LOCK() call fails.
 		 */
-		if (vp->v_usecount || !LIST_EMPTY(&(vp)->v_cache_src) ||
+		if (vp->v_usecount ||
+		    (!vlru_allow_cache_src &&
+			!LIST_EMPTY(&(vp)->v_cache_src)) ||
 		    (vp->v_object != NULL &&
 		    vp->v_object->resident_page_count > trigger)) {
 			VOP_UNLOCK(vp, LK_INTERLOCK);

From owner-svn-src-stable-8@FreeBSD.ORG  Thu Dec 31 12:58:08 2009
Return-Path: 
Delivered-To: svn-src-stable-8@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 908E51065693;
	Thu, 31 Dec 2009 12:58:08 +0000 (UTC)
	(envelope-from gavin@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7F9A18FC16;
	Thu, 31 Dec 2009 12:58:08 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id nBVCw8f0001202;
	Thu, 31 Dec 2009 12:58:08 GMT (envelope-from gavin@svn.freebsd.org)
Received: (from gavin@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id nBVCw8o5001200;
	Thu, 31 Dec 2009 12:58:08 GMT (envelope-from gavin@svn.freebsd.org)
Message-Id: <200912311258.nBVCw8o5001200@svn.freebsd.org>
From: Gavin Atkinson 
Date: Thu, 31 Dec 2009 12:58:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
X-SVN-Group: stable-8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r201341 - stable/8/sys/dev/ciss
X-BeenThere: svn-src-stable-8@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: SVN commit messages for only the 8-stable src tree
	
List-Unsubscribe: , 
	
List-Archive: 
List-Post: 
List-Help: 
List-Subscribe: , 
	
X-List-Received-Date: Thu, 31 Dec 2009 12:58:08 -0000

Author: gavin
Date: Thu Dec 31 12:58:08 2009
New Revision: 201341
URL: http://svn.freebsd.org/changeset/base/201341

Log:
  MFC 200637:
  
  Don't panic due to unlocking an unowned mutex if we fail during attach.
  
  PR:		kern/139053
  Reviewed by:	scottl
  Approved by:	ed (mentor)

Modified:
  stable/8/sys/dev/ciss/ciss.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/ciss/ciss.c
==============================================================================
--- stable/8/sys/dev/ciss/ciss.c	Thu Dec 31 12:17:38 2009	(r201340)
+++ stable/8/sys/dev/ciss/ciss.c	Thu Dec 31 12:58:08 2009	(r201341)
@@ -418,6 +418,7 @@ ciss_attach(device_t dev)
 
     sc = device_get_softc(dev);
     sc->ciss_dev = dev;
+    mtx_init(&sc->ciss_mtx, "cissmtx", NULL, MTX_DEF);
 
     /*
      * Do PCI-specific init.
@@ -430,7 +431,6 @@ ciss_attach(device_t dev)
      */
     ciss_initq_free(sc);
     ciss_initq_notify(sc);
-    mtx_init(&sc->ciss_mtx, "cissmtx", NULL, MTX_DEF);
     callout_init_mtx(&sc->ciss_periodic, &sc->ciss_mtx, 0);
 
     /*
@@ -496,8 +496,11 @@ ciss_attach(device_t dev)
 
     error = 0;
  out:
-    if (error != 0)
+    if (error != 0) {
+	/* ciss_free() expects the mutex to be held */
+	mtx_lock(&sc->ciss_mtx);
 	ciss_free(sc);
+    }
     return(error);
 }