Message ID | 20181127103312.19368-1-murphyt7@tcd.ie (mailing list archive) |
---|---|
State | Accepted |
Commit | 6edf2e3710f4ef2555ad7a2681dbeb4a69092b2d |
Headers | show |
Series | fix dma-buf/udmabuf selftest | expand |
Hi Daniel, On 11/27/18 3:33 AM, Tom Murphy wrote: > This patch fixes the udmabuf selftest. Currently the selftest is broken. > I fixed the selftest by setting the F_SEAL_SHRINK seal on the memfd > file descriptor which is required by udmabuf and added the test to > the selftest Makefile. > > Signed-off-by: Tom Murphy <murphyt7@tcd.ie> Does this change look good you? I plan to get this in for 4.21-rc1. Let me know if you have any objections. thanks, -- Shuah
On Wed, Dec 12, 2018 at 10:16 PM shuah <shuah@kernel.org> wrote: > > Hi Daniel, > > On 11/27/18 3:33 AM, Tom Murphy wrote: > > This patch fixes the udmabuf selftest. Currently the selftest is broken. > > I fixed the selftest by setting the F_SEAL_SHRINK seal on the memfd > > file descriptor which is required by udmabuf and added the test to > > the selftest Makefile. > > > > Signed-off-by: Tom Murphy <murphyt7@tcd.ie> > > Does this change look good you? I plan to get this in for 4.21-rc1. Let > me know if you have any objections. No idea, would need Gerd's ack I think. And maybe we need to update MAINTAINERS, to make sure dri-devel gets cc'ed on patches touching the dma-buf testcases. -Daniel > thanks, > -- Shuah >
On Wed, Dec 12, 2018 at 02:15:49PM -0700, shuah wrote: > Hi Daniel, > > On 11/27/18 3:33 AM, Tom Murphy wrote: > > This patch fixes the udmabuf selftest. Currently the selftest is broken. > > I fixed the selftest by setting the F_SEAL_SHRINK seal on the memfd > > file descriptor which is required by udmabuf and added the test to > > the selftest Makefile. > > > > Signed-off-by: Tom Murphy <murphyt7@tcd.ie> > > Does this change look good you? I plan to get this in for 4.21-rc1. Let me > know if you have any objections. Yes, it's fine. Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Hi Tom, On Tue, Nov 27, 2018 at 7:53 PM Tom Murphy <murphyt7@tcd.ie> wrote: > This patch fixes the udmabuf selftest. Currently the selftest is broken. > I fixed the selftest by setting the F_SEAL_SHRINK seal on the memfd > file descriptor which is required by udmabuf and added the test to > the selftest Makefile. > > Signed-off-by: Tom Murphy <murphyt7@tcd.ie> This is now commit 6edf2e3710f4ef25 ("fix dma-buf/udmabuf selftest"). > --- a/tools/testing/selftests/drivers/dma-buf/udmabuf.c > +++ b/tools/testing/selftests/drivers/dma-buf/udmabuf.c > @@ -4,7 +4,7 @@ > #include <unistd.h> > #include <string.h> > #include <errno.h> > -#include <fcntl.h> > +#include <linux/fcntl.h> Not including <fcntl.h> means we get udmabuf.c:30:10: warning: implicit declaration of function ‘open’; did you mean ‘popen’? [-Wimplicit-function-declaration] devfd = open("/dev/udmabuf", O_RDWR); udmabuf.c:42:8: warning: implicit declaration of function ‘fcntl’; did you mean ‘fcvt’? [-Wimplicit-function-declaration] ret = fcntl(memfd, F_ADD_SEALS, F_SEAL_SHRINK); However, we need <linux/fcntl.h> for F_ADD_SEALS, F_SEAL_SHRINK. Including both leads to lots of redefinition warnings. Can we fix that? > #include <malloc.h> > > #include <sys/ioctl.h> > @@ -33,12 +33,19 @@ int main(int argc, char *argv[]) > exit(77); > } > > - memfd = memfd_create("udmabuf-test", MFD_CLOEXEC); > + memfd = memfd_create("udmabuf-test", MFD_ALLOW_SEALING); > if (memfd < 0) { > printf("%s: [skip,no-memfd]\n", TEST_PREFIX); > exit(77); > } > > + ret = fcntl(memfd, F_ADD_SEALS, F_SEAL_SHRINK); > + if (ret < 0) { > + printf("%s: [skip,fcntl-add-seals]\n", TEST_PREFIX); > + exit(77); > + } > + > + > size = getpagesize() * NUM_PAGES; > ret = ftruncate(memfd, size); > if (ret == -1) { Gr{oetje,eeting}s, Geert
> However, we need <linux/fcntl.h> for F_ADD_SEALS, F_SEAL_SHRINK. > > Including both leads to lots of redefinition warnings. > > Can we fix that? I still haven't looked at this and probably won't get a chance anytime soon. linux/tools/testing/selftests/memfd/fuse_test.c also suffers from this (it needs the F_ADD_SEALS too) so that should also be fixed if anyone gets a chance On Wed, 9 Jan 2019 at 10:44, Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > Hi Tom, > > On Tue, Nov 27, 2018 at 7:53 PM Tom Murphy <murphyt7@tcd.ie> wrote: > > This patch fixes the udmabuf selftest. Currently the selftest is broken. > > I fixed the selftest by setting the F_SEAL_SHRINK seal on the memfd > > file descriptor which is required by udmabuf and added the test to > > the selftest Makefile. > > > > Signed-off-by: Tom Murphy <murphyt7@tcd.ie> > > This is now commit 6edf2e3710f4ef25 ("fix dma-buf/udmabuf selftest"). > > > --- a/tools/testing/selftests/drivers/dma-buf/udmabuf.c > > +++ b/tools/testing/selftests/drivers/dma-buf/udmabuf.c > > @@ -4,7 +4,7 @@ > > #include <unistd.h> > > #include <string.h> > > #include <errno.h> > > -#include <fcntl.h> > > +#include <linux/fcntl.h> > > Not including <fcntl.h> means we get > > udmabuf.c:30:10: warning: implicit declaration of function ‘open’; did > you mean ‘popen’? [-Wimplicit-function-declaration] > devfd = open("/dev/udmabuf", O_RDWR); > udmabuf.c:42:8: warning: implicit declaration of function ‘fcntl’; did > you mean ‘fcvt’? [-Wimplicit-function-declaration] > ret = fcntl(memfd, F_ADD_SEALS, F_SEAL_SHRINK); > > However, we need <linux/fcntl.h> for F_ADD_SEALS, F_SEAL_SHRINK. > > Including both leads to lots of redefinition warnings. > > Can we fix that? > > > #include <malloc.h> > > > > #include <sys/ioctl.h> > > @@ -33,12 +33,19 @@ int main(int argc, char *argv[]) > > exit(77); > > } > > > > - memfd = memfd_create("udmabuf-test", MFD_CLOEXEC); > > + memfd = memfd_create("udmabuf-test", MFD_ALLOW_SEALING); > > if (memfd < 0) { > > printf("%s: [skip,no-memfd]\n", TEST_PREFIX); > > exit(77); > > } > > > > + ret = fcntl(memfd, F_ADD_SEALS, F_SEAL_SHRINK); > > + if (ret < 0) { > > + printf("%s: [skip,fcntl-add-seals]\n", TEST_PREFIX); > > + exit(77); > > + } > > + > > + > > size = getpagesize() * NUM_PAGES; > > ret = ftruncate(memfd, size); > > if (ret == -1) { > > Gr{oetje,eeting}s, > > Geert > > -- > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > In personal conversations with technical people, I call myself a hacker. But > when I'm talking to journalists I just say "programmer" or something like that. > -- Linus Torvalds
diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile index f1fe492c8e17..25efcde61d95 100644 --- a/tools/testing/selftests/Makefile +++ b/tools/testing/selftests/Makefile @@ -6,6 +6,7 @@ TARGETS += capabilities TARGETS += cgroup TARGETS += cpufreq TARGETS += cpu-hotplug +TARGETS += drivers/dma-buf TARGETS += efivarfs TARGETS += exec TARGETS += filesystems diff --git a/tools/testing/selftests/drivers/dma-buf/Makefile b/tools/testing/selftests/drivers/dma-buf/Makefile index 4154c3d7aa58..f22c3f7cf612 100644 --- a/tools/testing/selftests/drivers/dma-buf/Makefile +++ b/tools/testing/selftests/drivers/dma-buf/Makefile @@ -2,4 +2,6 @@ CFLAGS += -I../../../../../usr/include/ TEST_GEN_PROGS := udmabuf +top_srcdir ?=../../../../.. + include ../../lib.mk diff --git a/tools/testing/selftests/drivers/dma-buf/udmabuf.c b/tools/testing/selftests/drivers/dma-buf/udmabuf.c index 376b1d6730bd..4de902ea14d8 100644 --- a/tools/testing/selftests/drivers/dma-buf/udmabuf.c +++ b/tools/testing/selftests/drivers/dma-buf/udmabuf.c @@ -4,7 +4,7 @@ #include <unistd.h> #include <string.h> #include <errno.h> -#include <fcntl.h> +#include <linux/fcntl.h> #include <malloc.h> #include <sys/ioctl.h> @@ -33,12 +33,19 @@ int main(int argc, char *argv[]) exit(77); } - memfd = memfd_create("udmabuf-test", MFD_CLOEXEC); + memfd = memfd_create("udmabuf-test", MFD_ALLOW_SEALING); if (memfd < 0) { printf("%s: [skip,no-memfd]\n", TEST_PREFIX); exit(77); } + ret = fcntl(memfd, F_ADD_SEALS, F_SEAL_SHRINK); + if (ret < 0) { + printf("%s: [skip,fcntl-add-seals]\n", TEST_PREFIX); + exit(77); + } + + size = getpagesize() * NUM_PAGES; ret = ftruncate(memfd, size); if (ret == -1) {
This patch fixes the udmabuf selftest. Currently the selftest is broken. I fixed the selftest by setting the F_SEAL_SHRINK seal on the memfd file descriptor which is required by udmabuf and added the test to the selftest Makefile. Signed-off-by: Tom Murphy <murphyt7@tcd.ie> --- tools/testing/selftests/Makefile | 1 + tools/testing/selftests/drivers/dma-buf/Makefile | 2 ++ tools/testing/selftests/drivers/dma-buf/udmabuf.c | 11 +++++++++-- 3 files changed, 12 insertions(+), 2 deletions(-)