lkml.org 
[lkml]   [2019]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[RFC][PATCH 0/2] Access console drivers list under console_sem
Date
Petr, Steven,

RFC

Normally, we grab console_sem lock before we iterate consoles
list, which is necessary if we want to be race free. The only exception
to this rule is console_flush_on_panic(). However, it seems that we are
not fully race free - register_console() iterates console drivers list
in unsafe manner in several places. E.g. the following scenarion:

CPU0 CPU1
register_console() unregister_console()
console_lock()
for_each_console() // modify console_drivers
con->foo kfree(con)

So I have two quick-n-dirty patches, which remove unsafe console list
access.

What do you think?

Sergey Senozhatsky (2):
printk: lock console_sem before we unregister boot consoles
printk: take console_sem when accessing console drivers list

kernel/printk/printk.c | 117 ++++++++++++++++++++++++-----------------
1 file changed, 69 insertions(+), 48 deletions(-)

--
2.21.0

\
 
 \ /
  Last update: 2019-04-23 08:26    [W:0.138 / U:0.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site