diff options
| author | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2011-12-20 17:01:18 -0500 |
|---|---|---|
| committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2011-12-20 17:01:18 -0500 |
| commit | cb85f123cd2393581bcffad335bfc6bcdd58569c (patch) | |
| tree | 7b0de48b2a13ca96251c02245ab906f7efa3ac18 /net | |
| parent | b79d2ff98caee60c07a7598aba3b26acd1655a99 (diff) | |
| parent | caca6a03d365883564885f2c1da3e88dcf65d139 (diff) | |
Merge commit 'v3.2-rc3' into stable/for-linus-3.3
* commit 'v3.2-rc3': (412 commits)
Linux 3.2-rc3
virtio-pci: make reset operation safer
virtio-mmio: Correct the name of the guest features selector
virtio: add HAS_IOMEM dependency to MMIO platform bus driver
eCryptfs: Extend array bounds for all filename chars
eCryptfs: Flush file in vma close
eCryptfs: Prevent file create race condition
regulator: TPS65910: Fix VDD1/2 voltage selector count
i2c: Make i2cdev_notifier_call static
i2c: Delete ANY_I2C_BUS
i2c: Fix device name for 10-bit slave address
i2c-algo-bit: Generate correct i2c address sequence for 10-bit target
drm: integer overflow in drm_mode_dirtyfb_ioctl()
Revert "of/irq: of_irq_find_parent: check for parent equal to child"
drivers/gpu/vga/vgaarb.c: add missing kfree
drm/radeon/kms/atom: unify i2c gpio table handling
drm/radeon/kms: fix up gpio i2c mask bits for r4xx for real
ttm: Don't return the bo reserved on error path
mount_subtree() pointless use-after-free
iio: fix a leak due to improper use of anon_inode_getfd()
...
Diffstat (limited to 'net')
| -rw-r--r-- | net/bluetooth/hci_conn.c | 2 | ||||
| -rw-r--r-- | net/bluetooth/l2cap_core.c | 16 | ||||
| -rw-r--r-- | net/bridge/br_multicast.c | 6 | ||||
| -rw-r--r-- | net/ceph/osd_client.c | 2 | ||||
| -rw-r--r-- | net/ipv4/ah4.c | 8 | ||||
| -rw-r--r-- | net/ipv4/inet_diag.c | 4 | ||||
| -rw-r--r-- | net/ipv4/ip_options.c | 1 | ||||
| -rw-r--r-- | net/ipv4/ping.c | 2 | ||||
| -rw-r--r-- | net/ipv4/route.c | 120 | ||||
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 1 | ||||
| -rw-r--r-- | net/ipv4/tcp_output.c | 2 | ||||
| -rw-r--r-- | net/ipv6/ah6.c | 8 | ||||
| -rw-r--r-- | net/ipv6/ip6_input.c | 8 | ||||
| -rw-r--r-- | net/ipv6/ip6_tunnel.c | 8 | ||||
| -rw-r--r-- | net/l2tp/l2tp_core.c | 8 | ||||
| -rw-r--r-- | net/mac80211/mlme.c | 21 | ||||
| -rw-r--r-- | net/mac80211/rx.c | 9 | ||||
| -rw-r--r-- | net/mac80211/sta_info.c | 8 | ||||
| -rw-r--r-- | net/mac80211/util.c | 4 | ||||
| -rw-r--r-- | net/rds/Kconfig | 1 | ||||
| -rw-r--r-- | net/sunrpc/xprtsock.c | 4 | ||||
| -rw-r--r-- | net/wireless/nl80211.c | 9 | ||||
| -rw-r--r-- | net/wireless/reg.c | 3 | ||||
| -rw-r--r-- | net/wireless/scan.c | 13 |
24 files changed, 163 insertions, 105 deletions
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c index c1c597e3e198..e0af7237cd92 100644 --- a/net/bluetooth/hci_conn.c +++ b/net/bluetooth/hci_conn.c | |||
| @@ -673,7 +673,7 @@ int hci_conn_security(struct hci_conn *conn, __u8 sec_level, __u8 auth_type) | |||
| 673 | goto encrypt; | 673 | goto encrypt; |
| 674 | 674 | ||
| 675 | auth: | 675 | auth: |
| 676 | if (test_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend)) | 676 | if (test_and_set_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend)) |
| 677 | return 0; | 677 | return 0; |
| 678 | 678 | ||
| 679 | if (!hci_conn_auth(conn, sec_level, auth_type)) | 679 | if (!hci_conn_auth(conn, sec_level, auth_type)) |
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c index 8cd12917733b..5ea94a1eecf2 100644 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c | |||
| @@ -251,7 +251,7 @@ static void l2cap_chan_timeout(unsigned long arg) | |||
| 251 | 251 | ||
| 252 | if (sock_owned_by_user(sk)) { | 252 | if (sock_owned_by_user(sk)) { |
| 253 | /* sk is owned by user. Try again later */ | 253 | /* sk is owned by user. Try again later */ |
| 254 | __set_chan_timer(chan, HZ / 5); | 254 | __set_chan_timer(chan, L2CAP_DISC_TIMEOUT); |
| 255 | bh_unlock_sock(sk); | 255 | bh_unlock_sock(sk); |
| 256 | chan_put(chan); | 256 | chan_put(chan); |
| 257 | return; | 257 | return; |
| @@ -2488,7 +2488,7 @@ static inline int l2cap_connect_rsp(struct l2cap_conn *conn, struct l2cap_cmd_hd | |||
| 2488 | if (sock_owned_by_user(sk)) { | 2488 | if (sock_owned_by_user(sk)) { |
| 2489 | l2cap_state_change(chan, BT_DISCONN); | 2489 | l2cap_state_change(chan, BT_DISCONN); |
| 2490 | __clear_chan_timer(chan); | 2490 | __clear_chan_timer(chan); |
| 2491 | __set_chan_timer(chan, HZ / 5); | 2491 | __set_chan_timer(chan, L2CAP_DISC_TIMEOUT); |
| 2492 | break; | 2492 | break; |
| 2493 | } | 2493 | } |
| 2494 | 2494 | ||
| @@ -2661,7 +2661,7 @@ static inline int l2cap_config_rsp(struct l2cap_conn *conn, struct l2cap_cmd_hdr | |||
| 2661 | 2661 | ||
| 2662 | default: | 2662 | default: |
| 2663 | sk->sk_err = ECONNRESET; | 2663 | sk->sk_err = ECONNRESET; |
| 2664 | __set_chan_timer(chan, HZ * 5); | 2664 | __set_chan_timer(chan, L2CAP_DISC_REJ_TIMEOUT); |
| 2665 | l2cap_send_disconn_req(conn, chan, ECONNRESET); | 2665 | l2cap_send_disconn_req(conn, chan, ECONNRESET); |
| 2666 | goto done; | 2666 | goto done; |
| 2667 | } | 2667 | } |
| @@ -2718,7 +2718,7 @@ static inline int l2cap_disconnect_req(struct l2cap_conn *conn, struct l2cap_cmd | |||
| 2718 | if (sock_owned_by_user(sk)) { | 2718 | if (sock_owned_by_user(sk)) { |
| 2719 | l2cap_state_change(chan, BT_DISCONN); | 2719 | l2cap_state_change(chan, BT_DISCONN); |
| 2720 | __clear_chan_timer(chan); | 2720 | __clear_chan_timer(chan); |
| 2721 | __set_chan_timer(chan, HZ / 5); | 2721 | __set_chan_timer(chan, L2CAP_DISC_TIMEOUT); |
| 2722 | bh_unlock_sock(sk); | 2722 | bh_unlock_sock(sk); |
| 2723 | return 0; | 2723 | return 0; |
| 2724 | } | 2724 | } |
| @@ -2752,7 +2752,7 @@ static inline int l2cap_disconnect_rsp(struct l2cap_conn *conn, struct l2cap_cmd | |||
| 2752 | if (sock_owned_by_user(sk)) { | 2752 | if (sock_owned_by_user(sk)) { |
| 2753 | l2cap_state_change(chan,BT_DISCONN); | 2753 | l2cap_state_change(chan,BT_DISCONN); |
| 2754 | __clear_chan_timer(chan); | 2754 | __clear_chan_timer(chan); |
| 2755 | __set_chan_timer(chan, HZ / 5); | 2755 | __set_chan_timer(chan, L2CAP_DISC_TIMEOUT); |
| 2756 | bh_unlock_sock(sk); | 2756 | bh_unlock_sock(sk); |
| 2757 | return 0; | 2757 | return 0; |
| 2758 | } | 2758 | } |
| @@ -3998,7 +3998,7 @@ static inline void l2cap_check_encryption(struct l2cap_chan *chan, u8 encrypt) | |||
| 3998 | if (encrypt == 0x00) { | 3998 | if (encrypt == 0x00) { |
| 3999 | if (chan->sec_level == BT_SECURITY_MEDIUM) { | 3999 | if (chan->sec_level == BT_SECURITY_MEDIUM) { |
| 4000 | __clear_chan_timer(chan); | 4000 | __clear_chan_timer(chan); |
| 4001 | __set_chan_timer(chan, HZ * 5); | 4001 | __set_chan_timer(chan, L2CAP_ENC_TIMEOUT); |
| 4002 | } else if (chan->sec_level == BT_SECURITY_HIGH) | 4002 | } else if (chan->sec_level == BT_SECURITY_HIGH) |
| 4003 | l2cap_chan_close(chan, ECONNREFUSED); | 4003 | l2cap_chan_close(chan, ECONNREFUSED); |
| 4004 | } else { | 4004 | } else { |
| @@ -4066,7 +4066,7 @@ static int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt) | |||
| 4066 | L2CAP_CONN_REQ, sizeof(req), &req); | 4066 | L2CAP_CONN_REQ, sizeof(req), &req); |
| 4067 | } else { | 4067 | } else { |
| 4068 | __clear_chan_timer(chan); | 4068 | __clear_chan_timer(chan); |
| 4069 | __set_chan_timer(chan, HZ / 10); | 4069 | __set_chan_timer(chan, L2CAP_DISC_TIMEOUT); |
| 4070 | } | 4070 | } |
| 4071 | } else if (chan->state == BT_CONNECT2) { | 4071 | } else if (chan->state == BT_CONNECT2) { |
| 4072 | struct l2cap_conn_rsp rsp; | 4072 | struct l2cap_conn_rsp rsp; |
| @@ -4086,7 +4086,7 @@ static int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt) | |||
| 4086 | } | 4086 | } |
| 4087 | } else { | 4087 | } else { |
| 4088 | l2cap_state_change(chan, BT_DISCONN); | 4088 | l2cap_state_change(chan, BT_DISCONN); |
| 4089 | __set_chan_timer(chan, HZ / 10); | 4089 | __set_chan_timer(chan, L2CAP_DISC_TIMEOUT); |
| 4090 | res = L2CAP_CR_SEC_BLOCK; | 4090 | res = L2CAP_CR_SEC_BLOCK; |
| 4091 | stat = L2CAP_CS_NO_INFO; | 4091 | stat = L2CAP_CS_NO_INFO; |
| 4092 | } | 4092 | } |
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 995cbe0ac0b2..a5f4e5769809 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c | |||
| @@ -1501,6 +1501,8 @@ static int br_multicast_ipv6_rcv(struct net_bridge *br, | |||
| 1501 | 1501 | ||
| 1502 | __skb_pull(skb2, offset); | 1502 | __skb_pull(skb2, offset); |
| 1503 | skb_reset_transport_header(skb2); | 1503 | skb_reset_transport_header(skb2); |
| 1504 | skb_postpull_rcsum(skb2, skb_network_header(skb2), | ||
| 1505 | skb_network_header_len(skb2)); | ||
| 1504 | 1506 | ||
| 1505 | icmp6_type = icmp6_hdr(skb2)->icmp6_type; | 1507 | icmp6_type = icmp6_hdr(skb2)->icmp6_type; |
| 1506 | 1508 | ||
| @@ -1770,7 +1772,7 @@ int br_multicast_toggle(struct net_bridge *br, unsigned long val) | |||
| 1770 | int err = 0; | 1772 | int err = 0; |
| 1771 | struct net_bridge_mdb_htable *mdb; | 1773 | struct net_bridge_mdb_htable *mdb; |
| 1772 | 1774 | ||
| 1773 | spin_lock(&br->multicast_lock); | 1775 | spin_lock_bh(&br->multicast_lock); |
| 1774 | if (br->multicast_disabled == !val) | 1776 | if (br->multicast_disabled == !val) |
| 1775 | goto unlock; | 1777 | goto unlock; |
| 1776 | 1778 | ||
| @@ -1806,7 +1808,7 @@ rollback: | |||
| 1806 | } | 1808 | } |
| 1807 | 1809 | ||
| 1808 | unlock: | 1810 | unlock: |
| 1809 | spin_unlock(&br->multicast_lock); | 1811 | spin_unlock_bh(&br->multicast_lock); |
| 1810 | 1812 | ||
| 1811 | return err; | 1813 | return err; |
| 1812 | } | 1814 | } |
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c index 733e46008b89..f4f3f58f5234 100644 --- a/net/ceph/osd_client.c +++ b/net/ceph/osd_client.c | |||
| @@ -244,7 +244,7 @@ struct ceph_osd_request *ceph_osdc_alloc_request(struct ceph_osd_client *osdc, | |||
| 244 | ceph_pagelist_init(req->r_trail); | 244 | ceph_pagelist_init(req->r_trail); |
| 245 | } | 245 | } |
| 246 | /* create request message; allow space for oid */ | 246 | /* create request message; allow space for oid */ |
