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  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]
Date:	Fri, 19 Sep 2014 21:45:47 +0200
From:	Oleg Nesterov <oleg@...hat.com>
To:	Roman Pen <r.peniaev@...il.com>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc:	Ming Lei <ming.lei@...onical.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	linux-kernel@...r.kernel.org
Subject: Re: [v4 PATCH 1/1] init: fix race between rootfs mount and
	firmware loading

On 09/19, Roman Pen wrote:
>
> +void wait_for_rootfs(void)
> +{
> +	/* Here we try to protect from a few things:
> +	 * 1. Avoid waiting for ourselves, when init thread has not
> +	 *    mounted rootfs yet.
> +	 * 2. Avoid warning if call chain was initiated from userspace
> +	 *    /sbin/init. For example when /sbin/init loads the driver,
> +	 *    which, in turn, wants to access rootfs (e.g. firmware loading),
> +	 *    thus it has to be sure, that rootfs has been successfully
> +	 *    mounted.
> +	 */
> +	if (rootfs_mounted || WARN_ON(is_global_init(current)))
> +		return;
> +	else
> +		wait_event(rootfs_waitq, rootfs_mounted);
> +}

Well, in this case __wait_event() makes more sense, we already checked
rootfs_mounted, but this is minor.

Reviewed-by: Oleg Nesterov <oleg@...hat.com>


But I hope that Greg can take a look too. I do not understand the problem
space enough, so I am not sure this is the "right" fix. Say, perhaps we
should change the drivers which abuse request_firmware(), or do something
else.

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists