Re: [PATCH 079/142] USB: Work around BIOS bugs by quiescing USB controllers earlier

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2009-09-23 at 06:55 -0700, Greg Kroah-Hartman wrote:
> From: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
> 
> We are seeing a number of crashes in SMM, when VT-d is enabled while
> 'Legacy USB support' is enabled in various BIOSes.
> 
> The BIOS is supposed to indicate which addresses it uses for DMA in a
> special ACPI table ("RMRR"), so that we can punch a hole for it when we
> set up the IOMMU.
> 
> The problem is, as usual, that BIOS engineers are totally incompetent.
> They write code which will crash if the DMA goes AWOL, and then they
> either neglect to provide an RMRR table at all, or they put the wrong
> addresses in it. And of course they don't do _any_ QA, since that would
> take too much time away from their crack-smoking habit.
> 
> The real fix, of course, is for consumers to refuse to buy motherboards
> which only have closed-source firmware available. If we had _open_
> firmware, bugs like this would be easy to fix.
> 
> Since that's something I can only dream about, this patch implements an
> alternative -- ensuring that the USB controllers are handed off from the
> BIOS and quiesced _before_ the IOMMU is initialised. That would have
> been a much better design than this RMRR nonsense in the first place, of
> course. The bootloader has no business doing DMA after the OS has booted
> anyway.
> 
> Signed-off-by: David Woodhouse <David.Woodhouse@xxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>
> ---

That was in the iommu tree when I asked Linus to pull it yesterday.

-- 
dwmw2

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux