[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87innkozyd.wl%kuninori.morimoto.gx@renesas.com>
Date: Wed, 8 Mar 2017 09:58:26 +0000
From: Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>
To: Geert Uytterhoeven <geert@...ux-m68k.org>
CC: Laurent <laurent.pinchart@...asonboard.com>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>,
Fabian Frederick <fabf@...net.be>,
Andrew Morton <akpm@...ux-foundation.org>,
shimoda <yoshihiro.shimoda.uh@...esas.com>,
Koji Matsuoka <koji.matsuoka.xm@...esas.com>,
shiiba <naoya.shiiba.nx@...esas.com>,
sakato <ryusuke.sakato.bx@...esas.com>,
Hosoya <yoshifumi.hosoya.wj@...esas.com>,
Fukawa <tomoharu.fukawa.eb@...esas.com>,
Hien Dang <hien.dang.eb@...esas.com>,
Khiem Nguyen <khiem.nguyen.xt@...esas.com>,
Kouei Abe <kouei.abe.cp@...esas.com>,
Harunobu Kurokawa <harunobu.kurokawa.dn@...esas.com>,
Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@...esas.com>,
Takeshi Kihara <takeshi.kihara.df@...esas.com>,
Linux Fbdev development list <linux-fbdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: About boot time Tux logo with -EPROBE_DEFER
Hi Geert
Thanks.
I asked this because some maintainer doesn't accept the patch which
exchanges xxx_initcall.
But, I will try it with your Reviewed-by.
> > I want to ask you about boot time Tux logo.
> >
> > For some reasons, current our video driver returns -EPROBE_DEFER when
> > probe timing, but logo init function doesn't care it.
> > Thus, our kernel can't have logo when boot time.
> >
> > I think this is not only our issue, but general issue ?
> >
> > Thus, I think logo init function should care about -EPROBE_DEFER
> > or something. In our quick hack, this issue was solved by below patch,
> > but I don't know this is OK.
>
> The important part is that fb_logo_late_init() is called
> - as late as possible, to allow to draw the logo as late as possible,
> - but before free_initmem(), to avoid using freed memory.
>
> kernel_init()
> {
> kernel_init_freeable()
> {
> ...
> do_basic_setup()
> {
> ...
> do_initcalls();
> ...
> }
> ...
> }
> /* need to finish all async __init code before freeing the memory */
> async_synchronize_full();
> free_initmem();
> ...
> }
>
> According to the call graph above, the latest initcall() should be OK.
>
> > So, how to solve this issue ? do you have nice idea ?
> > or can maintainer accept below patch ?
> >
> > -------------------
> > diff --git a/drivers/video/logo/logo.c b/drivers/video/logo/logo.c
> > index b6bc4a0bda2a..4d50bfd13e7c 100644
> > --- a/drivers/video/logo/logo.c
> > +++ b/drivers/video/logo/logo.c
> > @@ -34,7 +34,7 @@ static int __init fb_logo_late_init(void)
> > return 0;
> > }
> >
> > -late_initcall(fb_logo_late_init);
> > +late_initcall_sync(fb_logo_late_init);
> >
> > /* logo's are marked __initdata. Use __ref to tell
> > * modpost that it is intended that this function uses data
>
> Reviewed-by: Geert Uytterhoeven <geert+renesas@...der.be>
>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org
>
> 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
Powered by blists - more mailing lists