lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160322165122.GB10616@yury-N73SV>
Date:	Tue, 22 Mar 2016 19:51:22 +0300
From:	Yury Norov <ynorov@...iumnetworks.com>
To:	Peter Hurley <peter@...leysoftware.com>
CC:	Aleksey Makarov <aleksey.makarov@...aro.org>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	"Rafael J . Wysocki" <rjw@...ysocki.net>,
	Len Brown <lenb@...nel.org>, <linux-serial@...r.kernel.org>,
	<linux-acpi@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
	<linux-arm-kernel@...ts.infradead.org>,
	Russell King <linux@....linux.org.uk>,
	Leif Lindholm <leif.lindholm@...aro.org>,
	Graeme Gregory <graeme.gregory@...aro.org>,
	Al Stone <ahs3@...hat.com>,
	Christopher Covington <cov@...eaurora.org>,
	"Zheng, Lv" <lv.zheng@...el.com>, Jiri Slaby <jslaby@...e.com>
Subject: Re: [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.

[...]

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