Re: 2.6.15-rc2-mm1

2005-11-24 Thread Harald Welte
On Wed, Nov 23, 2005 at 11:22:18AM -0800, Andrew Morton wrote:
 Michal Piotrowski [EMAIL PROTECTED] wrote:
 
   Debug: sleeping function called from invalid context at
   include/asm/semaphore.h:123
   in_atomic():1, irqs_disabled():0
[c0103be6] dump_stack+0x17/0x19
[c011a0c3] __might_sleep+0x9c/0xae
[fd9a090d] translate_table+0x147/0xc14 [ip_tables]
[fd9a2b2a] ipt_register_table+0x93/0x20d [ip_tables]
[f98fe027] init+0x27/0x9e [iptable_filter]
[c01376d0] sys_init_module+0xd7/0x26c
[c0102cc7] sysenter_past_esp+0x54/0x75
   ---
   | preempt count: 0001 ]
   | 1 level deep critical section nesting:
   
   .. [fd9a2aca]  ipt_register_table+0x33/0x20d [ip_tables]
   .[f98fe027] ..   ( = init+0x27/0x9e [iptable_filter])
  
 
 ipt_register_table() does get_cpu() then calls translate_table(), and
 somewhere under translate_table() we do something which sleeps, only I'm not
 sure what it is - netfilter likes to hide things in unexpected places.

I'll investigate this.  the get_cpu() scheme was introduced as a fix for
a different (less serious) problem.  

You'll get a reply until later today.

-- 
- Harald Welte [EMAIL PROTECTED] http://netfilter.org/

  Fragmentation is like classful addressing -- an interesting early
   architectural error that shows how much experimentation was going
   on while IP was being designed.-- Paul Vixie


pgprVtGQHXCIr.pgp
Description: PGP signature


Re: 2.6.15-rc2-mm1

2005-11-23 Thread Andrew Morton
Michal Piotrowski [EMAIL PROTECTED] wrote:

  Debug: sleeping function called from invalid context at
  include/asm/semaphore.h:123
  in_atomic():1, irqs_disabled():0
   [c0103be6] dump_stack+0x17/0x19
   [c011a0c3] __might_sleep+0x9c/0xae
   [fd9a090d] translate_table+0x147/0xc14 [ip_tables]
   [fd9a2b2a] ipt_register_table+0x93/0x20d [ip_tables]
   [f98fe027] init+0x27/0x9e [iptable_filter]
   [c01376d0] sys_init_module+0xd7/0x26c
   [c0102cc7] sysenter_past_esp+0x54/0x75
  ---
  | preempt count: 0001 ]
  | 1 level deep critical section nesting:
  
  .. [fd9a2aca]  ipt_register_table+0x33/0x20d [ip_tables]
  .[f98fe027] ..   ( = init+0x27/0x9e [iptable_filter])
 

ipt_register_table() does get_cpu() then calls translate_table(), and
somewhere under translate_table() we do something which sleeps, only I'm not
sure what it is - netfilter likes to hide things in unexpected places.

check_entry() will do sleepy things under that get_cpu(), but that doesn't
seem to be in this particular call chain.

Anyway, the new get_cpu() in ipt_register_table() is the problem.
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html