On Fri, 8 Aug 2008 09:15:51 -0700
Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> wrote:
On Friday, August 8, 2008 8:18 am Prarit Bhargava wrote:
--- a/include/linux/dma-mapping.hYeah generally you need to cast values like this when working with real unsigned long values rather than ints, but this *should* still be safe (barring a compiler bug). The return type is unsigned long, so even if you just return 0xffffffff the right thing should still happen...
+++ b/include/linux/dma-mapping.h
@@ -78,7 +78,7 @@ static inline unsigned int dma_set_max_seg_size(struct
device
static inline unsigned long dma_get_seg_boundary(struct device *dev)
{
return dev->dma_parms ?
- dev->dma_parms->segment_boundary_mask : 0xffffffff;
+ dev->dma_parms->segment_boundary_mask : 0xffffffffUL;
}
I told Prarid that the overflow should not happen here again and
again...