Loading include/linux/dma-mapping.h +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ static inline int is_buffer_dma_capable(u64 mask, dma_addr_t addr, size_t size) static inline u64 dma_get_mask(struct device *dev) { if (dev->dma_mask && *dev->dma_mask) if (dev && dev->dma_mask && *dev->dma_mask) return *dev->dma_mask; return DMA_32BIT_MASK; } Loading lib/swiotlb.c +1 −5 Original line number Diff line number Diff line Loading @@ -276,11 +276,7 @@ swiotlb_late_init_with_default_size(size_t default_size) static int address_needs_mapping(struct device *hwdev, dma_addr_t addr, size_t size) { dma_addr_t mask = 0xffffffff; /* If the device has a mask, use it, otherwise default to 32 bits */ if (hwdev && hwdev->dma_mask) mask = *hwdev->dma_mask; return !is_buffer_dma_capable(mask, addr, size); return !is_buffer_dma_capable(dma_get_mask(hwdev), addr, size); } static int is_swiotlb_buffer(char *addr) Loading Loading
include/linux/dma-mapping.h +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ static inline int is_buffer_dma_capable(u64 mask, dma_addr_t addr, size_t size) static inline u64 dma_get_mask(struct device *dev) { if (dev->dma_mask && *dev->dma_mask) if (dev && dev->dma_mask && *dev->dma_mask) return *dev->dma_mask; return DMA_32BIT_MASK; } Loading
lib/swiotlb.c +1 −5 Original line number Diff line number Diff line Loading @@ -276,11 +276,7 @@ swiotlb_late_init_with_default_size(size_t default_size) static int address_needs_mapping(struct device *hwdev, dma_addr_t addr, size_t size) { dma_addr_t mask = 0xffffffff; /* If the device has a mask, use it, otherwise default to 32 bits */ if (hwdev && hwdev->dma_mask) mask = *hwdev->dma_mask; return !is_buffer_dma_capable(mask, addr, size); return !is_buffer_dma_capable(dma_get_mask(hwdev), addr, size); } static int is_swiotlb_buffer(char *addr) Loading