Commit 4b57ad93 authored by majianpeng's avatar majianpeng Committed by Pekka Enberg
Browse files

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: default avatarChristoph Lameter <cl@linux.com>
Signed-off-by: default avatarmajianpeng <majianpeng@gmail.com>
Signed-off-by: default avatarPekka Enberg <penberg@kernel.org>
parent a164f896
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -437,34 +437,34 @@ static void slab_stats(struct slabinfo *s)
	printf("Fastpath             %8lu %8lu %3lu %3lu\n",
		s->alloc_fastpath, s->free_fastpath,
		s->alloc_fastpath * 100 / total_alloc,
		s->free_fastpath * 100 / total_free);
		total_free ? s->free_fastpath * 100 / total_free : 0);
	printf("Slowpath             %8lu %8lu %3lu %3lu\n",
		total_alloc - s->alloc_fastpath, s->free_slowpath,
		(total_alloc - s->alloc_fastpath) * 100 / total_alloc,
		s->free_slowpath * 100 / total_free);
		total_free ? s->free_slowpath * 100 / total_free : 0);
	printf("Page Alloc           %8lu %8lu %3lu %3lu\n",
		s->alloc_slab, s->free_slab,
		s->alloc_slab * 100 / total_alloc,
		s->free_slab * 100 / total_free);
		total_free ? s->free_slab * 100 / total_free : 0);
	printf("Add partial          %8lu %8lu %3lu %3lu\n",
		s->deactivate_to_head + s->deactivate_to_tail,
		s->free_add_partial,
		(s->deactivate_to_head + s->deactivate_to_tail) * 100 / total_alloc,
		s->free_add_partial * 100 / total_free);
		total_free ? s->free_add_partial * 100 / total_free : 0);
	printf("Remove partial       %8lu %8lu %3lu %3lu\n",
		s->alloc_from_partial, s->free_remove_partial,
		s->alloc_from_partial * 100 / total_alloc,
		s->free_remove_partial * 100 / total_free);
		total_free ? s->free_remove_partial * 100 / total_free : 0);

	printf("Cpu partial list     %8lu %8lu %3lu %3lu\n",
		s->cpu_partial_alloc, s->cpu_partial_free,
		s->cpu_partial_alloc * 100 / total_alloc,
		s->cpu_partial_free * 100 / total_free);
		total_free ? s->cpu_partial_free * 100 / total_free : 0);

	printf("RemoteObj/SlabFrozen %8lu %8lu %3lu %3lu\n",
		s->deactivate_remote_frees, s->free_frozen,
		s->deactivate_remote_frees * 100 / total_alloc,
		s->free_frozen * 100 / total_free);
		total_free ? s->free_frozen * 100 / total_free : 0);

	printf("Total                %8lu %8lu\n\n", total_alloc, total_free);