From: Andrew Morton Cc: Jiri Slaby Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton --- mm/vmscan.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff -puN mm/vmscan.c~shrink_slab-handle-bad-shrinkers mm/vmscan.c --- a/mm/vmscan.c~shrink_slab-handle-bad-shrinkers +++ a/mm/vmscan.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -170,7 +171,13 @@ unsigned long shrink_slab(unsigned long unsigned long total_scan; unsigned long max_pass = (*shrinker->shrink)(0, gfp_mask); - delta = (4 * scanned) / shrinker->seeks; + if (!shrinker->seeks) { + print_symbol("shrinker %s has zero seeks\n", + (unsigned long)shrinker->shrink); + delta = (4 * scanned) / DEFAULT_SEEKS; + } else { + delta = (4 * scanned) / shrinker->seeks; + } delta *= max_pass; do_div(delta, lru_pages + 1); shrinker->nr += delta; _