diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-13 16:33:26 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-13 16:33:26 -0500 |
commit | e3aa91a7cb21a595169b20c64f63ca39a91a0c43 (patch) | |
tree | 6a92a2e595629949a45336c770c2408abba8444d /net | |
parent | 78a45c6f067824cf5d0a9fedea7339ac2e28603c (diff) | |
parent | 8606813a6c8997fd3bb805186056d78670eb86ca (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto update from Herbert Xu:
- The crypto API is now documented :)
- Disallow arbitrary module loading through crypto API.
- Allow get request with empty driver name through crypto_user.
- Allow speed testing of arbitrary hash functions.
- Add caam support for ctr(aes), gcm(aes) and their derivatives.
- nx now supports concurrent hashing properly.
- Add sahara support for SHA1/256.
- Add ARM64 version of CRC32.
- Misc fixes.
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (77 commits)
crypto: tcrypt - Allow speed testing of arbitrary hash functions
crypto: af_alg - add user space interface for AEAD
crypto: qat - fix problem with coalescing enable logic
crypto: sahara - add support for SHA1/256
crypto: sahara - replace tasklets with kthread
crypto: sahara - add support for i.MX53
crypto: sahara - fix spinlock initialization
crypto: arm - replace memset by memzero_explicit
crypto: powerpc - replace memset by memzero_explicit
crypto: sha - replace memset by memzero_explicit
crypto: sparc - replace memset by memzero_explicit
crypto: algif_skcipher - initialize upon init request
crypto: algif_skcipher - removed unneeded code
crypto: algif_skcipher - Fixed blocking recvmsg
crypto: drbg - use memzero_explicit() for clearing sensitive data
crypto: drbg - use MODULE_ALIAS_CRYPTO
crypto: include crypto- module prefix in template
crypto: user - add MODULE_ALIAS
crypto: sha-mb - remove a bogus NULL check
crytpo: qat - Fix 64 bytes requests
...
Diffstat (limited to 'net')
-rw-r--r-- | net/core/sock.c | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/net/core/sock.c b/net/core/sock.c index 9a56b2000c3f..1c7a33db1314 100644 --- a/net/core/sock.c +++ b/net/core/sock.c | |||
@@ -1731,18 +1731,34 @@ void *sock_kmalloc(struct sock *sk, int size, gfp_t priority) | |||
1731 | } | 1731 | } |
1732 | EXPORT_SYMBOL(sock_kmalloc); | 1732 | EXPORT_SYMBOL(sock_kmalloc); |
1733 | 1733 | ||
1734 | /* | 1734 | /* Free an option memory block. Note, we actually want the inline |
1735 | * Free an option memory block. | 1735 | * here as this allows gcc to detect the nullify and fold away the |
1736 | * condition entirely. | ||
1736 | */ | 1737 | */ |
1737 | void sock_kfree_s(struct sock *sk, void *mem, int size) | 1738 | static inline void __sock_kfree_s(struct sock *sk, void *mem, int size, |
1739 | const bool nullify) | ||
1738 | { | 1740 | { |
1739 | if (WARN_ON_ONCE(!mem)) | 1741 | if (WARN_ON_ONCE(!mem)) |
1740 | return; | 1742 | return; |
1741 | kfree(mem); | 1743 | if (nullify) |
1744 | kzfree(mem); | ||
1745 | else | ||
1746 | kfree(mem); | ||
1742 | atomic_sub(size, &sk->sk_omem_alloc); | 1747 | atomic_sub(size, &sk->sk_omem_alloc); |
1743 | } | 1748 | } |
1749 | |||
1750 | void sock_kfree_s(struct sock *sk, void *mem, int size) | ||
1751 | { | ||
1752 | __sock_kfree_s(sk, mem, size, false); | ||
1753 | } | ||
1744 | EXPORT_SYMBOL(sock_kfree_s); | 1754 | EXPORT_SYMBOL(sock_kfree_s); |
1745 | 1755 | ||
1756 | void sock_kzfree_s(struct sock *sk, void *mem, int size) | ||
1757 | { | ||
1758 | __sock_kfree_s(sk, mem, size, true); | ||
1759 | } | ||
1760 | EXPORT_SYMBOL(sock_kzfree_s); | ||
1761 | |||
1746 | /* It is almost wait_for_tcp_memory minus release_sock/lock_sock. | 1762 | /* It is almost wait_for_tcp_memory minus release_sock/lock_sock. |
1747 | I think, these locks should be removed for datagram sockets. | 1763 | I think, these locks should be removed for datagram sockets. |
1748 | */ | 1764 | */ |