1. 11 Dec, 2015 2 commits
    • Danny Schweizer's avatar
      Bluetooth: Do not filter multicast addresses by default · 4ada1282
      Danny Schweizer authored
      A Linux PC is connected with another device over Bluetooth PAN using a
      BNEP interface.
      
      Whenever a packet is tried to be sent over the BNEP interface, the
      function "bnep_net_xmit()" in "net/bluetooth/bnep/netdev.c" is called.
      This function calls "bnep_net_mc_filter()", which checks (if the
      destination address is multicast) if the address is set in a certain
      multicast filter (&s->mc_filter). If it is not, then it is not sent out.
      
      This filter is only changed in two other functions, found in
      net/bluetooth/bnep/core.c": in "bnep_ctrl_set_mc_filter()", which is
      only called if a message of type "BNEP_FILTER_MULTI_ADDR_SET" is
      received. Otherwise, it is set in "bnep_add_connection()", where it is
      set to a default value which only adds the broadcast address to the
      filter:
      
      set_bit(bnep_mc_hash(dev->broadcast), (ulong *) &s->mc_filter);
      
      To sum up, if the BNEP interface does not receive any message of type
      "BNEP_FILTER_MULTI_ADDR_SET", it will not send out any messages with
      multicast destination addresses except for broadcast.
      
      However, in the BNEP specification (page 27 in
      http://grouper.ieee.org/groups/802/15/Bluetooth/BNEP.pdf), it is said
      that per default, all multicast addresses should not be filtered, i.e.
      the BNEP interface should be able to send packets with any multicast
      destination address.
      
      It seems that the default case is wrong: the multicast filter should not
      block almost all multicast addresses, but should not filter out any.
      
      This leads to the problem that e.g. Neighbor Solicitation messages sent
      with Bluetooth PAN over the BNEP interface to a multicast destination
      address other than broadcast are blocked and not sent out.
      
      Therefore, in the default case, we set the mc_filter to ~0LL to not
      filter out any multicast addresses.
      Signed-off-by: default avatarDanny Schweizer <danny.schweizer@proofnet.de>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      4ada1282
    • Markus Elfring's avatar
      ieee802154-atusb: Delete an unnecessary check before the function call "kfree_skb" · 41881465
      Markus Elfring authored
      The kfree_skb() function tests whether its argument is NULL and then
      returns immediately. Thus the test around the call is not needed.
      
      This issue was detected by using the Coccinelle software.
      Signed-off-by: default avatarMarkus Elfring <elfring@users.sourceforge.net>
      Acked-by: default avatarStefan Schmidt <stefan@osg.samsung.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      41881465
  2. 10 Dec, 2015 12 commits
  3. 09 Dec, 2015 26 commits