From: Binbin Wu > Sent: 29 June 2023 07:12 ... > >> +void vmx_untag_addr(struct kvm_vcpu *vcpu, gva_t *gva, u32 flags) > > > > Rather than modify the pointer, return the untagged address. That's more flexible > > as it allows using the result in if-statements and whatnot. That might not ever > > come into play, but there's no good reason to use an in/out param in a void > > function. > > In earlier version, it did return the untagged address. > In this version, I changed it as an in/out param to make the interface > conditional and avoid to add a dummy one in SVM. > Is it can be a reason? You are always going to need a 'dummy' version. If it ends up being 'x = x' the compiler will just optimise it away. But for a real function you'll get much better code from: x = fn(x); than fn(&x); It also lets you used 'void *' (etc) to avoid casts which can easily hide bugs. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)