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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8BFE8C6FD18 for ; Wed, 29 Mar 2023 13:49:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=7qwZ0REI2/TtDznHBlkzlsHWxXwKywMF1JL1yaHN0sI=; b=tWFos7S3+l9/Sh 73a6/822EJj4mXPcEfJohPH+K6bYbP8A8gWbgTwI+X85hwu5w6g+b+lgl0+YOt5bIsaCYKyyWTbc9 DFD6KauR7OODJxH2FZN0BI+0ObmV6GOVEWcqzvvosIQ27F9Tgu87GZPH4GXVfC9AhoY2/wuvVlUp2 Ow2nbGw8MezkQoJGg8FQpoU3TB2G6mzrF/Eh25sIrgfpPLG4A1IM/Im/BUJkLdGK+n3sVBoEpa6+n 8mq7SbTZ3MbgjjoI9y0AIVk1N5sDbnwnkX8ZqDlQFpqqhu6p1VTQhYloIN0MjOOJI42jeo3rhENs7 mn857HiYUdUbkfv2LLVA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1phWAl-000T7h-0M; Wed, 29 Mar 2023 13:49:07 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1phWAh-000T66-2o for linux-riscv@lists.infradead.org; Wed, 29 Mar 2023 13:49:06 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 16040B8232E; Wed, 29 Mar 2023 13:49:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C12BEC433D2; Wed, 29 Mar 2023 13:48:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1680097740; bh=4CYRpZJwGBLZQdCvRQ/0yUVdTu1yQ3sxxG0UwTS2TfI=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=L9cQD2qJlnnTQf4Y0EZwxebIrjGPmUQ6Xgi71qfGoylBP9iTlc6dU8p1vRI2pDaa+ q7zMjW9cfp0uRsG2eMPutCkBUNUJD8CBhPB5eZ+pzf5oalAMOvEiExxUx6p3YNIaNB GHiNZu2sttJtexBuLl8Lo/G6znxaANW3rBSXJ85VIDsejwZ8192Vup2uMKfaaHUQA0 9VBgvNaHqRtxRq1aazYh5rzuiQFD/iKQ3omCp/ahlIy9NPMRD7dZY8+f3xz0pNzalh vSarXTZUItKG75CPSRZn0ybJQnsoJfTVqvqveMyZ/HlcvmWXwYp5M6JDym5lgMS0Hk r08PIi+/An4jg== Message-ID: Date: Wed, 29 Mar 2023 23:48:55 +1000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH 1/2] binfmt_elf_fdpic: support 64-bit systems Content-Language: en-US To: Palmer Dabbelt , viro@zeniv.linux.org.uk, brauner@kernel.org, ebiederm@xmission.com, keescook@chromium.org Cc: linux-riscv@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: From: Greg Ungerer In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230329_064904_210698_D4FE5C2B X-CRM114-Status: GOOD ( 29.87 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Ck9uIDIyLzMvMjMgMDg6NDksIFBhbG1lciBEYWJiZWx0IHdyb3RlOgo+IE9uIFR1ZSwgMjggRmVi IDIwMjMgMDU6NTE6MjUgUFNUICgtMDgwMCksIGdlcmdAa2VybmVsLm9yZyB3cm90ZToKPj4gVGhl IGJpbmZtdF9mbGF0X2ZkcGljIGNvZGUgaGFzIGEgbnVtYmVyIG9mIDMyLWJpdCBzcGVjaWZpYyBk YXRhCj4+IHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB3aXRoIGl0LiBFeHRlbmQgaXQgdG8gYmUgYWJs ZSB0byBzdXBwb3J0IGFuZAo+PiBiZSB1c2VkIG9uIDY0LWJpdCBzeXN0ZW1zIGFzIHdlbGwuCj4+ Cj4+IFRoZSBuZXcgY29kZSBkZWZpbmVzIGEgbnVtYmVyIG9mIGtleSA2NC1iaXQgdmFyaWFudHMg b2YgdGhlIGNvcmUKPj4gZWxmLWZkcGljIGRhdGEgc3RydWN0dXJlcyAtIGFsb25nIHNpZGUgdGhl IGV4aXN0aW5nIDMyLWJpdCBzaXplZCBvbmVzLgo+PiBBIGNvbW1vbiBzZXQgb2YgZ2VuZXJpYyBu YW1lZCBzdHJ1Y3R1cmVzIGFyZSBkZWZpbmVkIHRvIGJlIGVpdGhlcgo+PiB0aGUgMzItYml0IG9y IDY0LWJpdCBvbmVzIGFzIHJlcXVpcmVkIGF0IGNvbXBpbGUgdGltZS4gVGhpcyBpcyBhCj4+IHNp bWlsYXIgdGVjaG5pcXVlIHRvIHRoYXQgdXNlZCBpbiB0aGUgRUxGIGJpbmZtdCBsb2FkZXIuCj4+ Cj4+IEZvciBleGFtcGxlOgo+Pgo+PiDCoCBlbGZfZmRwaWNfbG9hZHNlZyBpcyBlaXRoZXIgZWxm MzJfZmRwaWNfbG9hZHNlZyBvciBlbGY2NF9mZHBpY19sb2Fkc2VnCj4+IMKgIGVsZl9mZHBpY19s b2FkbWFwIGlzIGVpdGhlciBlbGYzMl9mZHBpY19sb2FkbWFwIG9yIGVsZjY0X2ZkcGljX2xvYWRt YXAKPj4KPj4gdGhlIGNob2ljZSBiYXNlZCBvbiBFTEZDTEFTUzMyIG9yIEVMRkNMQVNTNjQuCj4+ Cj4+IFNpZ25lZC1vZmYtYnk6IEdyZWcgVW5nZXJlciA8Z2VyZ0BrZXJuZWwub3JnPgo+PiAtLS0K Pj4gwqBmcy9iaW5mbXRfZWxmX2ZkcGljLmPCoMKgwqDCoMKgwqDCoMKgwqAgfCAzOCArKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCj4+IMKgaW5jbHVkZS9saW51eC9lbGYtZmRwaWMu aMKgwqDCoMKgwqAgfCAxNCArKysrKysrKysrKystCj4+IMKgaW5jbHVkZS91YXBpL2xpbnV4L2Vs Zi1mZHBpYy5oIHwgMTUgKysrKysrKysrKysrKysKPj4gwqAzIGZpbGVzIGNoYW5nZWQsIDQ3IGlu c2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQo+IAo+IEFkZGluZyBzb21lIG9mIHRoZSBiaW5m bXQvZnMgZm9sa3MsIHdobyB3ZXJlbid0IGRpcmVjdGx5IG9uIHRoZSBtYWlsLiBJdCdzIGxvb2tp bmcgbGlrZSB3ZSdyZSBnZW5lcmFsbHkgT0sgd2l0aCB0aGlzIGluIFJJU0MtViBsYW5kLCB0aG91 Z2ggdGhlcmUncyBzdGlsbCBubyB1c2Vyc3BhY2UgcG9zdGVkLsKgIEkgZG9uJ3QgdGhpbmsgdGhl cmUncyBhbnkgcnVzaCBoZXJlIGFuZCBpdCBtaWdodCBiZSBwcnVkZW50IHRvIHdhaXQgZm9yIHVz ZXJzcGFjZSB0byBzdGFydCBnb2luZyB0aHJvdWdoIGEgYml0IG9mIGEgcmV2aWV3LCBidXQgZmln dXJlZCBJJ2QgYXQgbGVhc3QgcG9rZSBldmVyeW9uZSB0byBzZWUgaWYgdGhlcmUncyBhbnkgdGhv dWdodHMuCj4gCj4gSSdtIGZpbmUgZWl0aGVyIHdheSwgc28KPiBBY2tlZC1ieTogUGFsbWVyIERh YmJlbHQgPHBhbG1lckByaXZvc2luYy5jb20+Cj4gCj4gaWYgdGhhdCBoZWxwcyBhbnkuwqAgQWxz byBoYXBweSB0byB0YWtlIHRoaXMgdGhyb3VnaCB0aGUgUklTQy1WIHRyZWUgYWxvbmcgd2l0aCB0 aGUgb3RoZXIgaWYgdGhhdCdzIGVhc2llciwgYnV0IGFnYWluIG5vIHJ1c2guCgpKdXN0IGZvbGxv d2luZyB1cC4gSSBoYXZlbid0IHNlZW4gYW55IGZlZWRiYWNrIG9uIHRoaXMgLSBkaWQgSSBtaXNz IGFueT8KClJlZ2FyZHMKR3JlZwoKCj4+IGRpZmYgLS1naXQgYS9mcy9iaW5mbXRfZWxmX2ZkcGlj LmMgYi9mcy9iaW5mbXRfZWxmX2ZkcGljLmMKPj4gaW5kZXggYTA1ZWFmY2FjZmIyNy4uMmVlYTZk ZDQyOWZkNiAxMDA2NDQKPj4gLS0tIGEvZnMvYmluZm10X2VsZl9mZHBpYy5jCj4+ICsrKyBiL2Zz L2JpbmZtdF9lbGZfZmRwaWMuYwo+PiBAQCAtMTM4LDcgKzEzOCw3IEBAIHN0YXRpYyBpbnQgaXNf Y29uc3RkaXNwKHN0cnVjdCBlbGZoZHIgKmhkcikKPj4gwqBzdGF0aWMgaW50IGVsZl9mZHBpY19m ZXRjaF9waGRycyhzdHJ1Y3QgZWxmX2ZkcGljX3BhcmFtcyAqcGFyYW1zLAo+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBmaWxlICpmaWxlKQo+PiDCoHsKPj4gLcKg wqDCoCBzdHJ1Y3QgZWxmMzJfcGhkciAqcGhkcjsKPj4gK8KgwqDCoCBzdHJ1Y3QgZWxmX3BoZHIg KnBoZHI7Cj4+IMKgwqDCoMKgIHVuc2lnbmVkIGxvbmcgc2l6ZTsKPj4gwqDCoMKgwqAgaW50IHJl dHZhbCwgbG9vcDsKPj4gwqDCoMKgwqAgbG9mZl90IHBvcyA9IHBhcmFtcy0+aGRyLmVfcGhvZmY7 Cj4+IEBAIC01NjAsOCArNTYwLDggQEAgc3RhdGljIGludCBjcmVhdGVfZWxmX2ZkcGljX3RhYmxl cyhzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLAo+PiDCoMKgwqDCoCBzcCAmPSB+N1VMOwo+Pgo+ PiDCoMKgwqDCoCAvKiBzdGFjayB0aGUgbG9hZCBtYXAocykgKi8KPj4gLcKgwqDCoCBsZW4gPSBz aXplb2Yoc3RydWN0IGVsZjMyX2ZkcGljX2xvYWRtYXApOwo+PiAtwqDCoMKgIGxlbiArPSBzaXpl b2Yoc3RydWN0IGVsZjMyX2ZkcGljX2xvYWRzZWcpICogZXhlY19wYXJhbXMtPmxvYWRtYXAtPm5z ZWdzOwo+PiArwqDCoMKgIGxlbiA9IHNpemVvZihzdHJ1Y3QgZWxmX2ZkcGljX2xvYWRtYXApOwo+ PiArwqDCoMKgIGxlbiArPSBzaXplb2Yoc3RydWN0IGVsZl9mZHBpY19sb2Fkc2VnKSAqIGV4ZWNf cGFyYW1zLT5sb2FkbWFwLT5uc2VnczsKPj4gwqDCoMKgwqAgc3AgPSAoc3AgLSBsZW4pICYgfjdV TDsKPj4gwqDCoMKgwqAgZXhlY19wYXJhbXMtPm1hcF9hZGRyID0gc3A7Cj4+Cj4+IEBAIC01NzEs OCArNTcxLDggQEAgc3RhdGljIGludCBjcmVhdGVfZWxmX2ZkcGljX3RhYmxlcyhzdHJ1Y3QgbGlu dXhfYmlucHJtICpicHJtLAo+PiDCoMKgwqDCoCBjdXJyZW50LT5tbS0+Y29udGV4dC5leGVjX2Zk cGljX2xvYWRtYXAgPSAodW5zaWduZWQgbG9uZykgc3A7Cj4+Cj4+IMKgwqDCoMKgIGlmIChpbnRl cnBfcGFyYW1zLT5sb2FkbWFwKSB7Cj4+IC3CoMKgwqDCoMKgwqDCoCBsZW4gPSBzaXplb2Yoc3Ry dWN0IGVsZjMyX2ZkcGljX2xvYWRtYXApOwo+PiAtwqDCoMKgwqDCoMKgwqAgbGVuICs9IHNpemVv ZihzdHJ1Y3QgZWxmMzJfZmRwaWNfbG9hZHNlZykgKgo+PiArwqDCoMKgwqDCoMKgwqAgbGVuID0g c2l6ZW9mKHN0cnVjdCBlbGZfZmRwaWNfbG9hZG1hcCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBsZW4g Kz0gc2l6ZW9mKHN0cnVjdCBlbGZfZmRwaWNfbG9hZHNlZykgKgo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgaW50ZXJwX3BhcmFtcy0+bG9hZG1hcC0+bnNlZ3M7Cj4+IMKgwqDCoMKgwqDCoMKg wqAgc3AgPSAoc3AgLSBsZW4pICYgfjdVTDsKPj4gwqDCoMKgwqDCoMKgwqDCoCBpbnRlcnBfcGFy YW1zLT5tYXBfYWRkciA9IHNwOwo+PiBAQCAtNzQwLDEyICs3NDAsMTIgQEAgc3RhdGljIGludCBl bGZfZmRwaWNfbWFwX2ZpbGUoc3RydWN0IGVsZl9mZHBpY19wYXJhbXMgKnBhcmFtcywKPj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgY2hhciAqd2hhdCkK Pj4gwqB7Cj4+IC3CoMKgwqAgc3RydWN0IGVsZjMyX2ZkcGljX2xvYWRtYXAgKmxvYWRtYXA7Cj4+ ICvCoMKgwqAgc3RydWN0IGVsZl9mZHBpY19sb2FkbWFwICpsb2FkbWFwOwo+PiDCoCNpZmRlZiBD T05GSUdfTU1VCj4+IC3CoMKgwqAgc3RydWN0IGVsZjMyX2ZkcGljX2xvYWRzZWcgKm1zZWc7Cj4+ ICvCoMKgwqAgc3RydWN0IGVsZl9mZHBpY19sb2Fkc2VnICptc2VnOwo+PiDCoCNlbmRpZgo+PiAt wqDCoMKgIHN0cnVjdCBlbGYzMl9mZHBpY19sb2Fkc2VnICpzZWc7Cj4+IC3CoMKgwqAgc3RydWN0 IGVsZjMyX3BoZHIgKnBoZHI7Cj4+ICvCoMKgwqAgc3RydWN0IGVsZl9mZHBpY19sb2Fkc2VnICpz ZWc7Cj4+ICvCoMKgwqAgc3RydWN0IGVsZl9waGRyICpwaGRyOwo+PiDCoMKgwqDCoCB1bnNpZ25l ZCBsb25nIGxvYWRfYWRkciwgc3RvcDsKPj4gwqDCoMKgwqAgdW5zaWduZWQgbmxvYWRzLCB0bXA7 Cj4+IMKgwqDCoMKgIHNpemVfdCBzaXplOwo+PiBAQCAtNzY3LDcgKzc2Nyw3IEBAIHN0YXRpYyBp bnQgZWxmX2ZkcGljX21hcF9maWxlKHN0cnVjdCBlbGZfZmRwaWNfcGFyYW1zICpwYXJhbXMsCj4+ Cj4+IMKgwqDCoMKgIHBhcmFtcy0+bG9hZG1hcCA9IGxvYWRtYXA7Cj4+Cj4+IC3CoMKgwqAgbG9h ZG1hcC0+dmVyc2lvbiA9IEVMRjMyX0ZEUElDX0xPQURNQVBfVkVSU0lPTjsKPj4gK8KgwqDCoCBs b2FkbWFwLT52ZXJzaW9uID0gRUxGX0ZEUElDX0xPQURNQVBfVkVSU0lPTjsKPj4gwqDCoMKgwqAg bG9hZG1hcC0+bnNlZ3MgPSBubG9hZHM7Cj4+Cj4+IMKgwqDCoMKgIGxvYWRfYWRkciA9IHBhcmFt cy0+bG9hZF9hZGRyOwo+PiBAQCAtODQzLDggKzg0Myw4IEBAIHN0YXRpYyBpbnQgZWxmX2ZkcGlj X21hcF9maWxlKHN0cnVjdCBlbGZfZmRwaWNfcGFyYW1zICpwYXJhbXMsCj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBpZiAocGhkci0+cF92YWRkciA+PSBzZWctPnBfdmFkZHIgJiYKPj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGhkci0+cF92YWRkciArIHBoZHItPnBfbWVt c3ogPD0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VnLT5wX3ZhZGRyICsg c2VnLT5wX21lbXN6KSB7Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRWxmMzJf RHluIF9fdXNlciAqZHluOwo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEVsZjMy X1N3b3JkIGRfdGFnOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEVsZl9EeW4g X191c2VyICpkeW47Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRWxmX1N3b3Jk IGRfdGFnOwo+Pgo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwYXJhbXMtPmR5 bmFtaWNfYWRkciA9Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KHBoZHItPnBfdmFkZHIgLSBzZWctPnBfdmFkZHIpICsKPj4gQEAgLTg1NCwxMSArODU0LDExIEBA IHN0YXRpYyBpbnQgZWxmX2ZkcGljX21hcF9maWxlKHN0cnVjdCBlbGZfZmRwaWNfcGFyYW1zICpw YXJhbXMsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBvbmUgaXRlbSwg YW5kIHRoYXQgdGhlIGxhc3QgaXRlbSBpcyBhIE5VTEwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAqIGVudHJ5ICovCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGlmIChwaGRyLT5wX21lbXN6ID09IDAgfHwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHBoZHItPnBfbWVtc3ogJSBzaXplb2YoRWxmMzJfRHluKSAhPSAwKQo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGhkci0+cF9tZW1zeiAl IHNpemVvZihFbGZfRHluKSAhPSAwKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGdvdG8gZHluYW1pY19lcnJvcjsKPj4KPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB0bXAgPSBwaGRyLT5wX21lbXN6IC8gc2l6ZW9mKEVsZjMyX0R5bik7Cj4+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZHluID0gKEVsZjMyX0R5biBfX3VzZXIgKilw YXJhbXMtPmR5bmFtaWNfYWRkcjsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0 bXAgPSBwaGRyLT5wX21lbXN6IC8gc2l6ZW9mKEVsZl9EeW4pOwo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGR5biA9IChFbGZfRHluIF9fdXNlciAqKXBhcmFtcy0+ZHluYW1pY19h ZGRyOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoZ2V0X3VzZXIoZF90 YWcsICZkeW5bdG1wIC0gMV0uZF90YWcpIHx8Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZF90YWcgIT0gMCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBnb3RvIGR5bmFtaWNfZXJyb3I7Cj4+IEBAIC05MjcsOCArOTI3LDggQEAg c3RhdGljIGludCBlbGZfZmRwaWNfbWFwX2ZpbGVfY29uc3RkaXNwX29uX3VjbGludXgoCj4+IMKg wqDCoMKgIHN0cnVjdCBmaWxlICpmaWxlLAo+PiDCoMKgwqDCoCBzdHJ1Y3QgbW1fc3RydWN0ICpt bSkKPj4gwqB7Cj4+IC3CoMKgwqAgc3RydWN0IGVsZjMyX2ZkcGljX2xvYWRzZWcgKnNlZzsKPj4g LcKgwqDCoCBzdHJ1Y3QgZWxmMzJfcGhkciAqcGhkcjsKPj4gK8KgwqDCoCBzdHJ1Y3QgZWxmX2Zk cGljX2xvYWRzZWcgKnNlZzsKPj4gK8KgwqDCoCBzdHJ1Y3QgZWxmX3BoZHIgKnBoZHI7Cj4+IMKg wqDCoMKgIHVuc2lnbmVkIGxvbmcgbG9hZF9hZGRyLCBiYXNlID0gVUxPTkdfTUFYLCB0b3AgPSAw LCBtYWRkciA9IDA7Cj4+IMKgwqDCoMKgIGludCBsb29wLCByZXQ7Cj4+Cj4+IEBAIC0xMDExLDgg KzEwMTEsOCBAQCBzdGF0aWMgaW50IGVsZl9mZHBpY19tYXBfZmlsZV9ieV9kaXJlY3RfbW1hcChz dHJ1Y3QgZWxmX2ZkcGljX3BhcmFtcyAqcGFyYW1zLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZmlsZSAqZmlsZSwKPj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IG1tX3N0 cnVjdCAqbW0pCj4+IMKgewo+PiAtwqDCoMKgIHN0cnVjdCBlbGYzMl9mZHBpY19sb2Fkc2VnICpz ZWc7Cj4+IC3CoMKgwqAgc3RydWN0IGVsZjMyX3BoZHIgKnBoZHI7Cj4+ICvCoMKgwqAgc3RydWN0 IGVsZl9mZHBpY19sb2Fkc2VnICpzZWc7Cj4+ICvCoMKgwqAgc3RydWN0IGVsZl9waGRyICpwaGRy Owo+PiDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIGxvYWRfYWRkciwgZGVsdGFfdmFkZHI7Cj4+IMKg wqDCoMKgIGludCBsb29wLCBkdnNldDsKPj4KPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv ZWxmLWZkcGljLmggYi9pbmNsdWRlL2xpbnV4L2VsZi1mZHBpYy5oCj4+IGluZGV4IDNiZWE5NWEx YWY1MzcuLmU1MzNmNDUxMzE5NDUgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvbGludXgvZWxmLWZk cGljLmgKPj4gKysrIGIvaW5jbHVkZS9saW51eC9lbGYtZmRwaWMuaAo+PiBAQCAtMTAsMTMgKzEw LDI1IEBACj4+Cj4+IMKgI2luY2x1ZGUgPHVhcGkvbGludXgvZWxmLWZkcGljLmg+Cj4+Cj4+ICsj aWYgRUxGX0NMQVNTID09IEVMRkNMQVNTMzIKPj4gKyNkZWZpbmUgRWxmX1N3b3JkwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBFbGYzMl9Td29yZAo+PiArI2RlZmluZSBlbGZfZmRwaWNfbG9hZHNlZ8Kg wqDCoMKgwqDCoMKgIGVsZjMyX2ZkcGljX2xvYWRzZWcKPj4gKyNkZWZpbmUgZWxmX2ZkcGljX2xv YWRtYXDCoMKgwqDCoMKgwqDCoCBlbGYzMl9mZHBpY19sb2FkbWFwCj4+ICsjZGVmaW5lIEVMRl9G RFBJQ19MT0FETUFQX1ZFUlNJT07CoMKgwqAgRUxGMzJfRkRQSUNfTE9BRE1BUF9WRVJTSU9OCj4+ ICsjZWxzZQo+PiArI2RlZmluZSBFbGZfU3dvcmTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEVsZjY0 X1N4d29yZAo+PiArI2RlZmluZSBlbGZfZmRwaWNfbG9hZG1hcMKgwqDCoMKgwqDCoMKgIGVsZjY0 X2ZkcGljX2xvYWRtYXAKPj4gKyNkZWZpbmUgZWxmX2ZkcGljX2xvYWRzZWfCoMKgwqDCoMKgwqDC oCBlbGY2NF9mZHBpY19sb2Fkc2VnCj4+ICsjZGVmaW5lIEVMRl9GRFBJQ19MT0FETUFQX1ZFUlNJ T07CoMKgwqAgRUxGNjRfRkRQSUNfTE9BRE1BUF9WRVJTSU9OCj4+ICsjZW5kaWYKPj4gKwo+PiDC oC8qCj4+IMKgICogYmluZm10IGJpbmFyeSBwYXJhbWV0ZXJzIHN0cnVjdHVyZQo+PiDCoCAqLwo+ PiDCoHN0cnVjdCBlbGZfZmRwaWNfcGFyYW1zIHsKPj4gwqDCoMKgwqAgc3RydWN0IGVsZmhkcsKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaGRyO8KgwqDCoMKgwqDCoMKgIC8qIHJlZiBjb3B5IG9mIEVM RiBoZWFkZXIgKi8KPj4gwqDCoMKgwqAgc3RydWN0IGVsZl9waGRywqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAqcGhkcnM7wqDCoMKgwqDCoMKgwqAgLyogcmVmIGNvcHkgb2YgUFRfUEhEUiB0YWJsZSAq Lwo+PiAtwqDCoMKgIHN0cnVjdCBlbGYzMl9mZHBpY19sb2FkbWFwwqDCoMKgICpsb2FkbWFwO8Kg wqDCoCAvKiBsb2FkbWFwIHRvIGJlIHBhc3NlZCB0byB1c2Vyc3BhY2UgKi8KPj4gK8KgwqDCoCBz dHJ1Y3QgZWxmX2ZkcGljX2xvYWRtYXDCoMKgwqAgKmxvYWRtYXA7wqDCoMKgIC8qIGxvYWRtYXAg dG8gYmUgcGFzc2VkIHRvIHVzZXJzcGFjZSAqLwo+PiDCoMKgwqDCoCB1bnNpZ25lZCBsb25nwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBlbGZoZHJfYWRkcjvCoMKgwqAgLyogbWFwcGVkIEVMRiBoZWFk ZXIgdXNlciBhZGRyZXNzICovCj4+IMKgwqDCoMKgIHVuc2lnbmVkIGxvbmfCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHBoX2FkZHI7wqDCoMKgIC8qIG1hcHBlZCBQVF9QSERSIHVzZXIgYWRkcmVzcyAq Lwo+PiDCoMKgwqDCoCB1bnNpZ25lZCBsb25nwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtYXBfYWRk cjvCoMKgwqAgLyogbWFwcGVkIGxvYWRtYXAgdXNlciBhZGRyZXNzICovCj4+IGRpZmYgLS1naXQg YS9pbmNsdWRlL3VhcGkvbGludXgvZWxmLWZkcGljLmggYi9pbmNsdWRlL3VhcGkvbGludXgvZWxm LWZkcGljLmgKPj4gaW5kZXggNGZjYzZjZmViZTE4NS4uZWMyM2YwODcxMTI5MiAxMDA2NDQKPj4g LS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2VsZi1mZHBpYy5oCj4+ICsrKyBiL2luY2x1ZGUvdWFw aS9saW51eC9lbGYtZmRwaWMuaAo+PiBAQCAtMzIsNCArMzIsMTkgQEAgc3RydWN0IGVsZjMyX2Zk cGljX2xvYWRtYXAgewo+Pgo+PiDCoCNkZWZpbmUgRUxGMzJfRkRQSUNfTE9BRE1BUF9WRVJTSU9O wqDCoMKgIDB4MDAwMAo+Pgo+PiArLyogc2VnbWVudCBtYXBwaW5ncyBmb3IgRUxGIEZEUElDIGxp YnJhcmllcy9leGVjdXRhYmxlcy9pbnRlcnByZXRlcnMgKi8KPj4gK3N0cnVjdCBlbGY2NF9mZHBp Y19sb2Fkc2VnIHsKPj4gK8KgwqDCoCBFbGY2NF9BZGRywqDCoMKgIGFkZHI7wqDCoMKgwqDCoMKg wqAgLyogY29yZSBhZGRyZXNzIHRvIHdoaWNoIG1hcHBlZCAqLwo+PiArwqDCoMKgIEVsZjY0X0Fk ZHLCoMKgwqAgcF92YWRkcjvCoMKgwqAgLyogVk1BIHJlY29yZGVkIGluIGZpbGUgKi8KPj4gK8Kg wqDCoCBFbGY2NF9Xb3JkwqDCoMKgIHBfbWVtc3o7wqDCoMKgIC8qIGFsbG9jYXRpb24gc2l6ZSBy ZWNvcmRlZCBpbiBmaWxlICovCj4+ICt9Owo+PiArCj4+ICtzdHJ1Y3QgZWxmNjRfZmRwaWNfbG9h ZG1hcCB7Cj4+ICvCoMKgwqAgRWxmNjRfSGFsZsKgwqDCoCB2ZXJzaW9uO8KgwqDCoCAvKiB2ZXJz aW9uIG9mIHRoZXNlIHN0cnVjdHVyZXMsIGp1c3QgaW4gY2FzZS4uLiAqLwo+PiArwqDCoMKgIEVs ZjY0X0hhbGbCoMKgwqAgbnNlZ3M7wqDCoMKgwqDCoMKgwqAgLyogbnVtYmVyIG9mIHNlZ21lbnRz ICovCj4+ICvCoMKgwqAgc3RydWN0IGVsZjY0X2ZkcGljX2xvYWRzZWcgc2Vnc1tdOwo+PiArfTsK Pj4gKwo+PiArI2RlZmluZSBFTEY2NF9GRFBJQ19MT0FETUFQX1ZFUlNJT07CoMKgwqAgMHgwMDAw Cj4+ICsKPj4gwqAjZW5kaWYgLyogX1VBUElfTElOVVhfRUxGX0ZEUElDX0ggKi8KPiAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1h aWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5p bmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK 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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0F6CCC6FD18 for ; Wed, 29 Mar 2023 13:49:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5F55E6B0072; Wed, 29 Mar 2023 09:49:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5A5586B0074; Wed, 29 Mar 2023 09:49:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 46DE96B0075; Wed, 29 Mar 2023 09:49:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 381D16B0072 for ; Wed, 29 Mar 2023 09:49:07 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id DF30CAC28B for ; Wed, 29 Mar 2023 13:49:06 +0000 (UTC) X-FDA: 80622067092.17.442A4CE Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf11.hostedemail.com (Postfix) with ESMTP id E4AAF4001A for ; Wed, 29 Mar 2023 13:49:03 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=L9cQD2qJ; spf=pass (imf11.hostedemail.com: domain of gerg@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=gerg@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680097744; a=rsa-sha256; cv=none; b=w0T8t4+LSQarO/ugUsDSdcWqrTRfa5CG806uHdYHirqW1AEk3cQOh3w/rr4/HmSfiP+wN0 rnOGA6Q3Rh46+qHF+rosQs58y7ibCexNFlVqiRQH4tLst96stiuvRpjAj9+11cUPxmCS/O /mMp5AoDxAAI38nkTHrmCdssJ6qWnzs= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=L9cQD2qJ; spf=pass (imf11.hostedemail.com: domain of gerg@kernel.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=gerg@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680097744; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=AVciClgdIFQR2joBsbvfANUOKQ9IRIm6tnahs4X1aBI=; b=h0CfE/rI6EDr+bxTXpY8paSteuBsVQAIm9JiCR52IMX+ETD69OYGwAvYUTTmK+W+9ka/XZ aYD8pqEUSx54xsdWgt7eg1qTVRh1T9WowfgNhOr3eM4p/RPYrqnsEYjspyGyqpWNHGUH8E /thidaSPOSVssZ0sMoGNTXB/8+1x+jo= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 16040B8232E; Wed, 29 Mar 2023 13:49:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C12BEC433D2; Wed, 29 Mar 2023 13:48:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1680097740; bh=4CYRpZJwGBLZQdCvRQ/0yUVdTu1yQ3sxxG0UwTS2TfI=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=L9cQD2qJlnnTQf4Y0EZwxebIrjGPmUQ6Xgi71qfGoylBP9iTlc6dU8p1vRI2pDaa+ q7zMjW9cfp0uRsG2eMPutCkBUNUJD8CBhPB5eZ+pzf5oalAMOvEiExxUx6p3YNIaNB GHiNZu2sttJtexBuLl8Lo/G6znxaANW3rBSXJ85VIDsejwZ8192Vup2uMKfaaHUQA0 9VBgvNaHqRtxRq1aazYh5rzuiQFD/iKQ3omCp/ahlIy9NPMRD7dZY8+f3xz0pNzalh vSarXTZUItKG75CPSRZn0ybJQnsoJfTVqvqveMyZ/HlcvmWXwYp5M6JDym5lgMS0Hk r08PIi+/An4jg== Message-ID: Date: Wed, 29 Mar 2023 23:48:55 +1000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH 1/2] binfmt_elf_fdpic: support 64-bit systems Content-Language: en-US To: Palmer Dabbelt , viro@zeniv.linux.org.uk, brauner@kernel.org, ebiederm@xmission.com, keescook@chromium.org Cc: linux-riscv@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org References: From: Greg Ungerer In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: E4AAF4001A X-Rspamd-Server: rspam01 X-Stat-Signature: i41wyhczptzcz3tjxeo1np8yay9zseaa X-HE-Tag: 1680097743-969194 X-HE-Meta: U2FsdGVkX1/C5sDwwKAlgWDPHMW9xlYUgywi9RPSpT17oix6vwpu+i0dOL2dO0bfoekWagareJS7/Gtxf/wMV7K8CZR7KdZscFHZu7W3c7FMmkfQFI5GeTappmG+1oO+El3oIW71Y5z/+MiEL5ZSttaq53KNyGnOr2eu3/jbNZHGukY6whO2kJAaeiqk0G5zHu3LaQ3TSuBuKEeOlwaREA6gj4x685Nq/Ty82IFTBRvL84SsQjj518XXFCN++6/5anUHLVZIqWWqDv6fncXqSQ36BwSJn1WKJj2J8UZcDeyd2qSTvBLf/PI5NAh5qVI3jkmEkRgBDwJu100ll3qsf+a2yPFIL890hlqpOAjNiYtsKUrsXQ4XWKT1BPcpvYUW4oJEHHETEPn7HboV/+EOU8vo88IIaKyZWyVoWZ5TfsGO9ydu6WY7oyt1jczCP0vnk25dzsDQue93uv263RwGJgWkWT0qDYfccC1+4tkdwfQrNneXtXiK1hKCrrghtmWckVr1OqJ5knIYAFC59H3q6JOqJ8dt3sxHt/0r24oDAEvUIMw8ZI7HJLNNQ4AY0h1f6+sMCJhsNgku8AABos3V34u7XpnXm1WiwZffF7mkyMhWyn6PQw9TNLbwUCUcMqIP4JKV5OjghWj6Q6Kqet8Fp2pfz76nL97fMEZNggMHRGU56y86kdowEAu7ypFdGiHE2E8bzmNX1fqbPNuaUXHeD0W6N4dKISa5nEV4z4tSARreaNEns5Yn3S/9gKdRiMvwb6JLoVH8+qLXQoZELrA4P4QJdXDoim3qyIgVKoqLLPdp9spoaPYC+Nxw4eha9w0eDAJ0+tZ7TJRLSIuLdhcha+10qpy0DjFyU3lrQ17jSnXRGOEYK5IHk4pmE5qkf+V2giG5ZKcxQCwevWXZY49W9qz4/v0frWvdvqySqVBY0plAeRAwU3ubnmGIz/ddJh7AvaWIrvruBBaQBjGHgGl 1YlT6qyl aVR8IfckPtjYZe9cR6XXwx2zZSZgadSmQP9BMl7zuvM0abxV81SNGJnFiyEex48fVubEhUo0bFs5yWfJxj7o9kQ6oHTyibEjCN5pSME2++Fhsv6KWMfiYwdv0BBGYWN+qc0VDCW3dEV1+PAp7iJuRJGomrsvvHyR58jBW2/7hd/FyVYXZ5uzVHErok1APylhGZP6xr98QZCkzbjsHrN3TXfeGkwI90d9VY8fK7KQFizDYc6G7DOmf1D95dA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 22/3/23 08:49, Palmer Dabbelt wrote: > On Tue, 28 Feb 2023 05:51:25 PST (-0800), gerg@kernel.org wrote: >> The binfmt_flat_fdpic code has a number of 32-bit specific data >> structures associated with it. Extend it to be able to support and >> be used on 64-bit systems as well. >> >> The new code defines a number of key 64-bit variants of the core >> elf-fdpic data structures - along side the existing 32-bit sized ones. >> A common set of generic named structures are defined to be either >> the 32-bit or 64-bit ones as required at compile time. This is a >> similar technique to that used in the ELF binfmt loader. >> >> For example: >> >>   elf_fdpic_loadseg is either elf32_fdpic_loadseg or elf64_fdpic_loadseg >>   elf_fdpic_loadmap is either elf32_fdpic_loadmap or elf64_fdpic_loadmap >> >> the choice based on ELFCLASS32 or ELFCLASS64. >> >> Signed-off-by: Greg Ungerer >> --- >>  fs/binfmt_elf_fdpic.c          | 38 +++++++++++++++++----------------- >>  include/linux/elf-fdpic.h      | 14 ++++++++++++- >>  include/uapi/linux/elf-fdpic.h | 15 ++++++++++++++ >>  3 files changed, 47 insertions(+), 20 deletions(-) > > Adding some of the binfmt/fs folks, who weren't directly on the mail. It's looking like we're generally OK with this in RISC-V land, though there's still no userspace posted.  I don't think there's any rush here and it might be prudent to wait for userspace to start going through a bit of a review, but figured I'd at least poke everyone to see if there's any thoughts. > > I'm fine either way, so > Acked-by: Palmer Dabbelt > > if that helps any.  Also happy to take this through the RISC-V tree along with the other if that's easier, but again no rush. Just following up. I haven't seen any feedback on this - did I miss any? Regards Greg >> diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c >> index a05eafcacfb27..2eea6dd429fd6 100644 >> --- a/fs/binfmt_elf_fdpic.c >> +++ b/fs/binfmt_elf_fdpic.c >> @@ -138,7 +138,7 @@ static int is_constdisp(struct elfhdr *hdr) >>  static int elf_fdpic_fetch_phdrs(struct elf_fdpic_params *params, >>                   struct file *file) >>  { >> -    struct elf32_phdr *phdr; >> +    struct elf_phdr *phdr; >>      unsigned long size; >>      int retval, loop; >>      loff_t pos = params->hdr.e_phoff; >> @@ -560,8 +560,8 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm, >>      sp &= ~7UL; >> >>      /* stack the load map(s) */ >> -    len = sizeof(struct elf32_fdpic_loadmap); >> -    len += sizeof(struct elf32_fdpic_loadseg) * exec_params->loadmap->nsegs; >> +    len = sizeof(struct elf_fdpic_loadmap); >> +    len += sizeof(struct elf_fdpic_loadseg) * exec_params->loadmap->nsegs; >>      sp = (sp - len) & ~7UL; >>      exec_params->map_addr = sp; >> >> @@ -571,8 +571,8 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm, >>      current->mm->context.exec_fdpic_loadmap = (unsigned long) sp; >> >>      if (interp_params->loadmap) { >> -        len = sizeof(struct elf32_fdpic_loadmap); >> -        len += sizeof(struct elf32_fdpic_loadseg) * >> +        len = sizeof(struct elf_fdpic_loadmap); >> +        len += sizeof(struct elf_fdpic_loadseg) * >>              interp_params->loadmap->nsegs; >>          sp = (sp - len) & ~7UL; >>          interp_params->map_addr = sp; >> @@ -740,12 +740,12 @@ static int elf_fdpic_map_file(struct elf_fdpic_params *params, >>                    struct mm_struct *mm, >>                    const char *what) >>  { >> -    struct elf32_fdpic_loadmap *loadmap; >> +    struct elf_fdpic_loadmap *loadmap; >>  #ifdef CONFIG_MMU >> -    struct elf32_fdpic_loadseg *mseg; >> +    struct elf_fdpic_loadseg *mseg; >>  #endif >> -    struct elf32_fdpic_loadseg *seg; >> -    struct elf32_phdr *phdr; >> +    struct elf_fdpic_loadseg *seg; >> +    struct elf_phdr *phdr; >>      unsigned long load_addr, stop; >>      unsigned nloads, tmp; >>      size_t size; >> @@ -767,7 +767,7 @@ static int elf_fdpic_map_file(struct elf_fdpic_params *params, >> >>      params->loadmap = loadmap; >> >> -    loadmap->version = ELF32_FDPIC_LOADMAP_VERSION; >> +    loadmap->version = ELF_FDPIC_LOADMAP_VERSION; >>      loadmap->nsegs = nloads; >> >>      load_addr = params->load_addr; >> @@ -843,8 +843,8 @@ static int elf_fdpic_map_file(struct elf_fdpic_params *params, >>              if (phdr->p_vaddr >= seg->p_vaddr && >>                  phdr->p_vaddr + phdr->p_memsz <= >>                  seg->p_vaddr + seg->p_memsz) { >> -                Elf32_Dyn __user *dyn; >> -                Elf32_Sword d_tag; >> +                Elf_Dyn __user *dyn; >> +                Elf_Sword d_tag; >> >>                  params->dynamic_addr = >>                      (phdr->p_vaddr - seg->p_vaddr) + >> @@ -854,11 +854,11 @@ static int elf_fdpic_map_file(struct elf_fdpic_params *params, >>                   * one item, and that the last item is a NULL >>                   * entry */ >>                  if (phdr->p_memsz == 0 || >> -                    phdr->p_memsz % sizeof(Elf32_Dyn) != 0) >> +                    phdr->p_memsz % sizeof(Elf_Dyn) != 0) >>                      goto dynamic_error; >> >> -                tmp = phdr->p_memsz / sizeof(Elf32_Dyn); >> -                dyn = (Elf32_Dyn __user *)params->dynamic_addr; >> +                tmp = phdr->p_memsz / sizeof(Elf_Dyn); >> +                dyn = (Elf_Dyn __user *)params->dynamic_addr; >>                  if (get_user(d_tag, &dyn[tmp - 1].d_tag) || >>                      d_tag != 0) >>                      goto dynamic_error; >> @@ -927,8 +927,8 @@ static int elf_fdpic_map_file_constdisp_on_uclinux( >>      struct file *file, >>      struct mm_struct *mm) >>  { >> -    struct elf32_fdpic_loadseg *seg; >> -    struct elf32_phdr *phdr; >> +    struct elf_fdpic_loadseg *seg; >> +    struct elf_phdr *phdr; >>      unsigned long load_addr, base = ULONG_MAX, top = 0, maddr = 0; >>      int loop, ret; >> >> @@ -1011,8 +1011,8 @@ static int elf_fdpic_map_file_by_direct_mmap(struct elf_fdpic_params *params, >>                           struct file *file, >>                           struct mm_struct *mm) >>  { >> -    struct elf32_fdpic_loadseg *seg; >> -    struct elf32_phdr *phdr; >> +    struct elf_fdpic_loadseg *seg; >> +    struct elf_phdr *phdr; >>      unsigned long load_addr, delta_vaddr; >>      int loop, dvset; >> >> diff --git a/include/linux/elf-fdpic.h b/include/linux/elf-fdpic.h >> index 3bea95a1af537..e533f45131945 100644 >> --- a/include/linux/elf-fdpic.h >> +++ b/include/linux/elf-fdpic.h >> @@ -10,13 +10,25 @@ >> >>  #include >> >> +#if ELF_CLASS == ELFCLASS32 >> +#define Elf_Sword            Elf32_Sword >> +#define elf_fdpic_loadseg        elf32_fdpic_loadseg >> +#define elf_fdpic_loadmap        elf32_fdpic_loadmap >> +#define ELF_FDPIC_LOADMAP_VERSION    ELF32_FDPIC_LOADMAP_VERSION >> +#else >> +#define Elf_Sword            Elf64_Sxword >> +#define elf_fdpic_loadmap        elf64_fdpic_loadmap >> +#define elf_fdpic_loadseg        elf64_fdpic_loadseg >> +#define ELF_FDPIC_LOADMAP_VERSION    ELF64_FDPIC_LOADMAP_VERSION >> +#endif >> + >>  /* >>   * binfmt binary parameters structure >>   */ >>  struct elf_fdpic_params { >>      struct elfhdr            hdr;        /* ref copy of ELF header */ >>      struct elf_phdr            *phdrs;        /* ref copy of PT_PHDR table */ >> -    struct elf32_fdpic_loadmap    *loadmap;    /* loadmap to be passed to userspace */ >> +    struct elf_fdpic_loadmap    *loadmap;    /* loadmap to be passed to userspace */ >>      unsigned long            elfhdr_addr;    /* mapped ELF header user address */ >>      unsigned long            ph_addr;    /* mapped PT_PHDR user address */ >>      unsigned long            map_addr;    /* mapped loadmap user address */ >> diff --git a/include/uapi/linux/elf-fdpic.h b/include/uapi/linux/elf-fdpic.h >> index 4fcc6cfebe185..ec23f08711292 100644 >> --- a/include/uapi/linux/elf-fdpic.h >> +++ b/include/uapi/linux/elf-fdpic.h >> @@ -32,4 +32,19 @@ struct elf32_fdpic_loadmap { >> >>  #define ELF32_FDPIC_LOADMAP_VERSION    0x0000 >> >> +/* segment mappings for ELF FDPIC libraries/executables/interpreters */ >> +struct elf64_fdpic_loadseg { >> +    Elf64_Addr    addr;        /* core address to which mapped */ >> +    Elf64_Addr    p_vaddr;    /* VMA recorded in file */ >> +    Elf64_Word    p_memsz;    /* allocation size recorded in file */ >> +}; >> + >> +struct elf64_fdpic_loadmap { >> +    Elf64_Half    version;    /* version of these structures, just in case... */ >> +    Elf64_Half    nsegs;        /* number of segments */ >> +    struct elf64_fdpic_loadseg segs[]; >> +}; >> + >> +#define ELF64_FDPIC_LOADMAP_VERSION    0x0000 >> + >>  #endif /* _UAPI_LINUX_ELF_FDPIC_H */ >