Re: [PATCH 3/4] HWPOISON: Report correct address granuality for AO huge page errors

Naoya Horiguchi
2010-10-07T00:32:30Z

> @@ -198,7 +199,8 @@ static int kill_proc_ao(struct task_struct *t, unsigned long addr, int trapno,
> #ifdef __ARCH_SI_TRAPNO
> si.si_trapno = trapno;
> #endif
> - si.si_addr_lsb = PAGE_SHIFT;
> + order = PageCompound(page) ? huge_page_order(page) : PAGE_SHIFT;
^^^^
huge_page_order(page_hstate(page)) ?

> + si.si_addr_lsb = order;
> /*
> * Don't use force here, it's convenient if the signal
> * can be temporarily blocked.

...

> @@ -341,7 +343,8 @@ static void kill_procs_ao(struct list_head *to_kill, int doit, int trapno,
> if (fail || tk->addr_valid == 0) {
> printk(KERN_ERR
> "MCE %#lx: forcibly killing %s:%d because of failure to unmap corrupted page\n",
> - pfn, tk->tsk->comm, tk->tsk->pid);
> + pfn,
> + tk->tsk->comm, tk->tsk->pid);

What's the point of this change?

Thanks,
Naoya Horiguchi