projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tty: cyclades, fix nports handling
[firefly-linux-kernel-4.4.55.git]
/
mm
/
slub.c
diff --git
a/mm/slub.c
b/mm/slub.c
index 7ab54ecbd3f3a5abe50eba2c0a5dc035bf4d5efc..65ffda5934b09b8220e9a00332945dc19ba88de6 100644
(file)
--- a/
mm/slub.c
+++ b/
mm/slub.c
@@
-9,6
+9,7
@@
*/
#include <linux/mm.h>
*/
#include <linux/mm.h>
+#include <linux/swap.h> /* struct reclaim_state */
#include <linux/module.h>
#include <linux/bit_spinlock.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/bit_spinlock.h>
#include <linux/interrupt.h>
@@
-1170,6
+1171,8
@@
static void __free_slab(struct kmem_cache *s, struct page *page)
__ClearPageSlab(page);
reset_page_mapcount(page);
__ClearPageSlab(page);
reset_page_mapcount(page);
+ if (current->reclaim_state)
+ current->reclaim_state->reclaimed_slab += pages;
__free_pages(page, order);
}
__free_pages(page, order);
}
@@
-1909,7
+1912,7
@@
static inline int calculate_order(int size)
* Doh this slab cannot be placed using slub_max_order.
*/
order = slab_order(size, 1, MAX_ORDER, 1);
* Doh this slab cannot be placed using slub_max_order.
*/
order = slab_order(size, 1, MAX_ORDER, 1);
- if (order <
=
MAX_ORDER)
+ if (order < MAX_ORDER)
return order;
return -ENOSYS;
}
return order;
return -ENOSYS;
}
@@
-2522,6
+2525,7
@@
__setup("slub_min_order=", setup_slub_min_order);
static int __init setup_slub_max_order(char *str)
{
get_option(&str, &slub_max_order);
static int __init setup_slub_max_order(char *str)
{
get_option(&str, &slub_max_order);
+ slub_max_order = min(slub_max_order, MAX_ORDER - 1);
return 1;
}
return 1;
}