public inbox for b.a.t.m.a.n@lists.open-mesh.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] [RFC] batman-adv: Set special lockdep classes to avoid lockdep warning
@ 2012-08-19  7:29 Sven Eckelmann
  2012-08-19  7:57 ` Simon Wunderlich
  2012-08-19 23:22 ` [B.A.T.M.A.N.] [PATCH] " Sven Eckelmann
  0 siblings, 2 replies; 6+ messages in thread
From: Sven Eckelmann @ 2012-08-19  7:29 UTC (permalink / raw)
  To: b.a.t.m.a.n

[text will be added after I am awake... maybe]

[Should be fix the problem found in bug 162... formerly known as 161. code
stolen from macvlan... this is just a reimplementation of a solution proposed
by Simon Wunderlich]

Reported-by: Linus Lüssing <linus.luessing@web.de>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
---
 soft-interface.c |   29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/soft-interface.c b/soft-interface.c
index 1aee7db..588c6f6 100644
--- a/soft-interface.c
+++ b/soft-interface.c
@@ -344,7 +344,36 @@ out:
 	return;
 }
 
+/*
+ * batman-adv network devices have devices nesting below it and are a special
+ * "super class" of normal network devices; split their locks off into a
+ * separate class since they always nest.
+ */
+static struct lock_class_key batadv_netdev_xmit_lock_key;
+static struct lock_class_key batadv_netdev_addr_lock_key;
+
+static void batadv_set_lockdep_class_one(struct net_device *dev,
+					 struct netdev_queue *txq,
+					 void *_unused)
+{
+	lockdep_set_class(&txq->_xmit_lock, &batadv_netdev_xmit_lock_key);
+}
+
+static void batadv_set_lockdep_class(struct net_device *dev)
+{
+	lockdep_set_class(&dev->addr_list_lock, &batadv_netdev_addr_lock_key);
+	netdev_for_each_tx_queue(dev, batadv_set_lockdep_class_one, NULL);
+}
+
+static int batadv_softif_init(struct net_device *dev)
+{
+	batadv_set_lockdep_class(dev);
+
+	return 0;
+}
+
 static const struct net_device_ops batadv_netdev_ops = {
+	.ndo_init = batadv_softif_init,
 	.ndo_open = batadv_interface_open,
 	.ndo_stop = batadv_interface_release,
 	.ndo_get_stats = batadv_interface_stats,
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-08-24 21:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-19  7:29 [B.A.T.M.A.N.] [RFC] batman-adv: Set special lockdep classes to avoid lockdep warning Sven Eckelmann
2012-08-19  7:57 ` Simon Wunderlich
2012-08-19 23:22 ` [B.A.T.M.A.N.] [PATCH] " Sven Eckelmann
2012-08-20  7:00   ` Sven Eckelmann
2012-08-20  7:03   ` [B.A.T.M.A.N.] [PATCHv2] " Sven Eckelmann
2012-08-24 21:42     ` Marek Lindner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox