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>
*/
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