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
David S. Miller committed Jan 12, 2012
2 parents 3b09c84 + 1140afa commit 9ee6045
Show file tree
Hide file tree
Showing 19 changed files with 99 additions and 68 deletions.
2 changes: 1 addition & 1 deletion drivers/net/wireless/ath/ath9k/ar9003_phy.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ static const int m2ThreshExt_off = 127;
* @chan:
*
* This is the function to change channel on single-chip devices, that is
* all devices after ar9280.
* for AR9300 family of chipsets.
*
* This function takes the channel value in MHz and sets
* hardware channel value. Assumes writes have been enabled to analog bus.
Expand Down
1 change: 0 additions & 1 deletion drivers/net/wireless/ath/ath9k/ath9k.h
Original file line number Diff line number Diff line change
Expand Up @@ -679,7 +679,6 @@ void ath9k_deinit_device(struct ath_softc *sc);
void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw);
void ath9k_reload_chainmask_settings(struct ath_softc *sc);

void ath_radio_disable(struct ath_softc *sc, struct ieee80211_hw *hw);
bool ath9k_uses_beacons(int type);

#ifdef CONFIG_ATH9K_PCI
Expand Down
1 change: 1 addition & 0 deletions drivers/net/wireless/ath/ath9k/calib.c
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,7 @@ bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan)
ah->noise = ath9k_hw_getchan_noise(ah, chan);
return true;
}
EXPORT_SYMBOL(ath9k_hw_getnf);

void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah,
struct ath9k_channel *chan)
Expand Down
1 change: 0 additions & 1 deletion drivers/net/wireless/ath/ath9k/calib.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

#include "hw.h"

#define AR_PHY_CCA_FILTERWINDOW_LENGTH_INIT 3
#define AR_PHY_CCA_FILTERWINDOW_LENGTH 5

#define NUM_NF_READINGS 6
Expand Down
8 changes: 2 additions & 6 deletions drivers/net/wireless/ath/ath9k/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1629,7 +1629,6 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)

if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
struct ieee80211_channel *curchan = hw->conf.channel;
struct ath9k_channel old_chan;
int pos = curchan->hw_value;
int old_pos = -1;
unsigned long flags;
Expand All @@ -1654,11 +1653,8 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
* Preserve the current channel values, before updating
* the same channel
*/
if (old_pos == pos) {
memcpy(&old_chan, &sc->sc_ah->channels[pos],
sizeof(struct ath9k_channel));
ah->curchan = &old_chan;
}
if (ah->curchan && (old_pos == pos))
ath9k_hw_getnf(ah, ah->curchan);

ath9k_cmn_update_ichannel(&sc->sc_ah->channels[pos],
curchan, conf->channel_type);
Expand Down
4 changes: 3 additions & 1 deletion drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -3119,8 +3119,10 @@ static int brcmf_sdbrcm_write_vars(struct brcmf_sdio *bus)
/* Verify NVRAM bytes */
brcmf_dbg(INFO, "Compare NVRAM dl & ul; varsize=%d\n", varsize);
nvram_ularray = kmalloc(varsize, GFP_ATOMIC);
if (!nvram_ularray)
if (!nvram_ularray) {
kfree(vbuffer);
return -ENOMEM;
}

