tree 13c732c132c9229244487ab68fa141fd37020bd0
parent 6104503cddbbaf341c091fa900d93488d6342ad6
parent ebe24cea95ab969f76f2922032f6c390fdc816f2
author David S. Miller <davem@davemloft.net> 1463683874 -0700
committer David S. Miller <davem@davemloft.net> 1463683874 -0700
mergetag object ebe24cea95ab969f76f2922032f6c390fdc816f2
 type commit
 tag batman-adv-fix-for-davem
 tagger Antonio Quartulli <a@unstable.cc> 1463543399 +0800
 
 During the Wireless Battle Mesh v9 in Porto (PT) at the beginning of
 May, we managed to uncover and fix some important bugs in our
 new B.A.T.M.A.N. V algorithm. These are the fixes we came up with
 together with others that I collected in the past weeks:
 - avoid potential crash due to NULL pointer dereference in
   B.A.T.M.A.N. V routine when a neigh_ifinfo object is not found, by
   Sven Eckelmann
 - avoid use-after-free of skb when counting outgoing bytes, by Florian
   Westphal
 - fix neigh_ifinfo object reference counting imbalance when using
   B.A.T.M.A.N. V, by Sven Eckelmann. Such imbalance may lead to the
   impossibility of releasing the related netdev object on shutdown
 - avoid invalid memory access in case of error while allocating
   bcast_own_sum when a new hard-interface is added, by Sven Eckelmann
 - ensure originator address is updated in OMG/ELP packet content upon
   primary interface address change, by Antonio Quartulli
 - fix integer overflow when computing TQ metric (B.A.T.M.A.N. IV), by
   Sven Eckelmann
 - avoid race condition while adding new neigh_node which would result
   in having two objects mapping to the same physical neighbour, by
   Linus Lüssing
 - ensure originator address is initialized in ELP packet content on
   secondary interfaces, by Marek Lindner
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJXO+ZsAAoJEJ4aZjxxc6bK7UEQALxcPqv2YtQhQCexHAPlmTxg
 73uXuXpo0eWPxJh2FElcsHTHSt/l0/m/G8MEWCOfqI8MTeg+UTY5lXCY4iThtiY6
 n08nl/CLkPNLuDGzAd7CpCM2jJ1iAzgJEVpUGQ6qoO5ekFvO09U/J/o6E8gDTX4I
 yc1kR3hcJeLbF6EUXEfTX/2THdFhkYSgHgZoGyM3eu43Zhv/6v454iEpqNxA/Ubr
 UngJTGSfqf20FidUt+xjbfptltTzj25Cp+VQ2DQ/LOuit0ChECjXwMfk0UkDHlKX
 bYPm1tcUJ0dzbR7cILMlzzzCSzH00leUk5GYYo59rAxBQiJ2j+92c2K0dcnv8cJJ
 q+GsZapyQFBIgPWS/TLtG1II3u8YWYvl+nEQXBDtPeRAjGoO4VwSbuatsf+enM8K
 i0c622iEc0b3cVe5H8reUh7SZMfMT/cQkEgpX5/psf8FWvEzeDv4HI3aUfVuSpck
 mEZAy59HeLWrF+KTScougv14vyoMmKfUcr5E1Oe4X1Ke9dpVvHGiI9wlqb/J0lfl
 rIc/5WI3ae/QAXkcPybanPEO8O0pBMP+Y4oCYpWmDu1qYfwZzDaSMqqEALQVVW2I
 8Ta1gbzamgZDslf7YDSWOR0iyFAFcnMhT0qU6gv2+RGbcfwD+AGRLu5ufY/th0N3
 L6AuFhvT/bxW6jN+iuAS
 =IACg
 -----END PGP SIGNATURE-----

Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge

Antonio Quartulli says:

====================
During the Wireless Battle Mesh v9 in Porto (PT) at the beginning of
May, we managed to uncover and fix some important bugs in our
new B.A.T.M.A.N. V algorithm. These are the fixes we came up with
together with others that I collected in the past weeks:
- avoid potential crash due to NULL pointer dereference in
  B.A.T.M.A.N. V routine when a neigh_ifinfo object is not found, by
  Sven Eckelmann
- avoid use-after-free of skb when counting outgoing bytes, by Florian
  Westphal
- fix neigh_ifinfo object reference counting imbalance when using
  B.A.T.M.A.N. V, by Sven Eckelmann. Such imbalance may lead to the
  impossibility of releasing the related netdev object on shutdown
- avoid invalid memory access in case of error while allocating
  bcast_own_sum when a new hard-interface is added, by Sven Eckelmann
- ensure originator address is updated in OMG/ELP packet content upon
  primary interface address change, by Antonio Quartulli
- fix integer overflow when computing TQ metric (B.A.T.M.A.N. IV), by
  Sven Eckelmann
- avoid race condition while adding new neigh_node which would result
  in having two objects mapping to the same physical neighbour, by
  Linus Lüssing
- ensure originator address is initialized in ELP packet content on
  secondary interfaces, by Marek Lindner
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
