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