From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753898AbdEFHCz (ORCPT ); Sat, 6 May 2017 03:02:55 -0400 Received: from mail-he1eur01on0113.outbound.protection.outlook.com ([104.47.0.113]:46528 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751501AbdEFHCw (ORCPT ); Sat, 6 May 2017 03:02:52 -0400 Authentication-Results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=virtuozzo.com; Date: Sat, 6 May 2017 00:02:32 -0700 From: Andrei Vagin To: Stafford Horne CC: LKML , Lokesh Vutla , Al Viro , Andrew Morton Subject: Re: initramfs: Always do fput() and load modules after rootfs populate Message-ID: <20170506070231.GA29268@outlook.office365.com> References: <20170504124701.727-1-shorne@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Disposition: inline In-Reply-To: <20170504124701.727-1-shorne@gmail.com> User-Agent: Mutt/1.8.0 (2017-02-23) X-Originating-IP: [73.140.212.29] X-ClientProxiedBy: MWHPR18CA0036.namprd18.prod.outlook.com (10.175.9.150) To HE1PR0801MB1980.eurprd08.prod.outlook.com (10.168.94.150) X-MS-Office365-Filtering-Correlation-Id: 2417f0ab-bc66-4318-b106-08d4944de828 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:HE1PR0801MB1980; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1980;3:NX6aw2X/khnQ4KsSuJpVu7v7bh/kA1/xTvR3ChkNe5ugAPlcO9auIGEPUv78LnCmuZG/rezMgLsBHkq86f+cM1TROhBC+adm8g5b6pLX7C1KYtVE4i7eUCE0e6J4dOZtHaifc/ow/FElB+5NYK07ltJF6cijqrC8Rwb3vslwloQf3Ro0okyMzy+hhjEOZOAz81VGKD78cGwrO9E7eWaRmUAbVU5SgTYZ3ljguWv5EjdaB1u0ByT+V9VgYQzanH1vPxa2yWSwmNPXNhLFyipJ61ywplKgGOzhs4YNlQko9XsRvtk7OcIuhtEsYu0Ad8RLg0geSLPMxBiaO8jzo7sbUw==;25:KEchaeJ8z4aiSm6vNDv2iVuNPHQ9OKKoGMcwtTIDcICJRegC4MNb8URynp36ue1xaULm8rgbj9/SbuVsQi1ndxwxXDKf88aCiYKPOwhNdpZhf3+zyls1ppu0nJJlQQZ63qyDMTrYQn9KZ7BoNRl3M7aAnz0TlUIreb5x8eX8gthmns6sU6JKKmqEAgxr419Y3CrDPdyU8ALoxWzas10141d7hYryI4+VfiEWnwmgXrqVcxKaQPiMl/gEa5mUddAPZUGSoA3s0IQbEoxh5rbSd4mzJgFWuDqHWKbftheNbmAtZ+HoH5p6jvCsvV5IA3Ew9XpcxTHNvSaFdrYiEcCOMGPb9Gq6DFIdXbjzeJjZCpD/KXfUXsxCAkCFkdpzLVvdlO22KHXlhwev2g6BzdD0XKsxLhmhP6F6N11tM4LW4zMSvLvAoOTWieEGdCNVNRIM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1980;31:q/iDGOK1SCiWnTUaNHxbOq+2o7nQKzu33wY/5VLTJ4pdwYNl1yI0bz8a9nzamgXOAtweWk1VHqrFC9VQPZM5I5n00kqPJ1qC0i0Pg0taGqNoRYWDwGPgOfRVc1R7mtUwXIv09Et4Y3U03KcgQb42d+pmjADaB1+CbygjD7ylCjrbVGqbLYpi5O7RlgBN9H+1t9dSooBnr5liR50ZymyjgYx4OnVTGevkNsmUvPYJHRGppDwoqBYoUpCfdjVNERampP5D9FADyeqqzhkGBFHWf5CCXm6mno+Alkya0VGG5AI=;20:YTxqaGPkFz0eDLhlT5oQx+VAvg/RyG6ZELXH6+x+t5j/KbLYyDG+mIQkfvgBjbd5om3zui6pMTXfALsMdzQAlXiYDMmMsv4d8awqFU54TUzXSoYCCo9n2rkwFJLtCFv5eLBWxnWy2qsZNubv+O8jOYOu0VfzczsfuWVTVswyRd4oe4gpEuvh21O1+ULtcPzXlN5d7Vz0ReMtlcXN9JZfdfhbrVx2D58kHpb53TaCIqARNYYt9AP95kJKQKF+g+qkZp2ZBwgJFYYsm80YHqbDmy/BBGJZiuxhLIukHPbPRivFXKiXG2cTVAS0k34GAKi/sIYwgG9qinPXj4AP3A8kgMO66Y7Oons13tYkwfncFOt/kDSE6bedlNRcAxvD4NAUUl1SbW21hCieUyIS8uyjeE9G1ne+ZGaZSEGGQiqKzBI= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(31051911155226); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(6041248)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123560025)(6072148);SRVR:HE1PR0801MB1980;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB1980; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1980;4:yUoYv/gLkkOOqT8CmJjbKdTdY8LgfBPQFJhX3ZntQxO5COug+Cecb0m2/sBZf3vUgPZ9+uQjLjsZDVViPzutbpuXTmNfPBXhAlQXLV8N6JDfoePEgkpr9YWHF0HsD2IQZmFfiemt3uoYGZ3rVGiQctf8f/LFY2wYgYmI17W/YGUOTDD2wCZk+2oL2EYXff7rXiHCTUhX4BNTK5Mdy9uOieuSLdOlVP7l6pKHnH2C/nrFfaAP0i/RnPGTwLjThak723DPGUJrJ0alAMltrpibAhvF3IBFgkauYem9SYGJHLwGWKMrfBqfqnMxXwTnzjRCSUz3IF2PFNLjeqE8Ihjh9ytYzyB+aHUwj2tRg8YxQ5w/jDyrFBc4j7yrAp3KVrDJ73G0Ph6x3P1jrYDajV9OfXdy9Qugj1V7h/3F4zfXTQ50k0kdrt7NSrCwX8CZ1pGx/77WGwhA3t66jdit4lzWNFgHiz7Gvh/7QYNaHWjD2MbQVABFGCqcA/r+OVw4Sce8kPejdGqBhbLfcRz/1MX5r6vkq0Lk9G0Uen4Z426Xx2ygujuunsbBtq8tKkjw20CYJVLvI/0RMLNmUy/qTV6kfaSrHEnO0m1a18poSn5iFQHh5amP5+Hv7NWuzLtgBNphAir2dk816eOnw1xdLbtA0HKwjiBD97gvcCMaJ8zwC6lR7NYFCUJ6lxaQAHIHrCx0NP/4l48VElgYB0SvLVNJf/ghWgDHxyJV+Yi8CwFXZe+cEiPe0bzzQAjgtWubFJhwzVN2OyFUgXp6/Uov0MLqNV+wbOiq5jeUf1S5Dc0sBvoZUxUK672FHn2y/qllD3qig1Ag2kGEt6lk0PVl/I3l+Q== X-Forefront-PRVS: 029976C540 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39400400002)(39410400002)(39450400003)(39840400002)(24454002)(42186005)(229853002)(189998001)(47776003)(53416004)(478600001)(25786009)(8676002)(38730400002)(50986999)(81166006)(54356999)(76176999)(4326008)(55016002)(110136004)(6506006)(9686003)(54906002)(6916009)(1076002)(1411001)(53936002)(4001350100001)(3846002)(6246003)(33656002)(66066001)(83506001)(305945005)(575784001)(6116002)(5660300001)(2950100002)(23686003)(6666003)(7736002)(86362001)(18370500001);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB1980;H:outlook.office365.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?koi8-r?Q?1;HE1PR0801MB1980;23:e7U5InbITkq9/TE/AOKw74NdMKbIQQds503b6rxEc?= =?koi8-r?Q?e2JJYhdqfvqsH3fwa4TV0A2o8nQlFklP6PDvNeuxfN6HF6LUQ6Scgi+JoPH2A6?= =?koi8-r?Q?6gW0uM1CZDlFzrJOwxtk9UuudDjDZyHy5SEj7MD4K7KhOFnCpuyQia6bciU9pT?= =?koi8-r?Q?WRMW/Waf+OBCveGlnsf3S+qGJbP1j1ZwUWx8yx2Flax0m4nUk7WmF8DXJj7BNz?= =?koi8-r?Q?wK6S+n1MQMFmmMZ5w4dso4D2XFrZKiih0ZdLZX8hikSkw9jWRXDrKxVeOKfmQy?= =?koi8-r?Q?AEHncNB8VHnYNcK08mYPr9qOwR4yTRwPS3F39DrSkgWs+fGzHc9HQRN7lZzjNn?= =?koi8-r?Q?5FWPtdeGavSbqq0g1BGomymZi7VawlprhYlI/UixnpJuvNMHMj2XINv1pUjhxN?= =?koi8-r?Q?UnqSfbdUCGBSxWSqeeGHPk2/+KuZO9cwEcpR27ShR2fFVljo3xQk/ZfeEUzbsh?= =?koi8-r?Q?q+GX+DCq0pLxjbhMZz9JglMZSey1aMh1eJX3sFOyENWh29i3l4AWYVRqHJATpw?= =?koi8-r?Q?Gcpm1Lm7RrtCLsGR1Ua4SfG//a/C6VMHjbOSM8aXPEkD1sQ5gf+BaBOPAjAanP?= =?koi8-r?Q?Ht69xaVHpuMJlil4FaswQeGrMipBScPHMWWr5skXbFZIPcqVqXNCuafJ7G0vA5?= =?koi8-r?Q?OJ5WuLhTHhNuEaazoXU6LQbV4u7OopI14DFOJWKXVdJQrmI1xl10mAzt5EvhC9?= =?koi8-r?Q?Q5Dp2q129Pj3cwhJnF/nwB54mWj+lMArmQaUd+BbhpoV816R3zlgRDX6wOgq2a?= =?koi8-r?Q?F0giFbrOJ+5NLQ2a7It4LTQpvccH6gC0bvqMSgr9mgnfbUmS7oIWD401ChJxC4?= =?koi8-r?Q?MjGChKCjz/u3Fv8LBxJEqM3inUnh8vQ5wPi7+N4vkezKMucG/usKg+QyHgk76R?= =?koi8-r?Q?sFLJKNKGkprnquih38gVDxpJ4qWDG8jbH5NeRzvyMb+I4GGbM/d/WaSdxotLPv?= =?koi8-r?Q?+sZMUsf7Q53jzWdv8GHJp8o4+1L5SJULpLzvAnfzrwkCVULDsvIUVzRxz0iH8K?= =?koi8-r?Q?oEZXekvYxmprLd4nCJQHFt8nEijN2ztZ+hiv/4LlWXmgRsiTReEDdhK0mGU/cz?= =?koi8-r?Q?K1ayQqWQgCNUllyZiLAAABOaj7bUiYm+FoGe/r8cMCw40C9gPwQ2LblPSrfcjo?= =?koi8-r?Q?fUdE2xGARe0qBV8LQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1980;6:U0iNF64dwz7BtiKShyO10AXZwUqaN0Z3lfhxifEuKgVleiunvqCeK9HuJWwq84h8PWcHJ1PnoYAdQ8RPeHx6DyETHcLguV+JFn+AAf3yomh92hqsSun0HmPuQ09FxSmx0qZJ0g9+CZ57PJlJ1qeA6kH0Fp8Gi4JzvVrzwcAjzB+Nuh0CMFcLX6cmkUiWaGHPHYPf4aOb72YVMN5UJmPBF3ZtvruTSRmW3S0CScfQ4wbjGuUalaMxtSzUOoWfYSxMyYpYmUd0dQMPNmLITGPFZwAu4vvoDztJi/eOlhytW2aUlmJ5lMwNX5kFkJLmK98vxZHw9zT+nbi/J1jxby36wfpvi8IyC0toOJurd/SOOLBN8WJ3RXhL3ba3e6P3WGCAk23EhLR+eFGcUoVIPEcVDhAmk5iGzE9tz0od1a9FT1jsHHFsrz3KbDcXF3Vuowyc0miOvew7Eyv62CJcpKkavT8Udac5aqhJIhNm459MRaVSOE1fNIoeiwgSKHrjUfbg0+u4CjKmRgWaGppKzuqw7A==;5:b3Zfn40dvxnd9yYTLKnAe0WIH5doORg6hoAGiKarbSWbgDJqrNCPJWEXPTx9sdVL/QWR2YZQlafuXM6UyA+mmHzEmt2DcEZXmI2xTifJPk9fqKJR47lA0wbcpGSVEVMB7cOha9N4zvpzpbq0XC9ECg==;24:XaB7n19ff0DYd6NmIjeL9pNyAirnNaMNawvdpMJffrgD2vHSPswpf7tn2XIFndtL4CsDAYOsaACG1qawDnFjHvKXbENNa1UTM8+V90CEyEY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1980;7:dUib0Pn8tRgpL8bE1N941HFLLcsPnKBHXzZttvlXyBbNvZHy01IpuJwMC7pxTYRom1N3ZudS2uUQz25St/E4aVNx1MbyonAxUgdh/g+hrmAnfU88fhKaxEKiw9+dpIX6L/md8ipH7ZIWdgCCNHUPciDAQvXib5W0+4j31qsYJQLDTLPC86ibPOXLSHcjpKXeFY+Ped0RO7m4B43Kr9mMmcw3eBnRQPRaM9tw8DI927WfjEdZ28ihGKf8ZNs/AS7kRuVBSjc4QM2w9LSzNFXw6+vii2ig7oU5gRhkXGuYrpq+gQoUfAySpTkVBmbDX3eclc0OO7+hBtOEF2C2kFz1AA==;20:VyKykJstk8gJp7eQDMC1AgFxxOpZ6xhhlA1zi5uUdWhY14p29FPWMlKroTzOZYCUBQAdShhNbdVVwIEdzC5wp/iGafovk98o0Ae5AW5lxU1J0DCcgevY1LfAyQoUQfLzhWZ0uuI44+4q7dIDtgFH/ceZP8BRLae+lVaikGcOk9Y= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2017 07:02:47.8492 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1980 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, I see the following error with this patch: init/initramfs.c: In function 'populate_rootfs': init/initramfs.c:644:2: error: label at end of compound statement done: ^ scripts/Makefile.build:294: recipe for target 'init/initramfs.o' failed make[1]: *** [init/initramfs.o] Error 1 probably we need something like this: diff --git a/init/initramfs.c b/init/initramfs.c index 3a68715..9966c0f 100644 --- a/init/initramfs.c +++ b/init/initramfs.c @@ -641,7 +641,6 @@ static int __init populate_rootfs(void) sys_close(fd); free_initrd(); } - done: #else printk(KERN_INFO "Unpacking initramfs...\n"); err = unpack_to_rootfs((char *)initrd_start, @@ -651,6 +650,7 @@ static int __init populate_rootfs(void) free_initrd(); #endif } +done: flush_delayed_fput(); /* * Try loading default modules from initramfs. This gives Thanks, Andrei On Thu, May 04, 2017 at 09:47:00PM +0900, Stafford Horne wrote: > In OpenRISC we do not have a bootloader passed initrd, but the built in > initramfs does contain the /init and other binaries, including modules. > The previous commit 08865514805d2 ("initramfs: finish fput() before > accessing any binary from initramfs") made a change to only call fput() > if the bootloader initrd was available, this caused intermittent crashes > for OpenRISC. > > This patch changes the fput() to happen unconditionally if any rootfs is > loaded. Also, I added some comments to make it a bit more clear why we > call unpack_to_rootfs() multiple times. > > Fixes: 08865514805d2 ("initramfs: finish fput() before accessing any binary from initramfs") > Cc: Lokesh Vutla > Cc: Al Viro > Signed-off-by: Stafford Horne > Acked-by: Al Viro > --- > init/initramfs.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/init/initramfs.c b/init/initramfs.c > index 981f286..3a68715 100644 > --- a/init/initramfs.c > +++ b/init/initramfs.c > @@ -608,9 +608,11 @@ static void __init clean_rootfs(void) > > static int __init populate_rootfs(void) > { > + /* Load the built in initramfs */ > char *err = unpack_to_rootfs(__initramfs_start, __initramfs_size); > if (err) > panic("%s", err); /* Failed to decompress INTERNAL initramfs */ > + /* If available load the bootloader supplied initrd */ > if (initrd_start) { > #ifdef CONFIG_BLK_DEV_RAM > int fd; > @@ -648,13 +650,14 @@ static int __init populate_rootfs(void) > printk(KERN_EMERG "Initramfs unpacking failed: %s\n", err); > free_initrd(); > #endif > - flush_delayed_fput(); > - /* > - * Try loading default modules from initramfs. This gives > - * us a chance to load before device_initcalls. > - */ > - load_default_modules(); > } > + flush_delayed_fput(); > + /* > + * Try loading default modules from initramfs. This gives > + * us a chance to load before device_initcalls. > + */ > + load_default_modules(); > + > return 0; > } > rootfs_initcall(populate_rootfs);