Search Linux Wireless

Re: [PATCH 1/2] brcmfmac: Add brcmf_c_set_cur_etheraddr() helper

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 7/8/22 15:32, Hans de Goede wrote:
> Add a little helper to send "cur_etheraddr" commands to the interface
> and to handle the error reporting of it in a single place.
> 
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>

Ugh, I accidentally used Kalle's old address. I'll resend this with
the right address, sorry for the duplicate emails.

Regards,

Hans


> ---
>  .../broadcom/brcm80211/brcmfmac/common.c       | 18 +++++++++++++-----
>  .../broadcom/brcm80211/brcmfmac/common.h       |  1 +
>  .../broadcom/brcm80211/brcmfmac/core.c         |  8 ++------
>  3 files changed, 16 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
> index fe01da9e620d..dccd8f4ca1d0 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
> @@ -190,6 +190,17 @@ static int brcmf_c_process_clm_blob(struct brcmf_if *ifp)
>  	return err;
>  }
>  
> +int brcmf_c_set_cur_etheraddr(struct brcmf_if *ifp, const u8 *addr)
> +{
> +	s32 err;
> +
> +	err = brcmf_fil_iovar_data_set(ifp, "cur_etheraddr", addr, ETH_ALEN);
> +	if (err < 0)
> +		bphy_err(ifp->drvr, "Setting cur_etheraddr failed, %d\n", err);
> +
> +	return err;
> +}
> +
>  int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
>  {
>  	struct brcmf_pub *drvr = ifp->drvr;
> @@ -204,12 +215,9 @@ int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
>  
>  	if (is_valid_ether_addr(ifp->mac_addr)) {
>  		/* set mac address */
> -		err = brcmf_fil_iovar_data_set(ifp, "cur_etheraddr", ifp->mac_addr,
> -					       ETH_ALEN);
> -		if (err < 0) {
> -			bphy_err(ifp->drvr, "Setting cur_etheraddr failed, %d\n", err);
> +		err = brcmf_c_set_cur_etheraddr(ifp, ifp->mac_addr);
> +		if (err < 0)
>  			goto done;
> -		}
>  	} else {
>  		/* retrieve mac address */
>  		err = brcmf_fil_iovar_data_get(ifp, "cur_etheraddr", ifp->mac_addr,
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
> index 15accc88d5c0..7329eb751945 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h
> @@ -65,6 +65,7 @@ void brcmf_release_module_param(struct brcmf_mp_device *module_param);
>  
>  /* Sets dongle media info (drv_version, mac address). */
>  int brcmf_c_preinit_dcmds(struct brcmf_if *ifp);
> +int brcmf_c_set_cur_etheraddr(struct brcmf_if *ifp, const u8 *addr);
>  
>  #ifdef CONFIG_DMI
>  void brcmf_dmi_probe(struct brcmf_mp_device *settings, u32 chip, u32 chiprev);
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
> index 87aef211b35f..bd164a0821f9 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
> @@ -233,16 +233,12 @@ static int brcmf_netdev_set_mac_address(struct net_device *ndev, void *addr)
>  {
>  	struct brcmf_if *ifp = netdev_priv(ndev);
>  	struct sockaddr *sa = (struct sockaddr *)addr;
> -	struct brcmf_pub *drvr = ifp->drvr;
>  	int err;
>  
>  	brcmf_dbg(TRACE, "Enter, bsscfgidx=%d\n", ifp->bsscfgidx);
>  
> -	err = brcmf_fil_iovar_data_set(ifp, "cur_etheraddr", sa->sa_data,
> -				       ETH_ALEN);
> -	if (err < 0) {
> -		bphy_err(drvr, "Setting cur_etheraddr failed, %d\n", err);
> -	} else {
> +	err = brcmf_c_set_cur_etheraddr(ifp, sa->sa_data);
> +	if (err >= 0) {
>  		brcmf_dbg(TRACE, "updated to %pM\n", sa->sa_data);
>  		memcpy(ifp->mac_addr, sa->sa_data, ETH_ALEN);
>  		eth_hw_addr_set(ifp->ndev, ifp->mac_addr);




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux