Re: exported fb_find_logo references __initdata

From: Geert Uytterhoeven
Date: Wed Jun 20 2007 - 03:14:11 EST


On Tue, 19 Jun 2007, Olaf Hering wrote:
> fb_find_logo() refences a few structs marked as __initdata. The structs
> itself have a member ->data which is marked as __initdata as well.
> scripts/pnmtologo.c write_footer() and write_header() create those
> structs.
>
> What is the correct fix, and why does it work at all?

commit 70802c60379fb843c485dfd4cab9e8f527d8fe81
Author: Antonino A. Daplas <adaplas@xxxxxxxxx>
Date: Tue May 8 00:38:14 2007 -0700

fbdev: don't show logo if driver or fbcon are modular

It was always intended for the logo to be drawn only if both fbcon and the
driver that is mapped to it are both compiled statically. Currently, if fbc
is loaded prior to the driver, the logo is not shown. Reverse the order, an
the code may attempt to draw the logo which is __initdata. By accident, thi
bug is rarely seen because this method of loading the modules is not common
and secondly, a code in fb_prepare_logo() that checks the height of the logo
(now a random value) rarely succeeds.

Fix by drawing the logo only if both fbcon and the driver are statically
compiled.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
-
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/