On Feb 17, 2012, at 3:11 PM, Julio Merino wrote:
On 2/17/12 6:06 PM, Matt Thomas wrote:
On Feb 17, 2012, at 3:02 PM, Julio Merino wrote:
Aha, I see. Does it make sense to keep the test after renaming PAGE_SIZE to
uvmexp.pagesize? It's a public symbol after all and we really should have
tests for these, I think.
Do we need to go over the broken modules one by one and replace PAGE_SIZE with
uvmexp.pagesize? (I'm expecting this won't be as easy as it sounds due to
preprocessor conditionals et. al.)
They should still use PAGE_SIZE which should evaluate to uvmexp.pagesize
Now you lost me. You started saying that PAGE_SIZE is explicitly not
available, and now you say that the modules have to use PAGE_SIZE?
The problem is that PAGE_SIZE is NOT being evaluated to uvmexp.pagesize as you
mention. It's being evaluated to uvmexp_pagesize, which does not exist and
thus causes the module to not load. And that's what this test is all about.
Hmmm. I think uvmexp_pagesize, etal is there to avoid needed uvmexp defined.
The problem was:
--- uvm_param.h 29 Nov 2011 07:43:54 -0000 1.26
+++ uvm_param.h 17 Feb 2012 23:40:50 -0000
@@ -134,7 +134,7 @@
* If MIN_PAGE_SIZE and MAX_PAGE_SIZE are not equal, then we must use
* non-constant PAGE_SIZE, et al for LKMs.
*/
-#if (MIN_PAGE_SIZE != MAX_PAGE_SIZE)&& defined(_LKM)
+#if (MIN_PAGE_SIZE != MAX_PAGE_SIZE)&& (defined(_LKM) || defined(MODULAR))
#undef PAGE_SIZE
#undef PAGE_MASK
#undef PAGE_SHIFT