lkml.org 
[lkml]   [2016]   [Mar]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v5 3/6] ACPI: parse SPCR and enable matching console
On Tue, Mar 22, 2016 at 07:57:04AM -0700, Peter Hurley wrote:

[...]

> >> +static bool init_earlycon;
> >> +
> >> +void __init init_spcr_earlycon(void)
> >> +{
> >> + init_earlycon = true;
> >> +}
> >> +
> >
> > 1. I see you keep in mind multiple access.
>
> Concurrent access is not a concern here: only the boot cpu is running
> and intrs are off.
>
> The "init_earlycon" flag is used because parsing the "earlycon" early param
> is earlier than parsing ACPI tables.
>

OK got it. My concern is that it's generic code, and parse_spcr() is public
function. I think corresponding comment is needed at least. The other option is
to make it race-safe and forget. I prefer second one, moreover it's 2 simple
changes.

>
> Then you'd worry about race
> > conditions as well. In this case, I'd consider atomic access to
> > variable.
> > 2. It seems you need is_init() helper too.
> >
> >> +int __init parse_spcr(void)
> >> +{
> >> + static char opts[64];
> >> + struct acpi_table_spcr *table;
> >> + acpi_size table_size;
> >> + acpi_status status;
> >> + char *uart;
> >> + char *iotype;
> >> + int baud_rate;
> >> + int err = 0;
> >
> > You can do not initialize 'err'.
>
> Why?
>

Because there's no path here that doesn't init err with some value.
So this initialization is useless waste of cycles.

[...]

\
 
 \ /
  Last update: 2016-03-22 18:21    [W:0.105 / U:0.180 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site