Hi, On 2008-11-11 02:13, Shaddy Baddah wrote:
Ok, after a long hard slog at trying to understand all this, I'm going to have to pause the effort. I am beginning to understand the mechanisms in place... however, I am not totally sure about anything. My first
Devoting a little bit of time here and there to understanding the unaligned accesses, I think I understand a whole lot better now.
First off, I only came to realise that the reason the module seemed to continue operations despite reporting the unaligned access error was because the exception handler actually emulates the intended operation (albeit much slower). Good to know.
I then came to understand that we cannot expect alignment on RX in the zd1211rw module. In fact, we might expect that 80211 packets are always unaligned, because the 5 byte PLCP prefix in the SKB buffer will always push it into an odd address (assuming the SKB buffer is allocated aligned). In which case, as detailed in the Documentation/unaligned-memory-access.txt, replacing compare_ether_addr() with memcmp() is perfectly fine.
After solving that, I was still getting an unaligned access from a compare_ether_addr() call in sta_info_get() from mac80211 module. My dilemma was whether that module would expect alignment always, in which case the same simple function replacement would not be OK. But I saw several places where memcmp() is preferred to compare_ether_addr(), which I assume indicates that mac80211 does not expect alignment of 80211 packets passed to it.
Applying Sebastian Andrzej Siewior wireless/zd1211rw: use get_unaligned_le16 helper (v2) patch and my two changes quietens down the kernel completely. I will submit these two patches in follow up emails.
It is interesting (at least to me) to note that a change between kernel versions 2.6.26 and 2.6.28-rc6 fixed something that allowed WPA2 to work on sparc64. At least according to my careful verification. Perhaps one day, I'll narrow that change down.
Regards, Shaddy -- 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