Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756931AbbLCOJW (ORCPT ); Thu, 3 Dec 2015 09:09:22 -0500 Received: from m50-135.163.com ([123.125.50.135]:44759 "EHLO m50-135.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751519AbbLCOJU (ORCPT ); Thu, 3 Dec 2015 09:09:20 -0500 From: Geliang Tang To: Christoph Lameter , Pekka Enberg , David Rientjes , Joonsoo Kim , Andrew Morton Cc: Geliang Tang , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] mm/slab.c: use list_{empty_careful,last_entry} in drain_freelist Date: Thu, 3 Dec 2015 22:07:46 +0800 Message-Id: <3ea815dc52bf1a2bb5e324d7398315597900be84.1449151365.git.geliangtang@163.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: X-CM-TRANSID: D9GowAAXCWq1TGBWXhePAA--.17775S3 X-Coremail-Antispam: 1Uf129KBjvdXoW7Wr1fJFWrWr43Gry8Cr4UArb_yoWDuwb_Ca 93tr47CrWfGF4xCrW8J3ZaqrsI9r1v9Fn5Wrs7tr43Jr9xWan5GF4aqF13WrZ7Gr4fG3Zx Gw4kur1fWrnrXjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IUjUDG7UUUUU== X-Originating-IP: [116.77.146.26] X-CM-SenderInfo: 5jhoxtpqjwt0rj6rljoofrz/1tbiJRfFmVUL8jD3hwAAsC Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1294 Lines: 45 To make the intention clearer, use list_empty_careful and list_last_entry in drain_freelist(). Signed-off-by: Geliang Tang --- mm/slab.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mm/slab.c b/mm/slab.c index 5d5aa3b..925921e 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -2362,7 +2362,6 @@ static void drain_cpu_caches(struct kmem_cache *cachep) static int drain_freelist(struct kmem_cache *cache, struct kmem_cache_node *n, int tofree) { - struct list_head *p; int nr_freed; struct page *page; @@ -2370,13 +2369,12 @@ static int drain_freelist(struct kmem_cache *cache, while (nr_freed < tofree && !list_empty(&n->slabs_free)) { spin_lock_irq(&n->list_lock); - p = n->slabs_free.prev; - if (p == &n->slabs_free) { + if (list_empty_careful(&n->slabs_free)) { spin_unlock_irq(&n->list_lock); goto out; } - page = list_entry(p, struct page, lru); + page = list_last_entry(&n->slabs_free, struct page, lru); #if DEBUG BUG_ON(page->active); #endif -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/