Commit a354e2c84eeebcd7d7bbdd71216895b8e9866b5c
Committed by
Linus Torvalds
1 parent
cc33a303f1
Exists in
master
and in
20 other branches
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
mm/highmem.c
... | ... | @@ -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); |