From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
ehabkost@redhat.com, x86@kernel.org,
linux-kernel@vger.kernel.org, Paul Mackerras <paulus@samba.org>
Subject: Re: [PATCH 1/2] add phys_addr_t for holding physical addresses
Date: Tue, 12 Aug 2008 07:58:16 +1000 [thread overview]
Message-ID: <1218491896.8041.9.camel@pasglop> (raw)
In-Reply-To: <48A0954E.20400@goop.org>
On Mon, 2008-08-11 at 12:38 -0700, Jeremy Fitzhardinge wrote:
> Add a kernel-wide "phys_addr_t" which is guaranteed to be able to hold
> any physical address. By default it equals the word size of the
> architecture, but a 32-bit architecture can set ARCH_PHYS_ADDR_T_64BIT
> if it needs a 64-bit phys_addr_t.
I've been wondering for some time why can't we make phys_addr_t and
resource_size_t the same thing... I don't like having two ARCH_* thing
especially since I believe the one for resources is already what we
want.
Ben.
> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> diff -r 4909b40dbdc5 arch/powerpc/Kconfig
> --- a/arch/powerpc/Kconfig Fri Aug 08 13:40:52 2008 -0700
> +++ b/arch/powerpc/Kconfig Mon Aug 11 10:32:52 2008 -0700
> @@ -21,6 +21,9 @@
>
> config PPC_MERGE
> def_bool y
> +
> +config ARCH_PHYS_ADDR_T_64BIT
> + def_bool PPC64 || PHYS_64BIT
>
> config MMU
> bool
> diff -r 4909b40dbdc5 arch/x86/Kconfig
> --- a/arch/x86/Kconfig Fri Aug 08 13:40:52 2008 -0700
> +++ b/arch/x86/Kconfig Mon Aug 11 10:32:53 2008 -0700
> @@ -1002,6 +1002,9 @@
> has the cost of more pagetable lookup overhead, and also
> consumes more pagetable space per process.
>
> +config ARCH_PHYS_ADDR_T_64BIT
> + def_bool X86_64 || X86_PAE
> +
> # Common NUMA Features
> config NUMA
> bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
> diff -r 4909b40dbdc5 include/asm-powerpc/types.h
> --- a/include/asm-powerpc/types.h Fri Aug 08 13:40:52 2008 -0700
> +++ b/include/asm-powerpc/types.h Mon Aug 11 10:32:53 2008 -0700
> @@ -48,13 +48,6 @@
>
> typedef __vector128 vector128;
>
> -/* Physical address used by some IO functions */
> -#if defined(CONFIG_PPC64) || defined(CONFIG_PHYS_64BIT)
> -typedef u64 phys_addr_t;
> -#else
> -typedef u32 phys_addr_t;
> -#endif
> -
> #ifdef __powerpc64__
> typedef u64 dma_addr_t;
> #else
> diff -r 4909b40dbdc5 include/asm-x86/page_32.h
> --- a/include/asm-x86/page_32.h Fri Aug 08 13:40:52 2008 -0700
> +++ b/include/asm-x86/page_32.h Mon Aug 11 10:32:53 2008 -0700
> @@ -33,7 +33,6 @@
> typedef u64 pudval_t;
> typedef u64 pgdval_t;
> typedef u64 pgprotval_t;
> -typedef u64 phys_addr_t;
>
> typedef union {
> struct {
> @@ -54,7 +53,6 @@
> typedef unsigned long pudval_t;
> typedef unsigned long pgdval_t;
> typedef unsigned long pgprotval_t;
> -typedef unsigned long phys_addr_t;
>
> typedef union {
> pteval_t pte;
> diff -r 4909b40dbdc5 include/asm-x86/page_64.h
> --- a/include/asm-x86/page_64.h Fri Aug 08 13:40:52 2008 -0700
> +++ b/include/asm-x86/page_64.h Mon Aug 11 10:32:53 2008 -0700
> @@ -79,7 +79,6 @@
> typedef unsigned long pudval_t;
> typedef unsigned long pgdval_t;
> typedef unsigned long pgprotval_t;
> -typedef unsigned long phys_addr_t;
>
> typedef struct page *pgtable_t;
>
> diff -r 4909b40dbdc5 include/linux/types.h
> --- a/include/linux/types.h Fri Aug 08 13:40:52 2008 -0700
> +++ b/include/linux/types.h Mon Aug 11 10:32:53 2008 -0700
> @@ -197,6 +197,12 @@
> typedef u32 resource_size_t;
> #endif
>
> +#ifdef CONFIG_PHYS_ADDR_T_64BIT
> +typedef u64 phys_addr_t;
> +#else
> +typedef u32 phys_addr_t;
> +#endif
> +
> struct ustat {
> __kernel_daddr_t f_tfree;
> __kernel_ino_t f_tinode;
> diff -r 4909b40dbdc5 mm/Kconfig
> --- a/mm/Kconfig Fri Aug 08 13:40:52 2008 -0700
> +++ b/mm/Kconfig Mon Aug 11 10:32:53 2008 -0700
> @@ -190,6 +190,9 @@
> 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
> +
> config ZONE_DMA_FLAG
> int
> default "0" if !ZONE_DMA
>
next prev parent reply other threads:[~2008-08-11 21:59 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <489B6B40.5050705@goop.org>
[not found] ` <20080807145648.ab3dfa90.akpm@linux-foundation.org>
2008-08-07 22:10 ` [PATCH] Make PFN_PHYS return a properly-formed physical address Jeremy Fitzhardinge
2008-08-07 23:27 ` Andrew Morton
2008-08-07 23:45 ` Jeremy Fitzhardinge
2008-08-08 0:06 ` Andrew Morton
2008-08-08 0:16 ` Jeremy Fitzhardinge
2008-08-11 19:38 ` [PATCH 1/2] add phys_addr_t for holding physical addresses Jeremy Fitzhardinge
2008-08-11 21:58 ` Benjamin Herrenschmidt [this message]
2008-08-11 22:15 ` Jeremy Fitzhardinge
2008-08-11 22:32 ` Benjamin Herrenschmidt
2008-08-11 22:50 ` Jeremy Fitzhardinge
2008-08-11 22:53 ` Benjamin Herrenschmidt
2008-08-11 23:02 ` Jeremy Fitzhardinge
2008-08-11 23:17 ` Benjamin Herrenschmidt
2008-08-11 19:38 ` [PATCH 2/2] make PFN_PHYS explicitly return phys_addr_t Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1218491896.8041.9.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=akpm@linux-foundation.org \
--cc=ehabkost@redhat.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paulus@samba.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.