RE: ip_contrack module refuses to load...

Peter Chubb
2005-08-30T01:35:45Z

>>>>> "Peter" = Peter Chubb <peter@chubb.wattle.id.au> writes:

Peter> Should the module loader do anything special for per-cpu
Peter> variables?

Per-cpu variables are messed up for modules and UP kernel builds.
They're always placed in a special area (whether built for UP or SMP),
but the code for copying the .data.small segment for a module into the
per-cpu area is compiled only if !CONFIG_SMP.

In fact, in the generic percpu_modcopy for UP, there's a BUG_ON if the
percpu data area is non-zero-sized (which we don't hit, because IA64
uses its own percpu_modcopy).

There's code, for example, in the kernel entry/exit path that relies
on the per-cpu area being specially mapped (getting the number of
physical stacked registers), so doing the same as other architectures
isn't really an option.

So what to do?

--
Dr Peter Chubb http://www.gelato.unsw.edu.au peterc AT gelato.unsw.edu.au
The technical we do immediately, the political takes *forever*