From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liviu Dudau Subject: Re: [PATCH 02/20] PCI: fix pci_remap_iospace() remap attribute Date: Fri, 17 Mar 2017 10:43:39 +0000 Message-ID: <20170317104339.GD24830@bart.dudau.co.uk> References: <20170227151436.18698-1-lorenzo.pieralisi@arm.com> <20170227151436.18698-3-lorenzo.pieralisi@arm.com> <20170316214844.GA17769@bhelgaas-glaptop.roam.corp.google.com> <20170317003321.GB28800@wotan.suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170317003321.GB28800@wotan.suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: "Luis R. Rodriguez" Cc: Wenrui Li , Gabriele Paoloni , linux-pci@vger.kernel.org, Shawn Lin , Liviu Dudau , Russell King , Thierry Reding , Tanmay Inamdar , linux-arch@vger.kernel.org, Lorenzo Pieralisi , Pratyush Anand , Michal Simek , Bharat Kumar Gogada , Murali Karicheri , Bjorn Helgaas , Catalin Marinas , "Paul E. McKenney" , Arnd Bergmann , Jon Mason , Will Deacon , John Garry , Joao Pinto , Bjorn Helgaas List-Id: linux-arch.vger.kernel.org T24gRnJpLCBNYXIgMTcsIDIwMTcgYXQgMDE6MzM6MjFBTSArMDEwMCwgTHVpcyBSLiBSb2RyaWd1 ZXogd3JvdGU6Cj4gT24gVGh1LCBNYXIgMTYsIDIwMTcgYXQgMDQ6NDg6NDRQTSAtMDUwMCwgQmpv cm4gSGVsZ2FhcyB3cm90ZToKPiA+IFsrY2MgTHVpc10KPiA+IAo+ID4gT24gTW9uLCBGZWIgMjcs IDIwMTcgYXQgMDM6MTQ6MTNQTSArMDAwMCwgTG9yZW56byBQaWVyYWxpc2kgd3JvdGU6Cj4gPiA+ IEFjY29yZGluZyB0byB0aGUgUENJIGxvY2FsIGJ1cyBzcGVjaWZpY2F0aW9ucyAoUmV2aXNpb24g My4wLCAzLjIuNSksCj4gPiA+IEkvTyBBZGRyZXNzIHNwYWNlIHRyYW5zYWN0aW9ucyBhcmUgbm9u LXBvc3RlZC4gT24gYXJjaGl0ZWN0dXJlcyB3aGVyZQo+ID4gPiBJL08gc3BhY2UgaXMgaW1wbGVt ZW50ZWQgdGhyb3VnaCBhIGNodW5rIG9mIG1lbW9yeSBtYXBwZWQgc3BhY2UgbWFwcGVkCj4gPiA+ IHRvIFBDSSBhZGRyZXNzIHNwYWNlIChpZSBJQTY0L0FSTS9BUk02NCkgdGhlIG1lbW9yeSBtYXBw aW5nIGZvciB0aGUKPiA+ID4gcmVnaW9uIGJhY2tpbmcgSS9PIEFkZHJlc3MgU3BhY2UgdHJhbnNh Y3Rpb25zIGRldGVybWluZXMgdGhlIEkvTwo+ID4gPiB0cmFuc2FjdGlvbnMgYXR0cmlidXRlcyAo YmVmb3JlIHRoZSB0cmFuc2FjdGlvbnMgYWN0dWFsbHkgcmVhY2hlcyB0aGUKPiA+ID4gUENJIGJ1 cyB3aGVyZSBpdCBpcyBoYW5kbGVkIGFjY29yZGluZyB0byB0aGUgUENJIHNwZWNpZmljYXRpb25z KS4KPiA+ID4gCj4gPiA+IEN1cnJlbnQgcGNpX3JlbWFwX2lvc3BhY2UoKSBpbnRlcmZhY2UsIHRo YXQgaXMgdXNlZCB0byBtYXAgdGhlIFBDSSBJL08KPiA+ID4gQWRkcmVzcyBTcGFjZSBpbnRvIHZp cnR1YWwgYWRkcmVzcyBzcGFjZSwgdXNlIHBncHJvdF9kZXZpY2UoKSBhcyBtZW1vcnkKPiA+ID4g YXR0cmlidXRlIGZvciB0aGUgdmlydHVhbCBhZGRyZXNzIG1hcHBpbmcsIHRoYXQgaW4gc29tZSBh cmNoaXRlY3R1cmVzCj4gPiA+IChpZSBBUk02NCkgcHJvdmlkZXMgbm9uLWNhY2hlYWJsZSBidXQg d3JpdGUgYnVmZmVyYWJsZSBtYXBwaW5ncyAoaWUKPiA+ID4gcG9zdGVkIHdyaXRlcyksIAo+IAo+ IDxzYXJjYXNtPgo+IEdlZSB3aXosIEkgYW0gZ2xhZCB0aGlzIGlzIHNvIHdlbGwgZG9jdW1lbnRl ZC4KPiA8L3NhcmNhc20+Cj4gCj4gPiA+IHdoaWNoIGNsYXNoIHdpdGggdGhlIG5vbi1wb3N0ZWQg d3JpdGUgYmVoYXZpb3VyIGZvciBJL08KPiA+ID4gQWRkcmVzcyBTcGFjZSBtYW5kYXRlZCBieSB0 aGUgUENJIHNwZWNpZmljYXRpb25zLgo+ID4gPiAKPiA+ID4gVXBkYXRlIHRoZSBwcm90IGlvcmVt YXBfcGFnZV9yYW5nZSgpIHBhcmFtZXRlciBpbiBwY2lfcmVtYXBfaW9zcGFjZSgpCj4gPiA+IHRv IHBncHJvdF9ub25jYWNoZWQgdG8gZW5zdXJlIHRoYXQgdGhlIHZpcnR1YWwgbWFwcGluZyBiYWNr aW5nCj4gPiA+IEkvTyBBZGRyZXNzIFNwYWNlIGd1YXJhbnRlZSBub24tcG9zdGVkIHdyaXRlIHRy YW5zYWN0aW9ucyBpc3N1ZWQKPiA+ID4gd2hlbiBhZGRyZXNzaW5nIEkvTyBBZGRyZXNzIFNwYWNl IHRocm91Z2ggdGhlIE1NSU8gbWFwcGluZy4KPiAKPiBIb3cgZGlkIHdlIGVuZCB1cCB3aXRoIHBn cHJvdF9kZXZpY2UoKSB0aGVuIGluIHRoZSBmaXJzdCBwbGFjZSBMaXZpdSBEdWRhdSBbMF0gPwo+ IEkgYXNrIGZvciB0d28gcmVhc29uczoKCltyZXBseWluZyB1c2luZyBwZXJzb25hbCBlbWFpbCBh cyB0aGUgY29ycG9yYXRlIGVtYWlsIHN5c3RlbSBpcyB0YWtpbmcgaXRzIHN3ZWV0IHRpbWUKdG8g ZGVsaXZlciB0aGUgZW1haWwgdG8gbXkgaW5ib3hdCgpJJ3ZlIGFza2VkIHRoZSBwZW9wbGUgd2l0 aCB0aGUgcmlnaHQga25vd2xlZGdlIGFib3V0IHRoZSBjb3JyZWN0IEFQSSB0byB1c2UgKEhpIENh dGFsaW4hKSwKYW5kIGR1cmluZyB0aGUgcmV2aWV3IGl0IGRpZCBub3QgdGhyb3cgYW55IHJlZCBm bGFncy4gSSBndWVzcywgZ2l2ZW4gQmpvcm4ncyBjb21tZW50LAp0aGF0IGV2ZXJ5b25lIGFzc3Vt ZWQgQUFyY2g2NCBpcyB0aGUgc2FtZSBhcyBhbGwgb3RoZXIgYXJjaGl0ZWN0dXJlcyBhbmQgcGdw cm90X2RldmljZQppcyBzeW5vbnltb3VzIHRvIHBncHJvdF9ub25jYWNoZWQuCgo+IAo+IGEpIHNo b3VsZCB3ZSB0aGVuIHVzZSBhIEZpeGVzIHRhZyBmb3IgdGhpcyBwYXRjaCA/CgpJJ20gbm90IGF3 YXJlIG9mIGlzc3VlcyBiZWluZyByZXBvcnRlZCwgYnV0IExvcmVuem8gbWlnaHQgaGF2ZSBtb3Jl IGluZm8gb24gdGhpcy4KCj4gYikgaXQgZG9lcyBub3Qgc2VlbSBjbGVhciB3aGF0IHRoZSBzZW1h bnRpY3MgZm9yIHBncHJvdF9kZXZpY2UoKSBvciBldmVuCj4gICAgcGdwcm90X25vbmNhY2hlZCgp LiBDYW4geW91IGFkZCBzb21lID8KPiAKPiA4YjkyMWFjZmVmZmRiICgiUENJOiBBZGQgcGNpX3Jl bWFwX2lvc3BhY2UoKSB0byBtYXAgYnVzIEkvTyByZXNvdXJjZXMiKQo+IAo+IEFsc28gdGhpcyBw YXRjaCBjbGFpbXMgYXJjaHMgY2FuIG92ZXJyaWRlIHRoaXMgY2FsbCBhbG9uZSwgYXMgaXRzIF9f d2Vhay4KPiBTbyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gdG8gY2hhbmdlIHBjaV9yZW1hcF9p b3NwYWNlKCkgdG8gcGdwcm90X25vbmNhY2hlZCgpCj4gb3IgaXMgaXQgZm9yIGFyY2hzIHRvIGFk ZCB0aGVpciBvd24gcGNpX3JlbWFwX2lvc3BhY2UoKT8gSWYgc28gd2h5ID8gV2l0aG91dAo+IHBy b3BlciBzZW1hbnRpY3MgZGVmaW5lZCBmb3IgdGhlc2UgaGVscGVycyB0aGlzIGlzIGFsbCBmdXp6 eS4KClRoYXQgd2FzIHRoZSBpbml0aWFsIGludGVudGlvbiwgdG8gbGV0IGFyY2hlcyAvIHBsYXRm b3JtcyBvdmVyd3JpdGUgdGhlIHdob2xlCnBjaV9yZW1hcF9pb3NwYWNlKCkuIEkgZ3Vlc3MgdGhl IHJlYWxpdHkgaXMgdGhhdCBubyBvbmUgbmVlZHMgdG8gb3ZlcndyaXRlIGl0IGV4Y2VwdApmb3Ig dGhlIEFBcmNoNjQgcXVpcmssIHNvIHByb2JhYmx5IGVhc2llciB0byByZW1vdmUgdGhlIF9fd2Vh ayBhbmQgZml4IHRoZSBhdHRyaWJ1dGVzIGZvciBhcm02NC4KCkJlc3QgcmVnYXJkcywKTGl2aXUK Cj4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IExvcmVuem8gUGllcmFsaXNpIDxsb3JlbnpvLnBpZXJh bGlzaUBhcm0uY29tPgo+ID4gPiBDYzogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KPiA+ ID4gQ2M6IFdpbGwgRGVhY29uIDx3aWxsLmRlYWNvbkBhcm0uY29tPgo+ID4gPiBDYzogQmpvcm4g SGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KPiA+ID4gQ2M6IFJ1c3NlbGwgS2luZyA8bGlu dXhAYXJtbGludXgub3JnLnVrPgo+ID4gPiBDYzogQ2F0YWxpbiBNYXJpbmFzIDxjYXRhbGluLm1h cmluYXNAYXJtLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL3BjaS9wY2kuYyB8IDIgKy0K PiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQo+ID4g PiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS5jIGIvZHJpdmVycy9wY2kvcGNp LmMKPiA+ID4gaW5kZXggYmQ5ODY3NC4uYmZiM2M2ZSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVy cy9wY2kvcGNpLmMKPiA+ID4gKysrIGIvZHJpdmVycy9wY2kvcGNpLmMKPiA+ID4gQEAgLTMzNzUs NyArMzM3NSw3IEBAIGludCBwY2lfcmVtYXBfaW9zcGFjZShjb25zdCBzdHJ1Y3QgcmVzb3VyY2Ug KnJlcywgcGh5c19hZGRyX3QgcGh5c19hZGRyKQo+ID4gPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiA+ ID4gIAo+ID4gPiAgCXJldHVybiBpb3JlbWFwX3BhZ2VfcmFuZ2UodmFkZHIsIHZhZGRyICsgcmVz b3VyY2Vfc2l6ZShyZXMpLCBwaHlzX2FkZHIsCj4gPiA+IC0JCQkJICBwZ3Byb3RfZGV2aWNlKFBB R0VfS0VSTkVMKSk7Cj4gPiA+ICsJCQkJICBwZ3Byb3Rfbm9uY2FjaGVkKFBBR0VfS0VSTkVMKSk7 Cj4gPiAKPiA+IHBncHJvdF9kZXZpY2UoKSBpcyBlcXVpdmFsZW50IHRvIHBncHJvdF9ub25jYWNo ZWQoKSBvbiBhbGwgYXJjaGVzCj4gPiBleGNlcHQgQVJNNjQsIGFuZCBJIHRydXN0IHlvdSdyZSBk b2luZyB0aGUgcmlnaHQgdGhpbmcgb24gQVJNNjQsIHNvCj4gPiBJJ20gZmluZSB3aXRoIHRoaXMg ZnJvbSBhIFBDSSBwZXJzcGVjdGl2ZS4KPiA+IAo+ID4gSSBkbyBmaW5kIHRoaXMgcHV6emxpbmcg YmVjYXVzZSBJIG5haXZlbHkgZXhwZWN0ZWQgcGdwcm90X25vbmNhY2hlZCgpCj4gPiB0byBtYXRj aCB1cCB3aXRoIGlvcmVtYXBfbm9jYWNoZSgpLCBhbmQgYXBwYXJlbnRseSBpdCBkb2Vzbid0Lgo+ ID4gCj4gPiBGb3IgZXhhbXBsZSwgQVJNNjQgaW9yZW1hcF9ub2NhY2hlKCkgdXNlcyBQUk9UX0RF VklDRV9uR25SRSwgd2hpY2gKPiA+IGRvZXNuJ3QgbWF0Y2ggdGhlIE1UX0RFVklDRV9uR25SbkUg aW4gcGdwcm90X25vbmNhY2hlZCgpLgo+ID4gCj4gPiBUaGUgcG9pbnQgb2YgdGhlc2UgcGF0Y2hl cyBpcyB0byB1c2Ugbm9uLXBvc3RlZCBtYXBwaW5ncy4gIEFwcGFyZW50bHkKPiA+IHlvdSBjYW4g ZG8gdGhhdCB3aXRoIHBncHJvdF9ub25jYWNoZWQoKSBoZXJlLCBidXQgaW9yZW1hcF9ub2NhY2hl KCkKPiA+IGlzbid0IGVub3VnaCBmb3IgdGhlIGNvbmZpZyBzcGFjZSBtYXBwaW5ncz8KPiAKPiBU aGlzIGlzIGZvciBpb3NwYWNlIGl0IHNlZW1zLCBzbyB0aGUgb3RoZXIgcGF0Y2ggSSB0aGluayB3 YXMgZm9yCj4gY29uZmlnIHNwYWNlLgo+IAo+ICAgTHVpcwo+IAo+ID4gSSBzdXBwb3NlIHRoYXQn cyBhIGNvbnNlcXVlbmNlIG9mIHRoZSBwZ3Byb3Rfbm9uY2FjaGVkKCkgdnMKPiA+IGlvcmVtYXBf bm9jYWNoZSgpIG1pc21hdGNoLCBidXQgdGhpcyBpcyBhbGwgZXh0cmVtZWx5IGNvbmZ1c2luZy4K PiA+IAo+ID4gPiAgI2Vsc2UKPiA+ID4gIAkvKiB0aGlzIGFyY2hpdGVjdHVyZSBkb2VzIG5vdCBo YXZlIG1lbW9yeSBtYXBwZWQgSS9PIHNwYWNlLAo+ID4gPiAgCSAgIHNvIHRoaXMgZnVuY3Rpb24g c2hvdWxkIG5ldmVyIGJlIGNhbGxlZCAqLwo+ID4gPiAtLSAKPiA+ID4gMi4xMC4wCj4gPiA+IAo+ ID4gPiAKPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiA+ID4gbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKPiA+ID4gbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCj4gPiA+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo+ID4gCj4gCj4gLS0gCj4gTHVpcyBS b2RyaWd1ZXosIFNVU0UgTElOVVggR21iSAo+IE1heGZlbGRzdHJhc3NlIDU7IEQtOTA0MDkgTnVl cm5iZXJnCgotLSAKICAgXwogX3xffF8KICgnXycpCiAo4oqDICAp4oqDCiB8X3xffAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dliviu.plus.com ([80.229.23.120]:47192 "EHLO smtp.dudau.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751130AbdCQMis (ORCPT ); Fri, 17 Mar 2017 08:38:48 -0400 Date: Fri, 17 Mar 2017 10:43:39 +0000 From: Liviu Dudau Subject: Re: [PATCH 02/20] PCI: fix pci_remap_iospace() remap attribute Message-ID: <20170317104339.GD24830@bart.dudau.co.uk> References: <20170227151436.18698-1-lorenzo.pieralisi@arm.com> <20170227151436.18698-3-lorenzo.pieralisi@arm.com> <20170316214844.GA17769@bhelgaas-glaptop.roam.corp.google.com> <20170317003321.GB28800@wotan.suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20170317003321.GB28800@wotan.suse.de> Sender: linux-arch-owner@vger.kernel.org List-ID: To: "Luis R. Rodriguez" Cc: Bjorn Helgaas , Liviu Dudau , Lorenzo Pieralisi , "Paul E. McKenney" , Andy Lutomirski , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Wenrui Li , Gabriele Paoloni , Catalin Marinas , Shawn Lin , Will Deacon , Michal Simek , Thierry Reding , Tanmay Inamdar , linux-arch@vger.kernel.org, Pratyush Anand , Russell King , Jon Mason , Murali Karicheri , Arnd Bergmann , Bharat Kumar Gogada , Ray Jui , John Garry , Joao Pinto , Bjorn Helgaas , Mingkai Hu , Thomas Petazzoni , Jingoo Han , linux-kernel@vger.kernel.org, Stanimir Varbanov , Minghuan Lian , Zhou Wang , Roy Zang Message-ID: <20170317104339.IjiN5y1NBkzy9PioKifSJIjKm-gq2Hfh0dVs80PVQVs@z> On Fri, Mar 17, 2017 at 01:33:21AM +0100, Luis R. Rodriguez wrote: > On Thu, Mar 16, 2017 at 04:48:44PM -0500, Bjorn Helgaas wrote: > > [+cc Luis] > > > > On Mon, Feb 27, 2017 at 03:14:13PM +0000, Lorenzo Pieralisi wrote: > > > According to the PCI local bus specifications (Revision 3.0, 3.2.5), > > > I/O Address space transactions are non-posted. On architectures where > > > I/O space is implemented through a chunk of memory mapped space mapped > > > to PCI address space (ie IA64/ARM/ARM64) the memory mapping for the > > > region backing I/O Address Space transactions determines the I/O > > > transactions attributes (before the transactions actually reaches the > > > PCI bus where it is handled according to the PCI specifications). > > > > > > Current pci_remap_iospace() interface, that is used to map the PCI I/O > > > Address Space into virtual address space, use pgprot_device() as memory > > > attribute for the virtual address mapping, that in some architectures > > > (ie ARM64) provides non-cacheable but write bufferable mappings (ie > > > posted writes), > > > Gee wiz, I am glad this is so well documented. > > > > > which clash with the non-posted write behaviour for I/O > > > Address Space mandated by the PCI specifications. > > > > > > Update the prot ioremap_page_range() parameter in pci_remap_iospace() > > > to pgprot_noncached to ensure that the virtual mapping backing > > > I/O Address Space guarantee non-posted write transactions issued > > > when addressing I/O Address Space through the MMIO mapping. > > How did we end up with pgprot_device() then in the first place Liviu Dudau [0] ? > I ask for two reasons: [replying using personal email as the corporate email system is taking its sweet time to deliver the email to my inbox] I've asked the people with the right knowledge about the correct API to use (Hi Catalin!), and during the review it did not throw any red flags. I guess, given Bjorn's comment, that everyone assumed AArch64 is the same as all other architectures and pgprot_device is synonymous to pgprot_noncached. > > a) should we then use a Fixes tag for this patch ? I'm not aware of issues being reported, but Lorenzo might have more info on this. > b) it does not seem clear what the semantics for pgprot_device() or even > pgprot_noncached(). Can you add some ? > > 8b921acfeffdb ("PCI: Add pci_remap_iospace() to map bus I/O resources") > > Also this patch claims archs can override this call alone, as its __weak. > So is the right thing to do to change pci_remap_iospace() to pgprot_noncached() > or is it for archs to add their own pci_remap_iospace()? If so why ? Without > proper semantics defined for these helpers this is all fuzzy. That was the initial intention, to let arches / platforms overwrite the whole pci_remap_iospace(). I guess the reality is that no one needs to overwrite it except for the AArch64 quirk, so probably easier to remove the __weak and fix the attributes for arm64. Best regards, Liviu > > > > Signed-off-by: Lorenzo Pieralisi > > > Cc: Arnd Bergmann > > > Cc: Will Deacon > > > Cc: Bjorn Helgaas > > > Cc: Russell King > > > Cc: Catalin Marinas > > > --- > > > drivers/pci/pci.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > > > index bd98674..bfb3c6e 100644 > > > --- a/drivers/pci/pci.c > > > +++ b/drivers/pci/pci.c > > > @@ -3375,7 +3375,7 @@ int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr) > > > return -EINVAL; > > > > > > return ioremap_page_range(vaddr, vaddr + resource_size(res), phys_addr, > > > - pgprot_device(PAGE_KERNEL)); > > > + pgprot_noncached(PAGE_KERNEL)); > > > > pgprot_device() is equivalent to pgprot_noncached() on all arches > > except ARM64, and I trust you're doing the right thing on ARM64, so > > I'm fine with this from a PCI perspective. > > > > I do find this puzzling because I naively expected pgprot_noncached() > > to match up with ioremap_nocache(), and apparently it doesn't. > > > > For example, ARM64 ioremap_nocache() uses PROT_DEVICE_nGnRE, which > > doesn't match the MT_DEVICE_nGnRnE in pgprot_noncached(). > > > > The point of these patches is to use non-posted mappings. Apparently > > you can do that with pgprot_noncached() here, but ioremap_nocache() > > isn't enough for the config space mappings? > > This is for iospace it seems, so the other patch I think was for > config space. > > Luis > > > I suppose that's a consequence of the pgprot_noncached() vs > > ioremap_nocache() mismatch, but this is all extremely confusing. > > > > > #else > > > /* this architecture does not have memory mapped I/O space, > > > so this function should never be called */ > > > -- > > > 2.10.0 > > > > > > > > > _______________________________________________ > > > linux-arm-kernel mailing list > > > linux-arm-kernel@lists.infradead.org > > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > > > > -- > Luis Rodriguez, SUSE LINUX GmbH > Maxfeldstrasse 5; D-90409 Nuernberg -- _ _|_|_ ('_') (⊃ )⊃ |_|_| From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: Date: Fri, 17 Mar 2017 10:43:39 +0000 From: Liviu Dudau To: "Luis R. Rodriguez" Subject: Re: [PATCH 02/20] PCI: fix pci_remap_iospace() remap attribute Message-ID: <20170317104339.GD24830@bart.dudau.co.uk> References: <20170227151436.18698-1-lorenzo.pieralisi@arm.com> <20170227151436.18698-3-lorenzo.pieralisi@arm.com> <20170316214844.GA17769@bhelgaas-glaptop.roam.corp.google.com> <20170317003321.GB28800@wotan.suse.de> MIME-Version: 1.0 In-Reply-To: <20170317003321.GB28800@wotan.suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Wenrui Li , Gabriele Paoloni , linux-pci@vger.kernel.org, Shawn Lin , Liviu Dudau , Russell King , Thierry Reding , Tanmay Inamdar , linux-arch@vger.kernel.org, Lorenzo Pieralisi , Pratyush Anand , Michal Simek , Bharat Kumar Gogada , Murali Karicheri , Bjorn Helgaas , Catalin Marinas , "Paul E. McKenney" , Arnd Bergmann , Jon Mason , Will Deacon , John Garry , Joao Pinto , Bjorn Helgaas , Mingkai Hu , linux-arm-kernel@lists.infradead.org, Thomas Petazzoni , Jingoo Han , linux-kernel@vger.kernel.org, Ray Jui , Andy Lutomirski , Stanimir Varbanov , Minghuan Lian , Zhou Wang , Roy Zang Content-Type: text/plain; charset="utf-8" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+bjorn=helgaas.com@lists.infradead.org List-ID: T24gRnJpLCBNYXIgMTcsIDIwMTcgYXQgMDE6MzM6MjFBTSArMDEwMCwgTHVpcyBSLiBSb2RyaWd1 ZXogd3JvdGU6Cj4gT24gVGh1LCBNYXIgMTYsIDIwMTcgYXQgMDQ6NDg6NDRQTSAtMDUwMCwgQmpv cm4gSGVsZ2FhcyB3cm90ZToKPiA+IFsrY2MgTHVpc10KPiA+IAo+ID4gT24gTW9uLCBGZWIgMjcs IDIwMTcgYXQgMDM6MTQ6MTNQTSArMDAwMCwgTG9yZW56byBQaWVyYWxpc2kgd3JvdGU6Cj4gPiA+ IEFjY29yZGluZyB0byB0aGUgUENJIGxvY2FsIGJ1cyBzcGVjaWZpY2F0aW9ucyAoUmV2aXNpb24g My4wLCAzLjIuNSksCj4gPiA+IEkvTyBBZGRyZXNzIHNwYWNlIHRyYW5zYWN0aW9ucyBhcmUgbm9u LXBvc3RlZC4gT24gYXJjaGl0ZWN0dXJlcyB3aGVyZQo+ID4gPiBJL08gc3BhY2UgaXMgaW1wbGVt ZW50ZWQgdGhyb3VnaCBhIGNodW5rIG9mIG1lbW9yeSBtYXBwZWQgc3BhY2UgbWFwcGVkCj4gPiA+ IHRvIFBDSSBhZGRyZXNzIHNwYWNlIChpZSBJQTY0L0FSTS9BUk02NCkgdGhlIG1lbW9yeSBtYXBw aW5nIGZvciB0aGUKPiA+ID4gcmVnaW9uIGJhY2tpbmcgSS9PIEFkZHJlc3MgU3BhY2UgdHJhbnNh Y3Rpb25zIGRldGVybWluZXMgdGhlIEkvTwo+ID4gPiB0cmFuc2FjdGlvbnMgYXR0cmlidXRlcyAo YmVmb3JlIHRoZSB0cmFuc2FjdGlvbnMgYWN0dWFsbHkgcmVhY2hlcyB0aGUKPiA+ID4gUENJIGJ1 cyB3aGVyZSBpdCBpcyBoYW5kbGVkIGFjY29yZGluZyB0byB0aGUgUENJIHNwZWNpZmljYXRpb25z KS4KPiA+ID4gCj4gPiA+IEN1cnJlbnQgcGNpX3JlbWFwX2lvc3BhY2UoKSBpbnRlcmZhY2UsIHRo YXQgaXMgdXNlZCB0byBtYXAgdGhlIFBDSSBJL08KPiA+ID4gQWRkcmVzcyBTcGFjZSBpbnRvIHZp cnR1YWwgYWRkcmVzcyBzcGFjZSwgdXNlIHBncHJvdF9kZXZpY2UoKSBhcyBtZW1vcnkKPiA+ID4g YXR0cmlidXRlIGZvciB0aGUgdmlydHVhbCBhZGRyZXNzIG1hcHBpbmcsIHRoYXQgaW4gc29tZSBh cmNoaXRlY3R1cmVzCj4gPiA+IChpZSBBUk02NCkgcHJvdmlkZXMgbm9uLWNhY2hlYWJsZSBidXQg d3JpdGUgYnVmZmVyYWJsZSBtYXBwaW5ncyAoaWUKPiA+ID4gcG9zdGVkIHdyaXRlcyksIAo+IAo+ IDxzYXJjYXNtPgo+IEdlZSB3aXosIEkgYW0gZ2xhZCB0aGlzIGlzIHNvIHdlbGwgZG9jdW1lbnRl ZC4KPiA8L3NhcmNhc20+Cj4gCj4gPiA+IHdoaWNoIGNsYXNoIHdpdGggdGhlIG5vbi1wb3N0ZWQg d3JpdGUgYmVoYXZpb3VyIGZvciBJL08KPiA+ID4gQWRkcmVzcyBTcGFjZSBtYW5kYXRlZCBieSB0 aGUgUENJIHNwZWNpZmljYXRpb25zLgo+ID4gPiAKPiA+ID4gVXBkYXRlIHRoZSBwcm90IGlvcmVt YXBfcGFnZV9yYW5nZSgpIHBhcmFtZXRlciBpbiBwY2lfcmVtYXBfaW9zcGFjZSgpCj4gPiA+IHRv IHBncHJvdF9ub25jYWNoZWQgdG8gZW5zdXJlIHRoYXQgdGhlIHZpcnR1YWwgbWFwcGluZyBiYWNr aW5nCj4gPiA+IEkvTyBBZGRyZXNzIFNwYWNlIGd1YXJhbnRlZSBub24tcG9zdGVkIHdyaXRlIHRy YW5zYWN0aW9ucyBpc3N1ZWQKPiA+ID4gd2hlbiBhZGRyZXNzaW5nIEkvTyBBZGRyZXNzIFNwYWNl IHRocm91Z2ggdGhlIE1NSU8gbWFwcGluZy4KPiAKPiBIb3cgZGlkIHdlIGVuZCB1cCB3aXRoIHBn cHJvdF9kZXZpY2UoKSB0aGVuIGluIHRoZSBmaXJzdCBwbGFjZSBMaXZpdSBEdWRhdSBbMF0gPwo+ IEkgYXNrIGZvciB0d28gcmVhc29uczoKCltyZXBseWluZyB1c2luZyBwZXJzb25hbCBlbWFpbCBh cyB0aGUgY29ycG9yYXRlIGVtYWlsIHN5c3RlbSBpcyB0YWtpbmcgaXRzIHN3ZWV0IHRpbWUKdG8g ZGVsaXZlciB0aGUgZW1haWwgdG8gbXkgaW5ib3hdCgpJJ3ZlIGFza2VkIHRoZSBwZW9wbGUgd2l0 aCB0aGUgcmlnaHQga25vd2xlZGdlIGFib3V0IHRoZSBjb3JyZWN0IEFQSSB0byB1c2UgKEhpIENh dGFsaW4hKSwKYW5kIGR1cmluZyB0aGUgcmV2aWV3IGl0IGRpZCBub3QgdGhyb3cgYW55IHJlZCBm bGFncy4gSSBndWVzcywgZ2l2ZW4gQmpvcm4ncyBjb21tZW50LAp0aGF0IGV2ZXJ5b25lIGFzc3Vt ZWQgQUFyY2g2NCBpcyB0aGUgc2FtZSBhcyBhbGwgb3RoZXIgYXJjaGl0ZWN0dXJlcyBhbmQgcGdw cm90X2RldmljZQppcyBzeW5vbnltb3VzIHRvIHBncHJvdF9ub25jYWNoZWQuCgo+IAo+IGEpIHNo b3VsZCB3ZSB0aGVuIHVzZSBhIEZpeGVzIHRhZyBmb3IgdGhpcyBwYXRjaCA/CgpJJ20gbm90IGF3 YXJlIG9mIGlzc3VlcyBiZWluZyByZXBvcnRlZCwgYnV0IExvcmVuem8gbWlnaHQgaGF2ZSBtb3Jl IGluZm8gb24gdGhpcy4KCj4gYikgaXQgZG9lcyBub3Qgc2VlbSBjbGVhciB3aGF0IHRoZSBzZW1h bnRpY3MgZm9yIHBncHJvdF9kZXZpY2UoKSBvciBldmVuCj4gICAgcGdwcm90X25vbmNhY2hlZCgp LiBDYW4geW91IGFkZCBzb21lID8KPiAKPiA4YjkyMWFjZmVmZmRiICgiUENJOiBBZGQgcGNpX3Jl bWFwX2lvc3BhY2UoKSB0byBtYXAgYnVzIEkvTyByZXNvdXJjZXMiKQo+IAo+IEFsc28gdGhpcyBw YXRjaCBjbGFpbXMgYXJjaHMgY2FuIG92ZXJyaWRlIHRoaXMgY2FsbCBhbG9uZSwgYXMgaXRzIF9f d2Vhay4KPiBTbyBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gdG8gY2hhbmdlIHBjaV9yZW1hcF9p b3NwYWNlKCkgdG8gcGdwcm90X25vbmNhY2hlZCgpCj4gb3IgaXMgaXQgZm9yIGFyY2hzIHRvIGFk ZCB0aGVpciBvd24gcGNpX3JlbWFwX2lvc3BhY2UoKT8gSWYgc28gd2h5ID8gV2l0aG91dAo+IHBy b3BlciBzZW1hbnRpY3MgZGVmaW5lZCBmb3IgdGhlc2UgaGVscGVycyB0aGlzIGlzIGFsbCBmdXp6 eS4KClRoYXQgd2FzIHRoZSBpbml0aWFsIGludGVudGlvbiwgdG8gbGV0IGFyY2hlcyAvIHBsYXRm b3JtcyBvdmVyd3JpdGUgdGhlIHdob2xlCnBjaV9yZW1hcF9pb3NwYWNlKCkuIEkgZ3Vlc3MgdGhl IHJlYWxpdHkgaXMgdGhhdCBubyBvbmUgbmVlZHMgdG8gb3ZlcndyaXRlIGl0IGV4Y2VwdApmb3Ig dGhlIEFBcmNoNjQgcXVpcmssIHNvIHByb2JhYmx5IGVhc2llciB0byByZW1vdmUgdGhlIF9fd2Vh ayBhbmQgZml4IHRoZSBhdHRyaWJ1dGVzIGZvciBhcm02NC4KCkJlc3QgcmVnYXJkcywKTGl2aXUK Cj4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IExvcmVuem8gUGllcmFsaXNpIDxsb3JlbnpvLnBpZXJh bGlzaUBhcm0uY29tPgo+ID4gPiBDYzogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KPiA+ ID4gQ2M6IFdpbGwgRGVhY29uIDx3aWxsLmRlYWNvbkBhcm0uY29tPgo+ID4gPiBDYzogQmpvcm4g SGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT4KPiA+ID4gQ2M6IFJ1c3NlbGwgS2luZyA8bGlu dXhAYXJtbGludXgub3JnLnVrPgo+ID4gPiBDYzogQ2F0YWxpbiBNYXJpbmFzIDxjYXRhbGluLm1h cmluYXNAYXJtLmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL3BjaS9wY2kuYyB8IDIgKy0K PiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQo+ID4g PiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS5jIGIvZHJpdmVycy9wY2kvcGNp LmMKPiA+ID4gaW5kZXggYmQ5ODY3NC4uYmZiM2M2ZSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVy cy9wY2kvcGNpLmMKPiA+ID4gKysrIGIvZHJpdmVycy9wY2kvcGNpLmMKPiA+ID4gQEAgLTMzNzUs NyArMzM3NSw3IEBAIGludCBwY2lfcmVtYXBfaW9zcGFjZShjb25zdCBzdHJ1Y3QgcmVzb3VyY2Ug KnJlcywgcGh5c19hZGRyX3QgcGh5c19hZGRyKQo+ID4gPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiA+ ID4gIAo+ID4gPiAgCXJldHVybiBpb3JlbWFwX3BhZ2VfcmFuZ2UodmFkZHIsIHZhZGRyICsgcmVz b3VyY2Vfc2l6ZShyZXMpLCBwaHlzX2FkZHIsCj4gPiA+IC0JCQkJICBwZ3Byb3RfZGV2aWNlKFBB R0VfS0VSTkVMKSk7Cj4gPiA+ICsJCQkJICBwZ3Byb3Rfbm9uY2FjaGVkKFBBR0VfS0VSTkVMKSk7 Cj4gPiAKPiA+IHBncHJvdF9kZXZpY2UoKSBpcyBlcXVpdmFsZW50IHRvIHBncHJvdF9ub25jYWNo ZWQoKSBvbiBhbGwgYXJjaGVzCj4gPiBleGNlcHQgQVJNNjQsIGFuZCBJIHRydXN0IHlvdSdyZSBk b2luZyB0aGUgcmlnaHQgdGhpbmcgb24gQVJNNjQsIHNvCj4gPiBJJ20gZmluZSB3aXRoIHRoaXMg ZnJvbSBhIFBDSSBwZXJzcGVjdGl2ZS4KPiA+IAo+ID4gSSBkbyBmaW5kIHRoaXMgcHV6emxpbmcg YmVjYXVzZSBJIG5haXZlbHkgZXhwZWN0ZWQgcGdwcm90X25vbmNhY2hlZCgpCj4gPiB0byBtYXRj aCB1cCB3aXRoIGlvcmVtYXBfbm9jYWNoZSgpLCBhbmQgYXBwYXJlbnRseSBpdCBkb2Vzbid0Lgo+ ID4gCj4gPiBGb3IgZXhhbXBsZSwgQVJNNjQgaW9yZW1hcF9ub2NhY2hlKCkgdXNlcyBQUk9UX0RF VklDRV9uR25SRSwgd2hpY2gKPiA+IGRvZXNuJ3QgbWF0Y2ggdGhlIE1UX0RFVklDRV9uR25SbkUg aW4gcGdwcm90X25vbmNhY2hlZCgpLgo+ID4gCj4gPiBUaGUgcG9pbnQgb2YgdGhlc2UgcGF0Y2hl cyBpcyB0byB1c2Ugbm9uLXBvc3RlZCBtYXBwaW5ncy4gIEFwcGFyZW50bHkKPiA+IHlvdSBjYW4g ZG8gdGhhdCB3aXRoIHBncHJvdF9ub25jYWNoZWQoKSBoZXJlLCBidXQgaW9yZW1hcF9ub2NhY2hl KCkKPiA+IGlzbid0IGVub3VnaCBmb3IgdGhlIGNvbmZpZyBzcGFjZSBtYXBwaW5ncz8KPiAKPiBU aGlzIGlzIGZvciBpb3NwYWNlIGl0IHNlZW1zLCBzbyB0aGUgb3RoZXIgcGF0Y2ggSSB0aGluayB3 YXMgZm9yCj4gY29uZmlnIHNwYWNlLgo+IAo+ICAgTHVpcwo+IAo+ID4gSSBzdXBwb3NlIHRoYXQn cyBhIGNvbnNlcXVlbmNlIG9mIHRoZSBwZ3Byb3Rfbm9uY2FjaGVkKCkgdnMKPiA+IGlvcmVtYXBf bm9jYWNoZSgpIG1pc21hdGNoLCBidXQgdGhpcyBpcyBhbGwgZXh0cmVtZWx5IGNvbmZ1c2luZy4K PiA+IAo+ID4gPiAgI2Vsc2UKPiA+ID4gIAkvKiB0aGlzIGFyY2hpdGVjdHVyZSBkb2VzIG5vdCBo YXZlIG1lbW9yeSBtYXBwZWQgSS9PIHNwYWNlLAo+ID4gPiAgCSAgIHNvIHRoaXMgZnVuY3Rpb24g c2hvdWxkIG5ldmVyIGJlIGNhbGxlZCAqLwo+ID4gPiAtLSAKPiA+ID4gMi4xMC4wCj4gPiA+IAo+ ID4gPiAKPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiA+ID4gbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKPiA+ID4gbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCj4gPiA+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo+ID4gCj4gCj4gLS0gCj4gTHVpcyBS b2RyaWd1ZXosIFNVU0UgTElOVVggR21iSAo+IE1heGZlbGRzdHJhc3NlIDU7IEQtOTA0MDkgTnVl cm5iZXJnCgotLSAKICAgXwogX3xffF8KICgnXycpCiAo4oqDICAp4oqDCiB8X3xffAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: liviu@dudau.co.uk (Liviu Dudau) Date: Fri, 17 Mar 2017 10:43:39 +0000 Subject: [PATCH 02/20] PCI: fix pci_remap_iospace() remap attribute In-Reply-To: <20170317003321.GB28800@wotan.suse.de> References: <20170227151436.18698-1-lorenzo.pieralisi@arm.com> <20170227151436.18698-3-lorenzo.pieralisi@arm.com> <20170316214844.GA17769@bhelgaas-glaptop.roam.corp.google.com> <20170317003321.GB28800@wotan.suse.de> Message-ID: <20170317104339.GD24830@bart.dudau.co.uk> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Mar 17, 2017 at 01:33:21AM +0100, Luis R. Rodriguez wrote: > On Thu, Mar 16, 2017 at 04:48:44PM -0500, Bjorn Helgaas wrote: > > [+cc Luis] > > > > On Mon, Feb 27, 2017 at 03:14:13PM +0000, Lorenzo Pieralisi wrote: > > > According to the PCI local bus specifications (Revision 3.0, 3.2.5), > > > I/O Address space transactions are non-posted. On architectures where > > > I/O space is implemented through a chunk of memory mapped space mapped > > > to PCI address space (ie IA64/ARM/ARM64) the memory mapping for the > > > region backing I/O Address Space transactions determines the I/O > > > transactions attributes (before the transactions actually reaches the > > > PCI bus where it is handled according to the PCI specifications). > > > > > > Current pci_remap_iospace() interface, that is used to map the PCI I/O > > > Address Space into virtual address space, use pgprot_device() as memory > > > attribute for the virtual address mapping, that in some architectures > > > (ie ARM64) provides non-cacheable but write bufferable mappings (ie > > > posted writes), > > > Gee wiz, I am glad this is so well documented. > > > > > which clash with the non-posted write behaviour for I/O > > > Address Space mandated by the PCI specifications. > > > > > > Update the prot ioremap_page_range() parameter in pci_remap_iospace() > > > to pgprot_noncached to ensure that the virtual mapping backing > > > I/O Address Space guarantee non-posted write transactions issued > > > when addressing I/O Address Space through the MMIO mapping. > > How did we end up with pgprot_device() then in the first place Liviu Dudau [0] ? > I ask for two reasons: [replying using personal email as the corporate email system is taking its sweet time to deliver the email to my inbox] I've asked the people with the right knowledge about the correct API to use (Hi Catalin!), and during the review it did not throw any red flags. I guess, given Bjorn's comment, that everyone assumed AArch64 is the same as all other architectures and pgprot_device is synonymous to pgprot_noncached. > > a) should we then use a Fixes tag for this patch ? I'm not aware of issues being reported, but Lorenzo might have more info on this. > b) it does not seem clear what the semantics for pgprot_device() or even > pgprot_noncached(). Can you add some ? > > 8b921acfeffdb ("PCI: Add pci_remap_iospace() to map bus I/O resources") > > Also this patch claims archs can override this call alone, as its __weak. > So is the right thing to do to change pci_remap_iospace() to pgprot_noncached() > or is it for archs to add their own pci_remap_iospace()? If so why ? Without > proper semantics defined for these helpers this is all fuzzy. That was the initial intention, to let arches / platforms overwrite the whole pci_remap_iospace(). I guess the reality is that no one needs to overwrite it except for the AArch64 quirk, so probably easier to remove the __weak and fix the attributes for arm64. Best regards, Liviu > > > > Signed-off-by: Lorenzo Pieralisi > > > Cc: Arnd Bergmann > > > Cc: Will Deacon > > > Cc: Bjorn Helgaas > > > Cc: Russell King > > > Cc: Catalin Marinas > > > --- > > > drivers/pci/pci.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > > > index bd98674..bfb3c6e 100644 > > > --- a/drivers/pci/pci.c > > > +++ b/drivers/pci/pci.c > > > @@ -3375,7 +3375,7 @@ int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr) > > > return -EINVAL; > > > > > > return ioremap_page_range(vaddr, vaddr + resource_size(res), phys_addr, > > > - pgprot_device(PAGE_KERNEL)); > > > + pgprot_noncached(PAGE_KERNEL)); > > > > pgprot_device() is equivalent to pgprot_noncached() on all arches > > except ARM64, and I trust you're doing the right thing on ARM64, so > > I'm fine with this from a PCI perspective. > > > > I do find this puzzling because I naively expected pgprot_noncached() > > to match up with ioremap_nocache(), and apparently it doesn't. > > > > For example, ARM64 ioremap_nocache() uses PROT_DEVICE_nGnRE, which > > doesn't match the MT_DEVICE_nGnRnE in pgprot_noncached(). > > > > The point of these patches is to use non-posted mappings. Apparently > > you can do that with pgprot_noncached() here, but ioremap_nocache() > > isn't enough for the config space mappings? > > This is for iospace it seems, so the other patch I think was for > config space. > > Luis > > > I suppose that's a consequence of the pgprot_noncached() vs > > ioremap_nocache() mismatch, but this is all extremely confusing. > > > > > #else > > > /* this architecture does not have memory mapped I/O space, > > > so this function should never be called */ > > > -- > > > 2.10.0 > > > > > > > > > _______________________________________________ > > > linux-arm-kernel mailing list > > > linux-arm-kernel at lists.infradead.org > > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > > > > -- > Luis Rodriguez, SUSE LINUX GmbH > Maxfeldstrasse 5; D-90409 Nuernberg -- _ _|_|_ ('_') (? )? |_|_|