Hello -
I would like to confirm this problem and reverting the patch provided
does fix the problem!
I have an ultra 60, dual processor.
gentoo linux gentoo-sources 2.6.13-gentoo-r2
Whenever i would enable the iptables modules (ip_tables)
(ip_conntrack), execute the two commands iptables -X iptables -F and
Ping any address ( including the loopback address)
i would get an oops.
I would just like to throw out my encounter with the problem and
confirm that the reversion of the below patch, fixes the problem and i
am able to use iptables with an smp kernel.
if i am commiting a mailing list no no by posting this please let me
know, but i thought it would be helpful to confirm this event.
Also is there a bugzilla type system for the linux kernel?
Thank you all for all your work!
any questions please let me know, i am also willing to report a bug
report if there is such a system in place.
--- a/net/ipv4/netfilter/ip_tables.c2005-03-17 17:35:05 -08:00
+++ b/net/ipv4/netfilter/ip_tables.c2005-03-17 17:35:05 -08:00
@@ -923,7 +923,7 @@
}
/* And one copy for every other CPU */
- for (i = 1; i NR_CPUS; i++) {
+ for (i = 1; i num_possible_cpus(); i++) {
memcpy(newinfo-entries + SMP_ALIGN(newinfo-size)*i,
newinfo-entries,
SMP_ALIGN(newinfo-size));
@@ -945,7 +945,7 @@
struct ipt_entry *table_base;
unsigned int i;
- for (i = 0; i NR_CPUS; i++) {
+ for (i = 0; i num_possible_cpus(); i++) {
table_base =
(void *)newinfo-entries
+ TABLE_OFFSET(newinfo, i);
@@ -992,7 +992,7 @@
unsigned int cpu;
unsigned int i;
- for (cpu = 0; cpu NR_CPUS; cpu++) {
+ for (cpu = 0; cpu num_possible_cpus(); cpu++) {
i = 0;
IPT_ENTRY_ITERATE(t-entries + TABLE_OFFSET(t, cpu),
t-size,
@@ -1130,7 +1130,7 @@
return -ENOMEM;
newinfo = vmalloc(sizeof(struct ipt_table_info)
- + SMP_ALIGN(tmp.size) * NR_CPUS);
+ + SMP_ALIGN(tmp.size) * num_possible_cpus());
if (!newinfo)
return -ENOMEM;
@@ -1460,7 +1460,7 @@
= { 0, 0, 0, { 0 }, { 0 }, { } };
newinfo = vmalloc(sizeof(struct ipt_table_info)
- + SMP_ALIGN(repl-size) * NR_CPUS);
+ + SMP_ALIGN(repl-size) * num_possible_cpus());
if (!newinfo)
return -ENOMEM;
On 10/10/05, David S. Miller [EMAIL PROTECTED] wrote:
From: [EMAIL PROTECTED]
Date: Mon, 10 Oct 2005 10:25:07 +0200
Indeed they are. Does the patch assume that cpus are numbered in a
row ?
Yes, and that assumption is incorrect.
Now, I reverted the patch for ip_tables.c, ip6_tables.c and ebtables.c.
Everything is working ok (11h uptime).
Right.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
--
Joseph Murawski
Hartford, CT