iov: Revert unwanted ABI 'fix' in 3.16.7-ckt2-1
svn path=/dists/sid/linux/; revision=22200
This commit is contained in:
parent
eb1f86e012
commit
dc83676921
|
@ -4,6 +4,7 @@ linux (3.16.7-ckt2-2) UNRELEASED; urgency=medium
|
||||||
* [sh4] Build with gcc-4.8 (Closes: #772602)
|
* [sh4] Build with gcc-4.8 (Closes: #772602)
|
||||||
* Fix inconsistent ABI name generation in
|
* Fix inconsistent ABI name generation in
|
||||||
debian/bin/{abiupdate,buildcheck,gencontrol}.py (Closes: #773233)
|
debian/bin/{abiupdate,buildcheck,gencontrol}.py (Closes: #773233)
|
||||||
|
* iov: Revert unwanted ABI 'fix' in 3.16.7-ckt2-1
|
||||||
|
|
||||||
[ Ian Campbell ]
|
[ Ian Campbell ]
|
||||||
* [armhf] Enable support for support OMAP5432 uEVM by enabling:
|
* [armhf] Enable support for support OMAP5432 uEVM by enabling:
|
||||||
|
|
|
@ -1,58 +1,27 @@
|
||||||
From: Ben Hutchings <ben@decadent.org.uk>
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
Date: Mon, 08 Dec 2014 01:22:04 +0000
|
Date: Mon, 15 Dec 2014 22:34:53 +0000
|
||||||
Subject: iovec: Fix ABI change in 3.16.7-ckt1
|
Subject: iovec: Fix ABI change in 3.16.7-ckt2-1
|
||||||
Forwarded: not-needed
|
Forwarded: not-needed
|
||||||
|
|
||||||
The combination of 'switch iov_iter_get_pages() to passing maximal
|
I got confused and tried to fix an ABI change from upstream changes
|
||||||
number of pages' and 'fuse: honour max_read and max_write in direct_io
|
that we already had. Thanks to #773233 this wasn't spotted before
|
||||||
mode' adds a new parameter to iov_iter_get_pages().
|
upload. Keep the extra function around.
|
||||||
|
|
||||||
I don't think it's very likely to be used OOT, but just in case it is:
|
|
||||||
- Rename the new version to iov_iter_get_pages_fixed()
|
|
||||||
- Define and export iov_iter_get_pages() with the old parameters
|
|
||||||
for ABI compatibility
|
|
||||||
- Define iov_iter_get_pages as a macro alias for iov_iter_get_pages_fixed
|
|
||||||
|
|
||||||
--- a/include/linux/uio.h
|
|
||||||
+++ b/include/linux/uio.h
|
|
||||||
@@ -84,7 +84,10 @@ unsigned long iov_iter_alignment(const s
|
|
||||||
void iov_iter_init(struct iov_iter *i, int direction, const struct iovec *iov,
|
|
||||||
unsigned long nr_segs, size_t count);
|
|
||||||
ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages,
|
|
||||||
+ size_t maxsize, size_t *start);
|
|
||||||
+ssize_t iov_iter_get_pages_fixed(struct iov_iter *i, struct page **pages,
|
|
||||||
size_t maxsize, unsigned maxpages, size_t *start);
|
|
||||||
+#define iov_iter_get_pages iov_iter_get_pages_fixed
|
|
||||||
ssize_t iov_iter_get_pages_alloc(struct iov_iter *i, struct page ***pages,
|
|
||||||
size_t maxsize, size_t *start);
|
|
||||||
int iov_iter_npages(const struct iov_iter *i, int maxpages);
|
|
||||||
--- a/mm/iov_iter.c
|
--- a/mm/iov_iter.c
|
||||||
+++ b/mm/iov_iter.c
|
+++ b/mm/iov_iter.c
|
||||||
@@ -714,7 +714,8 @@ unsigned long iov_iter_alignment(const s
|
@@ -725,6 +725,15 @@ ssize_t iov_iter_get_pages(struct iov_it
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(iov_iter_alignment);
|
|
||||||
|
|
||||||
-ssize_t iov_iter_get_pages(struct iov_iter *i,
|
|
||||||
+/* Called as iov_iter_get_pages() */
|
|
||||||
+ssize_t iov_iter_get_pages_fixed(struct iov_iter *i,
|
|
||||||
struct page **pages, size_t maxsize, unsigned maxpages,
|
|
||||||
size_t *start)
|
|
||||||
{
|
|
||||||
@@ -723,6 +724,17 @@ ssize_t iov_iter_get_pages(struct iov_it
|
|
||||||
else
|
|
||||||
return get_pages_iovec(i, pages, maxsize, maxpages, start);
|
|
||||||
}
|
|
||||||
+EXPORT_SYMBOL(iov_iter_get_pages_fixed);
|
|
||||||
+
|
|
||||||
+/* ABI compatibility wrapper */
|
|
||||||
+#undef iov_iter_get_pages
|
|
||||||
+ssize_t iov_iter_get_pages(struct iov_iter *i,
|
|
||||||
+ struct page **pages, size_t maxsize,
|
|
||||||
+ size_t *start)
|
|
||||||
+{
|
|
||||||
+ return iov_iter_get_pages_fixed(i, pages, maxsize, maxsize / PAGE_SIZE,
|
|
||||||
+ start);
|
|
||||||
+}
|
|
||||||
EXPORT_SYMBOL(iov_iter_get_pages);
|
EXPORT_SYMBOL(iov_iter_get_pages);
|
||||||
|
|
||||||
|
+/* bwh: Alias for iov_iter_get_pages() because I'm an idiot */
|
||||||
|
+ssize_t iov_iter_get_pages_fixed(struct iov_iter *i,
|
||||||
|
+ struct page **pages, size_t maxsize, unsigned maxpages,
|
||||||
|
+ size_t *start)
|
||||||
|
+{
|
||||||
|
+ return iov_iter_get_pages(i, pages, maxsize, maxpages, start);
|
||||||
|
+}
|
||||||
|
+EXPORT_SYMBOL(iov_iter_get_pages_fixed);
|
||||||
|
+
|
||||||
ssize_t iov_iter_get_pages_alloc(struct iov_iter *i,
|
ssize_t iov_iter_get_pages_alloc(struct iov_iter *i,
|
||||||
|
struct page ***pages, size_t maxsize,
|
||||||
|
size_t *start)
|
||||||
|
|
Loading…
Reference in New Issue