Hi, I was just looking through some bcm43xx code and noticed that when you set a different mac address for some interface, then it is stored to wl->mac_addr but this is only ever used in bcm43xx_write_mac_bssid_templates and not in bcm43xx_wireless_core_init. iwlwifi on the other hand completely ignores the mac address after printing it out. Also in bcm43xx, when the interface is removed again wl->mac_addr isn't set to NULL when the interface that the MAC belonged to is deleted, so that the mac address stays programmed on the card and we continue to ACK packets for that MAC address. In zd1211, we start with hwaddr = dev->wiphy->perm_addr which isn't correct either, for a pure monitor mode we want to start with a zero mac addr to avoid acking packets. Also, zd1211rw will end up having a NULL hwaddr when a monitor interface is added, most likely segfaulting in zd_write_mac_addr then. The NULL mac address will also happen to rtl818x and possibly p54 (at least when that gets monitor mode support) Whew. So much for our little mac address audit. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part