1. 28 Feb, 2010 26 commits
  2. 27 Feb, 2010 14 commits
    • Stephen Coe's avatar
      Bluetooth: Add SCO fallback for unsupported feature error · 705e5711
      Stephen Coe authored
      The Bluetooth SIG PTS test case: TC_AG_ACS_BV_10_I, rejects eSCO with
      "Unsupported Feature or Parameter Value" (0x11).  This patch adds case
      for SCO fallback.
      
      2007-09-20 12:20:37.787747 > HCI Event: Number of Completed Packets (0x13) plen 5
         handle 38 packets 1
      2007-09-20 12:20:37.842154 < HCI Command: Setup Synchronous Connection (0x01|0x0028) plen 17
         handle 38 voice setting 0x0060
      2007-09-20 12:20:37.847037 > HCI Event: Command Status (0x0f) plen 4
         Setup Synchronous Connection (0x01|0x0028) status 0x00 ncmd 1
      2007-09-20 12:20:37.855233 > HCI Event: Max Slots Change (0x1b) plen 3
         handle 38 slots 1
      2007-09-20 12:20:39.913354 > HCI Event: Synchronous Connect Complete (0x2c) plen 17
         status 0x11 handle 38 bdaddr 00:16:93:01:01:7A type eSCO
         Error: Unsupported Feature or Parameter Value
      2007-09-20 12:20:39.922629 > HCI Event: Max Slots Change (0x1b) plen 3
         handle 38 slots 5
      2007-09-20 12:20:58.126886 < ACL data: handle 38 flags 0x02 dlen 8
         L2CAP(d): cid 0x0041 len 4 [psm 0]
           0000: 0b 53 01 b8                                       .S..
      2007-09-20 12:20:58.130138 > HCI Event: Number of Completed Packets (0x13) plen 5
         handle 38 packets 1
      Signed-off-by: default avatarStephen Coe <smcoe1@gmail.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      705e5711
    • Marcel Holtmann's avatar
      Bluetooth: Add controller types for BR/EDR and 802.11 AMP · 943da25d
      Marcel Holtmann authored
      With the Bluetooth 3.0 specification and the introduction of alternate
      MAC/PHY (AMP) support, it is required to differentiate between primary
      BR/EDR controllers and 802.11 AMP controllers. So introduce a special
      type inside HCI device for differentiation.
      
      For now all AMP controllers will be treated as raw devices until an
      AMP manager has been implemented.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      943da25d
    • Marcel Holtmann's avatar
      Bluetooth: Convert Marvell driver to use per adapter debugfs · b914a250
      Marcel Holtmann authored
      The debugfs support of the Marvell driver is buggy. It is limited to one
      controller per system. Fix this by using the controller specific debugfs
      directory as parent.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      b914a250
    • Marcel Holtmann's avatar
      Bluetooth: Convert inquiry cache to use debugfs instead of sysfs · ca325f69
      Marcel Holtmann authored
      The output of the inquiry cache is only useful for debugging purposes
      and so move it into debugfs.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      ca325f69
    • Marcel Holtmann's avatar
      Bluetooth: Convert controller hdev->type to hdev->bus · c13854ce
      Marcel Holtmann authored
      The hdev->type is misnamed and should be actually hdev->bus instead. So
      convert it now.
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      c13854ce
    • Dan Carpenter's avatar
      Bluetooth: Add missing kfree() on error path in Atheros driver · 10f7891f
      Dan Carpenter authored
      Add a couple kfree() calls on an error path.
      Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      10f7891f
    • Márton Németh's avatar
      Bluetooth: Make USB device id constant · 8978111e
      Márton Németh authored
      The id_table field of the struct usb_device_id is constant in <linux/usb.h>
      so it is worth to make bcm203x_table also constant.
      
      The semantic match that finds this kind of pattern is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @r@
      disable decl_init,const_decl_init;
      identifier I1, I2, x;
      @@
      	struct I1 {
      	  ...
      	  const struct I2 *x;
      	  ...
      	};
      @s@
      identifier r.I1, y;
      identifier r.x, E;
      @@
      	struct I1 y = {
      	  .x = E,
      	};
      @c@
      identifier r.I2;
      identifier s.E;
      @@
      	const struct I2 E[] = ... ;
      @depends on !c@
      identifier r.I2;
      identifier s.E;
      @@
      +	const
      	struct I2 E[] = ...;
      // </smpl>
      Signed-off-by: default avatarMárton Németh <nm127@freemail.hu>
      Cc: Julia Lawall <julia@diku.dk>
      Cc: cocci@diku.dk
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      8978111e
    • Peter Huewe's avatar
      Bluetooth: Add __init/__exit macros to Marvell SDIO driver · 8e5b2308
      Peter Huewe authored
      Trivial patch which adds the __init/__exit macros to the module_init/
      module_exit functions of btmrvl_sdio.c driver.
      Signed-off-by: default avatarPeter Huewe <peterhuewe@gmx.de>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      8e5b2308
    • John Fastabend's avatar
      ixgbe: move TC_PRIO_CONTROL check into ixgbe_select_queue() · 2ea186ae
      John Fastabend authored
      Move TC_PRIO_CONTROL check and queue remapping into
      ixgbe_select_queue().  Remapping queues after the qdisc
      can result in the wrong qdisc queue being stopped with
      netif_stop_subqueue().  Even if this is resolved and the
      correct queue is stopped it can result in a queue being
      blocked by TC_PRIO_CONTROL frames uneccesarily.  Moving
      this into the select_queue routine maintains alignment
      between tx_rings and qdisc queues.
      Signed-off-by: default avatarJohn Fastabend <john.r.fastabend@intel.com>
      Acked-by: default avatarPeter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2ea186ae
    • Felix Fietkau's avatar
      skbuff: align sk_buff::cb to 64 bit and close some potential holes · da3f5cf1
      Felix Fietkau authored
      The alignment requirement for 64-bit load/store instructions on ARM is
      implementation defined. Some CPUs (such as Marvell Feroceon) do not
      generate an exception, if such an instruction is executed with an
      address that is not 64 bit aligned. In such a case, the Feroceon
      corrupts adjacent memory, which showed up in my tests as a crash in the
      rx path of ath9k that only occured with CONFIG_XFRM set.
      
      This crash happened, because the first field of the mac80211 rx status
      info in the cb is an u64, and changing it corrupted the skb->sp field.
      
      This patch also closes some potential pre-existing holes in the sk_buff
      struct surrounding the cb[] area.
      Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
      Cc: stable@kernel.org
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      da3f5cf1
    • Patrick McHardy's avatar
      bonding: fix device leak on error in bond_create() · 8d6184e4
      Patrick McHardy authored
      When the register_netdevice() call fails, the newly allocated device is
      not freed.
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8d6184e4
    • Patrick McHardy's avatar
      rtnetlink: support specifying device flags on device creation · 3729d502
      Patrick McHardy authored
      commit e8469ed959c373c2ff9e6f488aa5a14971aebe1f
      Author: Patrick McHardy <kaber@trash.net>
      Date:   Tue Feb 23 20:41:30 2010 +0100
      
      Support specifying the initial device flags when creating a device though
      rtnl_link. Devices allocated by rtnl_create_link() are marked as INITIALIZING
      in order to surpress netlink registration notifications. To complete setup,
      rtnl_configure_link() must be called, which performs the device flag changes
      and invokes the deferred notifiers if everything went well.
      
      Two examples:
      
      # add macvlan to eth0
      #
      $ ip link add link eth0 up allmulticast on type macvlan
      
      [LINK]11: macvlan0@eth0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
          link/ether 26:f8:84:02:f9:2a brd ff:ff:ff:ff:ff:ff
      [ROUTE]ff00::/8 dev macvlan0  table local  metric 256  mtu 1500 advmss 1440 hoplimit 0
      [ROUTE]fe80::/64 dev macvlan0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
      [LINK]11: macvlan0@eth0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500
          link/ether 26:f8:84:02:f9:2a
      [ADDR]11: macvlan0    inet6 fe80::24f8:84ff:fe02:f92a/64 scope link
             valid_lft forever preferred_lft forever
      [ROUTE]local fe80::24f8:84ff:fe02:f92a via :: dev lo  table local  proto none  metric 0  mtu 16436 advmss 16376 hoplimit 0
      [ROUTE]default via fe80::215:e9ff:fef0:10f8 dev macvlan0  proto kernel  metric 1024  mtu 1500 advmss 1440 hoplimit 0
      [NEIGH]fe80::215:e9ff:fef0:10f8 dev macvlan0 lladdr 00:15:e9:f0:10:f8 router STALE
      [ROUTE]2001:6f8:974::/64 dev macvlan0  proto kernel  metric 256  expires 0sec mtu 1500 advmss 1440 hoplimit 0
      [PREFIX]prefix 2001:6f8:974::/64 dev macvlan0 onlink autoconf valid 14400 preferred 131084
      [ADDR]11: macvlan0    inet6 2001:6f8:974:0:24f8:84ff:fe02:f92a/64 scope global dynamic
             valid_lft 86399sec preferred_lft 14399sec
      
      # add VLAN to eth1, eth1 is down
      #
      $ ip link add link eth1 up type vlan id 1000
      RTNETLINK answers: Network is down
      
      <no events>
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3729d502
    • Patrick McHardy's avatar
      dev: support deferring device flag change notifications · bd380811
      Patrick McHardy authored
      Split dev_change_flags() into two functions: __dev_change_flags() to
      perform the actual changes and __dev_notify_flags() to invoke netdevice
      notifiers. This will be used by rtnl_link to defer netlink notifications
      until the device has been fully configured.
      
      This changes ordering of some operations, in particular:
      
      - netlink notifications are sent after all changes have been performed.
        As a side effect this surpresses one unnecessary netlink message when
        the IFF_UP and other flags are changed simultaneously.
      
      - The NETDEV_UP/NETDEV_DOWN and NETDEV_CHANGE notifiers are invoked
        after all changes have been performed. Their relative is unchanged.
      
      - net_dmaengine_put() is invoked before the NETDEV_DOWN notifier instead
        of afterwards. This should not make any difference since both RX and TX
        are already shut down at this point.
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bd380811
    • Patrick McHardy's avatar
      rtnetlink: handle rtnl_link netlink notifications manually · a2835763
      Patrick McHardy authored
      In order to support specifying device flags during device creation,
      we must be able to roll back device registration in case setting the
      flags fails without sending any notifications related to the device
      to userspace.
      
      This patch changes rollback_registered_many() and register_netdevice()
      to manually send netlink notifications for devices not handled by
      rtnl_link and allows to defer notifications for devices handled by
      rtnl_link until setup is complete.
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a2835763