[Madwifi-cvs] revision 3307 committed
Status: Beta
Brought to you by:
otaku
From: Michael T. <svn...@ma...> - 2008-01-30 19:26:18
|
Project : madwifi Revision : 3307 Author : mtaylor (Michael Taylor) Date : 2008-01-30 20:26:13 +0100 (Wed, 30 Jan 2008) Log Message : Reduce the maximum message length for node messages from 1000 to 192 and drop the length needed to display the [atomic] node count. Slamming this much data on the stack can cause stack overflows with 4k stacks quite easily, especially when hard interrupts occur and extend a stack that is already almost full. Affected Files: * madwifi/trunk/net80211/ieee80211_node.c updated Modified: madwifi/trunk/net80211/ieee80211_node.c =================================================================== --- madwifi/trunk/net80211/ieee80211_node.c 2008-01-30 15:26:06 UTC (rev 3306) +++ madwifi/trunk/net80211/ieee80211_node.c 2008-01-30 19:26:13 UTC (rev 3307) @@ -934,10 +934,10 @@ { va_list args; int adjusted_refcount = atomic_read(&ni->ni_refcnt) + refcnt_adjust; - char node_count[32] = { '\0' }; - char expanded_message[1024] = { '\0' }; + char node_count[10] = { '\0' }; + char expanded_message[192] = { '\0' }; - if (0 == (ni->ni_ic->ic_debug & flags) && (flags != IEEE80211_MSG_ANY)) + if (0 == (ni->ni_ic->ic_debug & flags)) return; if (adjusted_refcount == 0) @@ -954,22 +954,22 @@ #ifdef IEEE80211_DEBUG_REFCNT printk(KERN_DEBUG "%s/%s: %s%s:%d -> %s:%d %s [node %p<" MAC_FMT ">%s%s%s%s, refs=%02d]\n", #else - printk(KERN_DEBUG "%s/%s: %s%s:%d %s [node %p<" MAC_FMT ">%s%s%s%s, refs=%02d]\n", + printk(KERN_DEBUG "%s/%s: %s%s:%d %s [node %p<" MAC_FMT ">%s%s%s%s, refs=%02d]\n", #endif /* #ifdef IEEE80211_DEBUG_REFCNT */ - ni->ni_ic->ic_dev->name, - ni->ni_vap->iv_dev->name, - node_count, + ni->ni_ic->ic_dev->name, + ni->ni_vap->iv_dev->name, + node_count, #ifdef IEEE80211_DEBUG_REFCNT - func1, line1, + func1, line1, #endif /* #ifdef IEEE80211_DEBUG_REFCNT */ - func2, line2, - expanded_message, - ni, MAC_ADDR(ni->ni_macaddr), - ni->ni_table != NULL ? " in " : "", - ni->ni_table != NULL ? ni->ni_table->nt_name : "", - ni->ni_table != NULL ? " table" : "", - ni->ni_table != NULL ? "" : " (not in any tables)", - adjusted_refcount); + func2, line2, + expanded_message, + ni, MAC_ADDR(ni->ni_macaddr), + ni->ni_table != NULL ? " in " : "", + ni->ni_table != NULL ? ni->ni_table->nt_name : "", + ni->ni_table != NULL ? " table" : "", + ni->ni_table != NULL ? "" : " (not in any tables)", + adjusted_refcount); va_end(args); } EXPORT_SYMBOL(node_print_message); |