Skip to content
Commit 09798eb9 authored by David S. Miller's avatar David S. Miller
Browse files

atyfb: Fix bootup hangs on sparc64.



After commit 25edd694 ("sparc64: Get
rid of indirect p1275 PROM call buffer.")  we can't pass virtual
addresses >4GB to PROM calls.

Largely this is never necessary in drivers because we have a copy of
the entire PROM device tree in the kernel and a set of of_*()
interfaces to access it.

Unfortunately there were some lingering prom calls in the atyfb
driver, in particular prom_finddevice() was being called with an
on-stack address which could be anywhere.

This code is actually probing for information we already have, the
PROM choosen console output device is stored in of_console_device so
all of this nasty code consolidates into a one-line comparison.

Next we have some prom_getintdefault() calls which are trivially
transformed into the equivalent of_getintprop_default().

Special thanks to Fabio, who figured out exactly where the bootup
was hanging.  That made this bug trivial to fix.

Reported-by: default avatarFabio M. Di NItto <fabbione@fabbione.net>
Reported-by: default avatarSam Ravnborg <sam@ravnborg.org>
Reported-by: default avatarFrans van Berckel <fberckel@xs4all.nl>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarFabio M. Di NItto <fabbione@fabbione.net>
parent 05085588
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment