diff options
Diffstat (limited to 'net/xfrm')
| -rw-r--r-- | net/xfrm/xfrm_ipcomp.c | 1 | ||||
| -rw-r--r-- | net/xfrm/xfrm_user.c | 11 |
2 files changed, 9 insertions, 3 deletions
diff --git a/net/xfrm/xfrm_ipcomp.c b/net/xfrm/xfrm_ipcomp.c index c609a4b98e15..42cd18391f46 100644 --- a/net/xfrm/xfrm_ipcomp.c +++ b/net/xfrm/xfrm_ipcomp.c | |||
| @@ -63,7 +63,6 @@ static int ipcomp_decompress(struct xfrm_state *x, struct sk_buff *skb) | |||
| 63 | if (len > skb_tailroom(skb)) | 63 | if (len > skb_tailroom(skb)) |
| 64 | len = skb_tailroom(skb); | 64 | len = skb_tailroom(skb); |
| 65 | 65 | ||
| 66 | skb->truesize += len; | ||
| 67 | __skb_put(skb, len); | 66 | __skb_put(skb, len); |
| 68 | 67 | ||
| 69 | len += plen; | 68 | len += plen; |
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c index b95a2d64eb59..7877e7975dae 100644 --- a/net/xfrm/xfrm_user.c +++ b/net/xfrm/xfrm_user.c | |||
| @@ -1914,10 +1914,17 @@ static int xfrm_send_migrate(struct xfrm_selector *sel, u8 dir, u8 type, | |||
| 1914 | } | 1914 | } |
| 1915 | #endif | 1915 | #endif |
| 1916 | 1916 | ||
| 1917 | /* For the xfrm_usersa_info cases we have to work around some 32-bit vs. | ||
| 1918 | * 64-bit compatability issues. On 32-bit the structure is 220 bytes, but | ||
| 1919 | * for 64-bit it gets padded out to 224 bytes. Those bytes are just | ||
| 1920 | * padding and don't have any content we care about. Therefore as long | ||
| 1921 | * as we have enough bytes for the content we can make both cases work. | ||
| 1922 | */ | ||
| 1923 | |||
| 1917 | #define XMSGSIZE(type) sizeof(struct type) | 1924 | #define XMSGSIZE(type) sizeof(struct type) |
| 1918 | 1925 | ||
| 1919 | static const int xfrm_msg_min[XFRM_NR_MSGTYPES] = { | 1926 | static const int xfrm_msg_min[XFRM_NR_MSGTYPES] = { |
| 1920 | [XFRM_MSG_NEWSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_info), | 1927 | [XFRM_MSG_NEWSA - XFRM_MSG_BASE] = 220, /* see above */ |
| 1921 | [XFRM_MSG_DELSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_id), | 1928 | [XFRM_MSG_DELSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_id), |
| 1922 | [XFRM_MSG_GETSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_id), | 1929 | [XFRM_MSG_GETSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_id), |
| 1923 | [XFRM_MSG_NEWPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_info), | 1930 | [XFRM_MSG_NEWPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_info), |
| @@ -1927,7 +1934,7 @@ static const int xfrm_msg_min[XFRM_NR_MSGTYPES] = { | |||
| 1927 | [XFRM_MSG_ACQUIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_acquire), | 1934 | [XFRM_MSG_ACQUIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_acquire), |
| 1928 | [XFRM_MSG_EXPIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_expire), | 1935 | [XFRM_MSG_EXPIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_expire), |
| 1929 | [XFRM_MSG_UPDPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_info), | 1936 | [XFRM_MSG_UPDPOLICY - XFRM_MSG_BASE] = XMSGSIZE(xfrm_userpolicy_info), |
| 1930 | [XFRM_MSG_UPDSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_info), | 1937 | [XFRM_MSG_UPDSA - XFRM_MSG_BASE] = 220, /* see above */ |
| 1931 | [XFRM_MSG_POLEXPIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_polexpire), | 1938 | [XFRM_MSG_POLEXPIRE - XFRM_MSG_BASE] = XMSGSIZE(xfrm_user_polexpire), |
| 1932 | [XFRM_MSG_FLUSHSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_flush), | 1939 | [XFRM_MSG_FLUSHSA - XFRM_MSG_BASE] = XMSGSIZE(xfrm_usersa_flush), |
| 1933 | [XFRM_MSG_FLUSHPOLICY - XFRM_MSG_BASE] = 0, | 1940 | [XFRM_MSG_FLUSHPOLICY - XFRM_MSG_BASE] = 0, |
