From 22db8265eb6e7a69daa6faf300ab03bd92e71bdb Mon Sep 17 00:00:00 2001 From: Arjan van de Ven Date: Mon, 3 Jul 2006 00:25:36 -0700 Subject: [PATCH] --- yaml --- r: 31847 b: refs/heads/master c: cd11acdd8542cb0c0fa7cd86590b1ba79d7e263a h: refs/heads/master i: 31845: 1693da01752f63d51c53b536a4f262413df6a770 31843: bc2e637c242cf3ded12575aa305e8de3cf28152e 31839: ae65d876b7e7b211ee13753c3801268ca1b99be0 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/hostap/hostap_hw.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index d2fe10494a7e..f92ff5dc9fe7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a5b5bb9a053a973c23b867738c074acb3e80c0a0 +refs/heads/master: cd11acdd8542cb0c0fa7cd86590b1ba79d7e263a diff --git a/trunk/drivers/net/wireless/hostap/hostap_hw.c b/trunk/drivers/net/wireless/hostap/hostap_hw.c index b764cfda6e84..dafaa5ff5aa6 100644 --- a/trunk/drivers/net/wireless/hostap/hostap_hw.c +++ b/trunk/drivers/net/wireless/hostap/hostap_hw.c @@ -3095,6 +3095,14 @@ static void prism2_clear_set_tim_queue(local_info_t *local) } +/* + * HostAP uses two layers of net devices, where the inner + * layer gets called all the time from the outer layer. + * This is a natural nesting, which needs a split lock type. + */ +static struct lock_class_key hostap_netdev_xmit_lock_key; + + static struct net_device * prism2_init_local_data(struct prism2_helper_functions *funcs, int card_idx, struct device *sdev) @@ -3259,6 +3267,8 @@ while (0) SET_NETDEV_DEV(dev, sdev); if (ret >= 0) ret = register_netdevice(dev); + + lockdep_set_class(&dev->_xmit_lock, &hostap_netdev_xmit_lock_key); rtnl_unlock(); if (ret < 0) { printk(KERN_WARNING "%s: register netdevice failed!\n",