From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 78060C433E0 for ; Tue, 4 Aug 2020 14:46:16 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4BCF9206DA for ; Tue, 4 Aug 2020 14:46:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="20XcyIk8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4BCF9206DA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=ACULAB.COM Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References:Message-ID:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=O9RSg48nv6ZMlb3E9Io4M8vEqlRiuwn5Nkpi+Ms8JW8=; b=20XcyIk8QZ+mx6xkkwyyGqnU9 J6pZZDIYVwP8aYvyKoQc5czCY2/RutgK/kXC/i/DOJP/wYkDeNEWGL+epLe8aqV7dMZaqanHtNbch b1hBLo9IT982c6cziazpkIp62j+dXbpnSC+JTZZIQSYpbaMan3ncSqj10QwsBQjXry7652mx3UXdl kGP68gLoYvIJXMo1lLJaTCN2BVxgwIeNVlkrFXCYrWl21f2jmONIUmm1PMGBwmfSbCZgf2n1UygSv 5+lmNC9o8OZYS/qL+HiiKzCjIvtGYdvuid6v4lKTLzdjhvpAnJq3Ye0m2/Hli0bWmIdFj4VuVLlPA VZzrT9Pjw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k2yBc-0000J8-64; Tue, 04 Aug 2020 14:45:04 +0000 Received: from eu-smtp-delivery-151.mimecast.com ([185.58.86.151]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1k2yBZ-0000HR-5J for linux-arm-kernel@lists.infradead.org; Tue, 04 Aug 2020 14:45:02 +0000 Received: from AcuMS.aculab.com (156.67.243.126 [156.67.243.126]) (Using TLS) by relay.mimecast.com with ESMTP id uk-mta-133-GkYdxktHPX6Hq0f1q8Z5bg-1; Tue, 04 Aug 2020 15:44:55 +0100 X-MC-Unique: GkYdxktHPX6Hq0f1q8Z5bg-1 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) by AcuMS.aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Tue, 4 Aug 2020 15:44:55 +0100 Received: from AcuMS.Aculab.com ([fe80::43c:695e:880f:8750]) by AcuMS.aculab.com ([fe80::43c:695e:880f:8750%12]) with mapi id 15.00.1347.000; Tue, 4 Aug 2020 15:44:55 +0100 From: David Laight To: David Laight , 'Mark Rutland' , "Madhavan T. Venkataraman" Subject: RE: [PATCH v1 0/4] [RFC] Implement Trampoline File Descriptor Thread-Topic: [PATCH v1 0/4] [RFC] Implement Trampoline File Descriptor Thread-Index: AQHWamb6T+e4gDrzGEmP/30MMvDTCqkoApyQgAADJ0A= Date: Tue, 4 Aug 2020 14:44:55 +0000 Message-ID: <23ded6dfcf284b15a3356c01a94029f8@AcuMS.aculab.com> References: <20200728131050.24443-1-madvenka@linux.microsoft.com> <6540b4b7-3f70-adbf-c922-43886599713a@linux.microsoft.com> <46a1adef-65f0-bd5e-0b17-54856fb7e7ee@linux.microsoft.com> <20200731183146.GD67415@C02TD0UTHF1T.local> <86625441-80f3-2909-2f56-e18e2b60957d@linux.microsoft.com> <20200804135558.GA7440@C02TD0UTHF1T.local> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=C51A453 smtp.mailfrom=david.laight@aculab.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: aculab.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200804_104501_402605_22B1D392 X-CRM114-Status: GOOD ( 13.96 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kernel Hardening , Linux API , X86 ML , LKML , Oleg Nesterov , LSM List , Andy Lutomirski , Linux FS Devel , linux-integrity , linux-arm-kernel Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org > > > If you look at the libffi reference patch I have included, the architecture > > > specific changes to use trampfd just involve a single C function call to > > > a common code function. > > No idea what libffi is, but it must surely be simpler to > rewrite it to avoid nested function definitions. > > Or find a book from the 1960s on how to do recursive > calls and nested functions in FORTRAN-IV. FWIW it is probably as simple as: 1) Put all the 'variables' the nested function accesses into a struct. 2) Add a field for the address of the 'nested' function. 3) Pass the address of the structure down instead of the address of the function. If you aren't in control of the call sites then add the structure to a linked list on a thread-local variable. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales) _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel