From: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [patch] MCA recovery verify pfn_valid
Date: Tue, 20 Sep 2005 07:34:41 +0000 [thread overview]
Message-ID: <432FBB91.9020403@jp.fujitsu.com> (raw)
In-Reply-To: <200509162154.j8GLsrWN2681135@efs.americas.sgi.com>
[-- Attachment #1: Type: text/plain, Size: 553 bytes --]
How about this?
Thanks,
H.Seto
Verify the pfn is valid before calling pfn_to_page(),
and cut isolation message if nothing was done.
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Russ Anderson wrote:
> Jack Steiner wrote:
>>
>>Perhaps another status should be returned.
>
> In this case, is any message really needed? As you say, success is
> is misleading because nothing was done. Failure is not accurate
> because it didn't fail. So perhaps a third status that does not
> print any page isolation message is the best solution.
[-- Attachment #2: mca_drv_pfnverify.patch --]
[-- Type: text/plain, Size: 1515 bytes --]
arch/ia64/kernel/mca_drv.c | 21 +++++++++++++++------
1 files changed, 15 insertions(+), 6 deletions(-)
Index: build/arch/ia64/kernel/mca_drv.c
===================================================================
--- build.orig/arch/ia64/kernel/mca_drv.c
+++ build/arch/ia64/kernel/mca_drv.c
@@ -56,8 +56,9 @@ static struct page *page_isolate[MAX_PAG
static int num_page_isolate = 0;
typedef enum {
- ISOLATE_NG = 0,
- ISOLATE_OK = 1
+ ISOLATE_NG,
+ ISOLATE_OK,
+ ISOLATE_NONE
} isolate_status_t;
/*
@@ -74,7 +75,7 @@ static struct {
* @paddr: poisoned memory location
*
* Return value:
- * ISOLATE_OK / ISOLATE_NG
+ * one of isolate_status_t, ISOLATE_OK/NG/NONE.
*/
static isolate_status_t
@@ -85,7 +86,10 @@ mca_page_isolate(unsigned long paddr)
/* whether physical address is valid or not */
if (!ia64_phys_addr_valid(paddr))
- return ISOLATE_NG;
+ return ISOLATE_NONE;
+
+ if (!pfn_valid(paddr))
+ return ISOLATE_NONE;
/* convert physical address to physical page number */
p = pfn_to_page(paddr>>PAGE_SHIFT);
@@ -122,10 +126,15 @@ mca_handler_bh(unsigned long paddr)
current->pid, current->comm);
spin_lock(&mca_bh_lock);
- if (mca_page_isolate(paddr) == ISOLATE_OK) {
+ switch (mca_page_isolate(paddr)) {
+ case ISOLATE_OK:
printk(KERN_DEBUG "Page isolation: ( %lx ) success.\n", paddr);
- } else {
+ break;
+ case ISOLATE_NG:
printk(KERN_DEBUG "Page isolation: ( %lx ) failure.\n", paddr);
+ break;
+ default:
+ break;
}
spin_unlock(&mca_bh_lock);
next prev parent reply other threads:[~2005-09-20 7:34 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-16 21:54 [patch] MCA recovery verify pfn_valid Russ Anderson
2005-09-19 22:19 ` Russ Anderson
2005-09-20 7:34 ` Hidetoshi Seto [this message]
2005-09-20 22:07 ` Russ Anderson
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=432FBB91.9020403@jp.fujitsu.com \
--to=seto.hidetoshi@jp.fujitsu.com \
--cc=linux-ia64@vger.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.