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

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

 



On Mon, Aug 03, 2009 at 12:40:27PM +0100, David Woodhouse wrote:
> 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>
> ---
> Is this reasonable? At first glance, it looks like everything we do here
> is perfectly OK to be done earlier.

Looks good to me, I'll queue it up.

Is this something that can wait for .32, or do you have hardware that is
broken today that this fixes?

thanks,

greg k-h
--
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