Beispiel #1
0
void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid,
			  struct ieee80211_channel *channel, gfp_t gfp)
{
	struct wireless_dev *wdev = dev->ieee80211_ptr;
	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
	struct cfg80211_event *ev;
	unsigned long flags;

	trace_cfg80211_ibss_joined(dev, bssid, channel);

	if (WARN_ON(!channel))
		return;

	ev = kzalloc(sizeof(*ev), gfp);
	if (!ev)
		return;

	ev->type = EVENT_IBSS_JOINED;
	memcpy(ev->ij.bssid, bssid, ETH_ALEN);
	ev->ij.channel = channel;

	spin_lock_irqsave(&wdev->event_lock, flags);
	list_add_tail(&ev->list, &wdev->event_list);
	spin_unlock_irqrestore(&wdev->event_lock, flags);
	queue_work(cfg80211_wq, &rdev->event_work);
}
void cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid, gfp_t gfp)
{
    struct wireless_dev *wdev = dev->ieee80211_ptr;
    struct cfg80211_registered_device *rdev = wiphy_to_dev(wdev->wiphy);
    struct cfg80211_event *ev;
    unsigned long flags;

    trace_cfg80211_ibss_joined(dev, bssid);

    CFG80211_DEV_WARN_ON(wdev->sme_state != CFG80211_SME_CONNECTING);

    ev = kzalloc(sizeof(*ev), gfp);
    if (!ev)
        return;

    ev->type = EVENT_IBSS_JOINED;
    memcpy(ev->cr.bssid, bssid, ETH_ALEN);

    spin_lock_irqsave(&wdev->event_lock, flags);
    list_add_tail(&ev->list, &wdev->event_list);
    spin_unlock_irqrestore(&wdev->event_lock, flags);
    queue_work(cfg80211_wq, &rdev->event_work);
}