From: Wu Fengguang <fengguang.wu@intel.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Ingo Molnar" <mingo@redhat.com>,
"Chen Liqin" <liqin.chen@sunplusct.com>,
"Lennox Wu" <lennox.wu@gmail.com>,
"Ralf Baechle" <ralf@linux-mips.org>,
"Américo Wang" <xiyou.wangcong@gmail.com>,
"linux-mips@linux-mips.org" <linux-mips@linux-mips.org>,
"KAMEZAWA Hiroyuki" <kamezawa.hiroyu@jp.fujitsu.com>,
"Yinghai Lu" <yinghai@kernel.org>,
"x86@kernel.org" <x86@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
"Andi Kleen" <andi@firstfloor.org>,
"Zheng, Shaohui" <shaohui.zheng@intel.com>
Subject: Re: [PATCH 1/3 v4] resources: introduce generic page_is_ram()
Date: Wed, 27 Jan 2010 11:06:39 +0800 [thread overview]
Message-ID: <20100127030639.GD8132@localhost> (raw)
In-Reply-To: <20100126163058.1f2f6582.akpm@linux-foundation.org>
On Tue, Jan 26, 2010 at 05:30:58PM -0700, Andrew Morton wrote:
> > +int __attribute__((weak)) page_is_ram(unsigned long pfn)
> > +{
> > + return walk_system_ram_range(pfn, 1, NULL, __is_ram) == 1;
> > +}
>
> I'll switch this to use __weak.
Thanks.
> > /*
> > * Find empty slot in the resource tree given range and alignment.
> > */
> > --- linux-mm.orig/include/linux/ioport.h 2010-01-22 11:20:34.000000000 +0800
> > +++ linux-mm/include/linux/ioport.h 2010-01-22 11:20:35.000000000 +0800
> > @@ -191,5 +191,7 @@ extern int
> > walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages,
> > void *arg, int (*func)(unsigned long, unsigned long, void *));
> >
> > +extern int page_is_ram(unsigned long pfn);
>
> Is it appropriate that this function be declared in ioport.h? It's a
> pretty general function. Dunno.
Good suggestion. The following patch moves it to mm.h.
> > #endif /* __ASSEMBLY__ */
> > #endif /* _LINUX_IOPORT_H */
> > --- linux-mm.orig/arch/score/mm/init.c 2010-01-22 11:20:34.000000000 +0800
> > +++ linux-mm/arch/score/mm/init.c 2010-01-22 11:20:35.000000000 +0800
> > @@ -59,7 +59,7 @@ static unsigned long setup_zero_page(voi
> > }
> >
> > #ifndef CONFIG_NEED_MULTIPLE_NODES
> > -static int __init page_is_ram(unsigned long pagenr)
> > +int page_is_ram(unsigned long pagenr)
> > {
> > if (pagenr >= min_low_pfn && pagenr < max_low_pfn)
> > return 1;
> > --- linux-mm.orig/arch/mips/mm/init.c 2010-01-22 11:20:34.000000000 +0800
> > +++ linux-mm/arch/mips/mm/init.c 2010-01-22 11:20:35.000000000 +0800
> > @@ -298,7 +298,7 @@ void __init fixrange_init(unsigned long
> > }
> >
> > #ifndef CONFIG_NEED_MULTIPLE_NODES
> > -static int __init page_is_ram(unsigned long pagenr)
> > +int page_is_ram(unsigned long pagenr)
> > {
> > int i;
>
> hm, so we lose the __init.
Maybe Ralf Baechle knows whether MIPS can switch to the (smaller)
generic page_is_ram().
Thanks,
Fengguang
---
move page_is_ram() declaration to mm.h
---
include/linux/ioport.h | 2 --
include/linux/mm.h | 2 ++
2 files changed, 2 insertions(+), 2 deletions(-)
--- linux-mm.orig/include/linux/ioport.h 2010-01-27 11:04:22.000000000 +0800
+++ linux-mm/include/linux/ioport.h 2010-01-27 11:04:38.000000000 +0800
@@ -191,7 +191,5 @@ extern int
walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages,
void *arg, int (*func)(unsigned long, unsigned long, void *));
-extern int page_is_ram(unsigned long pfn);
-
#endif /* __ASSEMBLY__ */
#endif /* _LINUX_IOPORT_H */
--- linux-mm.orig/include/linux/mm.h 2010-01-27 11:04:43.000000000 +0800
+++ linux-mm/include/linux/mm.h 2010-01-27 11:05:30.000000000 +0800
@@ -265,6 +265,8 @@ static inline int get_page_unless_zero(s
return atomic_inc_not_zero(&page->_count);
}
+extern int page_is_ram(unsigned long pfn);
+
/* Support for virtually mapped pages */
struct page *vmalloc_to_page(const void *addr);
unsigned long vmalloc_to_pfn(const void *addr);
next prev parent reply other threads:[~2010-01-27 3:07 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-22 3:21 [PATCH 0/3] generic hotplug friendly page_is_ram() Wu Fengguang
2010-01-22 3:21 ` [PATCH 1/3] resources: introduce generic page_is_ram() Wu Fengguang
2010-01-22 3:21 ` Wu Fengguang
2010-01-22 4:10 ` KAMEZAWA Hiroyuki
2010-01-22 4:20 ` [PATCH 1/3 v3] " Wu Fengguang
2010-01-22 5:15 ` [PATCH 1/3] " Xiaotian Feng
2010-01-22 5:37 ` Wu Fengguang
2010-01-22 5:50 ` Xiaotian Feng
2010-01-22 5:52 ` Wu Fengguang
2010-01-22 7:51 ` H. Peter Anvin
2010-01-22 8:16 ` [PATCH 1/3 v4] " Wu Fengguang
2010-01-27 0:30 ` Andrew Morton
2010-01-27 3:06 ` Wu Fengguang [this message]
2010-02-02 1:01 ` [tip:x86/mm] Move page_is_ram() declaration to mm.h tip-bot for Wu Fengguang
2010-01-22 3:21 ` [PATCH 2/3] x86: remove bios data range from e820 Wu Fengguang
2010-01-22 4:06 ` Wu Fengguang
2010-01-27 0:32 ` Andrew Morton
2010-02-02 1:01 ` [tip:x86/mm] x86: Remove BIOS " tip-bot for Yinghai Lu
2010-01-22 3:21 ` [PATCH 3/3] x86: use the generic page_is_ram() Wu Fengguang
2010-02-02 1:01 ` [tip:x86/mm] x86: Use " tip-bot for Wu Fengguang
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=20100127030639.GD8132@localhost \
--to=fengguang.wu@intel.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=hpa@zytor.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=lennox.wu@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=liqin.chen@sunplusct.com \
--cc=mingo@redhat.com \
--cc=ralf@linux-mips.org \
--cc=shaohui.zheng@intel.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=xiyou.wangcong@gmail.com \
--cc=yinghai@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.