Commit 4b57ad939263935e4e3aec4d74a11dd02a3421e4

Authored by majianpeng
Committed by Pekka Enberg
1 parent a164f89628

mm: Fix signal SIGFPE in slabinfo.c.

In function slab_stats(), if total_free is equal zero, it will error.
So fix it.

Acked-by: Christoph Lameter <cl@linux.com>
Signed-off-by: majianpeng <majianpeng@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>

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

... ... @@ -437,34 +437,34 @@
437 437 printf("Fastpath %8lu %8lu %3lu %3lu\n",
438 438 s->alloc_fastpath, s->free_fastpath,
439 439 s->alloc_fastpath * 100 / total_alloc,
440   - s->free_fastpath * 100 / total_free);
  440 + total_free ? s->free_fastpath * 100 / total_free : 0);
441 441 printf("Slowpath %8lu %8lu %3lu %3lu\n",
442 442 total_alloc - s->alloc_fastpath, s->free_slowpath,
443 443 (total_alloc - s->alloc_fastpath) * 100 / total_alloc,
444   - s->free_slowpath * 100 / total_free);
  444 + total_free ? s->free_slowpath * 100 / total_free : 0);
445 445 printf("Page Alloc %8lu %8lu %3lu %3lu\n",
446 446 s->alloc_slab, s->free_slab,
447 447 s->alloc_slab * 100 / total_alloc,
448   - s->free_slab * 100 / total_free);
  448 + total_free ? s->free_slab * 100 / total_free : 0);
449 449 printf("Add partial %8lu %8lu %3lu %3lu\n",
450 450 s->deactivate_to_head + s->deactivate_to_tail,
451 451 s->free_add_partial,
452 452 (s->deactivate_to_head + s->deactivate_to_tail) * 100 / total_alloc,
453   - s->free_add_partial * 100 / total_free);
  453 + total_free ? s->free_add_partial * 100 / total_free : 0);
454 454 printf("Remove partial %8lu %8lu %3lu %3lu\n",
455 455 s->alloc_from_partial, s->free_remove_partial,
456 456 s->alloc_from_partial * 100 / total_alloc,
457   - s->free_remove_partial * 100 / total_free);
  457 + total_free ? s->free_remove_partial * 100 / total_free : 0);
458 458  
459 459 printf("Cpu partial list %8lu %8lu %3lu %3lu\n",
460 460 s->cpu_partial_alloc, s->cpu_partial_free,
461 461 s->cpu_partial_alloc * 100 / total_alloc,
462   - s->cpu_partial_free * 100 / total_free);
  462 + total_free ? s->cpu_partial_free * 100 / total_free : 0);
463 463  
464 464 printf("RemoteObj/SlabFrozen %8lu %8lu %3lu %3lu\n",
465 465 s->deactivate_remote_frees, s->free_frozen,
466 466 s->deactivate_remote_frees * 100 / total_alloc,
467   - s->free_frozen * 100 / total_free);
  467 + total_free ? s->free_frozen * 100 / total_free : 0);
468 468  
469 469 printf("Total %8lu %8lu\n\n", total_alloc, total_free);
470 470