Skip to content

Commit

Permalink
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/gi…
Browse files Browse the repository at this point in the history
…t/linville/wireless
  • Loading branch information
linvjw committed Jul 17, 2012
2 parents 23cb3b2 + 8a70e7f commit d369f7b
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 8 deletions.
4 changes: 2 additions & 2 deletions drivers/net/wireless/mwifiex/cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -578,9 +578,9 @@ mwifiex_dump_station_info(struct mwifiex_private *priv,

/*
* Bit 0 in tx_htinfo indicates that current Tx rate is 11n rate. Valid
* MCS index values for us are 0 to 7.
* MCS index values for us are 0 to 15.
*/
if ((priv->tx_htinfo & BIT(0)) && (priv->tx_rate < 8)) {
if ((priv->tx_htinfo & BIT(0)) && (priv->tx_rate < 16)) {
sinfo->txrate.mcs = priv->tx_rate;
sinfo->txrate.flags |= RATE_INFO_FLAGS_MCS;
/* 40MHz rate */
Expand Down
5 changes: 4 additions & 1 deletion drivers/net/wireless/mwl8k.c
Original file line number Diff line number Diff line change
Expand Up @@ -1665,7 +1665,9 @@ mwl8k_txq_reclaim(struct ieee80211_hw *hw, int index, int limit, int force)

info = IEEE80211_SKB_CB(skb);
if (ieee80211_is_data(wh->frame_control)) {
sta = info->control.sta;
rcu_read_lock();
sta = ieee80211_find_sta_by_ifaddr(hw, wh->addr1,
wh->addr2);
if (sta) {
sta_info = MWL8K_STA(sta);
BUG_ON(sta_info == NULL);
Expand All @@ -1682,6 +1684,7 @@ mwl8k_txq_reclaim(struct ieee80211_hw *hw, int index, int limit, int force)
sta_info->is_ampdu_allowed = true;
}
}
rcu_read_unlock();
}

ieee80211_tx_info_clear_status(info);
Expand Down
5 changes: 4 additions & 1 deletion net/mac80211/tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -1824,6 +1824,9 @@ netdev_tx_t ieee80211_subif_start_xmit(struct sk_buff *skb,
/* RA TA mDA mSA AE:DA SA */
mesh_da = mppath->mpp;
is_mesh_mcast = 0;
} else if (mpath) {
mesh_da = mpath->dst;
is_mesh_mcast = 0;
} else {
/* DA TA mSA AE:SA */
mesh_da = bcast;
Expand Down Expand Up @@ -2721,7 +2724,7 @@ EXPORT_SYMBOL(ieee80211_get_buffered_bc);
void ieee80211_tx_skb_tid(struct ieee80211_sub_if_data *sdata,
struct sk_buff *skb, int tid)
{
int ac = ieee802_1d_to_ac[tid];
int ac = ieee802_1d_to_ac[tid & 7];

skb_set_mac_header(skb, 0);
skb_set_network_header(skb, 0);
Expand Down
20 changes: 17 additions & 3 deletions net/nfc/hci/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ static int nfc_hci_target_discovered(struct nfc_hci_dev *hdev, u8 gate)
struct nfc_target *targets;
struct sk_buff *atqa_skb = NULL;
struct sk_buff *sak_skb = NULL;
struct sk_buff *uid_skb = NULL;
int r;

pr_debug("from gate %d\n", gate);
Expand Down Expand Up @@ -222,6 +223,19 @@ static int nfc_hci_target_discovered(struct nfc_hci_dev *hdev, u8 gate)
targets->sens_res = be16_to_cpu(*(u16 *)atqa_skb->data);
targets->sel_res = sak_skb->data[0];

r = nfc_hci_get_param(hdev, NFC_HCI_RF_READER_A_GATE,
NFC_HCI_RF_READER_A_UID, &uid_skb);
if (r < 0)
goto exit;

if (uid_skb->len == 0 || uid_skb->len > NFC_NFCID1_MAXSIZE) {
r = -EPROTO;
goto exit;
}

memcpy(targets->nfcid1, uid_skb->data, uid_skb->len);
targets->nfcid1_len = uid_skb->len;

if (hdev->ops->complete_target_discovered) {
r = hdev->ops->complete_target_discovered(hdev, gate,
targets);
Expand Down Expand Up @@ -257,6 +271,7 @@ static int nfc_hci_target_discovered(struct nfc_hci_dev *hdev, u8 gate)
kfree(targets);
kfree_skb(atqa_skb);
kfree_skb(sak_skb);
kfree_skb(uid_skb);

return r;
}
Expand Down Expand Up @@ -695,13 +710,12 @@ EXPORT_SYMBOL(nfc_hci_register_device);

void nfc_hci_unregister_device(struct nfc_hci_dev *hdev)
{
struct hci_msg *msg;
struct hci_msg *msg, *n;

skb_queue_purge(&hdev->rx_hcp_frags);
skb_queue_purge(&hdev->msg_rx_queue);

while ((msg = list_first_entry(&hdev->msg_tx_queue, struct hci_msg,
msg_l)) != NULL) {
list_for_each_entry_safe(msg, n, &hdev->msg_tx_queue, msg_l) {
list_del(&msg->msg_l);
skb_queue_purge(&msg->msg_frags);
kfree(msg);
Expand Down
2 changes: 1 addition & 1 deletion net/nfc/hci/hcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ int nfc_hci_hcp_message_tx(struct nfc_hci_dev *hdev, u8 pipe,
}

mutex_lock(&hdev->msg_tx_mutex);
list_add_tail(&hdev->msg_tx_queue, &cmd->msg_l);
list_add_tail(&cmd->msg_l, &hdev->msg_tx_queue);
mutex_unlock(&hdev->msg_tx_mutex);

queue_work(hdev->msg_tx_wq, &hdev->msg_tx_work);
Expand Down
3 changes: 3 additions & 0 deletions net/nfc/nci/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

#define pr_fmt(fmt) KBUILD_MODNAME ": %s: " fmt, __func__

#include <linux/module.h>
#include <linux/types.h>
#include <linux/workqueue.h>
#include <linux/completion.h>
Expand Down Expand Up @@ -880,3 +881,5 @@ static void nci_cmd_work(struct work_struct *work)
jiffies + msecs_to_jiffies(NCI_CMD_TIMEOUT));
}
}

MODULE_LICENSE("GPL");

0 comments on commit d369f7b

Please sign in to comment.