This feature/cleanup patchset includes the following patches:
- bump version strings, by Simon Wunderlich (we forgot to include this patch previously ...) - fix multicast tt/tvlv worker locking, by Linus Lüssing -----BEGIN PGP SIGNATURE----- iQJKBAABCgA0FiEE1ilQI7G+y+fdhnrfoSvjmEKSnqEFAlzUKp4WHHN3QHNpbW9u d3VuZGVybGljaC5kZQAKCRChK+OYQpKeoX1kD/oCq7+iLO1oaewGrD/gnrGJu2Wk FDlVRRBvUOwdJM2zo7o5xLCU1+Pohv0H5uBIXUw4vhcXoqhkqyysLz9lotPrxRG1 KD1Jl8FwOPLkSiLPxj7QurfBU8G0V/A7fYkAt+RTTkk9iSniL8lCc6hE6hj6KimP GaqnkYJyudhOkimYyLb4exUfq4Ls7J95x3LhN+YzXk8PgN3qgrD/dVuSu7dmuyse bfTP1dyWBtQiByEZqNCqrWnj2nBTvCQW9UwuOCg1W1z5coh5GWXTvL61ePu35/Vn 0LxUNNHbbkjVwbVz9T3ExMTHlrV2nEOaZnw4kiuVAbqDNDqG5XkqD1iG2H5wVh74 BPTtk2hd2b8PrvBsyzj2Q+RaTEk0o3jIbP6A/jM+9GpVukT1M0SohcYEFISUeh1f PXMBpAc7qVrP8+VefCkXGFWbKyRg60k2cJQipS/Q9Aef7xOv8DyDbOrnd/a5xPUS zXFRAsKx16gA8SUxNgYz/67jwamVhplHSpgKG2KFtEh0CxJJBY7Z9hlEPM3uZLmT QHUbTS+FTlBNS/Go48pnGd5QTEGNeP5gQkiovtLmIRULRTfbwbI1/4VQCp9/XahT Vj+4RhhULC7i4joqEeKv+GyO36tydsU93yBt66Xo0JI8W9SLfga5zREdrmlGYRZr ECBszSxPpQ8zp3A2Hg== =Dq5n -----END PGP SIGNATURE----- Merge tag 'batadv-net-for-davem-20190509' of git://git.open-mesh.org/linux-merge Simon Wunderlich says: ==================== This feature/cleanup patchset includes the following patches: - bump version strings, by Simon Wunderlich (we forgot to include this patch previously ...) - fix multicast tt/tvlv worker locking, by Linus Lüssing ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
d7e163ced4
|
@ -168,6 +168,7 @@ int batadv_mesh_init(struct net_device *soft_iface)
|
||||||
spin_lock_init(&bat_priv->tt.commit_lock);
|
spin_lock_init(&bat_priv->tt.commit_lock);
|
||||||
spin_lock_init(&bat_priv->gw.list_lock);
|
spin_lock_init(&bat_priv->gw.list_lock);
|
||||||
#ifdef CONFIG_BATMAN_ADV_MCAST
|
#ifdef CONFIG_BATMAN_ADV_MCAST
|
||||||
|
spin_lock_init(&bat_priv->mcast.mla_lock);
|
||||||
spin_lock_init(&bat_priv->mcast.want_lists_lock);
|
spin_lock_init(&bat_priv->mcast.want_lists_lock);
|
||||||
#endif
|
#endif
|
||||||
spin_lock_init(&bat_priv->tvlv.container_list_lock);
|
spin_lock_init(&bat_priv->tvlv.container_list_lock);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#define BATADV_DRIVER_DEVICE "batman-adv"
|
#define BATADV_DRIVER_DEVICE "batman-adv"
|
||||||
|
|
||||||
#ifndef BATADV_SOURCE_VERSION
|
#ifndef BATADV_SOURCE_VERSION
|
||||||
#define BATADV_SOURCE_VERSION "2019.1"
|
#define BATADV_SOURCE_VERSION "2019.2"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* B.A.T.M.A.N. parameters */
|
/* B.A.T.M.A.N. parameters */
|
||||||
|
|
|
@ -314,8 +314,6 @@ static void batadv_mcast_mla_list_free(struct hlist_head *mcast_list)
|
||||||
* translation table except the ones listed in the given mcast_list.
|
* translation table except the ones listed in the given mcast_list.
|
||||||
*
|
*
|
||||||
* If mcast_list is NULL then all are retracted.
|
* If mcast_list is NULL then all are retracted.
|
||||||
*
|
|
||||||
* Do not call outside of the mcast worker! (or cancel mcast worker first)
|
|
||||||
*/
|
*/
|
||||||
static void batadv_mcast_mla_tt_retract(struct batadv_priv *bat_priv,
|
static void batadv_mcast_mla_tt_retract(struct batadv_priv *bat_priv,
|
||||||
struct hlist_head *mcast_list)
|
struct hlist_head *mcast_list)
|
||||||
|
@ -323,8 +321,6 @@ static void batadv_mcast_mla_tt_retract(struct batadv_priv *bat_priv,
|
||||||
struct batadv_hw_addr *mcast_entry;
|
struct batadv_hw_addr *mcast_entry;
|
||||||
struct hlist_node *tmp;
|
struct hlist_node *tmp;
|
||||||
|
|
||||||
WARN_ON(delayed_work_pending(&bat_priv->mcast.work));
|
|
||||||
|
|
||||||
hlist_for_each_entry_safe(mcast_entry, tmp, &bat_priv->mcast.mla_list,
|
hlist_for_each_entry_safe(mcast_entry, tmp, &bat_priv->mcast.mla_list,
|
||||||
list) {
|
list) {
|
||||||
if (mcast_list &&
|
if (mcast_list &&
|
||||||
|
@ -348,8 +344,6 @@ static void batadv_mcast_mla_tt_retract(struct batadv_priv *bat_priv,
|
||||||
*
|
*
|
||||||
* Adds multicast listener announcements from the given mcast_list to the
|
* Adds multicast listener announcements from the given mcast_list to the
|
||||||
* translation table if they have not been added yet.
|
* translation table if they have not been added yet.
|
||||||
*
|
|
||||||
* Do not call outside of the mcast worker! (or cancel mcast worker first)
|
|
||||||
*/
|
*/
|
||||||
static void batadv_mcast_mla_tt_add(struct batadv_priv *bat_priv,
|
static void batadv_mcast_mla_tt_add(struct batadv_priv *bat_priv,
|
||||||
struct hlist_head *mcast_list)
|
struct hlist_head *mcast_list)
|
||||||
|
@ -357,8 +351,6 @@ static void batadv_mcast_mla_tt_add(struct batadv_priv *bat_priv,
|
||||||
struct batadv_hw_addr *mcast_entry;
|
struct batadv_hw_addr *mcast_entry;
|
||||||
struct hlist_node *tmp;
|
struct hlist_node *tmp;
|
||||||
|
|
||||||
WARN_ON(delayed_work_pending(&bat_priv->mcast.work));
|
|
||||||
|
|
||||||
if (!mcast_list)
|
if (!mcast_list)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -647,7 +639,10 @@ static void batadv_mcast_mla_update(struct work_struct *work)
|
||||||
priv_mcast = container_of(delayed_work, struct batadv_priv_mcast, work);
|
priv_mcast = container_of(delayed_work, struct batadv_priv_mcast, work);
|
||||||
bat_priv = container_of(priv_mcast, struct batadv_priv, mcast);
|
bat_priv = container_of(priv_mcast, struct batadv_priv, mcast);
|
||||||
|
|
||||||
|
spin_lock(&bat_priv->mcast.mla_lock);
|
||||||
__batadv_mcast_mla_update(bat_priv);
|
__batadv_mcast_mla_update(bat_priv);
|
||||||
|
spin_unlock(&bat_priv->mcast.mla_lock);
|
||||||
|
|
||||||
batadv_mcast_start_timer(bat_priv);
|
batadv_mcast_start_timer(bat_priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1211,6 +1211,11 @@ struct batadv_priv_mcast {
|
||||||
/** @bridged: whether the soft interface has a bridge on top */
|
/** @bridged: whether the soft interface has a bridge on top */
|
||||||
unsigned char bridged:1;
|
unsigned char bridged:1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @mla_lock: a lock protecting mla_list and mla_flags
|
||||||
|
*/
|
||||||
|
spinlock_t mla_lock;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @num_want_all_unsnoopables: number of nodes wanting unsnoopable IP
|
* @num_want_all_unsnoopables: number of nodes wanting unsnoopable IP
|
||||||
* traffic
|
* traffic
|
||||||
|
|
Loading…
Reference in New Issue