This is a note to let you know that I've just added the patch titled

    net: Allow for more then a single subclass for

to the 3.14-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-allow-for-more-then-a-single-subclass-for.patch
and it can be found in the queue-3.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From foo@baz Wed May 28 21:03:54 PDT 2014
From: Vlad Yasevich <[email protected]>
Date: Fri, 16 May 2014 17:04:54 -0400
Subject: net: Allow for more then a single subclass for
 netif_addr_lock

From: Vlad Yasevich <[email protected]>

[ Upstream commit 25175ba5c9bff9aaf0229df34bb5d54c81633ec3 ]

Currently netif_addr_lock_nested assumes that there can be only
a single nesting level between 2 devices.  However, if we
have multiple devices of the same type stacked, this fails.
For example:
 eth0 <-- vlan0.10 <-- vlan0.10.20

A more complicated configuration may stack more then one type of
device in different order.
Ex:
  eth0 <-- vlan0.10 <-- macvlan0 <-- vlan1.10.20 <-- macvlan1

This patch adds an ndo_* function that allows each stackable
device to report its nesting level.  If the device doesn't
provide this function default subclass of 1 is used.

Signed-off-by: Vlad Yasevich <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 include/linux/netdevice.h |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1145,6 +1145,7 @@ struct net_device_ops {
        netdev_tx_t             (*ndo_dfwd_start_xmit) (struct sk_buff *skb,
                                                        struct net_device *dev,
                                                        void *priv);
+       int                     (*ndo_get_lock_subclass)(struct net_device 
*dev);
 };
 
 /*
@@ -2861,7 +2862,12 @@ static inline void netif_addr_lock(struc
 
 static inline void netif_addr_lock_nested(struct net_device *dev)
 {
-       spin_lock_nested(&dev->addr_list_lock, SINGLE_DEPTH_NESTING);
+       int subclass = SINGLE_DEPTH_NESTING;
+
+       if (dev->netdev_ops->ndo_get_lock_subclass)
+               subclass = dev->netdev_ops->ndo_get_lock_subclass(dev);
+
+       spin_lock_nested(&dev->addr_list_lock, subclass);
 }
 
 static inline void netif_addr_lock_bh(struct net_device *dev)


Patches currently in stable-queue which might be from [email protected] are

queue-3.14/net-start-with-correct-mac_len-in-skb_network_protocol.patch
queue-3.14/net-find-the-nesting-level-of-a-given-device-by-type.patch
queue-3.14/mactap-fix-checksum-errors-for-non-gso-packets-in.patch
queue-3.14/net-allow-for-more-then-a-single-subclass-for.patch
queue-3.14/macvlan-fix-lockdep-warnings-with-stacked-macvlan.patch
queue-3.14/revert-macvlan-fix-checksums-error-when-we-are-in.patch
queue-3.14/net-sctp-cache-auth_enable-per-endpoint.patch
queue-3.14/net-sctp-test-if-association-is-dead-in-sctp_wake_up_waiters.patch
queue-3.14/net-sctp-wake-up-all-assocs-if-sndbuf-policy-is-per-socket.patch
queue-3.14/vlan-fix-lockdep-warning-with-stacked-vlan-devices.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to