Messages in this thread | | | Date | Fri, 4 Aug 2023 11:33:53 -0700 | Subject | Re: [PATCH 2/4] KVM: selftests: Add helper macros for ioctl()s that return file descriptors | From | Sean Christopherson <> |
| |
On Fri, Aug 04, 2023, Colton Lewis wrote: > Oliver Upton <oliver.upton@linux.dev> writes: > > > Hi Sean, > > > On Thu, Aug 03, 2023 at 05:42:24PM -0700, Sean Christopherson wrote: > > > Add KVM, VM, and vCPU scoped helpers for ioctl()s that return file > > > descriptors, i.e. deduplicate code for asserting success on ioctls() for > > > which a positive return value, not just zero, is considered success. > > > > Signed-off-by: Sean Christopherson <seanjc@google.com> > > > I appreciate the desire to eliminate duplicate code, but I think the > > naming just muddies the waters. TBH, when I first read the diff w/o the > > changelog, I thought you were describing the input fd (i.e. 'kvm_fd', > > 'vm_fd', 'vcpu_fd'). I don't think explicitly spelling out the condition > > each time (i.e. ret >= 0) is all that difficult. > > Couldn't ret >= 0 be the assert condition for everything? Don't see why > there needs to be different helpers to check == 0 and >= 0. > > Unless I'm missing something, error returns are only ever negative.
Using "ret >= 0" would work in the sense that the tests wouldn't fail, but it would degrade our test coverage, e.g. selftests wouldn't detect KVM bugs where an ioctl() unexpectedly returns a non-zero, positive value.
The other wrinkle is that selftests need to actually consume the return value for ioctl()s that return a positive value, i.e. the fd (or whatever it is) needs to propagated up the stack. I.e. all of the generic ioctl() macros would need to "return" the value, which I really don't want to do because that would (re)open the gates for having helpers that return an int, even though the only possible return value is '0'.
| |