Re: 2.6.27-rc5-mm1: 3 WARN_ON dumps during boot (acpi + vmap_pte_range)

From: Nick Piggin
Date: Mon Sep 08 2008 - 05:06:13 EST


On Saturday 06 September 2008 16:50, Andrew Morton wrote:
> That's coming out of the module loader and is a new one. It's the same
>
> warning as the agp one:
> : static int vmap_pte_range(pmd_t *pmd, unsigned long addr,
> : unsigned long end, pgprot_t prot, struct page **pages, int *nr)
> : {
> : pte_t *pte;
> :
> : /*
> : * nr is a running index into the array which helps higher level
> : * callers keep track of where we're up to.
> : */
> :
> : pte = pte_alloc_kernel(pmd, addr);
> : if (!pte)
> : return -ENOMEM;
> : do {
> : struct page *page = pages[*nr];
> :
> : -->> if (WARN_ON(!pte_none(*pte)))
> : return -EBUSY;
> : if (WARN_ON(!page))
> : return -ENOMEM;
> : set_pte_at(&init_mm, addr, pte, mk_pte(page, prot));
> : (*nr)++;
> : } while (pte++, addr += PAGE_SIZE, addr != end);
> : return 0;
> : }
>
> I'm suspecting an overactive assertion in the new vmap code?

It shouldn't be, because the old code has that same warning I think.

It also probably shouldn't be the caller, because nothing is using
the new interfaces yet.

I'm sure it must be something wrong with the vmap rewrite patch, but
I'm simply not having any luck reproducing it yet. Is 32-bit a common
theme? (I'm trying to test 64-bit with a greatly reduced vmalloc space,
but I don't have access to a 32-bit compiler just now - travelling).

I might have to send a test-and-report-back debug patch...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/