/* Upload image to verify downloaded contents. */
memset(nvram_ularray, 0xaa, varsize);
Expand Down
4 changes: 4 additions & 0 deletions drivers/net/wireless/rtlwifi/rtl8192se/fw.c
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,8 @@ static bool _rtl92s_firmware_downloadcode(struct ieee80211_hw *hw,
/* Allocate skb buffer to contain firmware */
/* info and tx descriptor info. */
skb = dev_alloc_skb(frag_length);
if (!skb)
return false;
skb_reserve(skb, extra_descoffset);
seg_ptr = (u8 *)skb_put(skb, (u32)(frag_length -
extra_descoffset));
Expand Down Expand Up @@ -573,6 +575,8 @@ static bool _rtl92s_firmware_set_h2c_cmd(struct ieee80211_hw *hw, u8 h2c_cmd,

len = _rtl92s_get_h2c_cmdlen(MAX_TRANSMIT_BUFFER_SIZE, 1, &cmd_len);
skb = dev_alloc_skb(len);
if (!skb)
return false;
cb_desc = (struct rtl_tcb_desc *)(skb->cb);
cb_desc->queue_index = TXCMD_QUEUE;
cb_desc->cmd_or_init = DESC_PACKET_TYPE_NORMAL;
Expand Down
4 changes: 2 additions & 2 deletions include/net/bluetooth/hci_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ struct hci_dev {
__u8 major_class;
__u8 minor_class;
__u8 features[8];
__u8 extfeatures[8];
__u8 host_features[8];
__u8 commands[64];
__u8 ssp_mode;
__u8 hci_ver;
Expand Down Expand Up @@ -676,7 +676,7 @@ void hci_conn_del_sysfs(struct hci_conn *conn);
#define lmp_le_capable(dev) ((dev)->features[4] & LMP_LE)

/* ----- Extended LMP capabilities ----- */
#define lmp_host_le_capable(dev) ((dev)->extfeatures[0] & LMP_HOST_LE)
#define lmp_host_le_capable(dev) ((dev)->host_features[0] & LMP_HOST_LE)

/* ----- HCI protocols ----- */
static inline int hci_proto_connect_ind(struct hci_dev *hdev, bdaddr_t *bdaddr,
Expand Down
8 changes: 4 additions & 4 deletions net/bluetooth/af_bluetooth.c
Original file line number Diff line number Diff line change
Expand Up @@ -156,17 +156,17 @@ static int bt_sock_create(struct net *net, struct socket *sock, int proto,

void bt_sock_link(struct bt_sock_list *l, struct sock *sk)
{
write_lock_bh(&l->lock);
write_lock(&l->lock);
sk_add_node(sk, &l->head);
write_unlock_bh(&l->lock);
write_unlock(&l->lock);
}
EXPORT_SYMBOL(bt_sock_link);

void bt_sock_unlink(struct bt_sock_list *l, struct sock *sk)
{
write_lock_bh(&l->lock);
write_lock(&l->lock);
sk_del_node_init(sk);
write_unlock_bh(&l->lock);
write_unlock(&l->lock);
}
EXPORT_SYMBOL(bt_sock_unlink);

Expand Down
22 changes: 13 additions & 9 deletions net/bluetooth/hci_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -711,7 +711,14 @@ static void hci_cc_read_local_ext_features(struct hci_dev *hdev,
if (rp->status)
return;

memcpy(hdev->extfeatures, rp->features, 8);
switch (rp->page) {
case 0:
memcpy(hdev->features, rp->features, 8);
break;
case 1:
memcpy(hdev->host_features, rp->features, 8);
break;
}

hci_req_complete(hdev, HCI_OP_READ_LOCAL_EXT_FEATURES, rp->status);
}
Expand Down Expand Up @@ -1047,9 +1054,7 @@ static void hci_cc_le_set_scan_enable(struct hci_dev *hdev,
case LE_SCANNING_DISABLED:
clear_bit(HCI_LE_SCAN, &hdev->dev_flags);

cancel_delayed_work_sync(&hdev->adv_work);
queue_delayed_work(hdev->workqueue, &hdev->adv_work,
jiffies + ADV_CLEAR_TIMEOUT);
schedule_delayed_work(&hdev->adv_work, ADV_CLEAR_TIMEOUT);
break;

default:
Expand Down Expand Up @@ -2266,20 +2271,19 @@ static inline void hci_num_comp_pkts_evt(struct hci_dev *hdev, struct sk_buff *s
struct hci_ev_num_comp_pkts *ev = (void *) skb->data;
int i;

skb_pull(skb, sizeof(*ev));

BT_DBG("%s num_hndl %d", hdev->name, ev->num_hndl);

if (hdev->flow_ctl_mode != HCI_FLOW_CTL_MODE_PACKET_BASED) {
BT_ERR("Wrong event for mode %d", hdev->flow_ctl_mode);
return;
}

if (skb->len < ev->num_hndl * 4) {
if (skb->len < sizeof(*ev) || skb->len < sizeof(*ev) +
ev->num_hndl * sizeof(struct hci_comp_pkts_info)) {
BT_DBG("%s bad parameters", hdev->name);
return;
}

BT_DBG("%s num_hndl %d", hdev->name, ev->num_hndl);

for (i = 0; i < ev->num_hndl; i++) {
struct hci_comp_pkts_info *info = &ev->handles[i];
struct hci_conn *conn;
Expand Down
2 changes: 0 additions & 2 deletions net/bluetooth/hci_sock.c
Original file line number Diff line number Diff line change
Expand Up @@ -767,7 +767,6 @@ static int hci_sock_dev_event(struct notifier_block *this, unsigned long event,
/* Detach sockets from device */
read_lock(&hci_sk_list.lock);
sk_for_each(sk, node, &hci_sk_list.head) {
local_bh_disable();
bh_lock_sock_nested(sk);
if (hci_pi(sk)->hdev == hdev) {
hci_pi(sk)->hdev = NULL;
Expand All @@ -778,7 +777,6 @@ static int hci_sock_dev_event(struct notifier_block *this, unsigned long event,
hci_dev_put(hdev);
}
bh_unlock_sock(sk);
local_bh_enable();
}
read_unlock(&hci_sk_list.lock);
}
Expand Down
26 changes: 13 additions & 13 deletions net/bluetooth/l2cap_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ int l2cap_add_psm(struct l2cap_chan *chan, bdaddr_t *src, __le16 psm)
{
int err;

write_lock_bh(&chan_list_lock);
write_lock(&chan_list_lock);

if (psm && __l2cap_global_chan_by_addr(psm, src)) {
err = -EADDRINUSE;
Expand All @@ -190,17 +190,17 @@ int l2cap_add_psm(struct l2cap_chan *chan, bdaddr_t *src, __le16 psm)
}

done:
write_unlock_bh(&chan_list_lock);
write_unlock(&chan_list_lock);
return err;
}

int l2cap_add_scid(struct l2cap_chan *chan, __u16 scid)
{
write_lock_bh(&chan_list_lock);
write_lock(&chan_list_lock);

chan->scid = scid;

write_unlock_bh(&chan_list_lock);
write_unlock(&chan_list_lock);

return 0;
}
Expand Down Expand Up @@ -289,9 +289,9 @@ struct l2cap_chan *l2cap_chan_create(struct sock *sk)

chan->sk = sk;

write_lock_bh(&chan_list_lock);
write_lock(&chan_list_lock);
list_add(&chan->global_l, &chan_list);
write_unlock_bh(&chan_list_lock);
write_unlock(&chan_list_lock);

INIT_DELAYED_WORK(&chan->chan_timer, l2cap_chan_timeout);

Expand All @@ -306,9 +306,9 @@ struct l2cap_chan *l2cap_chan_create(struct sock *sk)

void l2cap_chan_destroy(struct l2cap_chan *chan)
{
write_lock_bh(&chan_list_lock);
write_lock(&chan_list_lock);
list_del(&chan->global_l);
write_unlock_bh(&chan_list_lock);
write_unlock(&chan_list_lock);

l2cap_chan_put(chan);
}
Expand Down Expand Up @@ -543,14 +543,14 @@ static u8 l2cap_get_ident(struct l2cap_conn *conn)
* 200 - 254 are used by utilities like l2ping, etc.
*/

spin_lock_bh(&conn->lock);
spin_lock(&conn->lock);

if (++conn->tx_ident > 128)
conn->tx_ident = 1;

id = conn->tx_ident;

spin_unlock_bh(&conn->lock);
spin_unlock(&conn->lock);

return id;
}
Expand Down Expand Up @@ -1190,7 +1190,7 @@ inline int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, bdad
}

/* Set destination address and psm */
bacpy(&bt_sk(sk)->dst, src);
bacpy(&bt_sk(sk)->dst, dst);
chan->psm = psm;
chan->dcid = cid;

Expand Down Expand Up @@ -4702,7 +4702,7 @@ static int l2cap_debugfs_show(struct seq_file *f, void *p)
{
struct l2cap_chan *c;

read_lock_bh(&chan_list_lock);
read_lock(&chan_list_lock);

list_for_each_entry(c, &chan_list, global_l) {
struct sock *sk = c->sk;
Expand All @@ -4715,7 +4715,7 @@ static int l2cap_debugfs_show(struct seq_file *f, void *p)
c->sec_level, c->mode);
}

read_unlock_bh(&chan_list_lock);
read_unlock(&chan_list_lock);

return 0;
}
Expand Down
2 changes: 2 additions & 0 deletions net/bluetooth/l2cap_sock.c
Original file line number Diff line number Diff line change
Expand Up @@ -587,6 +587,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, ch
if (smp_conn_security(conn, sec.level))
break;
sk->sk_state = BT_CONFIG;
chan->state = BT_CONFIG;

/* or for ACL link, under defer_setup time */
} else if (sk->sk_state == BT_CONNECT2 &&
Expand Down Expand Up @@ -731,6 +732,7 @@ static int l2cap_sock_recvmsg(struct kiocb *iocb, struct socket *sock, struct ms

if (sk->sk_state == BT_CONNECT2 && bt_sk(sk)->defer_setup) {
sk->sk_state = BT_CONFIG;
pi->chan->state = BT_CONFIG;

__l2cap_connect_rsp_defer(pi->chan);
release_sock(sk);
Expand Down
4 changes: 2 additions & 2 deletions net/bluetooth/mgmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ static u32 get_current_settings(struct hci_dev *hdev)
if (!(hdev->features[4] & LMP_NO_BREDR))
settings |= MGMT_SETTING_BREDR;

if (hdev->extfeatures[0] & LMP_HOST_LE)
if (hdev->host_features[0] & LMP_HOST_LE)
settings |= MGMT_SETTING_LE;

if (test_bit(HCI_AUTH, &hdev->flags))
Expand Down Expand Up @@ -2756,7 +2756,7 @@ int mgmt_stop_discovery_failed(struct hci_dev *hdev, u8 status)
if (!cmd)
return -ENOENT;

err = cmd_status(cmd->sk, hdev->id, cmd->opcode, status);
err = cmd_status(cmd->sk, hdev->id, cmd->opcode, mgmt_status(status));
mgmt_pending_remove(cmd);

return err;
Expand Down
12 changes: 6 additions & 6 deletions net/bluetooth/rfcomm/sock.c
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ static int rfcomm_sock_bind(struct socket *sock, struct sockaddr *addr, int addr
goto done;
}

write_lock_bh(&rfcomm_sk_list.lock);
write_lock(&rfcomm_sk_list.lock);

if (sa->rc_channel && __rfcomm_get_sock_by_addr(sa->rc_channel, &sa->rc_bdaddr)) {
err = -EADDRINUSE;
Expand All @@ -381,7 +381,7 @@ static int rfcomm_sock_bind(struct socket *sock, struct sockaddr *addr, int addr
sk->sk_state = BT_BOUND;
}

write_unlock_bh(&rfcomm_sk_list.lock);
write_unlock(&rfcomm_sk_list.lock);

done:
release_sock(sk);
Expand Down Expand Up @@ -455,7 +455,7 @@ static int rfcomm_sock_listen(struct socket *sock, int backlog)

err = -EINVAL;

write_lock_bh(&rfcomm_sk_list.lock);
write_lock(&rfcomm_sk_list.lock);

for (channel = 1; channel < 31; channel++)
if (!__rfcomm_get_sock_by_addr(channel, src)) {
Expand All @@ -464,7 +464,7 @@ static int rfcomm_sock_listen(struct socket *sock, int backlog)
break;
}

write_unlock_bh(&rfcomm_sk_list.lock);
write_unlock(&rfcomm_sk_list.lock);

if (err < 0)
goto done;
Expand Down Expand Up @@ -982,7 +982,7 @@ static int rfcomm_sock_debugfs_show(struct seq_file *f, void *p)
struct sock *sk;
struct hlist_node *node;

read_lock_bh(&rfcomm_sk_list.lock);
read_lock(&rfcomm_sk_list.lock);

sk_for_each(sk, node, &rfcomm_sk_list.head) {
seq_printf(f, "%s %s %d %d\n",
Expand All @@ -991,7 +991,7 @@ static int rfcomm_sock_debugfs_show(struct seq_file *f, void *p)
sk->sk_state, rfcomm_pi(sk)->channel);
}

read_unlock_bh(&rfcomm_sk_list.lock);
read_unlock(&rfcomm_sk_list.lock);

return 0;
}
Expand Down
Loading

0 comments on commit 9ee6045

Please sign in to comment.