redefine resource_size_t as phys_addr_t
Subsystems (5)
PATCH 3/3 redefine resource_size_t as phys_addr_t
There's no good reason why a resource_size_t shouldn't just be a physical address, so simply redefine it in terms of phys_addr_t.
--- arch/powerpc/platforms/Kconfig.cputype | 1 - arch/powerpc/sysdev/ppc4xx_pci.c | 16 ++++++---------- arch/x86/Kconfig | 1 - arch/x86/kernel/e820.c | 4 +--- drivers/pci/setup-bus.c | 9 ++++----- include/linux/types.h | 8 ++------ 6 files changed, 13 insertions(+), 26 deletions(-)
===================================================================
arch/powerpc/platforms/Kconfig.cputype +0 -1
@@ -135,7 +135,6 @@ config PHYS_64BIT bool 'Large physical address support' if E500 depends on 44x || E500 - select RESOURCES_64BIT default y if 44x ---help--- This option enables kernel support for larger than 32-bit physical
===================================================================
arch/powerpc/sysdev/ppc4xx_pci.c +6 -10
@@ -41,13 +41,10 @@#define U64_TO_U32_LOW (val) ((u32)((val) & 0x00000000ffffffffULL))#define U64_TO_U32_HIGH (val) ((u32)((val) >> 32)) -#ifdef CONFIG_RESOURCES_64BIT -#define RES_TO_U32_LOW (val) U64_TO_U32_LOW(val) -#define RES_TO_U32_HIGH (val) U64_TO_U32_HIGH(val) -#else -#define RES_TO_U32_LOW (val) (val) -#define RES_TO_U32_HIGH (val) (0) -#endif +#define RES_TO_U32_LOW (val) \ + ((sizeof(resource_size_t) > sizeof(u32)) ? U64_TO_U32_LOW(val) : (val)) +#define RES_TO_U32_HIGH (val) \ + ((sizeof(resource_size_t) > sizeof(u32)) ? U64_TO_U32_HIGH(val) : (0))static inline int ppc440spe_revA (void ) {
@@ -145,12 +142,11 @@/* Use that */ res->start = pci_addr; -#ifndef CONFIG_RESOURCES_64BIT /* Beware of 32 bits resources */ -if ((pci_addr + size) >0x100000000ull ) +if (sizeof (resource_size_t) ==sizeof (u32) && + (pci_addr + size) >0x100000000ull ) res->end =0xffffffff ;else -#endif res->end = res->start + size -1 ;break ; }
===================================================================
arch/x86/Kconfig +0 -1
@@ -995,7 +995,6 @@ def_bool n prompt "PAE (Physical Address Extension) Support" depends on X86_32 && !HIGHMEM4G - select RESOURCES_64BIT help PAE is required for NX support, and furthermore enables larger swapspace support for non-overcommit purposes. It
===================================================================
arch/x86/kernel/e820.c +1 -3
@@ -1276,12 +1276,10 @@ res =alloc_bootmem_low (sizeof (struct resource ) * e820.nr_map);for (i =0 ; i < e820.nr_map; i++) { end = e820.map[i].addr + e820.map[i].size -1 ; -#ifndef CONFIG_RESOURCES_64BIT -if (end >0x100000000ULL ) { +if (end != (resource_size_t )end) { res++;continue ; } -#endif res->name =e820_type_to_string (e820.map[i].type); res->start = e820.map[i].addr; res->end = end;
===================================================================
drivers/pci/setup-bus.c +4 -5
@@ -377,11 +377,10 @@ align =0 ; min_align =0 ;for (order =0 ; order <= max_order; order++) { -#ifdef CONFIG_RESOURCES_64BIT -resource_size_t align1 =1ULL << (order +20 ); -#else -resource_size_t align1 =1U << (order +20 ); -#endif +resource_size_t align1 =1 ; + + align1 <<= (order +20 ); +if (!align) min_align = align1;else if (ALIGN (align + min_align, min_align) < align1)
===================================================================
include/linux/types.h +2 -6
@@ -191,17 +191,13 @@ #ifdef __KERNEL__ typedef unsigned __bitwise__ gfp_t; -#ifdef CONFIG_RESOURCES_64BIT -typedef u64 resource_size_t; -#else -typedef u32 resource_size_t; -#endif - #ifdef CONFIG_PHYS_ADDR_T_64BIT typedef u64 phys_addr_t; #else typedef u32 phys_addr_t; #endif + +typedef phys_addr_t resource_size_t; struct ustat { __kernel_daddr_t f_tfree;
Ingo Molnar
AppliedQuoted 2 lines · Jeremy Fitzhardinge
There's no good reason why a
resource_size_tshouldn't just be a physical address, so simply redefine it in terms ofphys_addr_t.
i've applied your patchset to tip/core/resources:
8308c54: generic: redefine resource_size_t as phys_addr_t 947d049: generic: make PFN_PHYS explicitly return phys_addr_t 600715d: generic: add phys_addr_t for holding physical addresses
thanks,
Ingo
[PATCH/RFC] Remove obsolete CONFIG_RESOURCES_64BIT (was: Re: [PATCH 3/3] redefine resource_size_t as phys_addr_t)
In reply to Jeremy FitzhardingeQuoted 2 lines · Jeremy Fitzhardinge
There's no good reason why a
resource_size_tshouldn't just be a physical address, so simply redefine it in terms ofphys_addr_t.
And hence CONFIG_RESOURCES_64BIT became unused.
Subject: [PATCH/RFC] Remove obsolete CONFIG_RESOURCES_64BIT
commit 8308c54d7e312f7a03e2ce2057d0837e6fe3843f ("generic: redefine resource_size_t as phys_addr_t") made CONFIG_RESOURCES_64BIT obsolete, but didn't remove it. Remove it.
---
Although sometimes I'm longing for the days I could hunt for "warning: cast to pointer from integer of different size" when enabling it...
mm/Kconfig +0 -6
@@ -181,12 +181,6 @@ config MIGRATION example on NUMA systems to put pages nearer to the processors accessing the page. -config RESOURCES_64BIT - bool "64 bit Memory and IO resources (EXPERIMENTAL)" if (!64BIT && EXPERIMENTAL) - default 64BIT - help - This option allows memory and IO resources to be 64 bit. - config PHYS_ADDR_T_64BIT def_bool 64BIT || ARCH_PHYS_ADDR_T_64BIT
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds