From: Stephen Rothwell Date: Mon, 7 Nov 2011 00:47:15 +0000 (+1100) Subject: Merge remote-tracking branch 'bluetooth/master' X-Git-Tag: next-20111107~32 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=86ae1a82e10965b3b1445ae907fc87c0994e5cac;p=karo-tx-linux.git Merge remote-tracking branch 'bluetooth/master' Conflicts: include/net/bluetooth/bluetooth.h net/bluetooth/l2cap_sock.c --- 86ae1a82e10965b3b1445ae907fc87c0994e5cac diff --cc include/net/bluetooth/bluetooth.h index e86af08293a8,38cd3dab7f1d..835f3b229b84 --- a/include/net/bluetooth/bluetooth.h +++ b/include/net/bluetooth/bluetooth.h @@@ -77,7 -77,34 +77,34 @@@ struct bt_power #define BT_POWER_FORCE_ACTIVE_OFF 0 #define BT_POWER_FORCE_ACTIVE_ON 1 + #define BT_CHANNEL_POLICY 10 + + /* BR/EDR only (default policy) + * AMP controllers cannot be used. + * Channel move requests from the remote device are denied. + * If the L2CAP channel is currently using AMP, move the channel to BR/EDR. + */ + #define BT_CHANNEL_POLICY_BREDR_ONLY 0 + + /* BR/EDR Preferred + * Allow use of AMP controllers. + * If the L2CAP channel is currently on AMP, move it to BR/EDR. + * Channel move requests from the remote device are allowed. + */ + #define BT_CHANNEL_POLICY_BREDR_PREFERRED 1 + + /* AMP Preferred + * Allow use of AMP controllers + * If the L2CAP channel is currently on BR/EDR and AMP controller + * resources are available, initiate a channel move to AMP. + * Channel move requests from the remote device are allowed. + * If the L2CAP socket has not been connected yet, try to create + * and configure the channel directly on an AMP controller rather + * than BR/EDR. + */ + #define BT_CHANNEL_POLICY_AMP_PREFERRED 2 + -__attribute__((format (printf, 2, 3))) +__printf(2, 3) int bt_printk(const char *level, const char *fmt, ...); #define BT_INFO(fmt, arg...) bt_printk(KERN_INFO, pr_fmt(fmt), ##arg) diff --cc net/bluetooth/l2cap_sock.c index e8292369cdcf,664762e89ecf..567b585d9805 --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c @@@ -930,13 -978,9 +980,11 @@@ static void l2cap_sock_init(struct soc chan->fcs = pchan->fcs; chan->max_tx = pchan->max_tx; chan->tx_win = pchan->tx_win; + chan->tx_win_max = pchan->tx_win_max; chan->sec_level = pchan->sec_level; - chan->role_switch = pchan->role_switch; - chan->force_reliable = pchan->force_reliable; - chan->flushable = pchan->flushable; - chan->force_active = pchan->force_active; + chan->flags = pchan->flags; + + security_sk_clone(parent, sk); } else { switch (sk->sk_type) {