We have properly typed page->rcu_head, no need to cast page->lru.

Signed-off-by: Kirill A. Shutemov <kirill.shute...@linux.intel.com>
Reviewed-by: Andrea Arcangeli <aarca...@redhat.com>
Cc: Christoph Lameter <c...@linux.com>
---
 mm/slab.c | 17 +++--------------
 mm/slub.c |  5 +----
 2 files changed, 4 insertions(+), 18 deletions(-)

diff --git a/mm/slab.c b/mm/slab.c
index c77ebe6cc87c..90ba9170e0c3 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -1888,21 +1888,10 @@ static void slab_destroy(struct kmem_cache *cachep, 
struct page *page)
 
        freelist = page->freelist;
        slab_destroy_debugcheck(cachep, page);
-       if (unlikely(cachep->flags & SLAB_DESTROY_BY_RCU)) {
-               struct rcu_head *head;
-
-               /*
-                * RCU free overloads the RCU head over the LRU.
-                * slab_page has been overloeaded over the LRU,
-                * however it is not used from now on so that
-                * we can use it safely.
-                */
-               head = (void *)&page->rcu_head;
-               call_rcu(head, kmem_rcu_free);
-
-       } else {
+       if (unlikely(cachep->flags & SLAB_DESTROY_BY_RCU))
+               call_rcu(&page->rcu_head, kmem_rcu_free);
+       else
                kmem_freepages(cachep, page);
-       }
 
        /*
         * From now on, we don't use freelist
diff --git a/mm/slub.c b/mm/slub.c
index f614b5dc396b..6b6e771df1c7 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1507,10 +1507,7 @@ static void free_slab(struct kmem_cache *s, struct page 
*page)
                        VM_BUG_ON(s->reserved != sizeof(*head));
                        head = page_address(page) + offset;
                } else {
-                       /*
-                        * RCU free overloads the RCU head over the LRU
-                        */
-                       head = (void *)&page->lru;
+                       head = &page->rcu_head;
                }
 
                call_rcu(head, rcu_free_slab);
-- 
2.5.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to