Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Thu, 21 Jul 2011 20:38:42 +0000 (13:38 -0700)]
Conflicts:
net/bluetooth/l2cap_core.c

1  2 
drivers/net/bonding/bond_main.c
drivers/net/gianfar.c
drivers/net/gianfar.h
drivers/net/r6040.c
include/linux/netdevice.h
net/8021q/vlan_dev.c
net/bluetooth/l2cap_core.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -763,10 -620,11 +763,11 @@@ static void l2cap_conn_start(struct l2c
                                        struct sock *parent = bt_sk(sk)->parent;
                                        rsp.result = cpu_to_le16(L2CAP_CR_PEND);
                                        rsp.status = cpu_to_le16(L2CAP_CS_AUTHOR_PEND);
-                                       parent->sk_data_ready(parent, 0);
+                                       if (parent)
+                                               parent->sk_data_ready(parent, 0);
  
                                } else {
 -                                      sk->sk_state = BT_CONFIG;
 +                                      l2cap_state_change(chan, BT_CONFIG);
                                        rsp.result = cpu_to_le16(L2CAP_CR_SUCCESS);
                                        rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
                                }
@@@ -2523,14 -2324,10 +2524,13 @@@ static inline int l2cap_config_req(stru
  
        sk = chan->sk;
  
-       if ((bt_sk(sk)->defer_setup && chan->state != BT_CONNECT2) ||
-                (!bt_sk(sk)->defer_setup && chan->state != BT_CONFIG)) {
 -      if (sk->sk_state != BT_CONFIG && sk->sk_state != BT_CONNECT2) {
 -              struct l2cap_cmd_rej rej;
++      if (chan->state != BT_CONFIG && chan->state != BT_CONNECT2) {
 +              struct l2cap_cmd_rej_cid rej;
 +
 +              rej.reason = cpu_to_le16(L2CAP_REJ_INVALID_CID);
 +              rej.scid = cpu_to_le16(chan->scid);
 +              rej.dcid = cpu_to_le16(chan->dcid);
  
 -              rej.reason = cpu_to_le16(0x0002);
                l2cap_send_cmd(conn, cmd->ident, L2CAP_COMMAND_REJ,
                                sizeof(rej), &rej);
                goto unlock;
@@@ -4150,9 -4010,10 +4150,10 @@@ static int l2cap_security_cfm(struct hc
                                        struct sock *parent = bt_sk(sk)->parent;
                                        res = L2CAP_CR_PEND;
                                        stat = L2CAP_CS_AUTHOR_PEND;
-                                       parent->sk_data_ready(parent, 0);
+                                       if (parent)
+                                               parent->sk_data_ready(parent, 0);
                                } else {
 -                                      sk->sk_state = BT_CONFIG;
 +                                      l2cap_state_change(chan, BT_CONFIG);
                                        res = L2CAP_CR_SUCCESS;
                                        stat = L2CAP_CS_NO_INFO;
                                }