aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-13 16:33:26 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-13 16:33:26 -0500
commite3aa91a7cb21a595169b20c64f63ca39a91a0c43 (patch)
tree6a92a2e595629949a45336c770c2408abba8444d /net
parent78a45c6f067824cf5d0a9fedea7339ac2e28603c (diff)
parent8606813a6c8997fd3bb805186056d78670eb86ca (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.c24
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}
1732EXPORT_SYMBOL(sock_kmalloc); 1732EXPORT_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 */
1737void sock_kfree_s(struct sock *sk, void *mem, int size) 1738static 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
1750void sock_kfree_s(struct sock *sk, void *mem, int size)
1751{
1752 __sock_kfree_s(sk, mem, size, false);
1753}
1744EXPORT_SYMBOL(sock_kfree_s); 1754EXPORT_SYMBOL(sock_kfree_s);
1745 1755
1756void sock_kzfree_s(struct sock *sk, void *mem, int size)
1757{
1758 __sock_kfree_s(sk, mem, size, true);
1759}
1760EXPORT_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 */