mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
This cleanup patchset includes the following patches:
- Fix revert dynamic lockdep key changes for batman-adv, by Sven Eckelmann - use rcu_replace_pointer() where appropriate, by Antonio Quartulli - Revert "disable ethtool link speed detection when auto negotiation off", by Sven Eckelmann -----BEGIN PGP SIGNATURE----- iQJKBAABCgA0FiEE1ilQI7G+y+fdhnrfoSvjmEKSnqEFAl7M5/oWHHN3QHNpbW9u d3VuZGVybGljaC5kZQAKCRChK+OYQpKeoRbjD/9+7kbUOYkMEz1x0izlXdXLSlMK EVU0iaJAecRxwN1+o7l1XstGIn5+Y77WsjaB9KKaOHOqWddZN8bQ1/b1lpp4s47n GR650eZcuPjXgSPVmiq86iztRNspOAokuCzFUkVh+AVeLMe/yonSxMpA8QFoYZMD KLxqxlG1xlPqvI+AULLaXSKWlt2tPNWBdpRwxL7TjupmblBMMwVxvi4G7J2Hxest PV//Sakm250kZnQXtoTT3vftDwBwoTFNOZGk9j/2gPrkSWx6l1CAOxp0KKP+sHkU ZlJtqabv0YCFPh17moOCB1Fy/RAvwAgwps1wb3+sK+YSsKg6R5VyAE9eajQx9+nL ypxLSFMs4JWSE+7qw9g6TnoQa1QsXIKmYNqyy5CwGfLg4F42rzA2obSYVA/I93ny KG00tqJM5FOaybXH59fKh5pti+PevWtPc1L5N0QCM6RX99dw79QSThx9wI7OeKfy xLTClx6y0Y2dZC80+zJUQgxDCFnA8+cvNznXNL/TYmf3kqrgUeC1G0prAdBuDfsd 1AKwnVMVsVN4qUmxIrFFQHCtxu39GU2tU5RZy6WIAkpvN9zIYDvlaDOTnxZgfPpw 59FmX/+0Gj9mh9FUWkJkyuZlkqFaztIkRVb10W1kXfALAIgp30pfSYGsDi0+0Y5J g4/cmMGRYNCN5RcAIg== =vDHL -----END PGP SIGNATURE----- Merge tag 'batadv-next-for-davem-20200526' of git://git.open-mesh.org/linux-merge Simon Wunderlich says: ==================== This cleanup patchset includes the following patches: - Fix revert dynamic lockdep key changes for batman-adv, by Sven Eckelmann - use rcu_replace_pointer() where appropriate, by Antonio Quartulli - Revert "disable ethtool link speed detection when auto negotiation off", by Sven Eckelmann ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
fb8ddaa915
@ -127,20 +127,7 @@ static u32 batadv_v_elp_get_throughput(struct batadv_hardif_neigh_node *neigh)
|
||||
rtnl_lock();
|
||||
ret = __ethtool_get_link_ksettings(hard_iface->net_dev, &link_settings);
|
||||
rtnl_unlock();
|
||||
|
||||
/* Virtual interface drivers such as tun / tap interfaces, VLAN, etc
|
||||
* tend to initialize the interface throughput with some value for the
|
||||
* sake of having a throughput number to export via ethtool. This
|
||||
* exported throughput leaves batman-adv to conclude the interface
|
||||
* throughput is genuine (reflecting reality), thus no measurements
|
||||
* are necessary.
|
||||
*
|
||||
* Based on the observation that those interface types also tend to set
|
||||
* the link auto-negotiation to 'off', batman-adv shall check this
|
||||
* setting to differentiate between genuine link throughput information
|
||||
* and placeholders installed by virtual interfaces.
|
||||
*/
|
||||
if (ret == 0 && link_settings.base.autoneg == AUTONEG_ENABLE) {
|
||||
if (ret == 0) {
|
||||
/* link characteristics might change over time */
|
||||
if (link_settings.base.duplex == DUPLEX_FULL)
|
||||
hard_iface->bat_v.flags |= BATADV_FULL_DUPLEX;
|
||||
|
@ -146,8 +146,8 @@ static void batadv_gw_select(struct batadv_priv *bat_priv,
|
||||
if (new_gw_node)
|
||||
kref_get(&new_gw_node->refcount);
|
||||
|
||||
curr_gw_node = rcu_dereference_protected(bat_priv->gw.curr_gw, 1);
|
||||
rcu_assign_pointer(bat_priv->gw.curr_gw, new_gw_node);
|
||||
curr_gw_node = rcu_replace_pointer(bat_priv->gw.curr_gw, new_gw_node,
|
||||
true);
|
||||
|
||||
if (curr_gw_node)
|
||||
batadv_gw_node_put(curr_gw_node);
|
||||
|
@ -473,8 +473,8 @@ static void batadv_primary_if_select(struct batadv_priv *bat_priv,
|
||||
if (new_hard_iface)
|
||||
kref_get(&new_hard_iface->refcount);
|
||||
|
||||
curr_hard_iface = rcu_dereference_protected(bat_priv->primary_if, 1);
|
||||
rcu_assign_pointer(bat_priv->primary_if, new_hard_iface);
|
||||
curr_hard_iface = rcu_replace_pointer(bat_priv->primary_if,
|
||||
new_hard_iface, 1);
|
||||
|
||||
if (!new_hard_iface)
|
||||
goto out;
|
||||
|
@ -71,13 +71,13 @@ static void _batadv_update_route(struct batadv_priv *bat_priv,
|
||||
* the code needs to ensure the curr_router variable contains a pointer
|
||||
* to the replaced best neighbor.
|
||||
*/
|
||||
curr_router = rcu_dereference_protected(orig_ifinfo->router, true);
|
||||
|
||||
/* increase refcount of new best neighbor */
|
||||
if (neigh_node)
|
||||
kref_get(&neigh_node->refcount);
|
||||
|
||||
rcu_assign_pointer(orig_ifinfo->router, neigh_node);
|
||||
curr_router = rcu_replace_pointer(orig_ifinfo->router, neigh_node,
|
||||
true);
|
||||
spin_unlock_bh(&orig_node->neigh_list_lock);
|
||||
batadv_orig_ifinfo_put(orig_ifinfo);
|
||||
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/kref.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/lockdep.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/percpu.h>
|
||||
|
Loading…
Reference in New Issue
Block a user