2022-10-20 13:31:57

by ye xingchen

[permalink] [raw]
Subject: [PATCH linux-next] KVM: x86: Replace IS_ERR() with IS_ERR_VALUE()

From: ye xingchen <[email protected]>

Avoid type casts that are needed for IS_ERR() and use
IS_ERR_VALUE() instead.

Signed-off-by: ye xingchen <[email protected]>
---
arch/x86/kvm/x86.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 4bd5f8a751de..1c260f716c3b 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -12414,7 +12414,7 @@ void __user * __x86_set_memory_region(struct kvm *kvm, int id, gpa_t gpa,
*/
hva = vm_mmap(NULL, 0, size, PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, 0);
- if (IS_ERR((void *)hva))
+ if (IS_ERR_VALUE(hva))
return (void __user *)hva;
} else {
if (!slot || !slot->npages)
--
2.25.1


2022-10-20 17:48:46

by Sean Christopherson

[permalink] [raw]
Subject: Re: [PATCH linux-next] KVM: x86: Replace IS_ERR() with IS_ERR_VALUE()

On Thu, Oct 20, 2022, [email protected] wrote:
> From: ye xingchen <[email protected]>
>
> Avoid type casts that are needed for IS_ERR() and use
> IS_ERR_VALUE() instead.
>
> Signed-off-by: ye xingchen <[email protected]>
> ---

Ignoring until things get sorted out.

https://lore.kernel.org/r/[email protected]

2022-11-07 18:05:42

by H. Peter Anvin

[permalink] [raw]
Subject: Re: [PATCH linux-next] KVM: x86: Replace IS_ERR() with IS_ERR_VALUE()

On 10/20/22 04:39, [email protected] wrote:
> From: ye xingchen <[email protected]>
>
> Avoid type casts that are needed for IS_ERR() and use
> IS_ERR_VALUE() instead.
>
> Signed-off-by: ye xingchen <[email protected]>
> ---
> arch/x86/kvm/x86.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 4bd5f8a751de..1c260f716c3b 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -12414,7 +12414,7 @@ void __user * __x86_set_memory_region(struct kvm *kvm, int id, gpa_t gpa,
> */
> hva = vm_mmap(NULL, 0, size, PROT_READ | PROT_WRITE,
> MAP_SHARED | MAP_ANONYMOUS, 0);
> - if (IS_ERR((void *)hva))
> + if (IS_ERR_VALUE(hva))
> return (void __user *)hva;
> } else {
> if (!slot || !slot->npages)

This seems to imply IS_ERR() is misdesigned.

It would be nice to have IS_ERR() contain the appropriate casts. If we
want to enforce that the argument is a pointer, add IS_ERR_PTR()?

-hpa