Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754214AbcJEAc0 (ORCPT ); Tue, 4 Oct 2016 20:32:26 -0400 Received: from mail-oi0-f66.google.com ([209.85.218.66]:36062 "EHLO mail-oi0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750940AbcJEAcY (ORCPT ); Tue, 4 Oct 2016 20:32:24 -0400 MIME-Version: 1.0 In-Reply-To: References: <20160902235916.GO3296@wotan.suse.de> <20160903002014.GP3296@wotan.suse.de> <20160903174939.GB32345@dtor-ws> <2deae6da-dd43-7bff-e1fd-ffd26946b928@intel.com> <20161005000008.GY3296@wotan.suse.de> From: Linus Torvalds Date: Tue, 4 Oct 2016 17:32:22 -0700 X-Google-Sender-Auth: egT9C7FJu4nzRW5VAuHhywcvIts Message-ID: Subject: Re: [RFC] fs: add userspace critical mounts event support To: "Luis R. Rodriguez" Cc: Dmitry Torokhov , "Herbert, Marc" , "open list:DOCUMENTATION" , Jacek Anaszewski , David Woodhouse , Christian Lamparter , Julia Lawall , Andrew Morton , linuxppc-dev , Mimi Zohar , Andy Lutomirski , Richard Purdie , Wu Fengguang , Johannes Berg , Michal Marek , Hauke Mehrtens , Mark Brown , Jiri Slaby , Ming Lei , Daniel Vetter , Bjorn Andersson , Felix Fietkau , Roman Pen , Greg KH , Linux Kernel Mailing List , Vikram Mulukutla , Stephen Boyd , Takashi Iwai , Jeff Mahoney , Hariprasad S , Benjamin Poirier , Josh Triplett Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1704 Lines: 48 On Tue, Oct 4, 2016 at 5:24 PM, Luis R. Rodriguez wrote: > > Note that the races are beyond firmware, so all > kernel_read_file_from_path() users, as such re-using such old /sys/ > interafeces for firmware will not suffice to cover all ground now for > the same race for other possible users. Blah blah blah. The reason I've hated this whole discussion is that it's full of "let's re-architect everything", and then it has these horribly warty interfaces. It's classic second-system syndrome. Just do *one* thing, and do it well. Don't change anything else. Don't force existign drivers to use new interfaces. Don't over-architect, and don't do stupid interfaces. If user-space mounts a new filesystem (or just unpacks files from a tar-file that has firmware images in it, for chissake), that is not some magical "critical mount event". The whole concept is just stupid. Is it a "mount event" when the user downloads a new firmware image from the internet? HELL NO. But what is equally stupid is to then dismiss simple models because some totally unrelated "beyond firmware" issue. Anything that is "beyond firmware" shouldn't even be discussed, for chrissake! It has nothing what-so-ever to do with firmware loading. If there ends up being some common helper functions, and shared code, that *still* doesn't make it so. Basic rules of thumb: (a) don't over-design (b) don't have stupid illogical interfaces (c) don't conflate different issues just because you think they may have shared code. (4) be consistent. Don't make up new interfaces, and most certainly do *NOT* dismiss something just because it's what we have done before. That's it. Linus