avoid endless loops in lib/swiotlb.c
authorJan Beulich <jbeulich@novell.com>
Thu, 13 Mar 2008 09:13:30 +0000 (09:13 +0000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 13 Mar 2008 20:15:52 +0000 (13:15 -0700)
commitb15a3891c916f32a29832886a053a48be2741d4d
tree59971b1f3b1961b7c13a170b1a3617431db03ac5
parent96e31022a1b6e7cb173cbb3dce1fde7ba548860a
avoid endless loops in lib/swiotlb.c

Commit 681cc5cd3efbeafca6386114070e0bfb5012e249 ("iommu sg merging:
swiotlb: respect the segment boundary limits") introduced two
possibilities for entering an endless loop in lib/swiotlb.c:

 - if max_slots is zero (possible if mask is ~0UL)
 - if the number of slots requested fits into a swiotlb segment, but is
   too large for the part of a segment which remains after considering
   offset_slots

This fixes them

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/swiotlb.c