Re: 2.6.32-rc4: Reported regressions from 2.6.31

From: Linus Torvalds
Date: Sun Oct 11 2009 - 19:12:58 EST




On Mon, 12 Oct 2009, Rafael J. Wysocki wrote:
>
> Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=14374
> Subject : MCEs caused by commit db8be50c4307dac2b37305fc59c8dc0f978d09ea
> Submitter : Nick Piggin <npiggin@xxxxxxx>
> Date : 2009-10-02 7:34 (10 days old)
> First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=db8be50c4307dac2b37305fc59c8dc0f978d09ea
> References : http://marc.info/?l=linux-kernel&m=125446885705223&w=4

I think we're going to have to just revert that commit. It's wrong.

It would be nice to do USB handoff earlier, but

- the correct fix is to make the damn IOMMU code to do it's thing later

- the USB handoff cannot be done with just PCI config cycles, and will
need to do ioremap's etc, which in turn will need the resources to be
allocated, which in turn is not possible at FIXUP_HEADER time.

so however much we migth _wish_ to do what that commit does, the commit is
obvious crap in retrospect.

The IOMMU should not be reprogrammed until _after_ we have handled and
re-initialized all the devices, so I really think the problem is the IOMMU
code, not the USB code.

(Of course, the underlying problem is that USB legacy mode handling by
BIOS with SMM is some seriously insane crap, no question about that. At
the same time, the IOMMU code is just clearly wrong in removing the legacy
mappings before we have initialized all devices, so the revert is simply
the right thing to do)

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/