The annotated tag, v4.12-rc7 has been created
at c5fc112f12a4e33d750f2ceea94a7d8fc415f4f1 (tag)
tagging c0bc126f97fb929b3ae02c1c62322645d70eb408 (commit)
replaces v4.12-rc6
tagged by Linus Torvalds
on Sun Jun 25 18:30:14 2017 -0700
- Shortlog ------------------------------------------------------------
Linux 4.12-rc7
-----BEGIN PGP SIGNATURE-----
iQEcBAABAgAGBQJZUGOmAAoJEHm+PkMAQRiGhX8H/3fIhingPD01MBf98U0xGrJo
yIXmhu6nFs7TM0lDVDcHsKgqLQIT69ll7PrSZrMkc1RGUIPINoCuJVuJqDre0kfB
of5TX2KegqSx8h1vOWjGBCBjdYfPGyMdf9icf6KsGc/SlIdhN6WA99kglAjJA0Ve
qPTNagF0ntUNg1lsXffxyfcHqFpyqw/Z/C4ie/byFsn9iJ1VG9mNlTWSud09vhuM
3tvHzTUVAIWWuRrrgrvgqQpnwL+q5BfSDsXScMjBau0EK3RGGqG8EN6Kbkfa7VQ6
aBoeboQjUijSJnVwvySdQ11MChTIOwZdfrNPra/1HD3WJNsSu4BIRt5JcAKcOhc=
=qmSg
-----END PGP SIGNATURE-----
-----------------------------------------------------------------------
--
linux integration
The annotated tag, v4.12-rc6 has been created
at 1e455240998832dacdf1d27f67dbfc25c3f453c3 (tag)
tagging 41f1830f5a7af77cf5c86359aba3cbd706687e52 (commit)
replaces v4.12-rc5
tagged by Linus Torvalds
on Mon Jun 19 22:19:48 2017 +0800
- Shortlog ------------------------------------------------------------
Linux 4.12-rc6
-----BEGIN PGP SIGNATURE-----
iQEbBAABAgAGBQJZR92EAAoJEHm+PkMAQRiGT1oH+KW2FLrRaYxtut+KyGA6l7tc
R/hFx1n9BibkjXeqD+y6/4SjRTe6/pT8Zkihv3/19eZ5algUWeQa0Hm+/455sl58
IdIXx/pzuCO3kqR3//fP9ZFD657GNDsuQ0fYnZESItFwiWQtO1TNfZD6KQjkqBdI
L3MVhDUVBZA2ZtPwC4ERei5/sToV9woykKoJ/A3+OkWjgX6w4SBimqgkSEFk4uE8
xS0pycyDZci93rJlECi1UueewdODTKSmhwdC80qvGEiYXzsC6UFtaF0Fj66XO1AL
UMjxqI/gkm5ZuCIjRsmPmJjgL5q1RT6UX/qtw9yn71XTmcgMiPW2/DF/v/OaTg==
=XbW2
-----END PGP SIGNATURE-----
Andreas Pape (1):
batman-adv: fix memory leak when dropping packet from other gateway
David S. Miller (2):
net: Fix inconsistent teardown and release of private netdev state.
Merge tag 'batadv-net-for-davem-20170613' of git://git.open-mesh.org/linux-merge
Sven Eckelmann (1):
batman-adv: Fix rx packet/bytes stats on local ARP reply
-----------------------------------------------------------------------
--
linux integration
Repository : ssh://git@open-mesh.org/batctl
On branch : master
>---------------------------------------------------------------
commit 50ee3c45feeda6d8c04ee127097badf99f78a26e
Author: Philipp Psurek <philipp.psurek(a)gmail.com>
Date: Tue Jun 13 13:08:24 2017 +0200
batctl: suppress implicit-fallthrough compiler warning
GCC 7.1.0 complains about an intended fallthrough.
“__attribute__ ((fallthrough))” in this part of code would suppress this
warning. Because older GCC compiler don’t understand this statement attribute
and because there is already a comment in the source containing
“falls?[ \t-]*thr(ough|u)” we can suppress the warning with the
“-Wimplicit-fallthrough=2” warning option. Unintended fallthroughs without a
comment would trigger this warning again.
To avoid compiler recognition in the Makefile a simply change of the comment
is sufficient to suppress the warning. For some reason only stand alone
comments mentioned in [1] are recognized so the comment has to be split up into
two parts.
[1] https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Warning-Options.html#index-Wim…
Signed-off-by: Philipp Psurek <philipp.psurek(a)gmail.com>
[sw: Put the second comment part into a new line to avoid clutter]
Signed-off-by: Simon Wunderlich <sw(a)simonwunderlich.de>
>---------------------------------------------------------------
50ee3c45feeda6d8c04ee127097badf99f78a26e
tp_meter.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tp_meter.c b/tp_meter.c
index 918fb79..a623a68 100644
--- a/tp_meter.c
+++ b/tp_meter.c
@@ -500,8 +500,9 @@ int tp_meter(char *mesh_iface, int argc, char **argv)
break;
case BATADV_TP_REASON_CANCEL:
printf("CANCEL received: test aborted\n");
- /* fall through and print the partial result */
+ /* fall through */
case BATADV_TP_REASON_COMPLETE:
+ /* print the partial result */
if (result.test_time > 0) {
throughput = result.total_bytes * 1000;
throughput /= result.test_time;
The annotated tag, batadv-next-for-davem-20170613 has been created
at 151497713f1bc908e3870fb27526a42888e80ea0 (tag)
tagging d62890885efbc48acea46964ea3af69b61c8c5eb (commit)
replaces v4.12-rc1
tagged by Simon Wunderlich
on Tue Jun 13 13:34:48 2017 +0200
- Shortlog ------------------------------------------------------------
This feature/cleanup patchset includes the following patches:
- bump version strings, by Simon Wunderlich
- decrease maximum fragment size, by Matthias Schiffer
- Clean up seqfile writing, by Markus Elfring (2 patches)
- use __func__ in debug messages, by Sven Eckelmann
- Mark tpmeter initializers with __init, by Antonio Quartulli
- ignore loop detection MAC addresses, by Simon Wunderlich
- clean up some return handling, by Simon Wunderlich
- improve ELP throughput value handling for WiFi neighbors
in BATMAN V/ELP, by Sven Eckelmann (2 patches)
-----BEGIN PGP SIGNATURE-----
iQJKBAABCgA0FiEE1ilQI7G+y+fdhnrfoSvjmEKSnqEFAlk/zdgWHHN3QHNpbW9u
d3VuZGVybGljaC5kZQAKCRChK+OYQpKeoT9dEADWePo0E4gtqX8sZ9f/asqCUjiA
RRcg6oHjhKl0yy8bAh+86/iEEJIsWs0IKt/gT7N8v6y3/rE7ZWrXarTvZUEcu+lb
pCbl3/e4m+VE4ROvZA/iUFxbzrp0SGP/DO9b6GUP/Lo2SOFzr4ATYpw2HVmUnQmt
7l3do7KSA6WVZs4KTno98ydZW5sFhBIJnnJcwuWGs6TWt7XDnFKOKeTg4QAcaycn
/qZQ7NB/25Q9cu1sPF5V+DqlIGhYTl3d4KF4ENUTSClb5OLq0QnBIvfRBoJMwU+q
I6roLhd9oYSycC6+6nw70EFbXokxaVz2OyCG2Yffv3BnoMOrwy3eOCmk7reZr0x0
lGhGjUo+baHBbXr/wGWoDI5gUr7OWtkFGJ4vsdGqkWbmwvjf1yTQyOr9mC6y9lAV
EiQ+yphIxt7UXbQxu6Yi8xON4v4/YG0CGtb6tiuZVoqXl6k/VZR3I6gluVkVG/oy
k/wBnXkdAfcOK+0x1pEgkfrwew42oVXl/xgtA/Al/TuRSwg1BCVcC0Jh9TdHQpqE
DWa4UApMlIk8W21gRf49ixxmjwAJ4qGey8YnqTE38uNv/06Lt+U9Bq6qMMGhY9v/
1rTv9kTlcgAr0LjEwTXpboRAOOVrZxW1PXtWLc5Lim2ge5+vydA2R7R+R4EgP8Kf
gpM7YbosYwaO+MAw5Q==
=i0xq
-----END PGP SIGNATURE-----
Antonio Quartulli (1):
batman-adv: tp_meter: mark init function with __init
Markus Elfring (2):
batman-adv: Replace a seq_puts() call by seq_putc() in two functions
batman-adv: Combine two seq_puts() calls into one call in batadv_nc_nodes_seq_print_text()
Matthias Schiffer (1):
batman-adv: decrease maximum fragment size
Simon Wunderlich (3):
batman-adv: Start new development cycle
batman-adv: do not add loop detection mac addresses to global tt
batman-adv: simplify return handling in some TT functions
Sven Eckelmann (3):
batman-adv: Print correct function names in dbg messages
batman-adv: Use default throughput value on cfg80211 error
batman-adv: Accept only filled wifi station info
-----------------------------------------------------------------------
--
linux integration
The annotated tag, batadv-net-for-davem-20170613 has been created
at 7ba0b69bb8425d359013485eae8f95de06ea5dce (tag)
tagging a1a745ef980a1b48299ead4ea7990e62c0516f6e (commit)
replaces v4.12-rc1
tagged by Simon Wunderlich
on Tue Jun 13 13:13:12 2017 +0200
- Shortlog ------------------------------------------------------------
Here are two batman-adv bugfixes:
- fix rx packet counters for local ARP replies, by Sven Eckelmann
- fix memory leaks for unicast packetes received from another gateway
in bridge loop avoidance, by Andreas Pape
-----BEGIN PGP SIGNATURE-----
iQJKBAABCgA0FiEE1ilQI7G+y+fdhnrfoSvjmEKSnqEFAlk/yMgWHHN3QHNpbW9u
d3VuZGVybGljaC5kZQAKCRChK+OYQpKeoedFD/9POmDgXWG5pYhz1/NG51zWguxF
X4p04AuDj9rAfxiXt80AH1MQnmqo8e2ZArGRA0x+wqr7QVT9CiiUcVbRdWuqAmGu
cm2zE+2JaBYtSfRTbRTjuHMO5htY8Q7UK7DZr0OVyT6ApLcC44zsbTUEQnaYxEar
zhEt5n80XodRhk8TPXbphYaRG3udtr0ULpqYP96CTL/0HScaF5xmYl7+QF8lEajE
AgxAm2K8kp1fPptrCLIKJMCRw7IMoJsLGGwWIQYL2TTnHJ9ZOfzdV0zq7yTFGp6s
UVHL5SXu1esckv4LaJgWn54mFyVyBY35US6b8Xkk/LYDEO4NNin1Qa3X8ObPEIG2
Xqun6BqeUjDYNEYQYBRJ0Zxem3TXQlNevPbAAsPjwlFy6t6ArpT267KPZH7u2wu4
F7QgPBlsBtymeIj1yYRNwhzbRDjRTvNq+8N39hf1fBijpJANM7iYwJ+rGet/HzZA
UOsggnq4lV5CsdXcqobT4F4Ru2am/8SB2wwPlydOfCNOdlMr5qAu40dEJ5TxWHgq
5nkOhDQHKznGzk+9QMItKCeakhq119GRL7TCKQj4fcYG/jFp9HPtVSb3OmAz2UGH
fb/g+myOTCrwPctIE65A7GUTMhPCRckcQfTJwOWI0AGDbun2fwGhUzgZknNz6KwE
2J+twzFipw3E31vJUg==
=AbYj
-----END PGP SIGNATURE-----
Andreas Pape (1):
batman-adv: fix memory leak when dropping packet from other gateway
Sven Eckelmann (1):
batman-adv: Fix rx packet/bytes stats on local ARP reply
-----------------------------------------------------------------------
--
linux integration
Repository : ssh://git@open-mesh.org/batman-adv
On branch : maint
>---------------------------------------------------------------
commit 33e9de0c769c7b0c5e615a5788b0f09655304720
Author: David S. Miller <davem(a)davemloft.net>
Date: Fri Jun 9 18:42:34 2017 +0200
batman-adv: Fix inconsistent teardown and release of private netdev state.
Network devices can allocate reasources and private memory using
netdev_ops->ndo_init(). However, the release of these resources
can occur in one of two different places.
Either netdev_ops->ndo_uninit() or netdev->destructor().
The decision of which operation frees the resources depends upon
whether it is necessary for all netdev refs to be released before it
is safe to perform the freeing.
netdev_ops->ndo_uninit() presumably can occur right after the
NETDEV_UNREGISTER notifier completes and the unicast and multicast
address lists are flushed.
netdev->destructor(), on the other hand, does not run until the
netdev references all go away.
Further complicating the situation is that netdev->destructor()
almost universally does also a free_netdev().
This creates a problem for the logic in register_netdevice().
Because all callers of register_netdevice() manage the freeing
of the netdev, and invoke free_netdev(dev) if register_netdevice()
fails.
If netdev_ops->ndo_init() succeeds, but something else fails inside
of register_netdevice(), it does call ndo_ops->ndo_uninit(). But
it is not able to invoke netdev->destructor().
This is because netdev->destructor() will do a free_netdev() and
then the caller of register_netdevice() will do the same.
However, this means that the resources that would normally be released
by netdev->destructor() will not be.
Over the years drivers have added local hacks to deal with this, by
invoking their destructor parts by hand when register_netdevice()
fails.
Many drivers do not try to deal with this, and instead we have leaks.
Let's close this hole by formalizing the distinction between what
private things need to be freed up by netdev->destructor() and whether
the driver needs unregister_netdevice() to perform the free_netdev().
netdev->priv_destructor() performs all actions to free up the private
resources that used to be freed by netdev->destructor(), except for
free_netdev().
netdev->needs_free_netdev is a boolean that indicates whether
free_netdev() should be done at the end of unregister_netdevice().
Now, register_netdevice() can sanely release all resources after
ndo_ops->ndo_init() succeeds, by invoking both ndo_ops->ndo_uninit()
and netdev->priv_destructor().
And at the end of unregister_netdevice(), we invoke
netdev->priv_destructor() and optionally call free_netdev().
Signed-off-by: David S. Miller <davem(a)davemloft.net>
[sven(a)narfation.org: Add compat code]
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
[sw: pimped the compat code]
Signed-off-by: Simon Wunderlich <sw(a)simonwunderlich.de>
>---------------------------------------------------------------
33e9de0c769c7b0c5e615a5788b0f09655304720
compat-include/linux/netdevice.h | 19 +++++++++++++++++++
net/batman-adv/soft-interface.c | 5 ++---
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/compat-include/linux/netdevice.h b/compat-include/linux/netdevice.h
index 1a37952c..1b36e529 100644
--- a/compat-include/linux/netdevice.h
+++ b/compat-include/linux/netdevice.h
@@ -86,4 +86,23 @@ static inline void batadv_netif_trans_update(struct net_device *dev)
#endif /* < KERNEL_VERSION(4, 7, 0) */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 12, 0)
+
+/* work around missing attribute needs_free_netdev and priv_destructor in
+ * net_device
+ */
+#define ether_setup(dev) \
+ void batadv_softif_free2(struct net_device *dev) \
+ { \
+ batadv_softif_free(dev); \
+ free_netdev(dev); \
+ } \
+ void (*t1)(struct net_device *dev) __attribute__((unused)); \
+ bool t2 __attribute__((unused)); \
+ ether_setup(dev)
+#define needs_free_netdev destructor = batadv_softif_free2; t2
+#define priv_destructor destructor = batadv_softif_free2; t1
+
+#endif /* < KERNEL_VERSION(4, 12, 0) */
+
#endif /* _NET_BATMAN_ADV_COMPAT_LINUX_NETDEVICE_H_ */
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index b25789ab..10f7edfb 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -1034,8 +1034,6 @@ static void batadv_softif_free(struct net_device *dev)
* netdev and its private data (bat_priv)
*/
rcu_barrier();
-
- free_netdev(dev);
}
/**
@@ -1047,7 +1045,8 @@ static void batadv_softif_init_early(struct net_device *dev)
ether_setup(dev);
dev->netdev_ops = &batadv_netdev_ops;
- dev->destructor = batadv_softif_free;
+ dev->needs_free_netdev = true;
+ dev->priv_destructor = batadv_softif_free;
dev->features |= NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_NETNS_LOCAL;
dev->priv_flags |= IFF_NO_QUEUE;
Repository : ssh://git@open-mesh.org/batman-adv
On branch : master
>---------------------------------------------------------------
commit 76ef29071b0050f972a626747d034a494a7195d7
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Fri Jun 9 17:06:50 2017 +0200
batman-adv: Use default throughput value on cfg80211 error
A wifi interface should never be handled like an ethernet devices. The
parser of the cfg80211 output must therefore skip the ethtool code when
cfg80211_get_station returned an error.
Fixes: 01b1fe819ee0 ("batman-adv: refactor wifi interface detection")
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
Reviewed-by: Marek Lindner <mareklindner(a)neomailbox.ch>
Signed-off-by: Simon Wunderlich <sw(a)simonwunderlich.de>
>---------------------------------------------------------------
76ef29071b0050f972a626747d034a494a7195d7
net/batman-adv/bat_v_elp.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/batman-adv/bat_v_elp.c b/net/batman-adv/bat_v_elp.c
index b90c9903..96e73337 100644
--- a/net/batman-adv/bat_v_elp.c
+++ b/net/batman-adv/bat_v_elp.c
@@ -109,8 +109,10 @@ static u32 batadv_v_elp_get_throughput(struct batadv_hardif_neigh_node *neigh)
*/
return 0;
}
- if (!ret)
- return sinfo.expected_throughput / 100;
+ if (ret)
+ goto default_throughput;
+
+ return sinfo.expected_throughput / 100;
}
/* if not a wifi interface, check if this device provides data via