Subject: linux-next: build failure after merge of the block tree

From: Stephen Rothwell <[email-masked]>
Date: Fri, 24 Mar 2023 12:57:06 +1100

Hi all,

After merging the block tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

In file included from arch/powerpc/include/asm/cmpxchg.h:6,
                 from arch/powerpc/include/asm/atomic.h:11,
                 from include/linux/atomic.h:7,
                 from include/crypto/hash.h:11,
                 from lib/iov_iter.c:2:
lib/iov_iter.c: In function 'copy_page_to_iter_nofault':
lib/iov_iter.c:497:22: error: implicit declaration of function 'iov_iter_is_pipe'; did you mean 'iov_iter_is_bvec'? [-Werror=implicit-function-declaration]
  497 |         if (unlikely(iov_iter_is_pipe(i)))
      |                      ^~~~~~~~~~~~~~~~
include/linux/compiler.h:78:45: note: in definition of macro 'unlikely'
   78 | # define unlikely(x)    __builtin_expect(!!(x), 0)
      |                                             ^
lib/iov_iter.c:498:24: error: implicit declaration of function 'copy_page_to_iter_pipe'; did you mean 'copy_page_to_iter'? [-Werror=implicit-function-declaration]
  498 |                 return copy_page_to_iter_pipe(page, offset, bytes, i);
      |                        ^~~~~~~~~~~~~~~~~~~~~~
      |                        copy_page_to_iter

Caused by commit

  a53f5dee3448 ("iov_iter: Kill ITER_PIPE")

interacting with commit

  14116ab76dc2 ("iov_iter: add copy_page_to_iter_nofault()")

from the mm tree.

I have applied the following merge fix patch for today.

From: Stephen Rothwell <[email-masked]>
Date: Fri, 24 Mar 2023 12:44:44 +1100
Subject: [PATCH] fix up for "iov_iter: add copy_page_to_iter_nofault()"

interatcing with "iov_iter: Kill ITER_PIPE"

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 lib/iov_iter.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/lib/iov_iter.c b/lib/iov_iter.c
index 9f4ec9adc036..f7b06366882b 100644
--- a/lib/iov_iter.c
+++ b/lib/iov_iter.c
@@ -494,8 +494,6 @@ size_t copy_page_to_iter_nofault(struct page *page, unsigned offset, size_t byte
 		return 0;
 	if (WARN_ON_ONCE(i->data_source))
 		return 0;
-	if (unlikely(iov_iter_is_pipe(i)))
-		return copy_page_to_iter_pipe(page, offset, bytes, i);
 	page += offset / PAGE_SIZE; // first subpage
 	offset %= PAGE_SIZE;
 	while (1) {
-- 
2.39.2

-- 
Cheers,
Stephen Rothwell