]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/wireless/hostap/hostap_hw.c
Merge branch 'linus' into core/rcu
[linux-2.6-omap-h63xx.git] / drivers / net / wireless / hostap / hostap_hw.c
index 936f52e3d95c4040a18515e2f949027a95442638..3153fe9d7ce09dc32bf8764bc6437569c270ba14 100644 (file)
@@ -3101,7 +3101,22 @@ static void prism2_clear_set_tim_queue(local_info_t *local)
  * This is a natural nesting, which needs a split lock type.
  */
 static struct lock_class_key hostap_netdev_xmit_lock_key;
+static struct lock_class_key hostap_netdev_addr_lock_key;
 
+static void prism2_set_lockdep_class_one(struct net_device *dev,
+                                        struct netdev_queue *txq,
+                                        void *_unused)
+{
+       lockdep_set_class(&txq->_xmit_lock,
+                         &hostap_netdev_xmit_lock_key);
+}
+
+static void prism2_set_lockdep_class(struct net_device *dev)
+{
+       lockdep_set_class(&dev->addr_list_lock,
+                         &hostap_netdev_addr_lock_key);
+       netdev_for_each_tx_queue(dev, prism2_set_lockdep_class_one, NULL);
+}
 
 static struct net_device *
 prism2_init_local_data(struct prism2_helper_functions *funcs, int card_idx,
@@ -3204,6 +3219,7 @@ prism2_init_local_data(struct prism2_helper_functions *funcs, int card_idx,
        local->auth_algs = PRISM2_AUTH_OPEN | PRISM2_AUTH_SHARED_KEY;
        local->sram_type = -1;
        local->scan_channel_mask = 0xffff;
+       local->monitor_type = PRISM2_MONITOR_RADIOTAP;
 
        /* Initialize task queue structures */
        INIT_WORK(&local->reset_queue, handle_reset_queue);
@@ -3267,7 +3283,7 @@ while (0)
        if (ret >= 0)
                ret = register_netdevice(dev);
 
-       lockdep_set_class(&dev->_xmit_lock, &hostap_netdev_xmit_lock_key);
+       prism2_set_lockdep_class(dev);
        rtnl_unlock();
        if (ret < 0) {
                printk(KERN_WARNING "%s: register netdevice failed!\n",
@@ -3416,7 +3432,7 @@ static void prism2_free_local_data(struct net_device *dev)
 }
 
 
-#ifndef PRISM2_PLX
+#if (defined(PRISM2_PCI) && defined(CONFIG_PM)) || defined(PRISM2_PCCARD)
 static void prism2_suspend(struct net_device *dev)
 {
        struct hostap_interface *iface;
@@ -3435,7 +3451,7 @@ static void prism2_suspend(struct net_device *dev)
        /* Disable hardware and firmware */
        prism2_hw_shutdown(dev, 0);
 }
-#endif /* PRISM2_PLX */
+#endif /* (PRISM2_PCI && CONFIG_PM) || PRISM2_PCCARD */
 
 
 /* These might at some point be compiled separately and used as separate