Currently, sg_page_count() may be used only inside the scatterlist.c file. However, the same calculation is done outside of scatterlist.c file causing to code duplication.
To fix this, we move the sg_page_count() to the scatterlist.h file, making it accessible to other modules. Signed-off-by: Alexey Skidanov <[email protected]> --- include/linux/scatterlist.h | 5 +++++ lib/scatterlist.c | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h index b7c8325..fe28148 100644 --- a/include/linux/scatterlist.h +++ b/include/linux/scatterlist.h @@ -248,6 +248,11 @@ static inline void *sg_virt(struct scatterlist *sg) return page_address(sg_page(sg)) + sg->offset; } +static inline int sg_page_count(struct scatterlist *sg) +{ + return PAGE_ALIGN(sg->offset + sg->length) >> PAGE_SHIFT; +} + int sg_nents(struct scatterlist *sg); int sg_nents_for_len(struct scatterlist *sg, u64 len); struct scatterlist *sg_next(struct scatterlist *); diff --git a/lib/scatterlist.c b/lib/scatterlist.c index 7c1c55f..4a59131 100644 --- a/lib/scatterlist.c +++ b/lib/scatterlist.c @@ -486,11 +486,6 @@ void __sg_page_iter_start(struct sg_page_iter *piter, } EXPORT_SYMBOL(__sg_page_iter_start); -static int sg_page_count(struct scatterlist *sg) -{ - return PAGE_ALIGN(sg->offset + sg->length) >> PAGE_SHIFT; -} - bool __sg_page_iter_next(struct sg_page_iter *piter) { if (!piter->__nents || !piter->sg) -- 2.7.4

