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

Commit 19504cf5 authored by Vladimir Kondratiev's avatar Vladimir Kondratiev Committed by Johannes Berg
Browse files

cfg80211: add flags to cfg80211_rx_mgmt()



Add flags intended to report various auxiliary information
and introduce the NL80211_RXMGMT_FLAG_ANSWERED flag to report
that the frame was already answered by the device.

Signed-off-by: default avatarVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
[REPLIED->ANSWERED, reword commit message]
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent c4c205f3
Loading
Loading
Loading
Loading
+3 −4
Original line number Original line Diff line number Diff line
@@ -568,8 +568,8 @@ static int ath6kl_wmi_rx_probe_req_event_rx(struct wmi *wmi, u8 *datap, int len,
		   dlen, freq, vif->probe_req_report);
		   dlen, freq, vif->probe_req_report);


	if (vif->probe_req_report || vif->nw_type == AP_NETWORK)
	if (vif->probe_req_report || vif->nw_type == AP_NETWORK)
		cfg80211_rx_mgmt(&vif->wdev, freq, 0,
		cfg80211_rx_mgmt(&vif->wdev, freq, 0, ev->data, dlen, 0,
				 ev->data, dlen, GFP_ATOMIC);
				 GFP_ATOMIC);


	return 0;
	return 0;
}
}
@@ -608,8 +608,7 @@ static int ath6kl_wmi_rx_action_event_rx(struct wmi *wmi, u8 *datap, int len,
		return -EINVAL;
		return -EINVAL;
	}
	}
	ath6kl_dbg(ATH6KL_DBG_WMI, "rx_action: len=%u freq=%u\n", dlen, freq);
	ath6kl_dbg(ATH6KL_DBG_WMI, "rx_action: len=%u freq=%u\n", dlen, freq);
	cfg80211_rx_mgmt(&vif->wdev, freq, 0,
	cfg80211_rx_mgmt(&vif->wdev, freq, 0, ev->data, dlen, 0, GFP_ATOMIC);
			 ev->data, dlen, GFP_ATOMIC);


	return 0;
	return 0;
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -339,7 +339,7 @@ static void wmi_evt_rx_mgmt(struct wil6210_priv *wil, int id, void *d, int len)
		}
		}
	} else {
	} else {
		cfg80211_rx_mgmt(wil->wdev, freq, signal,
		cfg80211_rx_mgmt(wil->wdev, freq, signal,
				 (void *)rx_mgmt_frame, d_len, GFP_KERNEL);
				 (void *)rx_mgmt_frame, d_len, 0, GFP_KERNEL);
	}
	}
}
}


+2 −2
Original line number Original line Diff line number Diff line
@@ -1430,7 +1430,7 @@ int brcmf_p2p_notify_action_frame_rx(struct brcmf_if *ifp,
					      IEEE80211_BAND_5GHZ);
					      IEEE80211_BAND_5GHZ);


	wdev = &ifp->vif->wdev;
	wdev = &ifp->vif->wdev;
	cfg80211_rx_mgmt(wdev, freq, 0, (u8 *)mgmt_frame, mgmt_frame_len,
	cfg80211_rx_mgmt(wdev, freq, 0, (u8 *)mgmt_frame, mgmt_frame_len, 0,
			 GFP_ATOMIC);
			 GFP_ATOMIC);


	kfree(mgmt_frame);
	kfree(mgmt_frame);
@@ -1895,7 +1895,7 @@ s32 brcmf_p2p_notify_rx_mgmt_p2p_probereq(struct brcmf_if *ifp,
					      IEEE80211_BAND_2GHZ :
					      IEEE80211_BAND_2GHZ :
					      IEEE80211_BAND_5GHZ);
					      IEEE80211_BAND_5GHZ);


	cfg80211_rx_mgmt(&vif->wdev, freq, 0, mgmt_frame, mgmt_frame_len,
	cfg80211_rx_mgmt(&vif->wdev, freq, 0, mgmt_frame, mgmt_frame_len, 0,
			 GFP_ATOMIC);
			 GFP_ATOMIC);


	brcmf_dbg(INFO, "mgmt_frame_len (%d) , e->datalen (%d), chanspec (%04x), freq (%d)\n",
	brcmf_dbg(INFO, "mgmt_frame_len (%d) , e->datalen (%d), chanspec (%04x), freq (%d)\n",
+2 −2
Original line number Original line Diff line number Diff line
@@ -171,8 +171,8 @@ mwifiex_process_mgmt_packet(struct mwifiex_private *priv,
	rx_pd->rx_pkt_length = cpu_to_le16(pkt_len);
	rx_pd->rx_pkt_length = cpu_to_le16(pkt_len);


	cfg80211_rx_mgmt(priv->wdev, priv->roc_cfg.chan.center_freq,
	cfg80211_rx_mgmt(priv->wdev, priv->roc_cfg.chan.center_freq,
			 CAL_RSSI(rx_pd->snr, rx_pd->nf),
			 CAL_RSSI(rx_pd->snr, rx_pd->nf), skb->data, pkt_len,
			 skb->data, pkt_len, GFP_ATOMIC);
			 0, GFP_ATOMIC);


	return 0;
	return 0;
}
}
+2 −1
Original line number Original line Diff line number Diff line
@@ -4056,6 +4056,7 @@ void cfg80211_conn_failed(struct net_device *dev, const u8 *mac_addr,
 * @sig_dbm: signal strength in mBm, or 0 if unknown
 * @sig_dbm: signal strength in mBm, or 0 if unknown
 * @buf: Management frame (header + body)
 * @buf: Management frame (header + body)
 * @len: length of the frame data
 * @len: length of the frame data
 * @flags: flags, as defined in enum nl80211_rxmgmt_flags
 * @gfp: context flags
 * @gfp: context flags
 *
 *
 * This function is called whenever an Action frame is received for a station
 * This function is called whenever an Action frame is received for a station
@@ -4067,7 +4068,7 @@ void cfg80211_conn_failed(struct net_device *dev, const u8 *mac_addr,
 * driver is responsible for rejecting the frame.
 * driver is responsible for rejecting the frame.
 */
 */
bool cfg80211_rx_mgmt(struct wireless_dev *wdev, int freq, int sig_dbm,
bool cfg80211_rx_mgmt(struct wireless_dev *wdev, int freq, int sig_dbm,
		      const u8 *buf, size_t len, gfp_t gfp);
		      const u8 *buf, size_t len, u32 flags, gfp_t gfp);


/**
/**
 * cfg80211_mgmt_tx_status - notification of TX status for management frame
 * cfg80211_mgmt_tx_status - notification of TX status for management frame
Loading