diff options
Diffstat (limited to 'drivers/net/wireless/mac80211_hwsim.c')
-rw-r--r-- | drivers/net/wireless/mac80211_hwsim.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index c1947c5915eb..d56b7859a437 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c | |||
@@ -946,7 +946,8 @@ static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw, | |||
946 | goto nla_put_failure; | 946 | goto nla_put_failure; |
947 | 947 | ||
948 | genlmsg_end(skb, msg_head); | 948 | genlmsg_end(skb, msg_head); |
949 | genlmsg_unicast(&init_net, skb, dst_portid); | 949 | if (genlmsg_unicast(&init_net, skb, dst_portid)) |
950 | goto err_free_txskb; | ||
950 | 951 | ||
951 | /* Enqueue the packet */ | 952 | /* Enqueue the packet */ |
952 | skb_queue_tail(&data->pending, my_skb); | 953 | skb_queue_tail(&data->pending, my_skb); |
@@ -955,6 +956,8 @@ static void mac80211_hwsim_tx_frame_nl(struct ieee80211_hw *hw, | |||
955 | return; | 956 | return; |
956 | 957 | ||
957 | nla_put_failure: | 958 | nla_put_failure: |
959 | nlmsg_free(skb); | ||
960 | err_free_txskb: | ||
958 | printk(KERN_DEBUG "mac80211_hwsim: error occurred in %s\n", __func__); | 961 | printk(KERN_DEBUG "mac80211_hwsim: error occurred in %s\n", __func__); |
959 | ieee80211_free_txskb(hw, my_skb); | 962 | ieee80211_free_txskb(hw, my_skb); |
960 | data->tx_failed++; | 963 | data->tx_failed++; |