swiotlb: add comment where we handle the overflow of a dma mask on 32 bit
authorIan Campbell <ian.campbell@citrix.com>
Tue, 16 Dec 2008 20:17:29 +0000 (12:17 -0800)
committerIngo Molnar <mingo@elte.hu>
Wed, 17 Dec 2008 17:57:02 +0000 (18:57 +0100)
Impact: cleanup

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
lib/swiotlb.c

index db724ba..1272b23 100644 (file)
@@ -301,6 +301,10 @@ map_single(struct device *hwdev, char *buffer, size_t size, int dir)
        start_dma_addr = virt_to_bus(io_tlb_start) & mask;
 
        offset_slots = ALIGN(start_dma_addr, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT;
+
+       /*
+        * Carefully handle integer overflow which can occur when mask == ~0UL.
+        */
        max_slots = mask + 1
                    ? ALIGN(mask + 1, 1 << IO_TLB_SHIFT) >> IO_TLB_SHIFT
                    : 1UL << (BITS_PER_LONG - IO_TLB_SHIFT);