Nathan Lynch via B4 Relay <devnull+nathanl.linux.ibm....@kernel.org> writes: > From: Nathan Lynch <nath...@linux.ibm.com> > > Consistently testing system parameter access is a bit difficult by > nature -- the set of parameters available depends on the model and > system configuration, and updating a parameter should be considered a > destructive operation reserved for the admin. ... > diff --git a/tools/testing/selftests/powerpc/papr_sysparm/papr_sysparm.c > b/tools/testing/selftests/powerpc/papr_sysparm/papr_sysparm.c > new file mode 100644 > index 000000000000..fc25c03e8bc7 > --- /dev/null > +++ b/tools/testing/selftests/powerpc/papr_sysparm/papr_sysparm.c > @@ -0,0 +1,164 @@ ... > +static int set_hmc0(void) > +{ > + struct papr_sysparm_io_block sp = { > + .parameter = 0, // HMC0, not a settable parameter > + }; > + const int devfd = open(DEVPATH, O_RDONLY); > + > + SKIP_IF_MSG(devfd < 0 && errno == ENOENT, > + DEVPATH " not present"); > + > + FAIL_IF(devfd < 0); > + > + // Ensure expected error > + FAIL_IF(ioctl(devfd, PAPR_SYSPARM_IOC_SET, &sp) != -1); > + FAIL_IF(errno != EPERM); > + > + FAIL_IF(close(devfd) != 0); > + > + return 0; > +}
This one fails when run with qemu/KVM. # selftests: powerpc: papr_sysparm # test: open and close /dev/papr-sysparm without issuing commands # tags: git_version:v6.7-rc2-35-g41ada9f713ae # success: open and close /dev/papr-sysparm without issuing commands # test: retrieve SPLPAR characteristics # tags: git_version:v6.7-rc2-35-g41ada9f713ae # success: retrieve SPLPAR characteristics # test: verify EOPNOTSUPP for known-bad parameter # tags: git_version:v6.7-rc2-35-g41ada9f713ae # success: verify EOPNOTSUPP for known-bad parameter # test: PAPR_SYSPARM_IOC_GET returns EFAULT on bad address # tags: git_version:v6.7-rc2-35-g41ada9f713ae # success: PAPR_SYSPARM_IOC_GET returns EFAULT on bad address # test: PAPR_SYSPARM_IOC_SET returns EFAULT on bad address # tags: git_version:v6.7-rc2-35-g41ada9f713ae # success: PAPR_SYSPARM_IOC_SET returns EFAULT on bad address # test: ensure EPERM on attempt to update HMC0 # tags: git_version:v6.7-rc2-35-g41ada9f713ae # [FAIL] Test FAILED on line 113 # failure: ensure EPERM on attempt to update HMC0 It's returning EOPNOTSUPP. Something like below would work to fix it. cheers diff --git a/tools/testing/selftests/powerpc/papr_sysparm/papr_sysparm.c b/tools/testing/selftests/powerpc/papr_sysparm/papr_sysparm.c index fc25c03e8bc7..9d4850c25aed 100644 --- a/tools/testing/selftests/powerpc/papr_sysparm/papr_sysparm.c +++ b/tools/testing/selftests/powerpc/papr_sysparm/papr_sysparm.c @@ -110,6 +110,7 @@ static int set_hmc0(void) // Ensure expected error FAIL_IF(ioctl(devfd, PAPR_SYSPARM_IOC_SET, &sp) != -1); + SKIP_IF_MSG(errno == EOPNOTSUPP, "operation not supported"); FAIL_IF(errno != EPERM); FAIL_IF(close(devfd) != 0);