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 ...
This commit is contained in:
@@ -1731,18 +1731,34 @@ void *sock_kmalloc(struct sock *sk, int size, gfp_t priority)
|
||||
}
|
||||
EXPORT_SYMBOL(sock_kmalloc);
|
||||
|
||||
/*
|
||||
* Free an option memory block.
|
||||
/* Free an option memory block. Note, we actually want the inline
|
||||
* here as this allows gcc to detect the nullify and fold away the
|
||||
* condition entirely.
|
||||
*/
|
||||
void sock_kfree_s(struct sock *sk, void *mem, int size)
|
||||
static inline void __sock_kfree_s(struct sock *sk, void *mem, int size,
|
||||
const bool nullify)
|
||||
{
|
||||
if (WARN_ON_ONCE(!mem))
|
||||
return;
|
||||
kfree(mem);
|
||||
if (nullify)
|
||||
kzfree(mem);
|
||||
else
|
||||
kfree(mem);
|
||||
atomic_sub(size, &sk->sk_omem_alloc);
|
||||
}
|
||||
|
||||
void sock_kfree_s(struct sock *sk, void *mem, int size)
|
||||
{
|
||||
__sock_kfree_s(sk, mem, size, false);
|
||||
}
|
||||
EXPORT_SYMBOL(sock_kfree_s);
|
||||
|
||||
void sock_kzfree_s(struct sock *sk, void *mem, int size)
|
||||
{
|
||||
__sock_kfree_s(sk, mem, size, true);
|
||||
}
|
||||
EXPORT_SYMBOL(sock_kzfree_s);
|
||||
|
||||
/* It is almost wait_for_tcp_memory minus release_sock/lock_sock.
|
||||
I think, these locks should be removed for datagram sockets.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user