diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-05-15 10:38:37 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-05-15 10:38:37 -0700 |
| commit | fd6b56615696c2addca7b43c862b21a9a386c116 (patch) | |
| tree | e3cceceed21b32d89f2f1d3ae903d66b88c60c4f /mm | |
| parent | 70eda68668d1476b459b64e69b8f36659fa9dfa8 (diff) | |
| parent | d1fa83ecac31093a550534a79a33bc7f4ba8fc10 (diff) | |
| download | linux-next-history-fd6b56615696c2addca7b43c862b21a9a386c116.tar.gz | |
Merge tag 'v7.1-p4' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fixes from Herbert Xu:
- Fix potential dead-lock in rhashtable when used by xattr
- Avoid calling kvfree on atomic path in rhashtable
* tag 'v7.1-p4' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
rhashtable: Add bucket_table_free_atomic() helper
mm/slab: Add kvfree_atomic() helper
rhashtable: drop ht->mutex in rhashtable_free_and_destroy()
Diffstat (limited to 'mm')
| -rw-r--r-- | mm/slub.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/mm/slub.c b/mm/slub.c index 0baa906f39ab8..8f90045367296 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -6883,6 +6883,22 @@ void kvfree(const void *addr) EXPORT_SYMBOL(kvfree); /** + * kvfree_atomic() - Free memory. + * @addr: Pointer to allocated memory. + * + * Same as kvfree(), but uses vfree_atomic() for vmalloc + * backed memory. Must not be called from NMI context. + */ +void kvfree_atomic(const void *addr) +{ + if (is_vmalloc_addr(addr)) + vfree_atomic(addr); + else + kfree(addr); +} +EXPORT_SYMBOL(kvfree_atomic); + +/** * kvfree_sensitive - Free a data object containing sensitive information. * @addr: address of the data object to be freed. * @len: length of the data object. |
