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
UPSTREAM: PCI: rockchip: Fix rockchip_pcie_probe() error path to free resource list
[firefly-linux-kernel-4.4.55.git]
/
mm
/
zsmalloc.c
diff --git
a/mm/zsmalloc.c
b/mm/zsmalloc.c
index fc083996e40a6a1c7fb4116b1aecd3f40fab32c7..c1ea19478119f21afa1a3a2d27537c251f6c152d 100644
(file)
--- a/
mm/zsmalloc.c
+++ b/
mm/zsmalloc.c
@@
-1732,10
+1732,13
@@
static struct page *isolate_source_page(struct size_class *class)
static unsigned long zs_can_compact(struct size_class *class)
{
unsigned long obj_wasted;
static unsigned long zs_can_compact(struct size_class *class)
{
unsigned long obj_wasted;
+ unsigned long obj_allocated = zs_stat_get(class, OBJ_ALLOCATED);
+ unsigned long obj_used = zs_stat_get(class, OBJ_USED);
- obj_wasted = zs_stat_get(class, OBJ_ALLOCATED) -
-
zs_stat_get(class, OBJ_USED)
;
+ if (obj_allocated <= obj_used)
+
return 0
;
+ obj_wasted = obj_allocated - obj_used;
obj_wasted /= get_maxobj_per_zspage(class->size,
class->pages_per_zspage);
obj_wasted /= get_maxobj_per_zspage(class->size,
class->pages_per_zspage);