[BUG] vmalloc_area_pages() in 2.4.2-ac25

From: Tachino Nobuhiro (tachino@open.nm.fujitsu.co.jp)
Date: Mon Mar 26 2001 - 06:30:16 EST


  vmalloc_area_pages() in 2.4.2-ac25 seems to be broken. It calls
spin_lock(&init_mm.page_table_lock) twice and causes system hang.

inline int vmalloc_area_pages (unsigned long address, unsigned long size,
                               int gfp_mask, pgprot_t prot)
{
        pgd_t * dir;
        unsigned long end = address + size;
        int ret;

        dir = pgd_offset_k(address);
        flush_cache_all();
>>>> spin_lock(&init_mm.page_table_lock);
        do {
                pmd_t *pmd;
                
>>>> spin_lock(&init_mm.page_table_lock); /* pmd_alloc requires this */
                pmd = pmd_alloc(&init_mm, dir, address);
                spin_unlock(&init_mm.page_table_lock);
                ret = -ENOMEM;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Mar 31 2001 - 21:00:13 EST