diff for duplicates of <1491917906.7236.7.camel@kernel.crashing.org> diff --git a/a/1.txt b/N1/1.txt index fdab112..191f723 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,181 +1,149 @@ -On Tue, 2017-04-11 at 13:28 +0100, Lorenzo Pieralisi wrote: -> This patch series[1] is a v3 of a previous version: -> -> v2: https://lkml.org/lkml/2017/3/27/220 - -I am not a fan of this at All. - -That whole concept of "ioremap_nopost" is simply not applicable to the -majority of architectures and certainly not in a way that can apply to -arbitrary mappings. - -It's also very wrong to provide a "default" operation whose semantics -are weaker than what it's supposed to implement. Very wrong actually. -People will use it assuming the non-posted behaviour and things will -break in subtle way when it cannot be provided. - -What exactly are you trying to fix here ? - -If a given PCIe host bridge (architecture specific) require a special -sauce to provide the illusion of non-posting, then implement this in -the actual root complex code. - -BTW. I'm pretty sure we "accidentally" made config writes posted at -least to the PHB on a number of powerpc systems forever and we *never* -had a problem because of it ;) - -> v2 -> v3: -> - Created a default ioremap_nopost() implementation in a -> separate -> asm-generic header and patched all arches to make use of it -> - Removed PCI drivers patches from the series to simplify the -> review, they will be posted separately once the -> ioremap_nopost() -> interface is settled -> - Fixed devm_ioremap_* BUS offset comments and implemented -> nopost interface on top of it -> - Added collected tags -> -> v1: https://lkml.org/lkml/2017/2/27/228 -> -> v1 -> v2: -> - Changed pci_remap_cfgspace() to more generic ioremap_nopost() -> interface -> - Added pgprot_nonposted -> - Fixed build errors on arches not relying on asm-generic -> headers -> - Added PCI versatile host controller driver patch -> - Added missing config space remapping to hisilicon host -> controller -> -> --------------------- -> Original cover letter -> --------------------- -> -> PCI local bus specifications (Rev3.0, 3.2.5 "Transaction Ordering -> and Posting") strictly require PCI configuration and I/O Address -> space -> write transactions to be non-posted. -> -> Current crop of DT/ACPI PCI host controllers drivers relies on -> the ioremap interface to map ECAM and ECAM-derivative PCI config -> regions and pci_remap_iospace() to create a VMA for mapping -> PCI host bridge I/O Address space transactions to CPU virtual address -> space. -> -> On some platforms (ie ARM/ARM64) ioremap fails to comply with the PCI -> configuration non-posted write transactions requirement, because it -> provides a memory mapping that issues "bufferable" or, in PCI terms -> "posted" write transactions. Likewise, the current -> pci_remap_iospace() -> implementation maps the physical address range that the PCI -> translates -> to I/O space cycles to virtual address space through pgprot_device() -> attributes that on eg ARM64 provides a memory mapping issuing -> posted writes transactions, which is not PCI specifications -> compliant. -> -> This patch series[1] addresses both issues in one go: -> -> - It updates the pci_remap_iospace() function to use a page mapping -> that guarantees non-posted write transactions for I/O space -> addresses -> - It adds a kernel API to remap PCI config space resources, so that -> architecture can override it with a mapping implementation that -> guarantees PCI specifications compliancy wrt non-posted write -> configuration transactions -> - It updates all PCI host controller implementations (and the generic -> ECAM layer) to use the newly introduced mapping interface -> -> Tested on Juno ECAM based interface (DT/ACPI). -> -> Non-ECAM PCI host controller drivers patches need checking to make -> sure that: -> -> - I patched the correct resource region mapping for config space -> - There are not any other ways to ensure posted-write completion -> in the respective pci_ops that make the relevant patch unnecessary -> -> [1] -> git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git -> pci/config-io-mappings-fix-v3 -> -> Lorenzo Pieralisi (32): -> PCI: remove __weak tag from pci_remap_iospace() -> asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute -> PCI: fix pci_remap_iospace() remap attribute -> asm-generic: add ioremap_nopost() remap interface -> alpha: include default ioremap_nopost() implementation -> avr32: include default ioremap_nopost() implementation -> arc: include default ioremap_nopost() implementation -> cris: include default ioremap_nopost() implementation -> frv: include default ioremap_nopost() implementation -> hexagon: include default ioremap_nopost() implementation -> ia64: include default ioremap_nopost() implementation -> m32r: include default ioremap_nopost() implementation -> m68k: include default ioremap_nopost() implementation -> metag: include default ioremap_nopost() implementation -> microblaze: include default ioremap_nopost() implementation -> mips: include default ioremap_nopost() implementation -> mn10300: include default ioremap_nopost() implementation -> nios2: include default ioremap_nopost() implementation -> openrisc: include default ioremap_nopost() implementation -> parisc: include default ioremap_nopost() implementation -> powerpc: include default ioremap_nopost() implementation -> s390: include default ioremap_nopost() implementation -> sh: include default ioremap_nopost() implementation -> sparc: include default ioremap_nopost() implementation -> tile: include default ioremap_nopost() implementation -> unicore32: include default ioremap_nopost() implementation -> x86: include default ioremap_nopost() implementation -> xtensa: include default ioremap_nopost() implementation -> arm64: implement ioremap_nopost() interface -> arm: implement ioremap_nopost() interface -> lib: fix Devres devm_ioremap_* offset parameter kerneldoc -> description -> lib: implement Devres ioremap_nopost() interface -> -> Documentation/driver-model/devres.txt | 3 ++ -> arch/alpha/include/asm/io.h | 1 + -> arch/arc/include/asm/io.h | 1 + -> arch/arm/include/asm/io.h | 9 ++++ -> arch/arm/mm/ioremap.c | 7 +++ -> arch/arm/mm/nommu.c | 9 ++++ -> arch/arm64/include/asm/io.h | 12 +++++ -> arch/avr32/include/asm/io.h | 1 + -> arch/cris/include/asm/io.h | 1 + -> arch/frv/include/asm/io.h | 1 + -> arch/hexagon/include/asm/io.h | 2 + -> arch/ia64/include/asm/io.h | 1 + -> arch/m32r/include/asm/io.h | 1 + -> arch/m68k/include/asm/io.h | 1 + -> arch/metag/include/asm/io.h | 2 + -> arch/microblaze/include/asm/io.h | 1 + -> arch/mips/include/asm/io.h | 1 + -> arch/mn10300/include/asm/io.h | 1 + -> arch/nios2/include/asm/io.h | 1 + -> arch/openrisc/include/asm/io.h | 2 + -> arch/parisc/include/asm/io.h | 1 + -> arch/powerpc/include/asm/io.h | 1 + -> arch/s390/include/asm/io.h | 1 + -> arch/sh/include/asm/io.h | 1 + -> arch/sparc/include/asm/io.h | 1 + -> arch/tile/include/asm/io.h | 1 + -> arch/unicore32/include/asm/io.h | 1 + -> arch/x86/include/asm/io.h | 1 + -> arch/xtensa/include/asm/io.h | 1 + -> drivers/pci/pci.c | 4 +- -> include/asm-generic/ioremap-nopost.h | 9 ++++ -> include/asm-generic/pgtable.h | 4 ++ -> include/linux/device.h | 2 + -> include/linux/io.h | 2 + -> lib/devres.c | 84 -> +++++++++++++++++++++++++++++++++-- -> 35 files changed, 167 insertions(+), 5 deletions(-) -> create mode 100644 include/asm-generic/ioremap-nopost.h -> - -_______________________________________________ -linux-arm-kernel mailing list -linux-arm-kernel@lists.infradead.org -http://lists.infradead.org/mailman/listinfo/linux-arm-kernel +T24gVHVlLCAyMDE3LTA0LTExIGF0IDEzOjI4ICswMTAwLCBMb3JlbnpvIFBpZXJhbGlzaSB3cm90 +ZToKPiBUaGlzIHBhdGNoIHNlcmllc1sxXSBpcyBhIHYzIG9mIGEgcHJldmlvdXMgdmVyc2lvbjoK +PiAKPiB2MjogaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMTcvMy8yNy8yMjAKCkkgYW0gbm90IGEg +ZmFuIG9mIHRoaXMgYXQgQWxsLgoKVGhhdCB3aG9sZSBjb25jZXB0IG9mICJpb3JlbWFwX25vcG9z +dCIgaXMgc2ltcGx5IG5vdCBhcHBsaWNhYmxlIHRvIHRoZQptYWpvcml0eSBvZiBhcmNoaXRlY3R1 +cmVzIGFuZCBjZXJ0YWlubHkgbm90IGluIGEgd2F5IHRoYXQgY2FuIGFwcGx5IHRvCmFyYml0cmFy +eSBtYXBwaW5ncy4KCkl0J3MgYWxzbyB2ZXJ5IHdyb25nIHRvIHByb3ZpZGUgYSAiZGVmYXVsdCIg +b3BlcmF0aW9uIHdob3NlIHNlbWFudGljcwphcmUgd2Vha2VyIHRoYW4gd2hhdCBpdCdzIHN1cHBv +c2VkIHRvIGltcGxlbWVudC4gVmVyeSB3cm9uZyBhY3R1YWxseS4KUGVvcGxlIHdpbGwgdXNlIGl0 +IGFzc3VtaW5nIHRoZSBub24tcG9zdGVkIGJlaGF2aW91ciBhbmQgdGhpbmdzIHdpbGwKYnJlYWsg +aW4gc3VidGxlIHdheSB3aGVuIGl0IGNhbm5vdCBiZSBwcm92aWRlZC4KCldoYXQgZXhhY3RseSBh +cmUgeW91IHRyeWluZyB0byBmaXggaGVyZSA/CgpJZiBhIGdpdmVuIFBDSWUgaG9zdCBicmlkZ2Ug +KGFyY2hpdGVjdHVyZSBzcGVjaWZpYykgcmVxdWlyZSBhIHNwZWNpYWwKc2F1Y2UgdG8gcHJvdmlk +ZSB0aGUgaWxsdXNpb24gb2Ygbm9uLXBvc3RpbmcsIHRoZW4gaW1wbGVtZW50IHRoaXMgaW4KdGhl +IGFjdHVhbCByb290IGNvbXBsZXggY29kZS4KCkJUVy4gSSdtIHByZXR0eSBzdXJlIHdlICJhY2Np +ZGVudGFsbHkiIG1hZGUgY29uZmlnIHdyaXRlcyBwb3N0ZWQgYXQKbGVhc3QgdG8gdGhlIFBIQiBv +biBhIG51bWJlciBvZiBwb3dlcnBjIHN5c3RlbXMgZm9yZXZlciBhbmQgd2UgKm5ldmVyKgpoYWQg +YSBwcm9ibGVtIGJlY2F1c2Ugb2YgaXQgOykKCj4gdjIgLT4gdjM6Cj4gCS0gQ3JlYXRlZCBhIGRl +ZmF1bHQgaW9yZW1hcF9ub3Bvc3QoKSBpbXBsZW1lbnRhdGlvbiBpbiBhCj4gc2VwYXJhdGUKPiAJ +wqDCoGFzbS1nZW5lcmljIGhlYWRlciBhbmQgcGF0Y2hlZCBhbGwgYXJjaGVzIHRvIG1ha2UgdXNl +IG9mIGl0Cj4gCS0gUmVtb3ZlZCBQQ0kgZHJpdmVycyBwYXRjaGVzIGZyb20gdGhlIHNlcmllcyB0 +byBzaW1wbGlmeSB0aGUKPiAJwqDCoHJldmlldywgdGhleSB3aWxsIGJlIHBvc3RlZCBzZXBhcmF0 +ZWx5IG9uY2UgdGhlCj4gaW9yZW1hcF9ub3Bvc3QoKQo+IAnCoMKgaW50ZXJmYWNlIGlzIHNldHRs +ZWQKPiAJLSBGaXhlZCBkZXZtX2lvcmVtYXBfKiBCVVMgb2Zmc2V0IGNvbW1lbnRzIGFuZCBpbXBs +ZW1lbnRlZAo+IAnCoMKgbm9wb3N0IGludGVyZmFjZSBvbiB0b3Agb2YgaXQKPiAJLSBBZGRlZCBj +b2xsZWN0ZWQgdGFncwo+IAo+IHYxOiBodHRwczovL2xrbWwub3JnL2xrbWwvMjAxNy8yLzI3LzIy +OAo+IAo+IHYxIC0+IHYyOgo+IAktIENoYW5nZWQgcGNpX3JlbWFwX2NmZ3NwYWNlKCkgdG8gbW9y +ZSBnZW5lcmljIGlvcmVtYXBfbm9wb3N0KCkKPiAJwqDCoGludGVyZmFjZQo+IAktIEFkZGVkIHBn +cHJvdF9ub25wb3N0ZWQKPiAJLSBGaXhlZCBidWlsZCBlcnJvcnMgb24gYXJjaGVzIG5vdCByZWx5 +aW5nIG9uIGFzbS1nZW5lcmljCj4gaGVhZGVycwo+IAktIEFkZGVkIFBDSSB2ZXJzYXRpbGUgaG9z +dCBjb250cm9sbGVyIGRyaXZlciBwYXRjaAo+IAktIEFkZGVkIG1pc3NpbmcgY29uZmlnIHNwYWNl +IHJlbWFwcGluZyB0byBoaXNpbGljb24gaG9zdAo+IGNvbnRyb2xsZXIKPiAKPiAtLS0tLS0tLS0t +LS0tLS0tLS0tLS0KPiBPcmlnaW5hbCBjb3ZlciBsZXR0ZXIKPiAtLS0tLS0tLS0tLS0tLS0tLS0t +LS0KPiAKPiBQQ0kgbG9jYWwgYnVzIHNwZWNpZmljYXRpb25zIChSZXYzLjAsIDMuMi41ICJUcmFu +c2FjdGlvbiBPcmRlcmluZwo+IGFuZCBQb3N0aW5nIikgc3RyaWN0bHkgcmVxdWlyZSBQQ0kgY29u +ZmlndXJhdGlvbiBhbmQgSS9PIEFkZHJlc3MKPiBzcGFjZQo+IHdyaXRlIHRyYW5zYWN0aW9ucyB0 +byBiZSBub24tcG9zdGVkLgo+IAo+IEN1cnJlbnQgY3JvcCBvZiBEVC9BQ1BJIFBDSSBob3N0IGNv +bnRyb2xsZXJzIGRyaXZlcnMgcmVsaWVzIG9uCj4gdGhlIGlvcmVtYXAgaW50ZXJmYWNlIHRvIG1h +cCBFQ0FNIGFuZCBFQ0FNLWRlcml2YXRpdmUgUENJIGNvbmZpZwo+IHJlZ2lvbnMgYW5kIHBjaV9y +ZW1hcF9pb3NwYWNlKCkgdG8gY3JlYXRlIGEgVk1BIGZvciBtYXBwaW5nCj4gUENJIGhvc3QgYnJp +ZGdlIEkvTyBBZGRyZXNzIHNwYWNlIHRyYW5zYWN0aW9ucyB0byBDUFUgdmlydHVhbCBhZGRyZXNz +Cj4gc3BhY2UuCj4gCj4gT24gc29tZSBwbGF0Zm9ybXMgKGllIEFSTS9BUk02NCkgaW9yZW1hcCBm +YWlscyB0byBjb21wbHkgd2l0aCB0aGUgUENJCj4gY29uZmlndXJhdGlvbiBub24tcG9zdGVkIHdy +aXRlIHRyYW5zYWN0aW9ucyByZXF1aXJlbWVudCwgYmVjYXVzZSBpdAo+IHByb3ZpZGVzIGEgbWVt +b3J5IG1hcHBpbmcgdGhhdCBpc3N1ZXMgImJ1ZmZlcmFibGUiIG9yLCBpbiBQQ0kgdGVybXMKPiAi +cG9zdGVkIiB3cml0ZSB0cmFuc2FjdGlvbnMuIExpa2V3aXNlLCB0aGUgY3VycmVudAo+IHBjaV9y +ZW1hcF9pb3NwYWNlKCkKPiBpbXBsZW1lbnRhdGlvbiBtYXBzIHRoZSBwaHlzaWNhbCBhZGRyZXNz +IHJhbmdlIHRoYXQgdGhlIFBDSQo+IHRyYW5zbGF0ZXMKPiB0byBJL08gc3BhY2UgY3ljbGVzIHRv +IHZpcnR1YWwgYWRkcmVzcyBzcGFjZSB0aHJvdWdoIHBncHJvdF9kZXZpY2UoKQo+IGF0dHJpYnV0 +ZXMgdGhhdCBvbiBlZyBBUk02NCBwcm92aWRlcyBhIG1lbW9yeSBtYXBwaW5nIGlzc3VpbmcKPiBw +b3N0ZWQgd3JpdGVzIHRyYW5zYWN0aW9ucywgd2hpY2ggaXMgbm90IFBDSSBzcGVjaWZpY2F0aW9u +cwo+IGNvbXBsaWFudC4KPiAKPiBUaGlzIHBhdGNoIHNlcmllc1sxXSBhZGRyZXNzZXMgYm90aCBp +c3N1ZXMgaW4gb25lIGdvOgo+IAo+IC0gSXQgdXBkYXRlcyB0aGUgcGNpX3JlbWFwX2lvc3BhY2Uo +KSBmdW5jdGlvbiB0byB1c2UgYSBwYWdlIG1hcHBpbmcKPiDCoCB0aGF0IGd1YXJhbnRlZXMgbm9u +LXBvc3RlZCB3cml0ZSB0cmFuc2FjdGlvbnMgZm9yIEkvTyBzcGFjZQo+IGFkZHJlc3Nlcwo+IC0g +SXQgYWRkcyBhIGtlcm5lbCBBUEkgdG8gcmVtYXAgUENJIGNvbmZpZyBzcGFjZSByZXNvdXJjZXMs +IHNvIHRoYXQKPiDCoCBhcmNoaXRlY3R1cmUgY2FuIG92ZXJyaWRlIGl0IHdpdGggYSBtYXBwaW5n +IGltcGxlbWVudGF0aW9uIHRoYXQKPiDCoCBndWFyYW50ZWVzIFBDSSBzcGVjaWZpY2F0aW9ucyBj +b21wbGlhbmN5IHdydCBub24tcG9zdGVkIHdyaXRlCj4gwqAgY29uZmlndXJhdGlvbiB0cmFuc2Fj +dGlvbnMKPiAtIEl0IHVwZGF0ZXMgYWxsIFBDSSBob3N0IGNvbnRyb2xsZXIgaW1wbGVtZW50YXRp +b25zIChhbmQgdGhlIGdlbmVyaWMKPiDCoCBFQ0FNIGxheWVyKSB0byB1c2UgdGhlIG5ld2x5IGlu +dHJvZHVjZWQgbWFwcGluZyBpbnRlcmZhY2UKPiAKPiBUZXN0ZWQgb24gSnVubyBFQ0FNIGJhc2Vk +IGludGVyZmFjZSAoRFQvQUNQSSkuCj4gCj4gTm9uLUVDQU0gUENJIGhvc3QgY29udHJvbGxlciBk +cml2ZXJzIHBhdGNoZXMgbmVlZCBjaGVja2luZyB0byBtYWtlCj4gc3VyZSB0aGF0Ogo+IAo+IC0g +SSBwYXRjaGVkIHRoZSBjb3JyZWN0IHJlc291cmNlIHJlZ2lvbiBtYXBwaW5nIGZvciBjb25maWcg +c3BhY2UKPiAtIFRoZXJlIGFyZSBub3QgYW55IG90aGVyIHdheXMgdG8gZW5zdXJlIHBvc3RlZC13 +cml0ZSBjb21wbGV0aW9uCj4gwqAgaW4gdGhlIHJlc3BlY3RpdmUgcGNpX29wcyB0aGF0IG1ha2Ug +dGhlIHJlbGV2YW50IHBhdGNoIHVubmVjZXNzYXJ5Cj4gCj4gWzFdCj4gZ2l0Oi8vZ2l0Lmtlcm5l +bC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2xwaWVyYWxpc2kvbGludXguZ2l0Cj4gcGNp +L2NvbmZpZy1pby1tYXBwaW5ncy1maXgtdjMKPiAKPiBMb3JlbnpvIFBpZXJhbGlzaSAoMzIpOgo+ +IMKgIFBDSTogcmVtb3ZlIF9fd2VhayB0YWcgZnJvbSBwY2lfcmVtYXBfaW9zcGFjZSgpCj4gwqAg +YXNtLWdlbmVyaWMvcGd0YWJsZS5oOiBpbnRyb2R1Y2UgcGdwcm90X25vbnBvc3RlZCByZW1hcCBh +dHRyaWJ1dGUKPiDCoCBQQ0k6IGZpeCBwY2lfcmVtYXBfaW9zcGFjZSgpIHJlbWFwIGF0dHJpYnV0 +ZQo+IMKgIGFzbS1nZW5lcmljOiBhZGQgaW9yZW1hcF9ub3Bvc3QoKSByZW1hcCBpbnRlcmZhY2UK +PiDCoCBhbHBoYTogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50YXRp +b24KPiDCoCBhdnIzMjogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50 +YXRpb24KPiDCoCBhcmM6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9zdCgpIGltcGxlbWVu +dGF0aW9uCj4gwqAgY3JpczogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVt +ZW50YXRpb24KPiDCoCBmcnY6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9zdCgpIGltcGxl +bWVudGF0aW9uCj4gwqAgaGV4YWdvbjogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkg +aW1wbGVtZW50YXRpb24KPiDCoCBpYTY0OiBpbmNsdWRlIGRlZmF1bHQgaW9yZW1hcF9ub3Bvc3Qo +KSBpbXBsZW1lbnRhdGlvbgo+IMKgIG0zMnI6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9z +dCgpIGltcGxlbWVudGF0aW9uCj4gwqAgbTY4azogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9w +b3N0KCkgaW1wbGVtZW50YXRpb24KPiDCoCBtZXRhZzogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBf +bm9wb3N0KCkgaW1wbGVtZW50YXRpb24KPiDCoCBtaWNyb2JsYXplOiBpbmNsdWRlIGRlZmF1bHQg +aW9yZW1hcF9ub3Bvc3QoKSBpbXBsZW1lbnRhdGlvbgo+IMKgIG1pcHM6IGluY2x1ZGUgZGVmYXVs +dCBpb3JlbWFwX25vcG9zdCgpIGltcGxlbWVudGF0aW9uCj4gwqAgbW4xMDMwMDogaW5jbHVkZSBk +ZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50YXRpb24KPiDCoCBuaW9zMjogaW5jbHVk +ZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50YXRpb24KPiDCoCBvcGVucmlzYzog +aW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50YXRpb24KPiDCoCBwYXJp +c2M6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9zdCgpIGltcGxlbWVudGF0aW9uCj4gwqAg +cG93ZXJwYzogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50YXRpb24K +PiDCoCBzMzkwOiBpbmNsdWRlIGRlZmF1bHQgaW9yZW1hcF9ub3Bvc3QoKSBpbXBsZW1lbnRhdGlv +bgo+IMKgIHNoOiBpbmNsdWRlIGRlZmF1bHQgaW9yZW1hcF9ub3Bvc3QoKSBpbXBsZW1lbnRhdGlv +bgo+IMKgIHNwYXJjOiBpbmNsdWRlIGRlZmF1bHQgaW9yZW1hcF9ub3Bvc3QoKSBpbXBsZW1lbnRh +dGlvbgo+IMKgIHRpbGU6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9zdCgpIGltcGxlbWVu +dGF0aW9uCj4gwqAgdW5pY29yZTMyOiBpbmNsdWRlIGRlZmF1bHQgaW9yZW1hcF9ub3Bvc3QoKSBp +bXBsZW1lbnRhdGlvbgo+IMKgIHg4NjogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkg +aW1wbGVtZW50YXRpb24KPiDCoCB4dGVuc2E6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9z +dCgpIGltcGxlbWVudGF0aW9uCj4gwqAgYXJtNjQ6IGltcGxlbWVudCBpb3JlbWFwX25vcG9zdCgp +IGludGVyZmFjZQo+IMKgIGFybTogaW1wbGVtZW50IGlvcmVtYXBfbm9wb3N0KCkgaW50ZXJmYWNl +Cj4gwqAgbGliOiBmaXggRGV2cmVzIGRldm1faW9yZW1hcF8qIG9mZnNldCBwYXJhbWV0ZXIga2Vy +bmVsZG9jCj4gZGVzY3JpcHRpb24KPiDCoCBsaWI6IGltcGxlbWVudCBEZXZyZXMgaW9yZW1hcF9u +b3Bvc3QoKSBpbnRlcmZhY2UKPiAKPiDCoERvY3VtZW50YXRpb24vZHJpdmVyLW1vZGVsL2RldnJl +cy50eHQgfMKgwqAzICsrCj4gwqBhcmNoL2FscGhhL2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKg +wqDCoMKgwqDCoMKgfMKgwqAxICsKPiDCoGFyY2gvYXJjL2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDC +oMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMSArCj4gwqBhcmNoL2FybS9pbmNsdWRlL2FzbS9pby5o +wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDkgKysrKwo+IMKgYXJjaC9hcm0vbW0vaW9y +ZW1hcC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgNyArKysKPiDCoGFy +Y2gvYXJtL21tL25vbW11LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzC +oMKgOSArKysrCj4gwqBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKg +wqDCoMKgfCAxMiArKysrKwo+IMKgYXJjaC9hdnIzMi9pbmNsdWRlL2FzbS9pby5owqDCoMKgwqDC +oMKgwqDCoMKgwqDCoHzCoMKgMSArCj4gwqBhcmNoL2NyaXMvaW5jbHVkZS9hc20vaW8uaMKgwqDC +oMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMSArCj4gwqBhcmNoL2Zydi9pbmNsdWRlL2FzbS9pby5o +wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+IMKgYXJjaC9oZXhhZ29uL2luY2x1 +ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDIgKwo+IMKgYXJjaC9pYTY0L2luY2x1 +ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+IMKgYXJjaC9tMzJy +L2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+IMKgYXJj +aC9tNjhrL2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+ +IMKgYXJjaC9tZXRhZy9pbmNsdWRlL2FzbS9pby5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKg +MiArCj4gwqBhcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20vaW8uaMKgwqDCoMKgwqDCoHzCoMKg +MSArCj4gwqBhcmNoL21pcHMvaW5jbHVkZS9hc20vaW8uaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC +oHzCoMKgMSArCj4gwqBhcmNoL21uMTAzMDAvaW5jbHVkZS9hc20vaW8uaMKgwqDCoMKgwqDCoMKg +wqDCoHzCoMKgMSArCj4gwqBhcmNoL25pb3MyL2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDC +oMKgwqDCoMKgfMKgwqAxICsKPiDCoGFyY2gvb3BlbnJpc2MvaW5jbHVkZS9hc20vaW8uaMKgwqDC +oMKgwqDCoMKgwqB8wqDCoDIgKwo+IMKgYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vaW8uaMKgwqDC +oMKgwqDCoMKgwqDCoMKgfMKgwqAxICsKPiDCoGFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9pby5o +wqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAxICsKPiDCoGFyY2gvczM5MC9pbmNsdWRlL2FzbS9pby5o +wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAxICsKPiDCoGFyY2gvc2gvaW5jbHVkZS9hc20v +aW8uaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+IMKgYXJjaC9zcGFyYy9p +bmNsdWRlL2FzbS9pby5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMSArCj4gwqBhcmNoL3Rp +bGUvaW5jbHVkZS9hc20vaW8uaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMSArCj4gwqBh +cmNoL3VuaWNvcmUzMi9pbmNsdWRlL2FzbS9pby5owqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+IMKg +YXJjaC94ODYvaW5jbHVkZS9hc20vaW8uaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAx +ICsKPiDCoGFyY2gveHRlbnNhL2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKgwqDCoHzC +oMKgMSArCj4gwqBkcml2ZXJzL3BjaS9wY2kuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC +oMKgwqDCoMKgwqDCoHzCoMKgNCArLQo+IMKgaW5jbHVkZS9hc20tZ2VuZXJpYy9pb3JlbWFwLW5v +cG9zdC5owqDCoHzCoMKgOSArKysrCj4gwqBpbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUuaMKg +wqDCoMKgwqDCoMKgwqDCoHzCoMKgNCArKwo+IMKgaW5jbHVkZS9saW51eC9kZXZpY2UuaMKgwqDC +oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAyICsKPiDCoGluY2x1ZGUvbGludXgvaW8u +aMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDIgKwo+IMKgbGli +L2RldnJlcy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg +wqDCoHwgODQKPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+IMKgMzUgZmls +ZXMgY2hhbmdlZCwgMTY3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4gwqBjcmVhdGUg +bW9kZSAxMDA2NDQgaW5jbHVkZS9hc20tZ2VuZXJpYy9pb3JlbWFwLW5vcG9zdC5oCj4gCgpfX19f +X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy +bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 +cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs +Cg== diff --git a/a/content_digest b/N1/content_digest index 36bf506..889838e 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -27,189 +27,179 @@ Matt Turner <mattst88@gmail.com> Haavard Skinnemoen <hskinnemoen@gmail.com> Fenghua Yu <fenghua.yu@intel.com> - " James Hogan <james.hoga>\0" + James Hogan <james.hogan@imgtec.com> + Chris Metcalf <cmetcalf@mellanox.com> + Arnd Bergmann <arnd@arndb.de> + Heiko Carstens <heiko.carstens@de.ibm.com> + Stefan Kristiansson <stefan.kristiansson@saunalahti.fi> + Mikael Starvik <starvik@axis.com> + Ivan Kokshaysky <ink@jurassic.park.msu.ru> + Bjorn Helgaas <bhelgaas@google.com> + Stafford Horne <shorne@gmail.com> + linux-arm-kernel@lists.infradead.org + Richard Henderson <rth@twiddle.net> + Chris Zankel <chris@zankel.net> + Michal Simek <monstr@monstr.eu> + Tony Luck <tony.luck@intel.com> + Vineet Gupta <vgupta@synopsys.com> + linux-kernel@vger.kernel.org + Ralf Baechle <ralf@linux-mips.org> + Richard Kuo <rkuo@codeaurora.org> + Niklas Cassel <nks@flawful.org> + Luis R. Rodriguez <mcgrof@kernel.org> + Martin Schwidefsky <schwidefsky@de.ibm.com> + Ley Foon Tan <lftan@altera.com> + " David S. Miller <davem@davemloft.net>\0" "\00:1\0" "b\0" - "On Tue, 2017-04-11 at 13:28 +0100, Lorenzo Pieralisi wrote:\n" - "> This patch series[1] is a v3 of a previous version:\n" - "> \n" - "> v2: https://lkml.org/lkml/2017/3/27/220\n" - "\n" - "I am not a fan of this at All.\n" - "\n" - "That whole concept of \"ioremap_nopost\" is simply not applicable to the\n" - "majority of architectures and certainly not in a way that can apply to\n" - "arbitrary mappings.\n" - "\n" - "It's also very wrong to provide a \"default\" operation whose semantics\n" - "are weaker than what it's supposed to implement. Very wrong actually.\n" - "People will use it assuming the non-posted behaviour and things will\n" - "break in subtle way when it cannot be provided.\n" - "\n" - "What exactly are you trying to fix here ?\n" - "\n" - "If a given PCIe host bridge (architecture specific) require a special\n" - "sauce to provide the illusion of non-posting, then implement this in\n" - "the actual root complex code.\n" - "\n" - "BTW. I'm pretty sure we \"accidentally\" made config writes posted at\n" - "least to the PHB on a number of powerpc systems forever and we *never*\n" - "had a problem because of it ;)\n" - "\n" - "> v2 -> v3:\n" - "> \t- Created a default ioremap_nopost() implementation in a\n" - "> separate\n" - "> \t\302\240\302\240asm-generic header and patched all arches to make use of it\n" - "> \t- Removed PCI drivers patches from the series to simplify the\n" - "> \t\302\240\302\240review, they will be posted separately once the\n" - "> ioremap_nopost()\n" - "> \t\302\240\302\240interface is settled\n" - "> \t- Fixed devm_ioremap_* BUS offset comments and implemented\n" - "> \t\302\240\302\240nopost interface on top of it\n" - "> \t- Added collected tags\n" - "> \n" - "> v1: https://lkml.org/lkml/2017/2/27/228\n" - "> \n" - "> v1 -> v2:\n" - "> \t- Changed pci_remap_cfgspace() to more generic ioremap_nopost()\n" - "> \t\302\240\302\240interface\n" - "> \t- Added pgprot_nonposted\n" - "> \t- Fixed build errors on arches not relying on asm-generic\n" - "> headers\n" - "> \t- Added PCI versatile host controller driver patch\n" - "> \t- Added missing config space remapping to hisilicon host\n" - "> controller\n" - "> \n" - "> ---------------------\n" - "> Original cover letter\n" - "> ---------------------\n" - "> \n" - "> PCI local bus specifications (Rev3.0, 3.2.5 \"Transaction Ordering\n" - "> and Posting\") strictly require PCI configuration and I/O Address\n" - "> space\n" - "> write transactions to be non-posted.\n" - "> \n" - "> Current crop of DT/ACPI PCI host controllers drivers relies on\n" - "> the ioremap interface to map ECAM and ECAM-derivative PCI config\n" - "> regions and pci_remap_iospace() to create a VMA for mapping\n" - "> PCI host bridge I/O Address space transactions to CPU virtual address\n" - "> space.\n" - "> \n" - "> On some platforms (ie ARM/ARM64) ioremap fails to comply with the PCI\n" - "> configuration non-posted write transactions requirement, because it\n" - "> provides a memory mapping that issues \"bufferable\" or, in PCI terms\n" - "> \"posted\" write transactions. Likewise, the current\n" - "> pci_remap_iospace()\n" - "> implementation maps the physical address range that the PCI\n" - "> translates\n" - "> to I/O space cycles to virtual address space through pgprot_device()\n" - "> attributes that on eg ARM64 provides a memory mapping issuing\n" - "> posted writes transactions, which is not PCI specifications\n" - "> compliant.\n" - "> \n" - "> This patch series[1] addresses both issues in one go:\n" - "> \n" - "> - It updates the pci_remap_iospace() function to use a page mapping\n" - "> \302\240 that guarantees non-posted write transactions for I/O space\n" - "> addresses\n" - "> - It adds a kernel API to remap PCI config space resources, so that\n" - "> \302\240 architecture can override it with a mapping implementation that\n" - "> \302\240 guarantees PCI specifications compliancy wrt non-posted write\n" - "> \302\240 configuration transactions\n" - "> - It updates all PCI host controller implementations (and the generic\n" - "> \302\240 ECAM layer) to use the newly introduced mapping interface\n" - "> \n" - "> Tested on Juno ECAM based interface (DT/ACPI).\n" - "> \n" - "> Non-ECAM PCI host controller drivers patches need checking to make\n" - "> sure that:\n" - "> \n" - "> - I patched the correct resource region mapping for config space\n" - "> - There are not any other ways to ensure posted-write completion\n" - "> \302\240 in the respective pci_ops that make the relevant patch unnecessary\n" - "> \n" - "> [1]\n" - "> git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git\n" - "> pci/config-io-mappings-fix-v3\n" - "> \n" - "> Lorenzo Pieralisi (32):\n" - "> \302\240 PCI: remove __weak tag from pci_remap_iospace()\n" - "> \302\240 asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute\n" - "> \302\240 PCI: fix pci_remap_iospace() remap attribute\n" - "> \302\240 asm-generic: add ioremap_nopost() remap interface\n" - "> \302\240 alpha: include default ioremap_nopost() implementation\n" - "> \302\240 avr32: include default ioremap_nopost() implementation\n" - "> \302\240 arc: include default ioremap_nopost() implementation\n" - "> \302\240 cris: include default ioremap_nopost() implementation\n" - "> \302\240 frv: include default ioremap_nopost() implementation\n" - "> \302\240 hexagon: include default ioremap_nopost() implementation\n" - "> \302\240 ia64: include default ioremap_nopost() implementation\n" - "> \302\240 m32r: include default ioremap_nopost() implementation\n" - "> \302\240 m68k: include default ioremap_nopost() implementation\n" - "> \302\240 metag: include default ioremap_nopost() implementation\n" - "> \302\240 microblaze: include default ioremap_nopost() implementation\n" - "> \302\240 mips: include default ioremap_nopost() implementation\n" - "> \302\240 mn10300: include default ioremap_nopost() implementation\n" - "> \302\240 nios2: include default ioremap_nopost() implementation\n" - "> \302\240 openrisc: include default ioremap_nopost() implementation\n" - "> \302\240 parisc: include default ioremap_nopost() implementation\n" - "> \302\240 powerpc: include default ioremap_nopost() implementation\n" - "> \302\240 s390: include default ioremap_nopost() implementation\n" - "> \302\240 sh: include default ioremap_nopost() implementation\n" - "> \302\240 sparc: include default ioremap_nopost() implementation\n" - "> \302\240 tile: include default ioremap_nopost() implementation\n" - "> \302\240 unicore32: include default ioremap_nopost() implementation\n" - "> \302\240 x86: include default ioremap_nopost() implementation\n" - "> \302\240 xtensa: include default ioremap_nopost() implementation\n" - "> \302\240 arm64: implement ioremap_nopost() interface\n" - "> \302\240 arm: implement ioremap_nopost() interface\n" - "> \302\240 lib: fix Devres devm_ioremap_* offset parameter kerneldoc\n" - "> description\n" - "> \302\240 lib: implement Devres ioremap_nopost() interface\n" - "> \n" - "> \302\240Documentation/driver-model/devres.txt |\302\240\302\2403 ++\n" - "> \302\240arch/alpha/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/arc/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/arm/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2409 ++++\n" - "> \302\240arch/arm/mm/ioremap.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2407 +++\n" - "> \302\240arch/arm/mm/nommu.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2409 ++++\n" - "> \302\240arch/arm64/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 12 +++++\n" - "> \302\240arch/avr32/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/cris/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/frv/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/hexagon/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2402 +\n" - "> \302\240arch/ia64/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/m32r/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/m68k/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/metag/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2402 +\n" - "> \302\240arch/microblaze/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/mips/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/mn10300/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/nios2/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/openrisc/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2402 +\n" - "> \302\240arch/parisc/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/powerpc/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/s390/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/sh/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/sparc/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/tile/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/unicore32/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/x86/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/xtensa/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240drivers/pci/pci.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2404 +-\n" - "> \302\240include/asm-generic/ioremap-nopost.h\302\240\302\240|\302\240\302\2409 ++++\n" - "> \302\240include/asm-generic/pgtable.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2404 ++\n" - "> \302\240include/linux/device.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2402 +\n" - "> \302\240include/linux/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2402 +\n" - "> \302\240lib/devres.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 84\n" - "> +++++++++++++++++++++++++++++++++--\n" - "> \302\24035 files changed, 167 insertions(+), 5 deletions(-)\n" - "> \302\240create mode 100644 include/asm-generic/ioremap-nopost.h\n" - "> \n" - "\n" - "_______________________________________________\n" - "linux-arm-kernel mailing list\n" - "linux-arm-kernel@lists.infradead.org\n" - http://lists.infradead.org/mailman/listinfo/linux-arm-kernel + "T24gVHVlLCAyMDE3LTA0LTExIGF0IDEzOjI4ICswMTAwLCBMb3JlbnpvIFBpZXJhbGlzaSB3cm90\n" + "ZToKPiBUaGlzIHBhdGNoIHNlcmllc1sxXSBpcyBhIHYzIG9mIGEgcHJldmlvdXMgdmVyc2lvbjoK\n" + "PiAKPiB2MjogaHR0cHM6Ly9sa21sLm9yZy9sa21sLzIwMTcvMy8yNy8yMjAKCkkgYW0gbm90IGEg\n" + "ZmFuIG9mIHRoaXMgYXQgQWxsLgoKVGhhdCB3aG9sZSBjb25jZXB0IG9mICJpb3JlbWFwX25vcG9z\n" + "dCIgaXMgc2ltcGx5IG5vdCBhcHBsaWNhYmxlIHRvIHRoZQptYWpvcml0eSBvZiBhcmNoaXRlY3R1\n" + "cmVzIGFuZCBjZXJ0YWlubHkgbm90IGluIGEgd2F5IHRoYXQgY2FuIGFwcGx5IHRvCmFyYml0cmFy\n" + "eSBtYXBwaW5ncy4KCkl0J3MgYWxzbyB2ZXJ5IHdyb25nIHRvIHByb3ZpZGUgYSAiZGVmYXVsdCIg\n" + "b3BlcmF0aW9uIHdob3NlIHNlbWFudGljcwphcmUgd2Vha2VyIHRoYW4gd2hhdCBpdCdzIHN1cHBv\n" + "c2VkIHRvIGltcGxlbWVudC4gVmVyeSB3cm9uZyBhY3R1YWxseS4KUGVvcGxlIHdpbGwgdXNlIGl0\n" + "IGFzc3VtaW5nIHRoZSBub24tcG9zdGVkIGJlaGF2aW91ciBhbmQgdGhpbmdzIHdpbGwKYnJlYWsg\n" + "aW4gc3VidGxlIHdheSB3aGVuIGl0IGNhbm5vdCBiZSBwcm92aWRlZC4KCldoYXQgZXhhY3RseSBh\n" + "cmUgeW91IHRyeWluZyB0byBmaXggaGVyZSA/CgpJZiBhIGdpdmVuIFBDSWUgaG9zdCBicmlkZ2Ug\n" + "KGFyY2hpdGVjdHVyZSBzcGVjaWZpYykgcmVxdWlyZSBhIHNwZWNpYWwKc2F1Y2UgdG8gcHJvdmlk\n" + "ZSB0aGUgaWxsdXNpb24gb2Ygbm9uLXBvc3RpbmcsIHRoZW4gaW1wbGVtZW50IHRoaXMgaW4KdGhl\n" + "IGFjdHVhbCByb290IGNvbXBsZXggY29kZS4KCkJUVy4gSSdtIHByZXR0eSBzdXJlIHdlICJhY2Np\n" + "ZGVudGFsbHkiIG1hZGUgY29uZmlnIHdyaXRlcyBwb3N0ZWQgYXQKbGVhc3QgdG8gdGhlIFBIQiBv\n" + "biBhIG51bWJlciBvZiBwb3dlcnBjIHN5c3RlbXMgZm9yZXZlciBhbmQgd2UgKm5ldmVyKgpoYWQg\n" + "YSBwcm9ibGVtIGJlY2F1c2Ugb2YgaXQgOykKCj4gdjIgLT4gdjM6Cj4gCS0gQ3JlYXRlZCBhIGRl\n" + "ZmF1bHQgaW9yZW1hcF9ub3Bvc3QoKSBpbXBsZW1lbnRhdGlvbiBpbiBhCj4gc2VwYXJhdGUKPiAJ\n" + "wqDCoGFzbS1nZW5lcmljIGhlYWRlciBhbmQgcGF0Y2hlZCBhbGwgYXJjaGVzIHRvIG1ha2UgdXNl\n" + "IG9mIGl0Cj4gCS0gUmVtb3ZlZCBQQ0kgZHJpdmVycyBwYXRjaGVzIGZyb20gdGhlIHNlcmllcyB0\n" + "byBzaW1wbGlmeSB0aGUKPiAJwqDCoHJldmlldywgdGhleSB3aWxsIGJlIHBvc3RlZCBzZXBhcmF0\n" + "ZWx5IG9uY2UgdGhlCj4gaW9yZW1hcF9ub3Bvc3QoKQo+IAnCoMKgaW50ZXJmYWNlIGlzIHNldHRs\n" + "ZWQKPiAJLSBGaXhlZCBkZXZtX2lvcmVtYXBfKiBCVVMgb2Zmc2V0IGNvbW1lbnRzIGFuZCBpbXBs\n" + "ZW1lbnRlZAo+IAnCoMKgbm9wb3N0IGludGVyZmFjZSBvbiB0b3Agb2YgaXQKPiAJLSBBZGRlZCBj\n" + "b2xsZWN0ZWQgdGFncwo+IAo+IHYxOiBodHRwczovL2xrbWwub3JnL2xrbWwvMjAxNy8yLzI3LzIy\n" + "OAo+IAo+IHYxIC0+IHYyOgo+IAktIENoYW5nZWQgcGNpX3JlbWFwX2NmZ3NwYWNlKCkgdG8gbW9y\n" + "ZSBnZW5lcmljIGlvcmVtYXBfbm9wb3N0KCkKPiAJwqDCoGludGVyZmFjZQo+IAktIEFkZGVkIHBn\n" + "cHJvdF9ub25wb3N0ZWQKPiAJLSBGaXhlZCBidWlsZCBlcnJvcnMgb24gYXJjaGVzIG5vdCByZWx5\n" + "aW5nIG9uIGFzbS1nZW5lcmljCj4gaGVhZGVycwo+IAktIEFkZGVkIFBDSSB2ZXJzYXRpbGUgaG9z\n" + "dCBjb250cm9sbGVyIGRyaXZlciBwYXRjaAo+IAktIEFkZGVkIG1pc3NpbmcgY29uZmlnIHNwYWNl\n" + "IHJlbWFwcGluZyB0byBoaXNpbGljb24gaG9zdAo+IGNvbnRyb2xsZXIKPiAKPiAtLS0tLS0tLS0t\n" + "LS0tLS0tLS0tLS0KPiBPcmlnaW5hbCBjb3ZlciBsZXR0ZXIKPiAtLS0tLS0tLS0tLS0tLS0tLS0t\n" + "LS0KPiAKPiBQQ0kgbG9jYWwgYnVzIHNwZWNpZmljYXRpb25zIChSZXYzLjAsIDMuMi41ICJUcmFu\n" + "c2FjdGlvbiBPcmRlcmluZwo+IGFuZCBQb3N0aW5nIikgc3RyaWN0bHkgcmVxdWlyZSBQQ0kgY29u\n" + "ZmlndXJhdGlvbiBhbmQgSS9PIEFkZHJlc3MKPiBzcGFjZQo+IHdyaXRlIHRyYW5zYWN0aW9ucyB0\n" + "byBiZSBub24tcG9zdGVkLgo+IAo+IEN1cnJlbnQgY3JvcCBvZiBEVC9BQ1BJIFBDSSBob3N0IGNv\n" + "bnRyb2xsZXJzIGRyaXZlcnMgcmVsaWVzIG9uCj4gdGhlIGlvcmVtYXAgaW50ZXJmYWNlIHRvIG1h\n" + "cCBFQ0FNIGFuZCBFQ0FNLWRlcml2YXRpdmUgUENJIGNvbmZpZwo+IHJlZ2lvbnMgYW5kIHBjaV9y\n" + "ZW1hcF9pb3NwYWNlKCkgdG8gY3JlYXRlIGEgVk1BIGZvciBtYXBwaW5nCj4gUENJIGhvc3QgYnJp\n" + "ZGdlIEkvTyBBZGRyZXNzIHNwYWNlIHRyYW5zYWN0aW9ucyB0byBDUFUgdmlydHVhbCBhZGRyZXNz\n" + "Cj4gc3BhY2UuCj4gCj4gT24gc29tZSBwbGF0Zm9ybXMgKGllIEFSTS9BUk02NCkgaW9yZW1hcCBm\n" + "YWlscyB0byBjb21wbHkgd2l0aCB0aGUgUENJCj4gY29uZmlndXJhdGlvbiBub24tcG9zdGVkIHdy\n" + "aXRlIHRyYW5zYWN0aW9ucyByZXF1aXJlbWVudCwgYmVjYXVzZSBpdAo+IHByb3ZpZGVzIGEgbWVt\n" + "b3J5IG1hcHBpbmcgdGhhdCBpc3N1ZXMgImJ1ZmZlcmFibGUiIG9yLCBpbiBQQ0kgdGVybXMKPiAi\n" + "cG9zdGVkIiB3cml0ZSB0cmFuc2FjdGlvbnMuIExpa2V3aXNlLCB0aGUgY3VycmVudAo+IHBjaV9y\n" + "ZW1hcF9pb3NwYWNlKCkKPiBpbXBsZW1lbnRhdGlvbiBtYXBzIHRoZSBwaHlzaWNhbCBhZGRyZXNz\n" + "IHJhbmdlIHRoYXQgdGhlIFBDSQo+IHRyYW5zbGF0ZXMKPiB0byBJL08gc3BhY2UgY3ljbGVzIHRv\n" + "IHZpcnR1YWwgYWRkcmVzcyBzcGFjZSB0aHJvdWdoIHBncHJvdF9kZXZpY2UoKQo+IGF0dHJpYnV0\n" + "ZXMgdGhhdCBvbiBlZyBBUk02NCBwcm92aWRlcyBhIG1lbW9yeSBtYXBwaW5nIGlzc3VpbmcKPiBw\n" + "b3N0ZWQgd3JpdGVzIHRyYW5zYWN0aW9ucywgd2hpY2ggaXMgbm90IFBDSSBzcGVjaWZpY2F0aW9u\n" + "cwo+IGNvbXBsaWFudC4KPiAKPiBUaGlzIHBhdGNoIHNlcmllc1sxXSBhZGRyZXNzZXMgYm90aCBp\n" + "c3N1ZXMgaW4gb25lIGdvOgo+IAo+IC0gSXQgdXBkYXRlcyB0aGUgcGNpX3JlbWFwX2lvc3BhY2Uo\n" + "KSBmdW5jdGlvbiB0byB1c2UgYSBwYWdlIG1hcHBpbmcKPiDCoCB0aGF0IGd1YXJhbnRlZXMgbm9u\n" + "LXBvc3RlZCB3cml0ZSB0cmFuc2FjdGlvbnMgZm9yIEkvTyBzcGFjZQo+IGFkZHJlc3Nlcwo+IC0g\n" + "SXQgYWRkcyBhIGtlcm5lbCBBUEkgdG8gcmVtYXAgUENJIGNvbmZpZyBzcGFjZSByZXNvdXJjZXMs\n" + "IHNvIHRoYXQKPiDCoCBhcmNoaXRlY3R1cmUgY2FuIG92ZXJyaWRlIGl0IHdpdGggYSBtYXBwaW5n\n" + "IGltcGxlbWVudGF0aW9uIHRoYXQKPiDCoCBndWFyYW50ZWVzIFBDSSBzcGVjaWZpY2F0aW9ucyBj\n" + "b21wbGlhbmN5IHdydCBub24tcG9zdGVkIHdyaXRlCj4gwqAgY29uZmlndXJhdGlvbiB0cmFuc2Fj\n" + "dGlvbnMKPiAtIEl0IHVwZGF0ZXMgYWxsIFBDSSBob3N0IGNvbnRyb2xsZXIgaW1wbGVtZW50YXRp\n" + "b25zIChhbmQgdGhlIGdlbmVyaWMKPiDCoCBFQ0FNIGxheWVyKSB0byB1c2UgdGhlIG5ld2x5IGlu\n" + "dHJvZHVjZWQgbWFwcGluZyBpbnRlcmZhY2UKPiAKPiBUZXN0ZWQgb24gSnVubyBFQ0FNIGJhc2Vk\n" + "IGludGVyZmFjZSAoRFQvQUNQSSkuCj4gCj4gTm9uLUVDQU0gUENJIGhvc3QgY29udHJvbGxlciBk\n" + "cml2ZXJzIHBhdGNoZXMgbmVlZCBjaGVja2luZyB0byBtYWtlCj4gc3VyZSB0aGF0Ogo+IAo+IC0g\n" + "SSBwYXRjaGVkIHRoZSBjb3JyZWN0IHJlc291cmNlIHJlZ2lvbiBtYXBwaW5nIGZvciBjb25maWcg\n" + "c3BhY2UKPiAtIFRoZXJlIGFyZSBub3QgYW55IG90aGVyIHdheXMgdG8gZW5zdXJlIHBvc3RlZC13\n" + "cml0ZSBjb21wbGV0aW9uCj4gwqAgaW4gdGhlIHJlc3BlY3RpdmUgcGNpX29wcyB0aGF0IG1ha2Ug\n" + "dGhlIHJlbGV2YW50IHBhdGNoIHVubmVjZXNzYXJ5Cj4gCj4gWzFdCj4gZ2l0Oi8vZ2l0Lmtlcm5l\n" + "bC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2xwaWVyYWxpc2kvbGludXguZ2l0Cj4gcGNp\n" + "L2NvbmZpZy1pby1tYXBwaW5ncy1maXgtdjMKPiAKPiBMb3JlbnpvIFBpZXJhbGlzaSAoMzIpOgo+\n" + "IMKgIFBDSTogcmVtb3ZlIF9fd2VhayB0YWcgZnJvbSBwY2lfcmVtYXBfaW9zcGFjZSgpCj4gwqAg\n" + "YXNtLWdlbmVyaWMvcGd0YWJsZS5oOiBpbnRyb2R1Y2UgcGdwcm90X25vbnBvc3RlZCByZW1hcCBh\n" + "dHRyaWJ1dGUKPiDCoCBQQ0k6IGZpeCBwY2lfcmVtYXBfaW9zcGFjZSgpIHJlbWFwIGF0dHJpYnV0\n" + "ZQo+IMKgIGFzbS1nZW5lcmljOiBhZGQgaW9yZW1hcF9ub3Bvc3QoKSByZW1hcCBpbnRlcmZhY2UK\n" + "PiDCoCBhbHBoYTogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50YXRp\n" + "b24KPiDCoCBhdnIzMjogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50\n" + "YXRpb24KPiDCoCBhcmM6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9zdCgpIGltcGxlbWVu\n" + "dGF0aW9uCj4gwqAgY3JpczogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVt\n" + "ZW50YXRpb24KPiDCoCBmcnY6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9zdCgpIGltcGxl\n" + "bWVudGF0aW9uCj4gwqAgaGV4YWdvbjogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkg\n" + "aW1wbGVtZW50YXRpb24KPiDCoCBpYTY0OiBpbmNsdWRlIGRlZmF1bHQgaW9yZW1hcF9ub3Bvc3Qo\n" + "KSBpbXBsZW1lbnRhdGlvbgo+IMKgIG0zMnI6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9z\n" + "dCgpIGltcGxlbWVudGF0aW9uCj4gwqAgbTY4azogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9w\n" + "b3N0KCkgaW1wbGVtZW50YXRpb24KPiDCoCBtZXRhZzogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBf\n" + "bm9wb3N0KCkgaW1wbGVtZW50YXRpb24KPiDCoCBtaWNyb2JsYXplOiBpbmNsdWRlIGRlZmF1bHQg\n" + "aW9yZW1hcF9ub3Bvc3QoKSBpbXBsZW1lbnRhdGlvbgo+IMKgIG1pcHM6IGluY2x1ZGUgZGVmYXVs\n" + "dCBpb3JlbWFwX25vcG9zdCgpIGltcGxlbWVudGF0aW9uCj4gwqAgbW4xMDMwMDogaW5jbHVkZSBk\n" + "ZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50YXRpb24KPiDCoCBuaW9zMjogaW5jbHVk\n" + "ZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50YXRpb24KPiDCoCBvcGVucmlzYzog\n" + "aW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50YXRpb24KPiDCoCBwYXJp\n" + "c2M6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9zdCgpIGltcGxlbWVudGF0aW9uCj4gwqAg\n" + "cG93ZXJwYzogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkgaW1wbGVtZW50YXRpb24K\n" + "PiDCoCBzMzkwOiBpbmNsdWRlIGRlZmF1bHQgaW9yZW1hcF9ub3Bvc3QoKSBpbXBsZW1lbnRhdGlv\n" + "bgo+IMKgIHNoOiBpbmNsdWRlIGRlZmF1bHQgaW9yZW1hcF9ub3Bvc3QoKSBpbXBsZW1lbnRhdGlv\n" + "bgo+IMKgIHNwYXJjOiBpbmNsdWRlIGRlZmF1bHQgaW9yZW1hcF9ub3Bvc3QoKSBpbXBsZW1lbnRh\n" + "dGlvbgo+IMKgIHRpbGU6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9zdCgpIGltcGxlbWVu\n" + "dGF0aW9uCj4gwqAgdW5pY29yZTMyOiBpbmNsdWRlIGRlZmF1bHQgaW9yZW1hcF9ub3Bvc3QoKSBp\n" + "bXBsZW1lbnRhdGlvbgo+IMKgIHg4NjogaW5jbHVkZSBkZWZhdWx0IGlvcmVtYXBfbm9wb3N0KCkg\n" + "aW1wbGVtZW50YXRpb24KPiDCoCB4dGVuc2E6IGluY2x1ZGUgZGVmYXVsdCBpb3JlbWFwX25vcG9z\n" + "dCgpIGltcGxlbWVudGF0aW9uCj4gwqAgYXJtNjQ6IGltcGxlbWVudCBpb3JlbWFwX25vcG9zdCgp\n" + "IGludGVyZmFjZQo+IMKgIGFybTogaW1wbGVtZW50IGlvcmVtYXBfbm9wb3N0KCkgaW50ZXJmYWNl\n" + "Cj4gwqAgbGliOiBmaXggRGV2cmVzIGRldm1faW9yZW1hcF8qIG9mZnNldCBwYXJhbWV0ZXIga2Vy\n" + "bmVsZG9jCj4gZGVzY3JpcHRpb24KPiDCoCBsaWI6IGltcGxlbWVudCBEZXZyZXMgaW9yZW1hcF9u\n" + "b3Bvc3QoKSBpbnRlcmZhY2UKPiAKPiDCoERvY3VtZW50YXRpb24vZHJpdmVyLW1vZGVsL2RldnJl\n" + "cy50eHQgfMKgwqAzICsrCj4gwqBhcmNoL2FscGhhL2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKg\n" + "wqDCoMKgwqDCoMKgfMKgwqAxICsKPiDCoGFyY2gvYXJjL2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDC\n" + "oMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMSArCj4gwqBhcmNoL2FybS9pbmNsdWRlL2FzbS9pby5o\n" + "wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDkgKysrKwo+IMKgYXJjaC9hcm0vbW0vaW9y\n" + "ZW1hcC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgNyArKysKPiDCoGFy\n" + "Y2gvYXJtL21tL25vbW11LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzC\n" + "oMKgOSArKysrCj4gwqBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKg\n" + "wqDCoMKgfCAxMiArKysrKwo+IMKgYXJjaC9hdnIzMi9pbmNsdWRlL2FzbS9pby5owqDCoMKgwqDC\n" + "oMKgwqDCoMKgwqDCoHzCoMKgMSArCj4gwqBhcmNoL2NyaXMvaW5jbHVkZS9hc20vaW8uaMKgwqDC\n" + "oMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMSArCj4gwqBhcmNoL2Zydi9pbmNsdWRlL2FzbS9pby5o\n" + "wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+IMKgYXJjaC9oZXhhZ29uL2luY2x1\n" + "ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDIgKwo+IMKgYXJjaC9pYTY0L2luY2x1\n" + "ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+IMKgYXJjaC9tMzJy\n" + "L2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+IMKgYXJj\n" + "aC9tNjhrL2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+\n" + "IMKgYXJjaC9tZXRhZy9pbmNsdWRlL2FzbS9pby5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKg\n" + "MiArCj4gwqBhcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20vaW8uaMKgwqDCoMKgwqDCoHzCoMKg\n" + "MSArCj4gwqBhcmNoL21pcHMvaW5jbHVkZS9hc20vaW8uaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC\n" + "oHzCoMKgMSArCj4gwqBhcmNoL21uMTAzMDAvaW5jbHVkZS9hc20vaW8uaMKgwqDCoMKgwqDCoMKg\n" + "wqDCoHzCoMKgMSArCj4gwqBhcmNoL25pb3MyL2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDC\n" + "oMKgwqDCoMKgfMKgwqAxICsKPiDCoGFyY2gvb3BlbnJpc2MvaW5jbHVkZS9hc20vaW8uaMKgwqDC\n" + "oMKgwqDCoMKgwqB8wqDCoDIgKwo+IMKgYXJjaC9wYXJpc2MvaW5jbHVkZS9hc20vaW8uaMKgwqDC\n" + "oMKgwqDCoMKgwqDCoMKgfMKgwqAxICsKPiDCoGFyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9pby5o\n" + "wqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAxICsKPiDCoGFyY2gvczM5MC9pbmNsdWRlL2FzbS9pby5o\n" + "wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAxICsKPiDCoGFyY2gvc2gvaW5jbHVkZS9hc20v\n" + "aW8uaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+IMKgYXJjaC9zcGFyYy9p\n" + "bmNsdWRlL2FzbS9pby5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMSArCj4gwqBhcmNoL3Rp\n" + "bGUvaW5jbHVkZS9hc20vaW8uaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMSArCj4gwqBh\n" + "cmNoL3VuaWNvcmUzMi9pbmNsdWRlL2FzbS9pby5owqDCoMKgwqDCoMKgwqB8wqDCoDEgKwo+IMKg\n" + "YXJjaC94ODYvaW5jbHVkZS9hc20vaW8uaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAx\n" + "ICsKPiDCoGFyY2gveHRlbnNhL2luY2x1ZGUvYXNtL2lvLmjCoMKgwqDCoMKgwqDCoMKgwqDCoHzC\n" + "oMKgMSArCj4gwqBkcml2ZXJzL3BjaS9wY2kuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC\n" + "oMKgwqDCoMKgwqDCoHzCoMKgNCArLQo+IMKgaW5jbHVkZS9hc20tZ2VuZXJpYy9pb3JlbWFwLW5v\n" + "cG9zdC5owqDCoHzCoMKgOSArKysrCj4gwqBpbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUuaMKg\n" + "wqDCoMKgwqDCoMKgwqDCoHzCoMKgNCArKwo+IMKgaW5jbHVkZS9saW51eC9kZXZpY2UuaMKgwqDC\n" + "oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAyICsKPiDCoGluY2x1ZGUvbGludXgvaW8u\n" + "aMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDIgKwo+IMKgbGli\n" + "L2RldnJlcy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg\n" + "wqDCoHwgODQKPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+IMKgMzUgZmls\n" + "ZXMgY2hhbmdlZCwgMTY3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4gwqBjcmVhdGUg\n" + "bW9kZSAxMDA2NDQgaW5jbHVkZS9hc20tZ2VuZXJpYy9pb3JlbWFwLW5vcG9zdC5oCj4gCgpfX19f\n" + "X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy\n" + "bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0\n" + "cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs\n" + Cg== -b9c210a7eaa66949f43020505d10c26670e3ad662003275e5f518ff89e2fbabe +4ebb9f14a671848e4cdb9eff828f6b9cdbaec870664c45ea763db967516f7bb2
diff --git a/a/1.txt b/N2/1.txt index fdab112..587c508 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -27,20 +27,20 @@ had a problem because of it ;) > v2 -> v3: > - Created a default ioremap_nopost() implementation in a > separate -> asm-generic header and patched all arches to make use of it +> ??asm-generic header and patched all arches to make use of it > - Removed PCI drivers patches from the series to simplify the -> review, they will be posted separately once the +> ??review, they will be posted separately once the > ioremap_nopost() -> interface is settled +> ??interface is settled > - Fixed devm_ioremap_* BUS offset comments and implemented -> nopost interface on top of it +> ??nopost interface on top of it > - Added collected tags > > v1: https://lkml.org/lkml/2017/2/27/228 > > v1 -> v2: > - Changed pci_remap_cfgspace() to more generic ioremap_nopost() -> interface +> ??interface > - Added pgprot_nonposted > - Fixed build errors on arches not relying on asm-generic > headers @@ -78,14 +78,14 @@ had a problem because of it ;) > This patch series[1] addresses both issues in one go: > > - It updates the pci_remap_iospace() function to use a page mapping -> that guarantees non-posted write transactions for I/O space +> ? that guarantees non-posted write transactions for I/O space > addresses > - It adds a kernel API to remap PCI config space resources, so that -> architecture can override it with a mapping implementation that -> guarantees PCI specifications compliancy wrt non-posted write -> configuration transactions +> ? architecture can override it with a mapping implementation that +> ? guarantees PCI specifications compliancy wrt non-posted write +> ? configuration transactions > - It updates all PCI host controller implementations (and the generic -> ECAM layer) to use the newly introduced mapping interface +> ? ECAM layer) to use the newly introduced mapping interface > > Tested on Juno ECAM based interface (DT/ACPI). > @@ -94,88 +94,83 @@ had a problem because of it ;) > > - I patched the correct resource region mapping for config space > - There are not any other ways to ensure posted-write completion -> in the respective pci_ops that make the relevant patch unnecessary +> ? in the respective pci_ops that make the relevant patch unnecessary > > [1] > git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git > pci/config-io-mappings-fix-v3 > > Lorenzo Pieralisi (32): -> PCI: remove __weak tag from pci_remap_iospace() -> asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute -> PCI: fix pci_remap_iospace() remap attribute -> asm-generic: add ioremap_nopost() remap interface -> alpha: include default ioremap_nopost() implementation -> avr32: include default ioremap_nopost() implementation -> arc: include default ioremap_nopost() implementation -> cris: include default ioremap_nopost() implementation -> frv: include default ioremap_nopost() implementation -> hexagon: include default ioremap_nopost() implementation -> ia64: include default ioremap_nopost() implementation -> m32r: include default ioremap_nopost() implementation -> m68k: include default ioremap_nopost() implementation -> metag: include default ioremap_nopost() implementation -> microblaze: include default ioremap_nopost() implementation -> mips: include default ioremap_nopost() implementation -> mn10300: include default ioremap_nopost() implementation -> nios2: include default ioremap_nopost() implementation -> openrisc: include default ioremap_nopost() implementation -> parisc: include default ioremap_nopost() implementation -> powerpc: include default ioremap_nopost() implementation -> s390: include default ioremap_nopost() implementation -> sh: include default ioremap_nopost() implementation -> sparc: include default ioremap_nopost() implementation -> tile: include default ioremap_nopost() implementation -> unicore32: include default ioremap_nopost() implementation -> x86: include default ioremap_nopost() implementation -> xtensa: include default ioremap_nopost() implementation -> arm64: implement ioremap_nopost() interface -> arm: implement ioremap_nopost() interface -> lib: fix Devres devm_ioremap_* offset parameter kerneldoc +> ? PCI: remove __weak tag from pci_remap_iospace() +> ? asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute +> ? PCI: fix pci_remap_iospace() remap attribute +> ? asm-generic: add ioremap_nopost() remap interface +> ? alpha: include default ioremap_nopost() implementation +> ? avr32: include default ioremap_nopost() implementation +> ? arc: include default ioremap_nopost() implementation +> ? cris: include default ioremap_nopost() implementation +> ? frv: include default ioremap_nopost() implementation +> ? hexagon: include default ioremap_nopost() implementation +> ? ia64: include default ioremap_nopost() implementation +> ? m32r: include default ioremap_nopost() implementation +> ? m68k: include default ioremap_nopost() implementation +> ? metag: include default ioremap_nopost() implementation +> ? microblaze: include default ioremap_nopost() implementation +> ? mips: include default ioremap_nopost() implementation +> ? mn10300: include default ioremap_nopost() implementation +> ? nios2: include default ioremap_nopost() implementation +> ? openrisc: include default ioremap_nopost() implementation +> ? parisc: include default ioremap_nopost() implementation +> ? powerpc: include default ioremap_nopost() implementation +> ? s390: include default ioremap_nopost() implementation +> ? sh: include default ioremap_nopost() implementation +> ? sparc: include default ioremap_nopost() implementation +> ? tile: include default ioremap_nopost() implementation +> ? unicore32: include default ioremap_nopost() implementation +> ? x86: include default ioremap_nopost() implementation +> ? xtensa: include default ioremap_nopost() implementation +> ? arm64: implement ioremap_nopost() interface +> ? arm: implement ioremap_nopost() interface +> ? lib: fix Devres devm_ioremap_* offset parameter kerneldoc > description -> lib: implement Devres ioremap_nopost() interface -> -> Documentation/driver-model/devres.txt | 3 ++ -> arch/alpha/include/asm/io.h | 1 + -> arch/arc/include/asm/io.h | 1 + -> arch/arm/include/asm/io.h | 9 ++++ -> arch/arm/mm/ioremap.c | 7 +++ -> arch/arm/mm/nommu.c | 9 ++++ -> arch/arm64/include/asm/io.h | 12 +++++ -> arch/avr32/include/asm/io.h | 1 + -> arch/cris/include/asm/io.h | 1 + -> arch/frv/include/asm/io.h | 1 + -> arch/hexagon/include/asm/io.h | 2 + -> arch/ia64/include/asm/io.h | 1 + -> arch/m32r/include/asm/io.h | 1 + -> arch/m68k/include/asm/io.h | 1 + -> arch/metag/include/asm/io.h | 2 + -> arch/microblaze/include/asm/io.h | 1 + -> arch/mips/include/asm/io.h | 1 + -> arch/mn10300/include/asm/io.h | 1 + -> arch/nios2/include/asm/io.h | 1 + -> arch/openrisc/include/asm/io.h | 2 + -> arch/parisc/include/asm/io.h | 1 + -> arch/powerpc/include/asm/io.h | 1 + -> arch/s390/include/asm/io.h | 1 + -> arch/sh/include/asm/io.h | 1 + -> arch/sparc/include/asm/io.h | 1 + -> arch/tile/include/asm/io.h | 1 + -> arch/unicore32/include/asm/io.h | 1 + -> arch/x86/include/asm/io.h | 1 + -> arch/xtensa/include/asm/io.h | 1 + -> drivers/pci/pci.c | 4 +- -> include/asm-generic/ioremap-nopost.h | 9 ++++ -> include/asm-generic/pgtable.h | 4 ++ -> include/linux/device.h | 2 + -> include/linux/io.h | 2 + -> lib/devres.c | 84 +> ? lib: implement Devres ioremap_nopost() interface +> +> ?Documentation/driver-model/devres.txt |??3 ++ +> ?arch/alpha/include/asm/io.h???????????|??1 + +> ?arch/arc/include/asm/io.h?????????????|??1 + +> ?arch/arm/include/asm/io.h?????????????|??9 ++++ +> ?arch/arm/mm/ioremap.c?????????????????|??7 +++ +> ?arch/arm/mm/nommu.c???????????????????|??9 ++++ +> ?arch/arm64/include/asm/io.h???????????| 12 +++++ +> ?arch/avr32/include/asm/io.h???????????|??1 + +> ?arch/cris/include/asm/io.h????????????|??1 + +> ?arch/frv/include/asm/io.h?????????????|??1 + +> ?arch/hexagon/include/asm/io.h?????????|??2 + +> ?arch/ia64/include/asm/io.h????????????|??1 + +> ?arch/m32r/include/asm/io.h????????????|??1 + +> ?arch/m68k/include/asm/io.h????????????|??1 + +> ?arch/metag/include/asm/io.h???????????|??2 + +> ?arch/microblaze/include/asm/io.h??????|??1 + +> ?arch/mips/include/asm/io.h????????????|??1 + +> ?arch/mn10300/include/asm/io.h?????????|??1 + +> ?arch/nios2/include/asm/io.h???????????|??1 + +> ?arch/openrisc/include/asm/io.h????????|??2 + +> ?arch/parisc/include/asm/io.h??????????|??1 + +> ?arch/powerpc/include/asm/io.h?????????|??1 + +> ?arch/s390/include/asm/io.h????????????|??1 + +> ?arch/sh/include/asm/io.h??????????????|??1 + +> ?arch/sparc/include/asm/io.h???????????|??1 + +> ?arch/tile/include/asm/io.h????????????|??1 + +> ?arch/unicore32/include/asm/io.h???????|??1 + +> ?arch/x86/include/asm/io.h?????????????|??1 + +> ?arch/xtensa/include/asm/io.h??????????|??1 + +> ?drivers/pci/pci.c?????????????????????|??4 +- +> ?include/asm-generic/ioremap-nopost.h??|??9 ++++ +> ?include/asm-generic/pgtable.h?????????|??4 ++ +> ?include/linux/device.h????????????????|??2 + +> ?include/linux/io.h????????????????????|??2 + +> ?lib/devres.c??????????????????????????| 84 > +++++++++++++++++++++++++++++++++-- -> 35 files changed, 167 insertions(+), 5 deletions(-) -> create mode 100644 include/asm-generic/ioremap-nopost.h -> - -_______________________________________________ -linux-arm-kernel mailing list -linux-arm-kernel@lists.infradead.org -http://lists.infradead.org/mailman/listinfo/linux-arm-kernel +> ?35 files changed, 167 insertions(+), 5 deletions(-) +> ?create mode 100644 include/asm-generic/ioremap-nopost.h +> diff --git a/a/content_digest b/N2/content_digest index 36bf506..c98b8dd 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,33 +1,8 @@ "ref\020170411122923.6285-1-lorenzo.pieralisi@arm.com\0" - "From\0Benjamin Herrenschmidt <benh@kernel.crashing.org>\0" - "Subject\0Re: [PATCH v3 00/32] PCI: fix config and I/O Address space memory mappings\0" + "From\0benh@kernel.crashing.org (Benjamin Herrenschmidt)\0" + "Subject\0[PATCH v3 00/32] PCI: fix config and I/O Address space memory mappings\0" "Date\0Tue, 11 Apr 2017 23:38:26 +1000\0" - "To\0Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>" - " linux-pci@vger.kernel.org\0" - "Cc\0Jonas Bonn <jonas@southpole.se>" - Rich Felker <dalias@libc.org> - Catalin Marinas <catalin.marinas@arm.com> - Will Deacon <will.deacon@arm.com> - James E.J. Bottomley <jejb@parisc-linux.org> - David Howells <dhowells@redhat.com> - Max Filippov <jcmvbkbc@gmail.com> - Paul Mackerras <paulus@samba.org> - Huacai Chen <chenhc@lemote.com> - Guan Xuetao <gxt@mprc.pku.edu.cn> - Thomas Gleixner <tglx@linutronix.de> - Hans-Christian Egtvedt <egtvedt@samfundet.no> - linux-arch@vger.kernel.org - Jesper Nilsson <jesper.nilsson@axis.com> - Yoshinori Sato <ysato@users.sourceforge.jp> - Michael Ellerman <mpe@ellerman.id.au> - Helge Deller <deller@gmx.de> - Russell King <linux@armlinux.org.uk> - Ingo Molnar <mingo@redhat.com> - Geert Uytterhoeven <geert@linux-m68k.org> - Matt Turner <mattst88@gmail.com> - Haavard Skinnemoen <hskinnemoen@gmail.com> - Fenghua Yu <fenghua.yu@intel.com> - " James Hogan <james.hoga>\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "On Tue, 2017-04-11 at 13:28 +0100, Lorenzo Pieralisi wrote:\n" @@ -59,20 +34,20 @@ "> v2 -> v3:\n" "> \t- Created a default ioremap_nopost() implementation in a\n" "> separate\n" - "> \t\302\240\302\240asm-generic header and patched all arches to make use of it\n" + "> \t??asm-generic header and patched all arches to make use of it\n" "> \t- Removed PCI drivers patches from the series to simplify the\n" - "> \t\302\240\302\240review, they will be posted separately once the\n" + "> \t??review, they will be posted separately once the\n" "> ioremap_nopost()\n" - "> \t\302\240\302\240interface is settled\n" + "> \t??interface is settled\n" "> \t- Fixed devm_ioremap_* BUS offset comments and implemented\n" - "> \t\302\240\302\240nopost interface on top of it\n" + "> \t??nopost interface on top of it\n" "> \t- Added collected tags\n" "> \n" "> v1: https://lkml.org/lkml/2017/2/27/228\n" "> \n" "> v1 -> v2:\n" "> \t- Changed pci_remap_cfgspace() to more generic ioremap_nopost()\n" - "> \t\302\240\302\240interface\n" + "> \t??interface\n" "> \t- Added pgprot_nonposted\n" "> \t- Fixed build errors on arches not relying on asm-generic\n" "> headers\n" @@ -110,14 +85,14 @@ "> This patch series[1] addresses both issues in one go:\n" "> \n" "> - It updates the pci_remap_iospace() function to use a page mapping\n" - "> \302\240 that guarantees non-posted write transactions for I/O space\n" + "> ? that guarantees non-posted write transactions for I/O space\n" "> addresses\n" "> - It adds a kernel API to remap PCI config space resources, so that\n" - "> \302\240 architecture can override it with a mapping implementation that\n" - "> \302\240 guarantees PCI specifications compliancy wrt non-posted write\n" - "> \302\240 configuration transactions\n" + "> ? architecture can override it with a mapping implementation that\n" + "> ? guarantees PCI specifications compliancy wrt non-posted write\n" + "> ? configuration transactions\n" "> - It updates all PCI host controller implementations (and the generic\n" - "> \302\240 ECAM layer) to use the newly introduced mapping interface\n" + "> ? ECAM layer) to use the newly introduced mapping interface\n" "> \n" "> Tested on Juno ECAM based interface (DT/ACPI).\n" "> \n" @@ -126,90 +101,85 @@ "> \n" "> - I patched the correct resource region mapping for config space\n" "> - There are not any other ways to ensure posted-write completion\n" - "> \302\240 in the respective pci_ops that make the relevant patch unnecessary\n" + "> ? in the respective pci_ops that make the relevant patch unnecessary\n" "> \n" "> [1]\n" "> git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git\n" "> pci/config-io-mappings-fix-v3\n" "> \n" "> Lorenzo Pieralisi (32):\n" - "> \302\240 PCI: remove __weak tag from pci_remap_iospace()\n" - "> \302\240 asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute\n" - "> \302\240 PCI: fix pci_remap_iospace() remap attribute\n" - "> \302\240 asm-generic: add ioremap_nopost() remap interface\n" - "> \302\240 alpha: include default ioremap_nopost() implementation\n" - "> \302\240 avr32: include default ioremap_nopost() implementation\n" - "> \302\240 arc: include default ioremap_nopost() implementation\n" - "> \302\240 cris: include default ioremap_nopost() implementation\n" - "> \302\240 frv: include default ioremap_nopost() implementation\n" - "> \302\240 hexagon: include default ioremap_nopost() implementation\n" - "> \302\240 ia64: include default ioremap_nopost() implementation\n" - "> \302\240 m32r: include default ioremap_nopost() implementation\n" - "> \302\240 m68k: include default ioremap_nopost() implementation\n" - "> \302\240 metag: include default ioremap_nopost() implementation\n" - "> \302\240 microblaze: include default ioremap_nopost() implementation\n" - "> \302\240 mips: include default ioremap_nopost() implementation\n" - "> \302\240 mn10300: include default ioremap_nopost() implementation\n" - "> \302\240 nios2: include default ioremap_nopost() implementation\n" - "> \302\240 openrisc: include default ioremap_nopost() implementation\n" - "> \302\240 parisc: include default ioremap_nopost() implementation\n" - "> \302\240 powerpc: include default ioremap_nopost() implementation\n" - "> \302\240 s390: include default ioremap_nopost() implementation\n" - "> \302\240 sh: include default ioremap_nopost() implementation\n" - "> \302\240 sparc: include default ioremap_nopost() implementation\n" - "> \302\240 tile: include default ioremap_nopost() implementation\n" - "> \302\240 unicore32: include default ioremap_nopost() implementation\n" - "> \302\240 x86: include default ioremap_nopost() implementation\n" - "> \302\240 xtensa: include default ioremap_nopost() implementation\n" - "> \302\240 arm64: implement ioremap_nopost() interface\n" - "> \302\240 arm: implement ioremap_nopost() interface\n" - "> \302\240 lib: fix Devres devm_ioremap_* offset parameter kerneldoc\n" + "> ? PCI: remove __weak tag from pci_remap_iospace()\n" + "> ? asm-generic/pgtable.h: introduce pgprot_nonposted remap attribute\n" + "> ? PCI: fix pci_remap_iospace() remap attribute\n" + "> ? asm-generic: add ioremap_nopost() remap interface\n" + "> ? alpha: include default ioremap_nopost() implementation\n" + "> ? avr32: include default ioremap_nopost() implementation\n" + "> ? arc: include default ioremap_nopost() implementation\n" + "> ? cris: include default ioremap_nopost() implementation\n" + "> ? frv: include default ioremap_nopost() implementation\n" + "> ? hexagon: include default ioremap_nopost() implementation\n" + "> ? ia64: include default ioremap_nopost() implementation\n" + "> ? m32r: include default ioremap_nopost() implementation\n" + "> ? m68k: include default ioremap_nopost() implementation\n" + "> ? metag: include default ioremap_nopost() implementation\n" + "> ? microblaze: include default ioremap_nopost() implementation\n" + "> ? mips: include default ioremap_nopost() implementation\n" + "> ? mn10300: include default ioremap_nopost() implementation\n" + "> ? nios2: include default ioremap_nopost() implementation\n" + "> ? openrisc: include default ioremap_nopost() implementation\n" + "> ? parisc: include default ioremap_nopost() implementation\n" + "> ? powerpc: include default ioremap_nopost() implementation\n" + "> ? s390: include default ioremap_nopost() implementation\n" + "> ? sh: include default ioremap_nopost() implementation\n" + "> ? sparc: include default ioremap_nopost() implementation\n" + "> ? tile: include default ioremap_nopost() implementation\n" + "> ? unicore32: include default ioremap_nopost() implementation\n" + "> ? x86: include default ioremap_nopost() implementation\n" + "> ? xtensa: include default ioremap_nopost() implementation\n" + "> ? arm64: implement ioremap_nopost() interface\n" + "> ? arm: implement ioremap_nopost() interface\n" + "> ? lib: fix Devres devm_ioremap_* offset parameter kerneldoc\n" "> description\n" - "> \302\240 lib: implement Devres ioremap_nopost() interface\n" - "> \n" - "> \302\240Documentation/driver-model/devres.txt |\302\240\302\2403 ++\n" - "> \302\240arch/alpha/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/arc/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/arm/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2409 ++++\n" - "> \302\240arch/arm/mm/ioremap.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2407 +++\n" - "> \302\240arch/arm/mm/nommu.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2409 ++++\n" - "> \302\240arch/arm64/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 12 +++++\n" - "> \302\240arch/avr32/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/cris/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/frv/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/hexagon/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2402 +\n" - "> \302\240arch/ia64/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/m32r/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/m68k/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/metag/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2402 +\n" - "> \302\240arch/microblaze/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/mips/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/mn10300/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/nios2/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/openrisc/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2402 +\n" - "> \302\240arch/parisc/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/powerpc/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/s390/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/sh/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/sparc/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/tile/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/unicore32/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/x86/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240arch/xtensa/include/asm/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2401 +\n" - "> \302\240drivers/pci/pci.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2404 +-\n" - "> \302\240include/asm-generic/ioremap-nopost.h\302\240\302\240|\302\240\302\2409 ++++\n" - "> \302\240include/asm-generic/pgtable.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2404 ++\n" - "> \302\240include/linux/device.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2402 +\n" - "> \302\240include/linux/io.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\2402 +\n" - "> \302\240lib/devres.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 84\n" + "> ? lib: implement Devres ioremap_nopost() interface\n" + "> \n" + "> ?Documentation/driver-model/devres.txt |??3 ++\n" + "> ?arch/alpha/include/asm/io.h???????????|??1 +\n" + "> ?arch/arc/include/asm/io.h?????????????|??1 +\n" + "> ?arch/arm/include/asm/io.h?????????????|??9 ++++\n" + "> ?arch/arm/mm/ioremap.c?????????????????|??7 +++\n" + "> ?arch/arm/mm/nommu.c???????????????????|??9 ++++\n" + "> ?arch/arm64/include/asm/io.h???????????| 12 +++++\n" + "> ?arch/avr32/include/asm/io.h???????????|??1 +\n" + "> ?arch/cris/include/asm/io.h????????????|??1 +\n" + "> ?arch/frv/include/asm/io.h?????????????|??1 +\n" + "> ?arch/hexagon/include/asm/io.h?????????|??2 +\n" + "> ?arch/ia64/include/asm/io.h????????????|??1 +\n" + "> ?arch/m32r/include/asm/io.h????????????|??1 +\n" + "> ?arch/m68k/include/asm/io.h????????????|??1 +\n" + "> ?arch/metag/include/asm/io.h???????????|??2 +\n" + "> ?arch/microblaze/include/asm/io.h??????|??1 +\n" + "> ?arch/mips/include/asm/io.h????????????|??1 +\n" + "> ?arch/mn10300/include/asm/io.h?????????|??1 +\n" + "> ?arch/nios2/include/asm/io.h???????????|??1 +\n" + "> ?arch/openrisc/include/asm/io.h????????|??2 +\n" + "> ?arch/parisc/include/asm/io.h??????????|??1 +\n" + "> ?arch/powerpc/include/asm/io.h?????????|??1 +\n" + "> ?arch/s390/include/asm/io.h????????????|??1 +\n" + "> ?arch/sh/include/asm/io.h??????????????|??1 +\n" + "> ?arch/sparc/include/asm/io.h???????????|??1 +\n" + "> ?arch/tile/include/asm/io.h????????????|??1 +\n" + "> ?arch/unicore32/include/asm/io.h???????|??1 +\n" + "> ?arch/x86/include/asm/io.h?????????????|??1 +\n" + "> ?arch/xtensa/include/asm/io.h??????????|??1 +\n" + "> ?drivers/pci/pci.c?????????????????????|??4 +-\n" + "> ?include/asm-generic/ioremap-nopost.h??|??9 ++++\n" + "> ?include/asm-generic/pgtable.h?????????|??4 ++\n" + "> ?include/linux/device.h????????????????|??2 +\n" + "> ?include/linux/io.h????????????????????|??2 +\n" + "> ?lib/devres.c??????????????????????????| 84\n" "> +++++++++++++++++++++++++++++++++--\n" - "> \302\24035 files changed, 167 insertions(+), 5 deletions(-)\n" - "> \302\240create mode 100644 include/asm-generic/ioremap-nopost.h\n" - "> \n" - "\n" - "_______________________________________________\n" - "linux-arm-kernel mailing list\n" - "linux-arm-kernel@lists.infradead.org\n" - http://lists.infradead.org/mailman/listinfo/linux-arm-kernel + "> ?35 files changed, 167 insertions(+), 5 deletions(-)\n" + "> ?create mode 100644 include/asm-generic/ioremap-nopost.h\n" + > -b9c210a7eaa66949f43020505d10c26670e3ad662003275e5f518ff89e2fbabe +42125c0e633314ad99e7a71bf542ee0541fca5fe3bd56d4c0c8320ff4efbea22
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.