Check the console_trylock() return value in case it fails.
Signed-off-by: Li Zhong <[email protected]>
---
kernel/printk/printk.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index a1a81fd9889b..2c6a0484315b 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -2937,7 +2937,8 @@ void console_flush_on_panic(enum con_flush_mode mode)
* context and we don't want to get preempted while flushing,
* ensure may_schedule is cleared.
*/
- console_trylock();
+ if (!console_trylock())
+ return;
console_may_schedule = 0;
if (mode == CONSOLE_REPLAY_ALL) {
--
2.25.1
On (22/09/16 18:58), Li Zhong wrote:
> Check the console_trylock() return value in case it fails.
[..]
> diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> index a1a81fd9889b..2c6a0484315b 100644
> --- a/kernel/printk/printk.c
> +++ b/kernel/printk/printk.c
> @@ -2937,7 +2937,8 @@ void console_flush_on_panic(enum con_flush_mode mode)
> * context and we don't want to get preempted while flushing,
> * ensure may_schedule is cleared.
> */
> - console_trylock();
> + if (!console_trylock())
> + return;
It supposed to be ignored and the comment above (in the code)
explains why: this is panic flush, we want to proceed regardless.
On Sun, Sep 18, 2022 at 6:11 AM Sergey Senozhatsky
<[email protected]> wrote:
>
> On (22/09/16 18:58), Li Zhong wrote:
> > Check the console_trylock() return value in case it fails.
> [..]
> > diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
> > index a1a81fd9889b..2c6a0484315b 100644
> > --- a/kernel/printk/printk.c
> > +++ b/kernel/printk/printk.c
> > @@ -2937,7 +2937,8 @@ void console_flush_on_panic(enum con_flush_mode mode)
> > * context and we don't want to get preempted while flushing,
> > * ensure may_schedule is cleared.
> > */
> > - console_trylock();
> > + if (!console_trylock())
> > + return;
>
> It supposed to be ignored and the comment above (in the code)
> explains why: this is panic flush, we want to proceed regardless.
Thanks for your explanation.