Modify workaround for the EHCI quirk in newer NVidia controllers by assigning the DMA mask, not just the consistent DMA mask. It seems to matter, as if the silicon erratum isn't quite what was described in the original bug workaround (or there's another erratum). Index: g26/drivers/usb/host/ehci-pci.c =================================================================== --- g26.orig/drivers/usb/host/ehci-pci.c 2006-05-12 19:40:22.000000000 -0700 +++ g26/drivers/usb/host/ehci-pci.c 2006-05-12 21:15:31.000000000 -0700 @@ -118,7 +118,15 @@ static int ehci_pci_setup(struct usb_hcd if (pci_set_consistent_dma_mask(pdev, DMA_31BIT_MASK) < 0) ehci_warn(ehci, "can't enable NVidia " - "workaround for >2GB RAM\n"); + "workaround %d for >2GB RAM\n", 1); + + /* some users report problems with 4GB when the IOMMU + * doesn't force lowmem addresses... looks like the + * initial report from NVidia wasn't quite right. + */ + if (pci_set_dma_mask(pdev, DMA_31BIT_MASK) < 0) + ehci_warn(ehci, "can't enable NVidia " + "workaround %d for >2GB RAM\n", 2); break; /* Some NForce2 chips have problems with selective suspend; * fixed in newer silicon.