Messages in this thread | | | From | Geert Uytterhoeven <> | Date | Fri, 1 Jun 2018 11:30:01 +0200 | Subject | Re: Can printk() sleep at runtime? |
| |
Hi Jia-Ju,
On Fri, Jun 1, 2018 at 2:59 AM, Jia-Ju Bai <baijiaju1990@gmail.com> wrote: > On 2018/6/1 5:13, Steven Rostedt wrote: >> On Thu, 31 May 2018 18:42:48 +0200 >> Geert Uytterhoeven <geert@linux-m68k.org> wrote: >>> On Thu, May 31, 2018 at 5:19 PM, Stephen Boyd <sboyd@kernel.org> wrote: >>>> Quoting Linus Torvalds (2018-05-31 07:32:10) >>>>> On Thu, May 31, 2018 at 5:05 AM Petr Mladek <pmladek@suse.com> wrote: >>>>>> >>>>>> Anyway, we need to fix or remove this format. vsprintf-like functions >>>>>> are called in any context and nobody expect that they might sleep. >>>>> >>>>> Ack. I guess the argument is that "%pCr" is rare, and none of *those* >>>>> users may care, but I do think that doing things wrong as-is. >>>>> >>>>> It's too subtle to have to know you're in a particular locking context >>>>> when you use a particular %p modifier. >>>> >>>> Agreed. Removing the format seems to be the best approach. It looks like >>>> only Geert has used it in the last few years and it hasn't been used >>>> much otherwise. >>> >>> Indeed, just 3 users (the broadcom one isn't mine): >>> drivers/clk/renesas/renesas-cpg-mssr.c >>> drivers/thermal/broadcom/bcm2835_thermal.c >>> drivers/tty/serial/sh-sci.c >>> >>> Alternatively, can we have a special version __clk_get_rate() that just >>> returns clk->core->rate? >>> Or would that be too inaccurate in the presence of CLK_GET_RATE_NOCACHE? >>> The function could still return 0 in case the flag is set. >> >> If it's only used in three locations, I think it would be better to >> simply remove it from vsprintf() and have the three callers call >> clk_get_rate() directly.
OK, patches sent.
Thanks for reporting!
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-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
| |