Commit a354e2c84eeebcd7d7bbdd71216895b8e9866b5c

Authored by Joonsoo Kim
Committed by Linus Torvalds
1 parent cc33a303f1

mm, highmem: remove page_address_pool list

We can find free page_address_map instance without the page_address_pool.
So remove it.

Signed-off-by: Joonsoo Kim <js1304@gmail.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Reviewed-by: Minchan Kim <minchan@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 2 additions and 16 deletions Side-by-side Diff

... ... @@ -324,10 +324,7 @@
324 324 struct list_head list;
325 325 };
326 326  
327   -/*
328   - * page_address_map freelist, allocated from page_address_maps.
329   - */
330   -static struct list_head page_address_pool; /* freelist */
  327 +static struct page_address_map page_address_maps[LAST_PKMAP];
331 328  
332 329 /*
333 330 * Hash table bucket
... ... @@ -392,12 +389,7 @@
392 389  
393 390 pas = page_slot(page);
394 391 if (virtual) { /* Add */
395   - BUG_ON(list_empty(&page_address_pool));
396   -
397   - pam = list_entry(page_address_pool.next,
398   - struct page_address_map, list);
399   - list_del(&pam->list);
400   -
  392 + pam = &page_address_maps[PKMAP_NR((unsigned long)virtual)];
401 393 pam->page = page;
402 394 pam->virtual = virtual;
403 395  
... ... @@ -410,7 +402,6 @@
410 402 if (pam->page == page) {
411 403 list_del(&pam->list);
412 404 spin_unlock_irqrestore(&pas->lock, flags);
413   - list_add_tail(&pam->list, &page_address_pool);
414 405 goto done;
415 406 }
416 407 }
417 408  
... ... @@ -420,15 +411,10 @@
420 411 return;
421 412 }
422 413  
423   -static struct page_address_map page_address_maps[LAST_PKMAP];
424   -
425 414 void __init page_address_init(void)
426 415 {
427 416 int i;
428 417  
429   - INIT_LIST_HEAD(&page_address_pool);
430   - for (i = 0; i < ARRAY_SIZE(page_address_maps); i++)
431   - list_add(&page_address_maps[i].list, &page_address_pool);
432 418 for (i = 0; i < ARRAY_SIZE(page_address_htable); i++) {
433 419 INIT_LIST_HEAD(&page_address_htable[i].lh);
434 420 spin_lock_init(&page_address_htable[i].lock);