* [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05
@ 2019-11-05 9:35 Simon Wunderlich
2019-11-05 9:35 ` [PATCH 1/5] batman-adv: Start new development cycle Simon Wunderlich
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Simon Wunderlich @ 2019-11-05 9:35 UTC (permalink / raw)
To: davem; +Cc: netdev, b.a.t.m.a.n, Simon Wunderlich
Hi David,
here is a little cleanup pull request of batman-adv to go into net-next.
Please pull or let me know of any problem!
Thank you,
Simon
The following changes since commit 1204c70d9dcba31164f78ad5d8c88c42335d51f8:
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net (2019-11-01 17:48:11 -0700)
are available in the Git repository at:
git://git.open-mesh.org/linux-merge.git tags/batadv-next-for-davem-20191105
for you to fetch changes up to 5759af0682b3395e64cf615e062d6ecad01428dc:
batman-adv: Drop lockdep.h include for soft-interface.c (2019-11-03 08:30:58 +0100)
----------------------------------------------------------------
This feature/cleanup patchset includes the following patches:
- bump version strings, by Simon Wunderlich
- Simplify batadv_v_ogm_aggr_list_free using skb_queue_purge,
by Christophe Jaillet
- Replace aggr_list_lock with lock free skb handlers,
by Christophe Jaillet
- explicitly mark fallthrough cases, by Sven Eckelmann
- Drop lockdep.h include from soft-interface.c, by Sven Eckelmann
----------------------------------------------------------------
Christophe JAILLET (2):
batman-adv: Simplify 'batadv_v_ogm_aggr_list_free()'
batman-adv: Axe 'aggr_list_lock'
Simon Wunderlich (1):
batman-adv: Start new development cycle
Sven Eckelmann (2):
batman-adv: Use 'fallthrough' pseudo keyword
batman-adv: Drop lockdep.h include for soft-interface.c
net/batman-adv/bat_v.c | 1 -
net/batman-adv/bat_v_ogm.c | 34 +++++++++++++++-------------------
net/batman-adv/main.h | 2 +-
net/batman-adv/multicast.c | 2 +-
net/batman-adv/soft-interface.c | 5 ++---
net/batman-adv/types.h | 3 ---
6 files changed, 19 insertions(+), 28 deletions(-)
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/5] batman-adv: Start new development cycle
2019-11-05 9:35 [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05 Simon Wunderlich
@ 2019-11-05 9:35 ` Simon Wunderlich
2019-11-05 9:35 ` [PATCH 2/5] batman-adv: Simplify 'batadv_v_ogm_aggr_list_free()' Simon Wunderlich
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Simon Wunderlich @ 2019-11-05 9:35 UTC (permalink / raw)
To: davem; +Cc: netdev, b.a.t.m.a.n, Simon Wunderlich
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
---
net/batman-adv/main.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index 6967f2e4c3f4..c7b340ddd0e7 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -13,7 +13,7 @@
#define BATADV_DRIVER_DEVICE "batman-adv"
#ifndef BATADV_SOURCE_VERSION
-#define BATADV_SOURCE_VERSION "2019.4"
+#define BATADV_SOURCE_VERSION "2019.5"
#endif
/* B.A.T.M.A.N. parameters */
--
2.20.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/5] batman-adv: Simplify 'batadv_v_ogm_aggr_list_free()'
2019-11-05 9:35 [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05 Simon Wunderlich
2019-11-05 9:35 ` [PATCH 1/5] batman-adv: Start new development cycle Simon Wunderlich
@ 2019-11-05 9:35 ` Simon Wunderlich
2019-11-05 9:35 ` [PATCH 3/5] batman-adv: Axe 'aggr_list_lock' Simon Wunderlich
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Simon Wunderlich @ 2019-11-05 9:35 UTC (permalink / raw)
To: davem
Cc: netdev, b.a.t.m.a.n, Christophe JAILLET, Sven Eckelmann,
Simon Wunderlich
From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Use 'skb_queue_purge()' instead of re-implementing it.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
---
net/batman-adv/bat_v_ogm.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/net/batman-adv/bat_v_ogm.c b/net/batman-adv/bat_v_ogm.c
index 8033f24f506c..76b732e2f31c 100644
--- a/net/batman-adv/bat_v_ogm.c
+++ b/net/batman-adv/bat_v_ogm.c
@@ -178,13 +178,9 @@ static bool batadv_v_ogm_queue_left(struct sk_buff *skb,
*/
static void batadv_v_ogm_aggr_list_free(struct batadv_hard_iface *hard_iface)
{
- struct sk_buff *skb;
-
lockdep_assert_held(&hard_iface->bat_v.aggr_list_lock);
- while ((skb = skb_dequeue(&hard_iface->bat_v.aggr_list)))
- kfree_skb(skb);
-
+ skb_queue_purge(&hard_iface->bat_v.aggr_list);
hard_iface->bat_v.aggr_len = 0;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/5] batman-adv: Axe 'aggr_list_lock'
2019-11-05 9:35 [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05 Simon Wunderlich
2019-11-05 9:35 ` [PATCH 1/5] batman-adv: Start new development cycle Simon Wunderlich
2019-11-05 9:35 ` [PATCH 2/5] batman-adv: Simplify 'batadv_v_ogm_aggr_list_free()' Simon Wunderlich
@ 2019-11-05 9:35 ` Simon Wunderlich
2019-11-05 9:35 ` [PATCH 4/5] batman-adv: Use 'fallthrough' pseudo keyword Simon Wunderlich
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Simon Wunderlich @ 2019-11-05 9:35 UTC (permalink / raw)
To: davem
Cc: netdev, b.a.t.m.a.n, Christophe JAILLET, Sven Eckelmann,
Simon Wunderlich
From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
'aggr_list.lock' can safely be used in place of another explicit spinlock
when access to 'aggr_list' has to be guarded.
This avoids to take 2 locks, knowing that the 2nd one is always successful.
Now that the 'aggr_list.lock' is handled explicitly, the lock-free
__sbk_something() variants should be used when dealing with 'aggr_list'.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
---
net/batman-adv/bat_v.c | 1 -
net/batman-adv/bat_v_ogm.c | 30 +++++++++++++++---------------
net/batman-adv/types.h | 3 ---
3 files changed, 15 insertions(+), 19 deletions(-)
diff --git a/net/batman-adv/bat_v.c b/net/batman-adv/bat_v.c
index 64054edc2e3c..4ff6cf1ecae7 100644
--- a/net/batman-adv/bat_v.c
+++ b/net/batman-adv/bat_v.c
@@ -1085,7 +1085,6 @@ void batadv_v_hardif_init(struct batadv_hard_iface *hard_iface)
hard_iface->bat_v.aggr_len = 0;
skb_queue_head_init(&hard_iface->bat_v.aggr_list);
- spin_lock_init(&hard_iface->bat_v.aggr_list_lock);
INIT_DELAYED_WORK(&hard_iface->bat_v.aggr_wq,
batadv_v_ogm_aggr_work);
}
diff --git a/net/batman-adv/bat_v_ogm.c b/net/batman-adv/bat_v_ogm.c
index 76b732e2f31c..714ce56cfcc8 100644
--- a/net/batman-adv/bat_v_ogm.c
+++ b/net/batman-adv/bat_v_ogm.c
@@ -152,7 +152,7 @@ static unsigned int batadv_v_ogm_len(struct sk_buff *skb)
* @skb: the OGM to check
* @hard_iface: the interface to use to send the OGM
*
- * Caller needs to hold the hard_iface->bat_v.aggr_list_lock.
+ * Caller needs to hold the hard_iface->bat_v.aggr_list.lock.
*
* Return: True, if the given OGMv2 packet still fits, false otherwise.
*/
@@ -163,7 +163,7 @@ static bool batadv_v_ogm_queue_left(struct sk_buff *skb,
BATADV_MAX_AGGREGATION_BYTES);
unsigned int ogm_len = batadv_v_ogm_len(skb);
- lockdep_assert_held(&hard_iface->bat_v.aggr_list_lock);
+ lockdep_assert_held(&hard_iface->bat_v.aggr_list.lock);
return hard_iface->bat_v.aggr_len + ogm_len <= max;
}
@@ -174,13 +174,13 @@ static bool batadv_v_ogm_queue_left(struct sk_buff *skb,
*
* Empties the OGMv2 aggregation queue and frees all the skbs it contained.
*
- * Caller needs to hold the hard_iface->bat_v.aggr_list_lock.
+ * Caller needs to hold the hard_iface->bat_v.aggr_list.lock.
*/
static void batadv_v_ogm_aggr_list_free(struct batadv_hard_iface *hard_iface)
{
- lockdep_assert_held(&hard_iface->bat_v.aggr_list_lock);
+ lockdep_assert_held(&hard_iface->bat_v.aggr_list.lock);
- skb_queue_purge(&hard_iface->bat_v.aggr_list);
+ __skb_queue_purge(&hard_iface->bat_v.aggr_list);
hard_iface->bat_v.aggr_len = 0;
}
@@ -193,7 +193,7 @@ static void batadv_v_ogm_aggr_list_free(struct batadv_hard_iface *hard_iface)
*
* The aggregation queue is empty after this call.
*
- * Caller needs to hold the hard_iface->bat_v.aggr_list_lock.
+ * Caller needs to hold the hard_iface->bat_v.aggr_list.lock.
*/
static void batadv_v_ogm_aggr_send(struct batadv_hard_iface *hard_iface)
{
@@ -202,7 +202,7 @@ static void batadv_v_ogm_aggr_send(struct batadv_hard_iface *hard_iface)
unsigned int ogm_len;
struct sk_buff *skb;
- lockdep_assert_held(&hard_iface->bat_v.aggr_list_lock);
+ lockdep_assert_held(&hard_iface->bat_v.aggr_list.lock);
if (!aggr_len)
return;
@@ -216,7 +216,7 @@ static void batadv_v_ogm_aggr_send(struct batadv_hard_iface *hard_iface)
skb_reserve(skb_aggr, ETH_HLEN + NET_IP_ALIGN);
skb_reset_network_header(skb_aggr);
- while ((skb = skb_dequeue(&hard_iface->bat_v.aggr_list))) {
+ while ((skb = __skb_dequeue(&hard_iface->bat_v.aggr_list))) {
hard_iface->bat_v.aggr_len -= batadv_v_ogm_len(skb);
ogm_len = batadv_v_ogm_len(skb);
@@ -243,13 +243,13 @@ static void batadv_v_ogm_queue_on_if(struct sk_buff *skb,
return;
}
- spin_lock_bh(&hard_iface->bat_v.aggr_list_lock);
+ spin_lock_bh(&hard_iface->bat_v.aggr_list.lock);
if (!batadv_v_ogm_queue_left(skb, hard_iface))
batadv_v_ogm_aggr_send(hard_iface);
hard_iface->bat_v.aggr_len += batadv_v_ogm_len(skb);
- skb_queue_tail(&hard_iface->bat_v.aggr_list, skb);
- spin_unlock_bh(&hard_iface->bat_v.aggr_list_lock);
+ __skb_queue_tail(&hard_iface->bat_v.aggr_list, skb);
+ spin_unlock_bh(&hard_iface->bat_v.aggr_list.lock);
}
/**
@@ -388,9 +388,9 @@ void batadv_v_ogm_aggr_work(struct work_struct *work)
batv = container_of(work, struct batadv_hard_iface_bat_v, aggr_wq.work);
hard_iface = container_of(batv, struct batadv_hard_iface, bat_v);
- spin_lock_bh(&hard_iface->bat_v.aggr_list_lock);
+ spin_lock_bh(&hard_iface->bat_v.aggr_list.lock);
batadv_v_ogm_aggr_send(hard_iface);
- spin_unlock_bh(&hard_iface->bat_v.aggr_list_lock);
+ spin_unlock_bh(&hard_iface->bat_v.aggr_list.lock);
batadv_v_ogm_start_queue_timer(hard_iface);
}
@@ -421,9 +421,9 @@ void batadv_v_ogm_iface_disable(struct batadv_hard_iface *hard_iface)
{
cancel_delayed_work_sync(&hard_iface->bat_v.aggr_wq);
- spin_lock_bh(&hard_iface->bat_v.aggr_list_lock);
+ spin_lock_bh(&hard_iface->bat_v.aggr_list.lock);
batadv_v_ogm_aggr_list_free(hard_iface);
- spin_unlock_bh(&hard_iface->bat_v.aggr_list_lock);
+ spin_unlock_bh(&hard_iface->bat_v.aggr_list.lock);
}
/**
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index 4d7f1baee7b7..47718a82eaf2 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -130,9 +130,6 @@ struct batadv_hard_iface_bat_v {
/** @aggr_len: size of the OGM aggregate (excluding ethernet header) */
unsigned int aggr_len;
- /** @aggr_list_lock: protects aggr_list */
- spinlock_t aggr_list_lock;
-
/**
* @throughput_override: throughput override to disable link
* auto-detection
--
2.20.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/5] batman-adv: Use 'fallthrough' pseudo keyword
2019-11-05 9:35 [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05 Simon Wunderlich
` (2 preceding siblings ...)
2019-11-05 9:35 ` [PATCH 3/5] batman-adv: Axe 'aggr_list_lock' Simon Wunderlich
@ 2019-11-05 9:35 ` Simon Wunderlich
2019-11-05 9:35 ` [PATCH 5/5] batman-adv: Drop lockdep.h include for soft-interface.c Simon Wunderlich
2019-11-06 2:33 ` [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05 David Miller
5 siblings, 0 replies; 7+ messages in thread
From: Simon Wunderlich @ 2019-11-05 9:35 UTC (permalink / raw)
To: davem; +Cc: netdev, b.a.t.m.a.n, Sven Eckelmann, Simon Wunderlich
From: Sven Eckelmann <sven@narfation.org>
The usage of the '/* fall through */' comments in switches are no longer
marked as non-deprecated variant of implicit fall throughs for switch
statements. The commit 294f69e662d1 ("compiler_attributes.h: Add
'fallthrough' pseudo keyword for switch/case use") introduced a replacement
keyword which should be used instead.
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
---
net/batman-adv/multicast.c | 2 +-
net/batman-adv/soft-interface.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/net/batman-adv/multicast.c b/net/batman-adv/multicast.c
index 1d5bdf3a4b65..f9ec8e7507b6 100644
--- a/net/batman-adv/multicast.c
+++ b/net/batman-adv/multicast.c
@@ -1421,7 +1421,7 @@ batadv_mcast_forw_mode(struct batadv_priv *bat_priv, struct sk_buff *skb,
if (*orig)
return BATADV_FORW_SINGLE;
- /* fall through */
+ fallthrough;
case 0:
return BATADV_FORW_NONE;
default:
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index 5ee8e9a100f9..697f2da12487 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -230,7 +230,7 @@ static netdev_tx_t batadv_interface_tx(struct sk_buff *skb,
break;
}
- /* fall through */
+ fallthrough;
case ETH_P_BATMAN:
goto dropped;
}
@@ -455,7 +455,7 @@ void batadv_interface_rx(struct net_device *soft_iface,
if (vhdr->h_vlan_encapsulated_proto != htons(ETH_P_BATMAN))
break;
- /* fall through */
+ fallthrough;
case ETH_P_BATMAN:
goto dropped;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 5/5] batman-adv: Drop lockdep.h include for soft-interface.c
2019-11-05 9:35 [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05 Simon Wunderlich
` (3 preceding siblings ...)
2019-11-05 9:35 ` [PATCH 4/5] batman-adv: Use 'fallthrough' pseudo keyword Simon Wunderlich
@ 2019-11-05 9:35 ` Simon Wunderlich
2019-11-06 2:33 ` [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05 David Miller
5 siblings, 0 replies; 7+ messages in thread
From: Simon Wunderlich @ 2019-11-05 9:35 UTC (permalink / raw)
To: davem; +Cc: netdev, b.a.t.m.a.n, Sven Eckelmann, Simon Wunderlich
From: Sven Eckelmann <sven@narfation.org>
The commit ab92d68fc22f ("net: core: add generic lockdep keys") removed
all lockdep functionality from soft-interface.c but didn't remove the
include for this functionality.
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
---
net/batman-adv/soft-interface.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index 697f2da12487..832e156c519e 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -22,7 +22,6 @@
#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>
--
2.20.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05
2019-11-05 9:35 [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05 Simon Wunderlich
` (4 preceding siblings ...)
2019-11-05 9:35 ` [PATCH 5/5] batman-adv: Drop lockdep.h include for soft-interface.c Simon Wunderlich
@ 2019-11-06 2:33 ` David Miller
5 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2019-11-06 2:33 UTC (permalink / raw)
To: sw; +Cc: netdev, b.a.t.m.a.n
From: Simon Wunderlich <sw@simonwunderlich.de>
Date: Tue, 5 Nov 2019 10:35:26 +0100
> here is a little cleanup pull request of batman-adv to go into net-next.
>
> Please pull or let me know of any problem!
Pulled, thanks.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-11-06 2:33 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-05 9:35 [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05 Simon Wunderlich
2019-11-05 9:35 ` [PATCH 1/5] batman-adv: Start new development cycle Simon Wunderlich
2019-11-05 9:35 ` [PATCH 2/5] batman-adv: Simplify 'batadv_v_ogm_aggr_list_free()' Simon Wunderlich
2019-11-05 9:35 ` [PATCH 3/5] batman-adv: Axe 'aggr_list_lock' Simon Wunderlich
2019-11-05 9:35 ` [PATCH 4/5] batman-adv: Use 'fallthrough' pseudo keyword Simon Wunderlich
2019-11-05 9:35 ` [PATCH 5/5] batman-adv: Drop lockdep.h include for soft-interface.c Simon Wunderlich
2019-11-06 2:33 ` [PATCH 0/5] pull request for net-next: batman-adv 2019-11-05 David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).