On Thu, 2014-02-13 at 17:11 +0000, Russell King - ARM Linux wrote: > On Thu, Feb 13, 2014 at 08:58:10AM -0800, James Bottomley wrote: > > This doesn't really look like the right fix. You replaced dev->dma_mask > > with a calculation on dev_max_pfn(). Since dev->dma_mask is always u64 > > and dev_max_pfn is supposed to be returning the pfn of the dma_mask, it > > should unconditionally be 64 bits as well. Either that or it should > > return dma_addr_t. > > My reasoning is that PFNs in the system are always of type "unsigned long" > and therefore a function returning a pfn should have that type. If we > overflow a PFN fitting in an unsigned long, we have lots of places which > need fixing. It's not intuitive to people who need the dma mask that they're supposed to use dma_max_pfn() << PAGE_SHIFT but now they have to worry about the casting and, if they don't get it right, nothing will warn or tell them. what about a new macro, say dma_max_mask(dev) that just returns (u64)dma_max_pfn() << PAGE_SHIFT? James -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html