Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: net/bluetooth/l2cap_core.c
This commit is contained in:
@@ -530,7 +530,11 @@ static int vlan_dev_init(struct net_device *dev)
|
||||
(1<<__LINK_STATE_DORMANT))) |
|
||||
(1<<__LINK_STATE_PRESENT);
|
||||
|
||||
dev->hw_features = NETIF_F_ALL_TX_OFFLOADS;
|
||||
dev->hw_features = NETIF_F_ALL_CSUM | NETIF_F_SG |
|
||||
NETIF_F_FRAGLIST | NETIF_F_ALL_TSO |
|
||||
NETIF_F_HIGHDMA | NETIF_F_SCTP_CSUM |
|
||||
NETIF_F_ALL_FCOE;
|
||||
|
||||
dev->features |= real_dev->vlan_features | NETIF_F_LLTX;
|
||||
dev->gso_max_size = real_dev->gso_max_size;
|
||||
|
||||
|
||||
@@ -763,7 +763,8 @@ static void l2cap_conn_start(struct l2cap_conn *conn)
|
||||
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 {
|
||||
l2cap_state_change(chan, BT_CONFIG);
|
||||
@@ -2523,8 +2524,7 @@ static inline int l2cap_config_req(struct l2cap_conn *conn, struct l2cap_cmd_hdr
|
||||
|
||||
sk = chan->sk;
|
||||
|
||||
if ((bt_sk(sk)->defer_setup && chan->state != BT_CONNECT2) ||
|
||||
(!bt_sk(sk)->defer_setup && chan->state != BT_CONFIG)) {
|
||||
if (chan->state != BT_CONFIG && chan->state != BT_CONNECT2) {
|
||||
struct l2cap_cmd_rej_cid rej;
|
||||
|
||||
rej.reason = cpu_to_le16(L2CAP_REJ_INVALID_CID);
|
||||
@@ -4150,7 +4150,8 @@ static int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt)
|
||||
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 {
|
||||
l2cap_state_change(chan, BT_CONFIG);
|
||||
res = L2CAP_CR_SUCCESS;
|
||||
|
||||
@@ -36,16 +36,19 @@ int ceph_flags_to_mode(int flags)
|
||||
if ((flags & O_DIRECTORY) == O_DIRECTORY)
|
||||
return CEPH_FILE_MODE_PIN;
|
||||
#endif
|
||||
if ((flags & O_APPEND) == O_APPEND)
|
||||
flags |= O_WRONLY;
|
||||
|
||||
if ((flags & O_ACCMODE) == O_RDWR)
|
||||
mode = CEPH_FILE_MODE_RDWR;
|
||||
else if ((flags & O_ACCMODE) == O_WRONLY)
|
||||
switch (flags & O_ACCMODE) {
|
||||
case O_WRONLY:
|
||||
mode = CEPH_FILE_MODE_WR;
|
||||
else
|
||||
break;
|
||||
case O_RDONLY:
|
||||
mode = CEPH_FILE_MODE_RD;
|
||||
|
||||
break;
|
||||
case O_RDWR:
|
||||
case O_ACCMODE: /* this is what the VFS does */
|
||||
mode = CEPH_FILE_MODE_RDWR;
|
||||
break;
|
||||
}
|
||||
#ifdef O_LAZY
|
||||
if (flags & O_LAZY)
|
||||
mode |= CEPH_FILE_MODE_LAZY;
|
||||
|
||||
@@ -500,23 +500,20 @@ int sctp_packet_transmit(struct sctp_packet *packet)
|
||||
* Note: Adler-32 is no longer applicable, as has been replaced
|
||||
* by CRC32-C as described in <draft-ietf-tsvwg-sctpcsum-02.txt>.
|
||||
*/
|
||||
if (!sctp_checksum_disable &&
|
||||
!(dst->dev->features & (NETIF_F_NO_CSUM | NETIF_F_SCTP_CSUM))) {
|
||||
__u32 crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len);
|
||||
if (!sctp_checksum_disable) {
|
||||
if (!(dst->dev->features & NETIF_F_SCTP_CSUM)) {
|
||||
__u32 crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len);
|
||||
|
||||
/* 3) Put the resultant value into the checksum field in the
|
||||
* common header, and leave the rest of the bits unchanged.
|
||||
*/
|
||||
sh->checksum = sctp_end_cksum(crc32);
|
||||
} else {
|
||||
if (dst->dev->features & NETIF_F_SCTP_CSUM) {
|
||||
/* 3) Put the resultant value into the checksum field in the
|
||||
* common header, and leave the rest of the bits unchanged.
|
||||
*/
|
||||
sh->checksum = sctp_end_cksum(crc32);
|
||||
} else {
|
||||
/* no need to seed pseudo checksum for SCTP */
|
||||
nskb->ip_summed = CHECKSUM_PARTIAL;
|
||||
nskb->csum_start = (skb_transport_header(nskb) -
|
||||
nskb->head);
|
||||
nskb->csum_offset = offsetof(struct sctphdr, checksum);
|
||||
} else {
|
||||
nskb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user