Russell Steinthal <[EMAIL PROTECTED]> :
[...]
> Again, here's the networking section of .config; the full .config is
> available at http://www.steinthal.us/kernel/config-2.6.15-rc7

$ grep -E 'CONFIG_DEBUG_SPINLOCK|CONFIG_PREEMPT|CONFIG_SMP' config-2.6.15-rc7 
# CONFIG_SMP is not set
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set

Welcome in 2006 :o|

[...]
> See excerpt above or full logs at http://www.steinthal.us/kernel/
> 
> > r8169.o module could help.
> 
> I'm not sure I understand exactly what you mean by this, but on the off
> chance that you were asking for it, I've also put a copy of my r8169.ko
> at http://www.steinthal.us/kernel/r8169.ko.  

Exactly. Thank you.

> If there's anything else you need, please let me know.  Thanks for your
> help!

Can you try and report two things:
- apply the patch below with your current config and carefully install/test;
- if it does not work better, enable CONFIG_SMP with/without CONFIG_PREEMPT.

diff --git a/include/linux/spinlock_api_up.h b/include/linux/spinlock_api_up.h
index cd81cee..94e243f 100644
--- a/include/linux/spinlock_api_up.h
+++ b/include/linux/spinlock_api_up.h
@@ -37,16 +37,16 @@
   do { local_irq_save(flags); __LOCK(lock); } while (0)
 
 #define __UNLOCK(lock) \
-  do { preempt_enable(); __release(lock); (void)(lock); } while (0)
+  do { __release(lock); preempt_enable(); (void)(lock); } while (0)
 
 #define __UNLOCK_BH(lock) \
   do { preempt_enable_no_resched(); local_bh_enable(); __release(lock); 
(void)(lock); } while (0)
 
 #define __UNLOCK_IRQ(lock) \
-  do { local_irq_enable(); __UNLOCK(lock); } while (0)
+  do { __UNLOCK(lock); local_irq_enable(); } while (0)
 
 #define __UNLOCK_IRQRESTORE(lock, flags) \
-  do { local_irq_restore(flags); __UNLOCK(lock); } while (0)
+  do { __UNLOCK(lock); local_irq_restore(flags); } while (0)
 
 #define _spin_lock(lock)                       __LOCK(lock)
 #define _read_lock(lock)                       __LOCK(lock)
-
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

Reply via email to