Hi,
enclosed is a patch (against version 2.4.17
of the kernel) for netfilter module ip6_tables.
On an SMP machine (s390 LPAR 4cpus) a page
fault occured when executing "ip6tables -L".
The exception occured in kernel module
ip6_tables (in function get_counters() in
IP6T_ENTRY_ITERATE()).
I found out that the exception goes
back to the memcpy() call in function
translate_table() of ip6_tables.c,
where for each additional cpu a copy
of the entries is generated.
But the entries were copied to the
wrong place. (due to the SMP_ALIGN macro)
(Bad luck :)
Applying the patch, the page
fault didn't occure anymore.
Regards,
Andreas
--- net/ipv6/netfilter/ip6_tables.c~ Wed Oct 31 00:08:12 2001
+++ net/ipv6/netfilter/ip6_tables.c Wed Feb 20 17:38:18 2002
@@ -906,7 +906,7 @@
/* And one copy for every other CPU */
for (i = 1; i < smp_num_cpus; i++) {
- memcpy(newinfo->entries + SMP_ALIGN(newinfo->size*i),
+ memcpy(newinfo->entries + SMP_ALIGN(newinfo->size)*i,
newinfo->entries,
SMP_ALIGN(newinfo->size));
}
-- Linux for eServer Development Tel : +49-7031-16-4640 Notes mail : Andreas Herrmann/GERMANY/IBM@IBMDE email : aherrman@de.ibm.com- 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/
This archive was generated by hypermail 2b29 : Sat Feb 23 2002 - 21:00:34 EST