Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 237027
b: refs/heads/master
c: a6fb071
h: refs/heads/master
i:
  237025: 53171de
  237023: b49f174
v: v3
  • Loading branch information
Jussi Kivilinna authored and John W. Linville committed Feb 4, 2011
1 parent 2663747 commit 86e7e35
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 34 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 88a1159a376995e1f9ca6e9b1d4f2e4c44d79d13
refs/heads/master: a6fb071bbf420841481e1c1bcdb65b3ffb33fc8a
38 changes: 7 additions & 31 deletions trunk/drivers/net/wireless/zd1211rw/zd_mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -927,31 +927,6 @@ static void zd_process_intr(struct work_struct *work)
}


static void set_multicast_hash_handler(struct work_struct *work)
{
struct zd_mac *mac =
container_of(work, struct zd_mac, set_multicast_hash_work);
struct zd_mc_hash hash;

spin_lock_irq(&mac->lock);
hash = mac->multicast_hash;
spin_unlock_irq(&mac->lock);

zd_chip_set_multicast_hash(&mac->chip, &hash);
}

static void set_rx_filter_handler(struct work_struct *work)
{
struct zd_mac *mac =
container_of(work, struct zd_mac, set_rx_filter_work);
int r;

dev_dbg_f(zd_mac_dev(mac), "\n");
r = set_rx_filter(mac);
if (r)
dev_err(zd_mac_dev(mac), "set_rx_filter_handler error %d\n", r);
}

static u64 zd_op_prepare_multicast(struct ieee80211_hw *hw,
struct netdev_hw_addr_list *mc_list)
{
Expand Down Expand Up @@ -983,6 +958,7 @@ static void zd_op_configure_filter(struct ieee80211_hw *hw,
};
struct zd_mac *mac = zd_hw_mac(hw);
unsigned long flags;
int r;

/* Only deal with supported flags */
changed_flags &= SUPPORTED_FIF_FLAGS;
Expand All @@ -1004,11 +980,13 @@ static void zd_op_configure_filter(struct ieee80211_hw *hw,
mac->multicast_hash = hash;
spin_unlock_irqrestore(&mac->lock, flags);

/* XXX: these can be called here now, can sleep now! */
queue_work(zd_workqueue, &mac->set_multicast_hash_work);
zd_chip_set_multicast_hash(&mac->chip, &hash);

if (changed_flags & FIF_CONTROL)
queue_work(zd_workqueue, &mac->set_rx_filter_work);
if (changed_flags & FIF_CONTROL) {
r = set_rx_filter(mac);
if (r)
dev_err(zd_mac_dev(mac), "set_rx_filter error %d\n", r);
}

/* no handling required for FIF_OTHER_BSS as we don't currently
* do BSSID filtering */
Expand Down Expand Up @@ -1164,9 +1142,7 @@ struct ieee80211_hw *zd_mac_alloc_hw(struct usb_interface *intf)

zd_chip_init(&mac->chip, hw, intf);
housekeeping_init(mac);
INIT_WORK(&mac->set_multicast_hash_work, set_multicast_hash_handler);
INIT_WORK(&mac->set_rts_cts_work, set_rts_cts_work);
INIT_WORK(&mac->set_rx_filter_work, set_rx_filter_handler);
INIT_WORK(&mac->process_intr, zd_process_intr);

SET_IEEE80211_DEV(hw, &intf->dev);
Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/net/wireless/zd1211rw/zd_mac.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,7 @@ struct zd_mac {
spinlock_t intr_lock;
struct ieee80211_hw *hw;
struct housekeeping housekeeping;
struct work_struct set_multicast_hash_work;
struct work_struct set_rts_cts_work;
struct work_struct set_rx_filter_work;
struct work_struct process_intr;
struct zd_mc_hash multicast_hash;
u8 intr_buffer[USB_MAX_EP_INT_BUFFER];
Expand Down

0 comments on commit 86e7e35

Please sign in to comment.