Message ID | 20190123163049.24863-2-joro@8bytes.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix virtio-blk issue with SWIOTLB | expand |
On Wed, Jan 23, 2019 at 05:30:45PM +0100, Joerg Roedel wrote:
> +extern size_t swiotlb_max_mapping_size(struct device *dev);
No need for the extern keyword on function declarations in headers.
On Wed, Jan 23, 2019 at 10:28:13PM +0100, Christoph Hellwig wrote: > On Wed, Jan 23, 2019 at 05:30:45PM +0100, Joerg Roedel wrote: > > +extern size_t swiotlb_max_mapping_size(struct device *dev); > > No need for the extern keyword on function declarations in headers. Right, but all other function declarations in that header file have 'extern' too, so I added it also for that one. Regards, Joerg
On Thu, Jan 24, 2019 at 09:24:31AM +0100, Joerg Roedel wrote: > On Wed, Jan 23, 2019 at 10:28:13PM +0100, Christoph Hellwig wrote: > > On Wed, Jan 23, 2019 at 05:30:45PM +0100, Joerg Roedel wrote: > > > +extern size_t swiotlb_max_mapping_size(struct device *dev); > > > > No need for the extern keyword on function declarations in headers. > > Right, but all other function declarations in that header file have > 'extern' too, so I added it also for that one. Your patch 3 also doesn't use an extern. And I have to say I much prefer it that way..
diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h index 7c007ed7505f..ceb623321f38 100644 --- a/include/linux/swiotlb.h +++ b/include/linux/swiotlb.h @@ -62,6 +62,7 @@ extern void swiotlb_tbl_sync_single(struct device *hwdev, extern int swiotlb_dma_supported(struct device *hwdev, u64 mask); +extern size_t swiotlb_max_mapping_size(struct device *dev); #ifdef CONFIG_SWIOTLB extern enum swiotlb_force swiotlb_force; @@ -95,6 +96,10 @@ static inline unsigned int swiotlb_max_segment(void) { return 0; } +static inline size_t swiotlb_max_mapping_size(struct device *dev) +{ + return SIZE_MAX; +} #endif /* CONFIG_SWIOTLB */ extern void swiotlb_print_info(void); diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c index 1fb6fd68b9c7..9cb21259cb0b 100644 --- a/kernel/dma/swiotlb.c +++ b/kernel/dma/swiotlb.c @@ -662,3 +662,8 @@ swiotlb_dma_supported(struct device *hwdev, u64 mask) { return __phys_to_dma(hwdev, io_tlb_end - 1) <= mask; } + +size_t swiotlb_max_mapping_size(struct device *dev) +{ + return ((size_t)1 << IO_TLB_SHIFT) * IO_TLB_SEGSIZE; +}