On Fri, 2020-01-24 at 18:07 +0200, Andy Shevchenko wrote: > Replace open coded single-linked list iteration loop with > for_each_console() > helper in use. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > --- > arch/parisc/kernel/pdc_cons.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/parisc/kernel/pdc_cons.c > b/arch/parisc/kernel/pdc_cons.c > index 7ed404c60a9e..aa01448f377c 100644 > --- a/arch/parisc/kernel/pdc_cons.c > +++ b/arch/parisc/kernel/pdc_cons.c > @@ -259,8 +259,8 @@ void pdc_console_restart(void) > if (console_drivers != NULL) > pdc_cons.flags &= ~CON_PRINTBUFFER; > > - while ((console = console_drivers) != NULL) > - unregister_console(console_drivers); > + for_each_console(console) > + unregister_console(console); This is wrong. The old formulation iterates correctly in the face of element removal. for_each_console is defined: #define for_each_console(con) \ for (con = console_drivers; con != NULL; con = con->next) So it's not safe for any iteration that alters the list elements. James