> The problem is > drivers/net/wireless/zd1211/zd_mac.c:update_qual_rssi(). > Specifically the compare_ether_addr() call I don't believe this is true. Shaddy seems to back that up by the patch not helping. > Wireless folks, I would suggest we do some auditing of the > compare_ether_addr() calls and for the ones that are operating > on these potentially unaligned structs we change it to either > a straight memcmp() or some new routine which will more reflect > the issue (say something like "compare_ether_addr_unaligned()" > or "ieee80211_compare_ether_addr()"). All MAC addresses in 802.11 headers are at least aligned on 16-bit boundaries. Hence, if the some MAC address like the BSSID here was unaligned we'd also have the IP header unaligned causing a lot more trouble than this. Shaddy, please rebuild zd1211 with the patch below, it should make the compiler not inline all those static functions allowing us to pinpoint much better where the problem occurs. You will probably need to delete all *.o files in the zd1211rw/ directory to the them rebuilt after the Makefile change. --- everything.orig/drivers/net/wireless/zd1211rw/Makefile 2007-11-23 11:36:30.652094075 +0100 +++ everything/drivers/net/wireless/zd1211rw/Makefile 2007-11-23 11:36:57.112090711 +0100 @@ -1,5 +1,7 @@ obj-$(CONFIG_ZD1211RW) += zd1211rw.o +EXTRA_CFLAGS += -fno-inline-functions-called-once + zd1211rw-objs := zd_chip.o zd_ieee80211.o \ zd_mac.o zd_netdev.o \ zd_rf_al2230.o zd_rf_rf2959.o \ - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html