On Sat, Jun 11, 2022 at 11:45:03AM +0100, Sudip Mukherjee wrote: > Hi All, > > The latest mainline kernel branch fails to build for "arm allmodconfig", > "xtensa allmodconfig" and "csky allmodconfig" with the error: > > In file included from ./include/linux/kernel.h:26, > from ./include/linux/crypto.h:16, > from ./include/crypto/hash.h:11, > from lib/iov_iter.c:2: > lib/iov_iter.c: In function 'iter_xarray_get_pages': > ./include/linux/minmax.h:20:35: error: comparison of distinct pointer types > lacks a cast [-Werror] > 20 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) > | ^~ > ./include/linux/minmax.h:26:18: note: in expansion of macro '__typecheck' > 26 | (__typecheck(x, y) && __no_side_effects(x, y)) > | ^~~~~~~~~~~ > ./include/linux/minmax.h:36:31: note: in expansion of macro '__safe_cmp' > 36 | __builtin_choose_expr(__safe_cmp(x, y), \ > | ^~~~~~~~~~ > ./include/linux/minmax.h:45:25: note: in expansion of macro '__careful_cmp' > 45 | #define min(x, y) __careful_cmp(x, y, <) > | ^~~~~~~~~~~~~ > lib/iov_iter.c:1464:16: note: in expansion of macro 'min' > 1464 | return min(nr * PAGE_SIZE - offset, maxsize); > | ^~~ > lib/iov_iter.c: In function 'iter_xarray_get_pages_alloc': > ./include/linux/minmax.h:20:35: error: comparison of distinct pointer types > lacks a cast [-Werror] > 20 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) > | ^~ > ./include/linux/minmax.h:26:18: note: in expansion of macro '__typecheck' > 26 | (__typecheck(x, y) && __no_side_effects(x, y)) > | ^~~~~~~~~~~ > ./include/linux/minmax.h:36:31: note: in expansion of macro '__safe_cmp' > 36 | __builtin_choose_expr(__safe_cmp(x, y), \ > | ^~~~~~~~~~ > ./include/linux/minmax.h:45:25: note: in expansion of macro '__careful_cmp' > 45 | #define min(x, y) __careful_cmp(x, y, <) > | ^~~~~~~~~~~~~ > lib/iov_iter.c:1628:16: note: in expansion of macro 'min' > 1628 | return min(nr * PAGE_SIZE - offset, maxsize); > > > git bisect pointed to 6c77676645ad ("iov_iter: Fix > iter_xarray_get_pages{,_alloc}()")
At a guess, should be return min((size_t)nr * PAGE_SIZE - offset, maxsize); in both places. I'm more than half-asleep right now; could you verify that it (as the last lines of both iter_xarray_get_pages() and iter_xarray_get_pages_alloc()) builds correctly? -- Linux-cachefs mailing list Linux-cachefs@redhat.com https://listman.redhat.com/mailman/listinfo/linux-cachefs