On Fri, 22 Jun 2018 17:12:18 +0200 Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote: > small series which avoids using local_irq_disable()/local_irq_enable() > but instead does spin_lock_irq()/spin_unlock_irq() so it is within the > context of the lock which it belongs to. > Patch #1 is a cleanup where local_irq_.*() remained after the lock was > removed. Looks OK. And we may as well do this... From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Subject: mm/list_lru.c: fold __list_lru_count_one() into its caller __list_lru_count_one() has a single callsite. Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> Cc: Kirill Tkhai <ktkhai@xxxxxxxxxxxxx> Cc: Vladimir Davydov <vdavydov.dev@xxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/list_lru.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff -puN mm/list_lru.c~mm-list_lruc-fold-__list_lru_count_one-into-its-caller mm/list_lru.c --- a/mm/list_lru.c~mm-list_lruc-fold-__list_lru_count_one-into-its-caller +++ a/mm/list_lru.c @@ -162,26 +162,20 @@ void list_lru_isolate_move(struct list_l } EXPORT_SYMBOL_GPL(list_lru_isolate_move); -static unsigned long __list_lru_count_one(struct list_lru *lru, - int nid, int memcg_idx) +unsigned long list_lru_count_one(struct list_lru *lru, + int nid, struct mem_cgroup *memcg) { struct list_lru_node *nlru = &lru->node[nid]; struct list_lru_one *l; unsigned long count; rcu_read_lock(); - l = list_lru_from_memcg_idx(nlru, memcg_idx); + l = list_lru_from_memcg_idx(nlru, memcg_cache_id(memcg)); count = l->nr_items; rcu_read_unlock(); return count; } - -unsigned long list_lru_count_one(struct list_lru *lru, - int nid, struct mem_cgroup *memcg) -{ - return __list_lru_count_one(lru, nid, memcg_cache_id(memcg)); -} EXPORT_SYMBOL_GPL(list_lru_count_one); unsigned long list_lru_count_node(struct list_lru *lru, int nid) _