I am running a CentOS 6.0 x86_64 system as a KVM host. I wanted to run a USB 2.0 smart card reader as pass-through device to a Microsoft Windows 7 (32-bit) guest.
Under CentOS 5.6, all I had to do was blacklist the ehci_hcd module and configure the USB device as a pass-through to the guest. I blacklisted the ehci_hcd module because the USB smart card reader would not work properly under the guest OS unless I removed USB 2.0 functionality from the host system. The BIOS didn't provide a way to force a specific USB version on a particular outlet or globally. I removed USB 2.0 functionality, but that was not an issue considering I only had this one USB device that I wanted to use. In the end, I could always modprobe ehci_hcd if I needed USB 2.0 functionality again for some other reason.
In CentOS 6.0, it appears that ehci_hcd is compiled into the kernel. What I did for CentOS 5.6 was a no-go for CentOS 6.0.
Following are the steps I completed to workaround the problem.
# as root user
chkconfig openct off
chkconfig pcscd off
yum install screen rpm-build rpmdevtools yum-utils
wget http://ftp.osuosl.org/pub/centos/6.0/up ... l6.src.rpm
su - rpmbuild
# as rpmbuild user
rpm -ivh /var/tmp/kernel-2.6.32-71.29.1.el6.src.rpm
sed -r -i 's|^(CONFIG_USB_EHCI_HCD)=(y)$|\1=m|' config-generic
sed -r -i 's|^(#) (%) (define buildid) (.local)$|\2\3 .no_echi_hcd|' kernel.spec
nice -n +19 rpmbuild -ba kernel.spec --with firmware
# after the build completes, which takes awhile
exit # logout rpmbuild
exit # leave root's screen session
# as root user
echo 'blacklist ehci_hcd' > /etc/modprobe.d/blacklist-ehci_hcd.conf
yum install ~rpmbuild/rpmbuild/RPMS/x86_64/kernel-2.6.32-71.29.1.el6.no_echi_hcd.x86_64.rpm \
sed -r -i 's|^(\s+kernel /vmlinuz-2.6.32-71.29.1.el6.no_echi_hcd.x86_64 ro .+)$|\1 rd.blacklist=ehci_hcd|' /boot/grub/grub.conf
# edit the /etc/libvirt/qemu.conf file as indicated in my previous post.
# Don't forget to clean up your /var/tmp directory.
shutdown -ry now
# Upon reboot of the KVM host, use virt-manager to add the
# USB device to the guest as a passthrough device, then boot the guest.