|
@@ -3832,12 +3832,12 @@ nla_put_failure:
|
|
|
static void nl80211_send_mlme_event(struct cfg80211_registered_device *rdev,
|
|
|
struct net_device *netdev,
|
|
|
const u8 *buf, size_t len,
|
|
|
- enum nl80211_commands cmd)
|
|
|
+ enum nl80211_commands cmd, gfp_t gfp)
|
|
|
{
|
|
|
struct sk_buff *msg;
|
|
|
void *hdr;
|
|
|
|
|
|
- msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_ATOMIC);
|
|
|
+ msg = nlmsg_new(NLMSG_DEFAULT_SIZE, gfp);
|
|
|
if (!msg)
|
|
|
return;
|
|
|
|
|
@@ -3856,7 +3856,7 @@ static void nl80211_send_mlme_event(struct cfg80211_registered_device *rdev,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- genlmsg_multicast(msg, 0, nl80211_mlme_mcgrp.id, GFP_ATOMIC);
|
|
|
+ genlmsg_multicast(msg, 0, nl80211_mlme_mcgrp.id, gfp);
|
|
|
return;
|
|
|
|
|
|
nla_put_failure:
|
|
@@ -3865,42 +3865,45 @@ static void nl80211_send_mlme_event(struct cfg80211_registered_device *rdev,
|
|
|
}
|
|
|
|
|
|
void nl80211_send_rx_auth(struct cfg80211_registered_device *rdev,
|
|
|
- struct net_device *netdev, const u8 *buf, size_t len)
|
|
|
+ struct net_device *netdev, const u8 *buf,
|
|
|
+ size_t len, gfp_t gfp)
|
|
|
{
|
|
|
nl80211_send_mlme_event(rdev, netdev, buf, len,
|
|
|
- NL80211_CMD_AUTHENTICATE);
|
|
|
+ NL80211_CMD_AUTHENTICATE, gfp);
|
|
|
}
|
|
|
|
|
|
void nl80211_send_rx_assoc(struct cfg80211_registered_device *rdev,
|
|
|
struct net_device *netdev, const u8 *buf,
|
|
|
- size_t len)
|
|
|
+ size_t len, gfp_t gfp)
|
|
|
{
|
|
|
- nl80211_send_mlme_event(rdev, netdev, buf, len, NL80211_CMD_ASSOCIATE);
|
|
|
+ nl80211_send_mlme_event(rdev, netdev, buf, len,
|
|
|
+ NL80211_CMD_ASSOCIATE, gfp);
|
|
|
}
|
|
|
|
|
|
void nl80211_send_deauth(struct cfg80211_registered_device *rdev,
|
|
|
- struct net_device *netdev, const u8 *buf, size_t len)
|
|
|
+ struct net_device *netdev, const u8 *buf,
|
|
|
+ size_t len, gfp_t gfp)
|
|
|
{
|
|
|
nl80211_send_mlme_event(rdev, netdev, buf, len,
|
|
|
- NL80211_CMD_DEAUTHENTICATE);
|
|
|
+ NL80211_CMD_DEAUTHENTICATE, gfp);
|
|
|
}
|
|
|
|
|
|
void nl80211_send_disassoc(struct cfg80211_registered_device *rdev,
|
|
|
struct net_device *netdev, const u8 *buf,
|
|
|
- size_t len)
|
|
|
+ size_t len, gfp_t gfp)
|
|
|
{
|
|
|
nl80211_send_mlme_event(rdev, netdev, buf, len,
|
|
|
- NL80211_CMD_DISASSOCIATE);
|
|
|
+ NL80211_CMD_DISASSOCIATE, gfp);
|
|
|
}
|
|
|
|
|
|
static void nl80211_send_mlme_timeout(struct cfg80211_registered_device *rdev,
|
|
|
struct net_device *netdev, int cmd,
|
|
|
- const u8 *addr)
|
|
|
+ const u8 *addr, gfp_t gfp)
|
|
|
{
|
|
|
struct sk_buff *msg;
|
|
|
void *hdr;
|
|
|
|
|
|
- msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_ATOMIC);
|
|
|
+ msg = nlmsg_new(NLMSG_DEFAULT_SIZE, gfp);
|
|
|
if (!msg)
|
|
|
return;
|
|
|
|
|
@@ -3920,7 +3923,7 @@ static void nl80211_send_mlme_timeout(struct cfg80211_registered_device *rdev,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- genlmsg_multicast(msg, 0, nl80211_mlme_mcgrp.id, GFP_ATOMIC);
|
|
|
+ genlmsg_multicast(msg, 0, nl80211_mlme_mcgrp.id, gfp);
|
|
|
return;
|
|
|
|
|
|
nla_put_failure:
|
|
@@ -3929,16 +3932,19 @@ static void nl80211_send_mlme_timeout(struct cfg80211_registered_device *rdev,
|
|
|
}
|
|
|
|
|
|
void nl80211_send_auth_timeout(struct cfg80211_registered_device *rdev,
|
|
|
- struct net_device *netdev, const u8 *addr)
|
|
|
+ struct net_device *netdev, const u8 *addr,
|
|
|
+ gfp_t gfp)
|
|
|
{
|
|
|
nl80211_send_mlme_timeout(rdev, netdev, NL80211_CMD_AUTHENTICATE,
|
|
|
- addr);
|
|
|
+ addr, gfp);
|
|
|
}
|
|
|
|
|
|
void nl80211_send_assoc_timeout(struct cfg80211_registered_device *rdev,
|
|
|
- struct net_device *netdev, const u8 *addr)
|
|
|
+ struct net_device *netdev, const u8 *addr,
|
|
|
+ gfp_t gfp)
|
|
|
{
|
|
|
- nl80211_send_mlme_timeout(rdev, netdev, NL80211_CMD_ASSOCIATE, addr);
|
|
|
+ nl80211_send_mlme_timeout(rdev, netdev, NL80211_CMD_ASSOCIATE,
|
|
|
+ addr, gfp);
|
|
|
}
|
|
|
|
|
|
void nl80211_send_ibss_bssid(struct cfg80211_registered_device *rdev,
|
|
@@ -3978,12 +3984,12 @@ void nl80211_send_ibss_bssid(struct cfg80211_registered_device *rdev,
|
|
|
void nl80211_michael_mic_failure(struct cfg80211_registered_device *rdev,
|
|
|
struct net_device *netdev, const u8 *addr,
|
|
|
enum nl80211_key_type key_type, int key_id,
|
|
|
- const u8 *tsc)
|
|
|
+ const u8 *tsc, gfp_t gfp)
|
|
|
{
|
|
|
struct sk_buff *msg;
|
|
|
void *hdr;
|
|
|
|
|
|
- msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_ATOMIC);
|
|
|
+ msg = nlmsg_new(NLMSG_DEFAULT_SIZE, gfp);
|
|
|
if (!msg)
|
|
|
return;
|
|
|
|
|
@@ -4007,7 +4013,7 @@ void nl80211_michael_mic_failure(struct cfg80211_registered_device *rdev,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- genlmsg_multicast(msg, 0, nl80211_mlme_mcgrp.id, GFP_ATOMIC);
|
|
|
+ genlmsg_multicast(msg, 0, nl80211_mlme_mcgrp.id, gfp);
|
|
|
return;
|
|
|
|
|
|
nla_put_failure:
|