Maze of include files, all producing errors...

Russell King (rmk@arm.linux.org.uk)
Thu, 28 Feb 2002 20:48:26 +0000


In 2.5.5 (Changeset 1.359.2.3), the highmem.h and pgalloc.h includes were
reversed.

Previous kernels had linux/highmem.h including asm/pgalloc.h. Placing
the architecture cache handling functions worked well in asm/pgalloc.h,
allowing highmem.h to find them; highmem.h uses flush_dcache_page() and
friends in inline functions.

In this changeset, highmem.h no longer includes pgalloc.h, but instead
pgalloc.h includes highmem.h. This, unfortunately, tends to break things
in a major way since the cache functions are no longer available to
highmem.h.

Looking at x86, the (no-op) cache functions live in pgtable.h. However,
trying to put the ARM cache handling into pgtable.h doesn't work because
we need things like PG_arch_1 and struct page. pgtable.h is included by
linux/mm.h before linux/mm.h declares PG_arch_1 and struct page. So
obviously this can't work.

Has anyone encountered this, and has anyone found a magic working
combination?

For now, I'm going to reverse the include changes in this changeset so
things build again.

-- 
Russell King (rmk@arm.linux.org.uk)                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html

- 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/