Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754841AbbFKOmD (ORCPT ); Thu, 11 Jun 2015 10:42:03 -0400 Received: from mail-bl2on0112.outbound.protection.outlook.com ([65.55.169.112]:43328 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754429AbbFKOlz (ORCPT ); Thu, 11 Jun 2015 10:41:55 -0400 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=freescale.com; linuxfoundation.org; dkim=none (message not signed) header.d=none; Message-ID: <55799E38.1000004@freescale.com> Date: Thu, 11 Jun 2015 17:42:00 +0300 From: Cristian Stoica User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: CC: , , Subject: Re: [PATCH v2] powerpc: support sizes greater than an unsigned long References: <1431620684-20123-1-git-send-email-cristian.stoica@freescale.com> <1431683064-29584-1-git-send-email-cristian.stoica@freescale.com> In-Reply-To: <1431683064-29584-1-git-send-email-cristian.stoica@freescale.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD002;1:2JhZd8MMdlRI+WtXlZH8eilkNX0EmlqjKXm1csdN8IxX0gW8EFZvYjEiDyU2XsBhX/CNfybdowJStXFPtszu/SVP1L4Qgv09kDxz6GjJRZLozh6ysesq2FT+ke27Z7uoXB12+MjSAIJOP/etspqasatHICJGJnwsNxVNRf+/XwCeUog/eOvyeIY4kaJaTwm6Tj61V48oCkyEk1sBbdHz9GwdKz3G7K16Wacf4MEcTtvaVAn9RX6YsVcE7JC+aZp7erDI29Bc8VnzSXVLrNMXvson4T45FflG0YvycMbYVp0Kox01zZoF8bre+biKtxl7 X-Forefront-Antispam-Report: CIP:192.88.158.2;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(339900001)(199003)(377454003)(189002)(24454002)(479174004)(51704005)(164054003)(106466001)(92566002)(77096005)(6806004)(50466002)(15975445007)(5001960100002)(33656002)(46102003)(110136002)(23746002)(19580395003)(47776003)(2351001)(80316001)(65956001)(105606002)(87936001)(59896002)(85426001)(76176999)(87266999)(50986999)(4001350100001)(54356999)(2950100001)(104016003)(36756003)(19580405001)(83506001)(189998001)(62966003)(99136001)(77156002);DIR:OUT;SFP:1102;SCL:1;SRVR:BLUPR03MB392;H:az84smr01.freescale.net;FPR:;SPF:Fail;MLV:sfv;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB392;2:yOWA+DoAPnLL+nODbKfMZRBke1LNlmF8ynjvye3VQjrt5tTh3HPXpp33qiU562Kh;2:rYWJlpnIlxdZ6OqVjrTblGuX9tdprweIVxmaFYHK7Juid6+xaCb7UjyoxpIjwv8N/sE5HvlMMHdDKhUK//TzgA2x2kMo5jl2c2rM33Ac0UutSGCaFRg9cThsAVytMTNISHxkP6xAWRt6GyHYcUkHyBYarRE+ynNrqBYql6p0P2TqDWLV+X2SCcD/c479U1cP6fK99G2FV5of3ikN0V15OlT5AsieBGroRSjXTeIcrkY=;6:3GMgzu+jNxM/S42ZmZrqyZpa1dmANSE0uviR9Aid4nahGAO1d+oEeJoREjmnOwJFi5pr1vupKmO5yLmHQXfPjALoNQGoc9DO2/5QOXiZpe/K2s/WFYRkah/hshaQYuRQ9mGyPzUzlZzRv83tuheynRn6Dccc38SUpiRtnnKJGlYwTME8ZC6s0h2kkaRkqG+F98X/aXQUSCO8xRteQxzmBZM7Xat8X4jH5Hk7NZmCycouz6aLujl5ECsy4al5xdYd5Fa7kOkeA1WxcFFUp4Jba1xFUnvoY2aPGEnH9SoEGLBH8jmMQvU9etjel9gdQ6i6MhrpnNmKk8M0ghKTMUb3vw==;3:YB8H+A+ImVS2mjFzBvHOXd9vCXamglpuK8Jxr1AtyGLfT3lNj7cbjC476QhbVpxHOo+vT0+ebusFobWko7kDbHJgZqQ/s0D3C6UYVndBunKpMDAq+xDaArim1ngo3LUTr7+Rl4k3m3unTkx7qDP6kF8M0+d90xR8T0bsJeNQBEnn8a2l3gw1twm566lAyJeiKL8BiM38rGsnf9axJbsc2nGxCdArZC0rG25CtheTKBvemHumHGnWw2kBBD2OrKfmbLbiNM4YpfgD3JVtAGTV9BBfRasZse9UcuMUFOG+1E7imtRiRlAIX1gytwOgtDt2 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB392; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(520003)(3002001);SRVR:BLUPR03MB392;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB392; X-Forefront-PRVS: 0604AFA86B X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BLUPR03MB392;9:sTKgyeoTg+UnMjTLaSRZmbiWNxPW9A/WDlFU4h2?= =?Windows-1252?Q?S43cl/QzBtc3Vk0jzrZext6EC1yCulXjLygccrC1vwsKEeri4f3T+5cq?= =?Windows-1252?Q?IYFlMeD4D3gWkXWpoyWrtx7p7NWC85kFIzgIP1pQQqzZ7QJeH3fHzYTN?= =?Windows-1252?Q?FRKwrXvBFKcsenyb5mB8HkHqcA2SukQa3NvSDje5fqM/DMyZNYSEEPDM?= =?Windows-1252?Q?xUn3x4eX0Lw4TR9kvS+D2YAs6DJNc8+ipywpacizIud/joj4IcEulgbt?= =?Windows-1252?Q?08hwfWyrj0aRDrbhkHc17E4xNymDgr9LskjUEpYAZeaz4Vf7qCoEbIhm?= =?Windows-1252?Q?tB4UPhPMKQpHdl5YkVv0WFIMA/BWdHqFq0CJUateBZFBTMlGqh4dTNi9?= =?Windows-1252?Q?erWmATEzUjKqRI8f6XW+pD7Vv2P5UxDcIdvcBJeaLJ4AQRq6YiMnSjoT?= =?Windows-1252?Q?BZukXjeGExI5xa7rYJ2i95sfzu3fJBXCgO4DSnXsbvWTsyYU9foSed+T?= =?Windows-1252?Q?eBSlSJ5eFn1SnmFwj6rPVayNqGqDSwsilKdLa0YBHV6I58DDmXnqEohe?= =?Windows-1252?Q?GQcKKMrApsMHSPahqIjHcbBvIX4kKWnUnlubEpAhsv0v/QAjsJS+GF2M?= =?Windows-1252?Q?1S6O23owb0/vtpXW7e5d2t42QUabTibpU8SDj23jMRAnc3Cq5sGfbEHa?= =?Windows-1252?Q?NLrAmPK9ztfG5A1wkge0oIMRklmB4DYRWPvAyENPfyzg/H969c9aJYht?= =?Windows-1252?Q?leZfcyvrgYtWGCpoWQfP3EB3e/R6cK2tzkQ35hGkLcsU5DYG+5b1zXVZ?= =?Windows-1252?Q?GZAIHUVuRzjqwiojWdGWq7bY0y8is2vA2YHdab3noaLxLagurVYI09ER?= =?Windows-1252?Q?XEA/UbOUeUfxQ28HgZpuuj6urQPhNk0nmQPpaCbYoUAX5SbRpIsSzovV?= =?Windows-1252?Q?B+P9b4GeJj1liJopxbOb5+lh/hn1qm2SWTO3rxeugkKrTHo30Qq/QHTY?= =?Windows-1252?Q?mHhYXv8aXR8QeMaZxMZLRRgYf3VRg1yFq1cQyu9kwrc0SFnxsmIfqMgG?= =?Windows-1252?Q?UlMdBW5FT2y7dGgXW6jsbewZcnGlP2AX4W62Hzf1x+OrGlGa5NW0byFE?= =?Windows-1252?Q?Ub+w3W3T8Gc14PkVYUkFAzKThq/jzf+j0Cg8kk2fDxGv8Qp/VcbgptCS?= =?Windows-1252?Q?0Q0mFKD+frweT5VpHhWOBROEYxmo=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB392;3:pixaWXxpobXH4dit8UYw21itKBd9ToE1D0Mw/hrLa6PETTEup6STRJ4vnAd8uyMCdLsO3R27EFiXflQOUi1CmS2EkR008gvKNxJzPAl3X77GgV/fpm5+vM7EqqllE13WSqRDfPyEU/rRGGv8+ljiWw==;10:lG+OBvWq7YO1b8Rx/IbAzroyQYeoJlOy/HtdW/S8y8Nk3E4Qu4QhPHfh/18E8gnoo5iDPAWUl4+G2Amp4ZIZApG7be4z1Znb76BP2PFDcsM=;6:TCUPklPkjfqyqiFdauWu6PKe/3OOx0yHKUJz/B1xCXk5RHIZ3UmppOc0iEy2Dn7l X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jun 2015 14:41:50.5619 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.158.2];Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR03MB392 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 7490 Lines: 188 Hi Greg, Can you have a look at this patch? https://patchwork.kernel.org/patch/6413191/ Thanks, Cristian S. On 05/15/2015 12:44 PM, Cristian Stoica wrote: > Use resource_size_t to accommodate sizes greater than the size of an > unsigned long int on platforms that have more than 32 bit > physical addresses > > Signed-off-by: Cristian Stoica > > Changes in v2: > - update definitions is pgtable_64.c as well - or else we get broken builds on 64 > - minor reformatting in pgtable_64.c to satisfy checkpatch > > --- > arch/powerpc/include/asm/io.h | 14 +++++++------- > arch/powerpc/mm/pgtable_32.c | 10 +++++----- > arch/powerpc/mm/pgtable_64.c | 22 +++++++++++----------- > 3 files changed, 23 insertions(+), 23 deletions(-) > > diff --git a/arch/powerpc/include/asm/io.h b/arch/powerpc/include/asm/io.h > index a8d2ef3..749c66e 100644 > --- a/arch/powerpc/include/asm/io.h > +++ b/arch/powerpc/include/asm/io.h > @@ -716,24 +716,24 @@ static inline void iosync(void) > * be hooked (but can be used by a hook on iounmap) > * > */ > -extern void __iomem *ioremap(phys_addr_t address, unsigned long size); > -extern void __iomem *ioremap_prot(phys_addr_t address, unsigned long size, > +extern void __iomem *ioremap(phys_addr_t address, resource_size_t size); > +extern void __iomem *ioremap_prot(phys_addr_t address, resource_size_t size, > unsigned long flags); > -extern void __iomem *ioremap_wc(phys_addr_t address, unsigned long size); > +extern void __iomem *ioremap_wc(phys_addr_t address, resource_size_t size); > #define ioremap_nocache(addr, size) ioremap((addr), (size)) > > extern void iounmap(volatile void __iomem *addr); > > -extern void __iomem *__ioremap(phys_addr_t, unsigned long size, > +extern void __iomem *__ioremap(phys_addr_t, resource_size_t size, > unsigned long flags); > -extern void __iomem *__ioremap_caller(phys_addr_t, unsigned long size, > +extern void __iomem *__ioremap_caller(phys_addr_t, resource_size_t size, > unsigned long flags, void *caller); > > extern void __iounmap(volatile void __iomem *addr); > > extern void __iomem * __ioremap_at(phys_addr_t pa, void *ea, > - unsigned long size, unsigned long flags); > -extern void __iounmap_at(void *ea, unsigned long size); > + resource_size_t size, unsigned long flags); > +extern void __iounmap_at(void *ea, resource_size_t size); > > /* > * When CONFIG_PPC_INDIRECT_PIO is set, we use the generic iomap implementation > diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c > index 7692d1b..a7d5137 100644 > --- a/arch/powerpc/mm/pgtable_32.c > +++ b/arch/powerpc/mm/pgtable_32.c > @@ -135,7 +135,7 @@ pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address) > } > > void __iomem * > -ioremap(phys_addr_t addr, unsigned long size) > +ioremap(phys_addr_t addr, resource_size_t size) > { > return __ioremap_caller(addr, size, _PAGE_NO_CACHE | _PAGE_GUARDED, > __builtin_return_address(0)); > @@ -143,7 +143,7 @@ ioremap(phys_addr_t addr, unsigned long size) > EXPORT_SYMBOL(ioremap); > > void __iomem * > -ioremap_wc(phys_addr_t addr, unsigned long size) > +ioremap_wc(phys_addr_t addr, resource_size_t size) > { > return __ioremap_caller(addr, size, _PAGE_NO_CACHE, > __builtin_return_address(0)); > @@ -151,7 +151,7 @@ ioremap_wc(phys_addr_t addr, unsigned long size) > EXPORT_SYMBOL(ioremap_wc); > > void __iomem * > -ioremap_prot(phys_addr_t addr, unsigned long size, unsigned long flags) > +ioremap_prot(phys_addr_t addr, resource_size_t size, unsigned long flags) > { > /* writeable implies dirty for kernel addresses */ > if ((flags & (_PAGE_RW | _PAGE_RO)) != _PAGE_RO) > @@ -173,13 +173,13 @@ ioremap_prot(phys_addr_t addr, unsigned long size, unsigned long flags) > EXPORT_SYMBOL(ioremap_prot); > > void __iomem * > -__ioremap(phys_addr_t addr, unsigned long size, unsigned long flags) > +__ioremap(phys_addr_t addr, resource_size_t size, unsigned long flags) > { > return __ioremap_caller(addr, size, flags, __builtin_return_address(0)); > } > > void __iomem * > -__ioremap_caller(phys_addr_t addr, unsigned long size, unsigned long flags, > +__ioremap_caller(phys_addr_t addr, resource_size_t size, unsigned long flags, > void *caller) > { > unsigned long v, i; > diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c > index 59daa5e..64dd7a9 100644 > --- a/arch/powerpc/mm/pgtable_64.c > +++ b/arch/powerpc/mm/pgtable_64.c > @@ -168,8 +168,8 @@ int map_kernel_page(unsigned long ea, unsigned long pa, int flags) > * __ioremap_at - Low level function to establish the page tables > * for an IO mapping > */ > -void __iomem * __ioremap_at(phys_addr_t pa, void *ea, unsigned long size, > - unsigned long flags) > +void __iomem *__ioremap_at(phys_addr_t pa, void *ea, resource_size_t size, > + unsigned long flags) > { > unsigned long i; > > @@ -202,7 +202,7 @@ void __iomem * __ioremap_at(phys_addr_t pa, void *ea, unsigned long size, > * are manipulated manually, like partial unmapping of > * PCI IOs or ISA space. > */ > -void __iounmap_at(void *ea, unsigned long size) > +void __iounmap_at(void *ea, resource_size_t size) > { > WARN_ON(((unsigned long)ea) & ~PAGE_MASK); > WARN_ON(size & ~PAGE_MASK); > @@ -210,8 +210,8 @@ void __iounmap_at(void *ea, unsigned long size) > unmap_kernel_range((unsigned long)ea, size); > } > > -void __iomem * __ioremap_caller(phys_addr_t addr, unsigned long size, > - unsigned long flags, void *caller) > +void __iomem *__ioremap_caller(phys_addr_t addr, resource_size_t size, > + unsigned long flags, void *caller) > { > phys_addr_t paligned; > void __iomem *ret; > @@ -255,13 +255,13 @@ void __iomem * __ioremap_caller(phys_addr_t addr, unsigned long size, > return ret; > } > > -void __iomem * __ioremap(phys_addr_t addr, unsigned long size, > - unsigned long flags) > +void __iomem *__ioremap(phys_addr_t addr, resource_size_t size, > + unsigned long flags) > { > return __ioremap_caller(addr, size, flags, __builtin_return_address(0)); > } > > -void __iomem * ioremap(phys_addr_t addr, unsigned long size) > +void __iomem *ioremap(phys_addr_t addr, resource_size_t size) > { > unsigned long flags = _PAGE_NO_CACHE | _PAGE_GUARDED; > void *caller = __builtin_return_address(0); > @@ -271,7 +271,7 @@ void __iomem * ioremap(phys_addr_t addr, unsigned long size) > return __ioremap_caller(addr, size, flags, caller); > } > > -void __iomem * ioremap_wc(phys_addr_t addr, unsigned long size) > +void __iomem *ioremap_wc(phys_addr_t addr, resource_size_t size) > { > unsigned long flags = _PAGE_NO_CACHE; > void *caller = __builtin_return_address(0); > @@ -281,8 +281,8 @@ void __iomem * ioremap_wc(phys_addr_t addr, unsigned long size) > return __ioremap_caller(addr, size, flags, caller); > } > > -void __iomem * ioremap_prot(phys_addr_t addr, unsigned long size, > - unsigned long flags) > +void __iomem *ioremap_prot(phys_addr_t addr, resource_size_t size, > + unsigned long flags) > { > void *caller = __builtin_return_address(0); > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/