diff options
Diffstat (limited to 'net/dccp/proto.c')
| -rw-r--r-- | net/dccp/proto.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/dccp/proto.c b/net/dccp/proto.c index 671cd1413d59..0ef7061920c0 100644 --- a/net/dccp/proto.c +++ b/net/dccp/proto.c | |||
| @@ -835,6 +835,8 @@ verify_sock_status: | |||
| 835 | len = -EFAULT; | 835 | len = -EFAULT; |
| 836 | break; | 836 | break; |
| 837 | } | 837 | } |
| 838 | if (flags & MSG_TRUNC) | ||
| 839 | len = skb->len; | ||
| 838 | found_fin_ok: | 840 | found_fin_ok: |
| 839 | if (!(flags & MSG_PEEK)) | 841 | if (!(flags & MSG_PEEK)) |
| 840 | sk_eat_skb(sk, skb, 0); | 842 | sk_eat_skb(sk, skb, 0); |
| @@ -1003,12 +1005,13 @@ EXPORT_SYMBOL_GPL(dccp_shutdown); | |||
| 1003 | 1005 | ||
| 1004 | static inline int dccp_mib_init(void) | 1006 | static inline int dccp_mib_init(void) |
| 1005 | { | 1007 | { |
| 1006 | return snmp_mib_init((void**)dccp_statistics, sizeof(struct dccp_mib)); | 1008 | return snmp_mib_init((void __percpu **)dccp_statistics, |
| 1009 | sizeof(struct dccp_mib)); | ||
| 1007 | } | 1010 | } |
| 1008 | 1011 | ||
| 1009 | static inline void dccp_mib_exit(void) | 1012 | static inline void dccp_mib_exit(void) |
| 1010 | { | 1013 | { |
| 1011 | snmp_mib_free((void**)dccp_statistics); | 1014 | snmp_mib_free((void __percpu **)dccp_statistics); |
| 1012 | } | 1015 | } |
| 1013 | 1016 | ||
| 1014 | static int thash_entries; | 1017 | static int thash_entries; |
