mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
fix RCU-callback-after-kmem_cache_destroy problem in sl[aou]b
Jesper noted that kmem_cache_destroy() invokes synchronize_rcu() rather than rcu_barrier() in the SLAB_DESTROY_BY_RCU case, which could result in RCU callbacks accessing a kmem_cache after it had been destroyed. Cc: <[email protected]> Acked-by: Matt Mackall <[email protected]> Reported-by: Jesper Dangaard Brouer <[email protected]> Signed-off-by: Paul E. McKenney <[email protected]> Signed-off-by: Pekka Enberg <[email protected]>
This commit is contained in:
parent
28d0325ce6
commit
7ed9f7e5db
3 changed files with 5 additions and 1 deletions
|
|
@ -595,6 +595,8 @@ EXPORT_SYMBOL(kmem_cache_create);
|
|||
void kmem_cache_destroy(struct kmem_cache *c)
|
||||
{
|
||||
kmemleak_free(c);
|
||||
if (c->flags & SLAB_DESTROY_BY_RCU)
|
||||
rcu_barrier();
|
||||
slob_free(c, sizeof(struct kmem_cache));
|
||||
}
|
||||
EXPORT_SYMBOL(kmem_cache_destroy);
|
||||
|
|
|
|||
Loading…
Reference in a new issue