Re: [PATCH] selftests: kvm: Adds a judgment on the return value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Am 21.10.24 um 12:06 schrieb Liu Jing:
The global variable errno is not recommended to be assigned,

Just curious: from where is that information?

Reading the man page:

"errno is defined by the ISO C standard to be a modifiable lvalue
 of type int, and must not be explicitly declared; errno may be a
 macro.  errno is thread-local; setting it in one thread does not
 affect its value in any other thread."

Paired with

"For some system calls and library functions (e.g.,
 getpriority(2)), -1 is a valid return on success.  In such cases,
 a successful return can be distinguished from an error return by
 setting errno to zero before the call"

Not objecting that relying on the rc looks cleaner.

     and rc in the function does not check its return value, so it is fixed

Signed-off-by: Liu Jing <liujing@xxxxxxxxxxxxxxxxxxxx>
---
  tools/testing/selftests/kvm/s390x/cmma_test.c | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/kvm/s390x/cmma_test.c b/tools/testing/selftests/kvm/s390x/cmma_test.c
index e32dd59703a0..c59c21f28bbd 100644
--- a/tools/testing/selftests/kvm/s390x/cmma_test.c
+++ b/tools/testing/selftests/kvm/s390x/cmma_test.c
@@ -210,7 +210,7 @@ static int vm_get_cmma_bits(struct kvm_vm *vm, u64 flags, int *errno_out)
  	struct kvm_s390_cmma_log args;
  	int rc;
- errno = 0;
+	*errno_out = 0;
args = (struct kvm_s390_cmma_log){
  		.start_gfn = 0,
@@ -219,8 +219,10 @@ static int vm_get_cmma_bits(struct kvm_vm *vm, u64 flags, int *errno_out)
  		.values = (__u64)&cmma_value_buf[0]
  	};
  	rc = __vm_ioctl(vm, KVM_S390_GET_CMMA_BITS, &args);
+	if (rc < 0) {
+		*errno_out = errno;
+	}

if (rc < 0)
	*errno_out = errno;

--
Cheers,

David / dhildenb





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux