Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1332e26e authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville
Browse files

brcmfmac: change parameter of brcmf_set_management_ie()



The function brcmf_set_management_ie() operates on virtual
interface data and brcmf_cfg80211_vif structure provides
all information needed for interfacing with firmware. As
this function will also be needed for interface without
an associated net device it makes sense to provide the vif
instead of deriving it from the net device.

Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: default avatarHante Meuleman <meuleman@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarFranky Lin <frankyl@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent c697be5a
Loading
Loading
Loading
Loading
+18 −15
Original line number Original line Diff line number Diff line
@@ -3344,12 +3344,11 @@ brcmf_vndr_ie(u8 *iebuf, s32 pktflag, u8 *ie_ptr, u32 ie_len, s8 *add_del_cmd)
}
}


static
static
s32 brcmf_set_management_ie(struct brcmf_cfg80211_info *cfg,
s32 brcmf_vif_set_mgmt_ie(struct brcmf_cfg80211_vif *vif, s32 pktflag,
			    struct net_device *ndev, s32 pktflag,
			  const u8 *vndr_ie_buf, u32 vndr_ie_len)
			  const u8 *vndr_ie_buf, u32 vndr_ie_len)
{
{
	struct brcmf_if *ifp = netdev_priv(ndev);
	struct brcmf_if *ifp;
	struct vif_saved_ie *saved_ie = &ifp->vif->saved_ie;
	struct vif_saved_ie *saved_ie;
	s32 err = 0;
	s32 err = 0;
	u8  *iovar_ie_buf;
	u8  *iovar_ie_buf;
	u8  *curr_ie_buf;
	u8  *curr_ie_buf;
@@ -3366,8 +3365,12 @@ s32 brcmf_set_management_ie(struct brcmf_cfg80211_info *cfg,
	u8 *ptr;
	u8 *ptr;
	int remained_buf_len;
	int remained_buf_len;


	WL_TRACE("bssidx %d, pktflag : 0x%02X\n",
	if (!vif)
		 brcmf_ndev_bssidx(ndev), pktflag);
		return -ENODEV;
	ifp = vif->ifp;
	saved_ie = &vif->saved_ie;

	WL_TRACE("bssidx %d, pktflag : 0x%02X\n", ifp->bssidx, pktflag);
	iovar_ie_buf = kzalloc(WL_EXTRA_BUF_MAX, GFP_KERNEL);
	iovar_ie_buf = kzalloc(WL_EXTRA_BUF_MAX, GFP_KERNEL);
	if (!iovar_ie_buf)
	if (!iovar_ie_buf)
		return -ENOMEM;
		return -ENOMEM;
@@ -3585,7 +3588,7 @@ brcmf_cfg80211_start_ap(struct wiphy *wiphy, struct net_device *ndev,
		brcmf_configure_opensecurity(ndev, bssidx);
		brcmf_configure_opensecurity(ndev, bssidx);
	}
	}
	/* Set Beacon IEs to FW */
	/* Set Beacon IEs to FW */
	err = brcmf_set_management_ie(cfg, ndev,
	err = brcmf_vif_set_mgmt_ie(ndev_to_vif(ndev),
				    VNDR_IE_BEACON_FLAG,
				    VNDR_IE_BEACON_FLAG,
				    settings->beacon.tail,
				    settings->beacon.tail,
				    settings->beacon.tail_len);
				    settings->beacon.tail_len);
@@ -3595,7 +3598,7 @@ brcmf_cfg80211_start_ap(struct wiphy *wiphy, struct net_device *ndev,
		WL_TRACE("Applied Vndr IEs for Beacon\n");
		WL_TRACE("Applied Vndr IEs for Beacon\n");


	/* Set Probe Response IEs to FW */
	/* Set Probe Response IEs to FW */
	err = brcmf_set_management_ie(cfg, ndev,
	err = brcmf_vif_set_mgmt_ie(ndev_to_vif(ndev),
				    VNDR_IE_PRBRSP_FLAG,
				    VNDR_IE_PRBRSP_FLAG,
				    settings->beacon.proberesp_ies,
				    settings->beacon.proberesp_ies,
				    settings->beacon.proberesp_ies_len);
				    settings->beacon.proberesp_ies_len);
+6 −0
Original line number Original line Diff line number Diff line
@@ -468,6 +468,12 @@ static inline struct brcmf_cfg80211_profile *ndev_to_prof(struct net_device *nd)
	return &ifp->vif->profile;
	return &ifp->vif->profile;
}
}


static inline struct brcmf_cfg80211_vif *ndev_to_vif(struct net_device *ndev)
{
	struct brcmf_if *ifp = netdev_priv(ndev);
	return ifp->vif;
}

static inline struct
static inline struct
brcmf_cfg80211_connect_info *cfg_to_conn(struct brcmf_cfg80211_info *cfg)
brcmf_cfg80211_connect_info *cfg_to_conn(struct brcmf_cfg80211_info *cfg)
{
{