brcmfmac: fix generation of the p2p related mac addresses

The driver determines the P2P interface address and device
address from the primary mac address. However, the function
used an invalid input. This caused a mac address mismatch
between firmware and driver. This was hidden because the
brcmf_if_add() function corrected the error upon receiving
the IF_ADD event from firmware.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Arend van Spriel 2013-02-08 15:53:40 +01:00 committed by John W. Linville
parent 33a6b157f8
commit de66efcadb

View File

@ -132,12 +132,10 @@ static int brcmf_p2p_set_firmware(struct brcmf_p2p_info *p2p)
*/
static void brcmf_p2p_generate_bss_mac(struct brcmf_p2p_info *p2p)
{
struct net_device *ndev = cfg_to_ndev(p2p->cfg);
/* Generate the P2P Device Address. This consists of the device's
* primary MAC address with the locally administered bit set.
*/
memcpy(p2p->dev_addr, ndev->dev_addr, ETH_ALEN);
memcpy(p2p->dev_addr, p2p->cfg->pub->mac, ETH_ALEN);
p2p->dev_addr[0] |= 0x02;
/* Generate the P2P Interface Address. If the discovery and connection