[Madwifi-devel] Problems with spin_is_locked()
Status: Beta
Brought to you by:
otaku
From: Andrew de Q. <ad...@li...> - 2004-11-27 02:57:20
|
Hi, I'm using kernel 2.6.9, and CVS madwifi. I've been having some mysterious problems that I've just had a moment to look into. My using a NON SMP system, but with kernel preemption enabled. If I do: iwpriv ath0 addmac 11:22:33:44:55:66 iwpriv ath0 maccmd 3 I get an instant kernel BUG. This comes from the ACL_LOCK_ASSERT in ieee80211_acl.c/_acl_free(). It fails. Looking at the code in ieee80211_linux.h: /* NB: beware, *_is_locked() are boguly defined for UP+!PREEMPT */ #if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT) #define ACL_LOCK_ASSERT(_as) \ KASSERT(spin_is_locked(&(_as)->as_lock), ("ACL not locked!")) #else #define ACL_LOCK_ASSERT(_as) #endif It looks like the kernel has changed since that was written. Looking at linux/spinlock.h shows that spin_is_locked() now always returns 0 on a non-SMP system, whether you enable preemption or not, so it should really only test the assertion for CONFIG_SMP (for 2.6.9 at least). Or else 2.6.10-rcX has changed this? Can someone advise? |