From ddd86436f4e3643c04b797f858dab95d5f2e4de9 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 25 Dec 2015 15:00:15 +0000 Subject: fish --- compat/compat-3.9.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 compat/compat-3.9.c (limited to 'compat/compat-3.9.c') diff --git a/compat/compat-3.9.c b/compat/compat-3.9.c new file mode 100644 index 0000000..f81fe79 --- /dev/null +++ b/compat/compat-3.9.c @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2013 Luis R. Rodriguez + * + * Compatibility file for Linux wireless for kernels 3.9. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include +#include +#include +#include + +#ifdef __sg_page_iter_next + +void __sg_page_iter_start(struct sg_page_iter *piter, + struct scatterlist *sglist, unsigned int nents, + unsigned long pgoffset) +{ + piter->__pg_advance = 0; + piter->__nents = nents; + + piter->page = NULL; + piter->sg = sglist; + piter->sg_pgoffset = pgoffset; +} +EXPORT_SYMBOL_GPL(__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) + return false; + + piter->sg_pgoffset += piter->__pg_advance; + piter->__pg_advance = 1; + + while (piter->sg_pgoffset >= sg_page_count(piter->sg)) { + piter->sg_pgoffset -= sg_page_count(piter->sg); + piter->sg = sg_next(piter->sg); + if (!--piter->__nents || !piter->sg) + return false; + } + piter->page = nth_page(sg_page(piter->sg), piter->sg_pgoffset); + + return true; +} +EXPORT_SYMBOL_GPL(__sg_page_iter_next); + +void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res) +{ + void __iomem *dest_ptr; + + dest_ptr = devm_ioremap_resource(dev, res); + if (!dest_ptr) + return (void __iomem *)ERR_PTR(-ENOMEM); + return dest_ptr; +} +EXPORT_SYMBOL_GPL(devm_ioremap_resource); + +#endif /* __sg_page_iter_next */ -- cgit v1.2.3