Export phys_cpu_present_map
Subsystems (4)
PATCH 1/1 Export phys_cpu_present_map
In net/ipv6/icmp.c::icmpv6_init() there is a call to cpu_possible() which preprocesses down to "test_bit(((i)), (phys_cpu_present_map).bits)" If ipv6 is a module, phys_cpu_present_map (or cpu_possible_map which is defined t phys_cpu_present_map) needs to be exported.
arch/mips/kernel/smp.c +1 -0
@@ -44,6 +44,7 @@ cpumask_t cpu_online_map; /* Bitmask ofint __cpu_number_map[NR_CPUS ];/* Map physical to logical */ int __cpu_logical_map[NR_CPUS ];/* Map logical to physical */ +EXPORT_SYMBOL (phys_cpu_present_map);EXPORT_SYMBOL (cpu_online_map);cycles_t cacheflush_time;
Signature · 2 lines
Tom Rini http://gate.crashing.org/~trini/
Quoted 4 lines · Tom Rini
In net/ipv6/icmp.c::icmpv6_init() there is a call to
cpu_possible()which preprocesses down to "test_bit(((i)), (phys_cpu_present_map).bits)" If ipv6 is a module,phys_cpu_present_map(orcpu_possible_mapwhich is defined tphys_cpu_present_map) needs to be exported.
The loop in there should be rewritten as for_each_cpu which doesn't need this export.
[ Note that XFS has a similar problem, with cpu_possible() calls ]
Quoted 8 lines · Christoph Hellwig
Quoted 4 lines · Tom Rini
In net/ipv6/icmp.c::icmpv6_init() there is a call to
cpu_possible()which preprocesses down to "test_bit(((i)), (phys_cpu_present_map).bits)" If ipv6 is a module,phys_cpu_present_map(orcpu_possible_mapwhich is defined tphys_cpu_present_map) needs to be exported.The loop in there should be rewritten as
for_each_cpuwhich doesn't need this export.
Here's what I did:
net/ipv6/icmp.c +1 -4
@@ -691,10 +691,7 @@ int __init icmpv6_init(struct net_proto_struct sock *sk;int err, i, j; -for (i =0 ; i <NR_CPUS ; i++) { -if (!cpu_possible (i)) -continue ; - +for_each_cpu (i) {
But I still get the problem. Further, on i386 cpu_possible() becomes cpu_callout_map which is exported as well.
Signature · 2 lines
Tom Rini http://gate.crashing.org/~trini/