From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760776AbdJQWC3 (ORCPT ); Tue, 17 Oct 2017 18:02:29 -0400 Received: from mail-bn3nam01on0053.outbound.protection.outlook.com ([104.47.33.53]:37568 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756856AbdJQWC1 (ORCPT ); Tue, 17 Oct 2017 18:02:27 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=David.Daney@cavium.com; Subject: Re: [PATCH] mdt: slram: use memremap() instead of ioremap() To: Roy Franz , dwmw2@infradead.org, computersforpeace@gmail.com, boris.brezillon@free-electrons.com, marek.vasut@gmail.com, richard@nod.at, cyrille.pitchen@wedev4u.fr Cc: roy.franz@cavium.com, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, ddaney@cavium.com References: <20171017205642.1791-1-roy.franz@cavium.com> From: David Daney Message-ID: Date: Tue, 17 Oct 2017 15:02:18 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <20171017205642.1791-1-roy.franz@cavium.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: CO2PR07CA0051.namprd07.prod.outlook.com (10.174.192.19) To BN6PR07MB3489.namprd07.prod.outlook.com (10.161.153.28) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ffc01486-1b69-4d8d-91e5-08d515aabfd8 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(2017030254152)(2017052603199)(201703131423075)(201703031133081)(201702281549075);SRVR:BN6PR07MB3489; X-Microsoft-Exchange-Diagnostics: 1;BN6PR07MB3489;3:8Jdu000wxIjuMcHlrIisZ9Rv0UvO6OBJ3euILm7zEODQUA1rBIe7zf8TGe3qVM7uJnTy+lPhRcyrX5LAKhG3iOfjWM5+VeDjCkDJeIH3J4hwO6Ff3MbjMVn6KtKhfYwwNNIOvT62kmY1BZFGYZxJHUkfBCYaNg1kr1PACvp0sRfmAFgln0QxvBeY9bXslQcXHc0K5PamwjDeuTWolA8URwrUC7pZkCosko0iJ01bgUhAAMHAjpvxqi82KeLO2Wn8;25:WnBNu1Bk915YJwEMx2gESy8gPMiLK/PPk6Y0OZyazfoUipygr3LJiZ4KmjrlFbE5VII4FcUr7w5CrKHdR9LQv+ig5j/Zxw0V0u1mXNHcnywLyFXHV20Cf/XTL8lwQG93dpJkQ8kpc4cvbcGrkks+/BHBB7B3m/LeExdbsE7UoLDXBeGrp3MiXaxx4uCXCcA5KP9WtF0nnBxCYxovje547gBtoR99lmLzyDDUhq+DPyQym2sQwtuDfwMc2hFtM3i+vfINdAGr+YFvI0lG01K1HvFg0pwrbEapWymGwhi5YHXEIkprzRtgUaxzxk6jd1O1nCFyFiwnpQkPEAQwUSxxQAXZlpoO5byUw3wi4zaHfy0=;31:FGCZyLpYYP6Cb1vFDuAtyi5jemxzxE4bUwd7tX0NTZ13kNTzAfskBV/J6iXp45K0VVgDF8cPnLKpS5Hd8ddBATbuIsDgit4V6QwGhly7T8wKIDHX5QvFB21tNfBXi5i6tUDUkuIrR0oa+nNK/5Kczz4egVjn8mCbvKgig9mgQhw5nbLM5NrHt0PjNSe0qXfA43GZ/rar58WKSHvDMqxpbM77SBmonEpPGpgQD10OvQc= X-MS-TrafficTypeDiagnostic: BN6PR07MB3489: X-Microsoft-Exchange-Diagnostics: 1;BN6PR07MB3489;20:ZF1WQyqWg6VImVi58DfLJ+9SBfim5YN5zbD6IjPMjye0T5HbnL6y6PIGmHip6bd4cES6Shkq2R8I4r/NKDTqATebjsZ4UzdIkK7my7qduimnUO7kYN6uDNBMcAjygfLFMhPkfMt3mKGsk6uNo2YnmDRFAabZk6+f3HlwEF5AdagwPYi97O6h2g4/0DvKAPsY3rKae4raW+3lqTQtIdfKIeBzxsv4uq/ERjiJ7xl4ail7YTCfAcPUibC55QCnm3zYt4vZEYSG5bMuBTR9HpT7mxq43vVS5sKmT1n5FbhfsWBcsiu4qrDni/XKcxnX+CusOyRNAFR4lW+nKAsbbChrrBg4loNmLbO6sql0ZRfd17vptjutwn/Ehr7lkHynTCnq8/l0mhBE/C7jjpdoImPDL8FGYbzzunzxKGZCY+LwhX99YUsjU7crSnNK/ATebyh/PdpStvRNauzFWp/ullo6sx00s96W0hIqk7onEaJAxkLRNwZq6UITg9Mc/Pg6q9zPrP77h2VDJ80gov3ruDuh4JYSBk5enmpyKEROQpfp8HaL2w07v3DIxhb6WIVyOwa7P/Z9D3dgrb/D5nTHOI0FvnNJOz/HnjlSDu7ygkWiG48=;4:LWJDRx6mevAxdBGTQMSgS1bqPvAhFnZL4SAlo4m1JwCrcKwx9i7DxKjG+uUalaLhDs2rVonlc7j/RJeEtcghhOgRCoMnIeiQNpjhvVAiDu2IdAXqiOPytuVOqc/9mURxdWAr60xEWxGFwmbvzLPfOcKPAlC7HcUeN2CYZEVaM0XTkC4MHHe39gtLaISVPxxhb8VfB8aD+FWtLM/8CKHOxNZ5aZU7Hy9RFykAb9/I/2obRA4n6+AnLXrIC9BMChKJ X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(93006095)(3002001)(100000703101)(100105400095)(10201501046)(6041248)(20161123560025)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:BN6PR07MB3489;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:BN6PR07MB3489; X-Forefront-PRVS: 04631F8F77 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(346002)(376002)(24454002)(189002)(377454003)(199003)(58126008)(6486002)(42882006)(33646002)(53546010)(50466002)(8936002)(31686004)(97736004)(230700001)(316002)(23676002)(50986999)(2950100002)(64126003)(65956001)(66066001)(65806001)(31696002)(6116002)(81156014)(2906002)(72206003)(6512007)(3846002)(47776003)(8676002)(478600001)(5660300001)(105586002)(107886003)(305945005)(53936002)(76176999)(81166006)(83506001)(68736007)(65826007)(7736002)(53416004)(106356001)(69596002)(39060400002)(6666003)(25786009)(16526018)(6246003)(101416001)(4326008)(36756003)(229853002)(189998001)(54356999)(6506006);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR07MB3489;H:ddl.caveonetworks.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjA3TUIzNDg5OzIzOktERDgrM2JJT3pPS3JHM1VpcTNZY2tFM3Bh?= =?utf-8?B?TDNSYnNua3d3N29rQVF3aTNvV1NYbUdRd0s2SkZRNk0xdWgxbk8vNDNXd2o1?= =?utf-8?B?RzZyODN0RjRVV2oyVTExVUhNTVBlc2ZLSi9DNUpYT3UwSGtGeFhPbWlhVkFP?= =?utf-8?B?SjE0cTFMWVhjaHpBcTh1MDdqMVhmTnIwRk5TTUVsbFVIYXdpYTBhaERzRFRL?= =?utf-8?B?aEJsd3A1UVpYTnEwQk9DRE9jbFNjbWdWZElKb3U3UzdUcEl4c0dtTWU1Rk11?= =?utf-8?B?dUFIZnlVZmVScWJTMEdMRk5FbkNjdVpRaWc3cXFPV0VwSDQxRHFaNUd1SFd6?= =?utf-8?B?a3NGSS9pWWtYSjlzMVVzRkJPVXJDc1phaGN6VkZta1ZjWHl1UGowOWdRVERs?= =?utf-8?B?cmJKQ3QyMFhnRnYwbEFLeGh5SmFIblZFbjZ5eTh6MkhlS1hoL2tINnZ4K212?= =?utf-8?B?Um1TVzlPZUNwWVFLakFhWUFUaUZkQ3NYaVhmUGlTUVY0em9uRGIvVUFoNWFD?= =?utf-8?B?T01xMHpnbVBpaThndXIvRm91YXRRVzBwSWE2aDhvZHNIWS9lWFBFRENGbXYw?= =?utf-8?B?d3RReHkyNVdiR045azdCM3k0U3dsSXJ5NUZDTDNuY1VhZndFRjFtcGp4Rk9z?= =?utf-8?B?NXh3b2pLVGc1blJsQnZUVzBDVEhDMUVHR1QveEp3RGVuM2lBNUhKUHArWkVn?= =?utf-8?B?QklmSEgwNXJPWkQ4WVhjTkptc0J2WU5nUXk4V243WjRXR2xzSTNsZUJIYk9r?= =?utf-8?B?WUhkbGlIRTRtN0Uwa2VqTENVbGYyQzlacTZtWG9CLzkvcDl0K1lxcmU1cjk5?= =?utf-8?B?VmdJRG9zOFpZbjNXQ2JTUk9CWXZ1Y2drWWtWeGdUNzY5WjJ1OUJwZVNIZ21K?= =?utf-8?B?aHZmUTkvdDJwenY2YmQvZUxxemRScmFBMlUxd0RUMm5RVVo4UnNwZ24vVWgx?= =?utf-8?B?MklZSjNabG5UMVFLU1Bqc1VjSENyTm8vTytJd2tjcFEvajJham1uUlprS2Ux?= =?utf-8?B?bHlHT2MrR1oxT09KSHdCMDROVGxVQXhmVVJEV2JBU3FCb2dRTGxGYmJ3Um55?= =?utf-8?B?UEhiTXYraCtkUFZ1ZVM5Z1NsYTlHeGQ2eU5uUjNCTXNCbWYxYkgzY1E0OGY1?= =?utf-8?B?OWQ2MmRFZ0s5bVk3NnQrcVh2MWRwYUpPVFhsQzNRd1R2bklLWkZvSlRMZHVR?= =?utf-8?B?Z3FHTkdLbGNMMFM0djBMdU95Tk5hanpzMHE3RkJ4WGR0WXpBS0xmT0gyUHdX?= =?utf-8?B?OXdXRm5ONVB3U1NxK25LK241SEdlamNPOGprOWExZXBYMms4SUEyckpYMGZ6?= =?utf-8?B?clRvZXkxdXEwZFJGY2c1U2lLV2RLbHFXM2kwajdyeTdQSEoxUnd3N0c4aGJY?= =?utf-8?B?Q25vOE9ZR013K1pWdkl5YjZReGludWZXdXNNNnA5SWUzZ3BGRjFWUEVKV2pi?= =?utf-8?B?SVVQTWFKczFWcG8wYzdhK21pTmkzZ25Ma2kydkNHODRUQ0RtbmVackR0WmhX?= =?utf-8?B?bks0eWNaQ2ppZU5NK3VKSjdJUW5FZlJwNERkbC84YVNiUVFBSDI4VlNyMEw5?= =?utf-8?B?UGZzM2wwSVNzNVUzK25hVUNKbS9QRFJacmlKaWJmTm13dHN6KzFLNDdvNVVC?= =?utf-8?B?U0tWblJqM1ZJSlArVkR0RTl4T2gwL25QbUNiTFNCSnJaVFNYRTU2cnlPelJM?= =?utf-8?B?VE1oaTFHWmxrY25lMk1kSjlna05GWC95UFlBTG9va2luUG5wbTM0UFZkcTVT?= =?utf-8?B?dUNxY1pVb1k2bEs1Mmo0cUNmL3FsZVNuMmR4dDBIWkNKMFkxRFVMWSthWi9q?= =?utf-8?B?MTZDenhFQW1vRHZRTHJMNmlabUxOaFgzV3pHMEwwalZiRHNZTmN2eGE1d3ZV?= =?utf-8?Q?p6H1jYTRMnXKSJxSK1WjFHuZep4TmR2H?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR07MB3489;6:Xyj5Y2B6OHqi8xxTaOda2IbYktRzVedH4z1FtdeBxZJf3BDn27v4WMoRQV1Mfsvl8t9MtWWXe9ZxAlJPeFcquMKKfA8Y6TNec44cMwZmS/u5vXvjbZ0gB8428Ppl2nmFuPwBCrQgxpmPCloAeZIfl7OMuI8LbSwtaNGej4sqX+H2AK8KqQRemypbnTZMqWzb/UozErPORIsQ3kGOWiWehCoc2+zt5gSwz+6IDhM+xRRSeJXePFbkbt0IqR2fq5Czq/2b4RnzFwInTT72SiA6RfQO0Zv3Y2PAVizxcpmWKrHMO+0A6v3KxrcyiDSkbJifjUNFcL9I/YaqRoGDWhF4IA==;5:ealWbjvv5wXvEQ8YbgJsb/XC76VWrBhpIn3vhzuv6CTxd4oGmVs3c+SZPvbMEXsF2G69QeH3g57ZD4FFIdOcSkuT/eWfkqgfQS9AFLMLPkCt2jexd52A2b4laJyW35lMXnwtjeYa+/SsLqWjL4ikHg==;24:Iob6L8d65k0XY17+xdmRQ5s9q8NbXPejvYkCtcr2qtJXClyoDfDXRfClq3Ymm0B4peGHAPkq8plNrW3EsuXsyQSpe07igruJxqiuyqE5K0o=;7:EvE6uyXPXMeeuu96bqrxK1z2ufbUAiNew4kHdiSVVXn2D+I7V6vlAIZSIb73pkBmJVCDMk1qmMUJtzO0bMYRbZMPLBGjphzroPEcgXsbxAgO607zt6mdF47OSW7Q5bxnY9VGZOc89QjJErpoTq6j0ifSKl4TXpcgDV6s7dAbFzq+TqOJ64nsRuJ2la1Ihpe8h5/spCDDExny5upjFG/VJkK+IqSktQ4pAEXi9da+oiM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Oct 2017 22:02:22.2714 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3489 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/17/2017 01:56 PM, Roy Franz wrote: > Convert slram to use memremap() to map the memory it uses to back an MTD > device, as this is the proper interface for mapping memory. This change > enables normal memory to be used to back an MTD device on arm64, as arm64 > prevents ioremap() being used on normal memory. > > Signed-off-by: Roy Franz Thanks Roy. I just tested on MIPS64 with no regressions, so: Tested-by: David Daney > --- > Tested on arm64 simulation, using simulator to preload filesystem image into RAM, > and also tested on x86_64 using video card memory. This is useful for speeding > up booting on (very slow) emulation environments by avoiding any processing of > an initramfs. > > drivers/mtd/devices/slram.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/mtd/devices/slram.c b/drivers/mtd/devices/slram.c > index 8087c36dc693..0ec85f316d24 100644 > --- a/drivers/mtd/devices/slram.c > +++ b/drivers/mtd/devices/slram.c > @@ -163,8 +163,9 @@ static int register_device(char *name, unsigned long start, unsigned long length > } > > if (!(((slram_priv_t *)(*curmtd)->mtdinfo->priv)->start = > - ioremap(start, length))) { > - E("slram: ioremap failed\n"); > + memremap(start, length, > + MEMREMAP_WB | MEMREMAP_WT | MEMREMAP_WC))) { > + E("slram: memremap failed\n"); > return -EIO; > } > ((slram_priv_t *)(*curmtd)->mtdinfo->priv)->end = > @@ -186,7 +187,7 @@ static int register_device(char *name, unsigned long start, unsigned long length > > if (mtd_device_register((*curmtd)->mtdinfo, NULL, 0)) { > E("slram: Failed to register new device\n"); > - iounmap(((slram_priv_t *)(*curmtd)->mtdinfo->priv)->start); > + memunmap(((slram_priv_t *)(*curmtd)->mtdinfo->priv)->start); > kfree((*curmtd)->mtdinfo->priv); > kfree((*curmtd)->mtdinfo); > return(-EAGAIN); > @@ -206,7 +207,7 @@ static void unregister_devices(void) > while (slram_mtdlist) { > nextitem = slram_mtdlist->next; > mtd_device_unregister(slram_mtdlist->mtdinfo); > - iounmap(((slram_priv_t *)slram_mtdlist->mtdinfo->priv)->start); > + memunmap(((slram_priv_t *)slram_mtdlist->mtdinfo->priv)->start); > kfree(slram_mtdlist->mtdinfo->priv); > kfree(slram_mtdlist->mtdinfo); > kfree(slram_mtdlist); >