| Message ID | ad42871b-22a6-4819-b5db-835e7044b3f1@web.de (mailing list archive) |
|---|---|
| State | Changes Requested |
| Headers | show |
| Series | KVM: PPC: Use pointer from memcpy() call for assignment in kvmppc_kvm_pv() | expand |
On Thu, 30 Oct 2025 21:51:00 +0100 Markus Elfring <Markus.Elfring@web.de> wrote: > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Thu, 30 Oct 2025 21:43:20 +0100 > Subject: [PATCH] KVM: PPC: Use pointer from memcpy() call for assignment in kvmppc_kvm_pv() > > A pointer was assigned to a variable. The same pointer was used for > the destination parameter of a memcpy() call. > This function is documented in the way that the same value is returned. > Thus convert two separate statements into a direct variable assignment for > the return value from a memory copy action. > > The source code was transformed by using the Coccinelle software. > > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> > --- > arch/powerpc/kvm/powerpc.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c > index 2ba057171ebe..ae28447b3e04 100644 > --- a/arch/powerpc/kvm/powerpc.c > +++ b/arch/powerpc/kvm/powerpc.c > @@ -216,8 +216,7 @@ int kvmppc_kvm_pv(struct kvm_vcpu *vcpu) > > shared &= PAGE_MASK; > shared |= vcpu->arch.magic_page_pa & 0xf000; > - new_shared = (void*)shared; > - memcpy(new_shared, old_shared, 0x1000); > + new_shared = memcpy(shared, old_shared, 0x1000); Did you even try to compile this?? > vcpu->arch.shared = new_shared; > } > #endif
On Thu, Oct 30, 2025 at 09:51:00PM +0100, Markus Elfring wrote: > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Thu, 30 Oct 2025 21:43:20 +0100 > Subject: [PATCH] KVM: PPC: Use pointer from memcpy() call for assignment in kvmppc_kvm_pv() > > A pointer was assigned to a variable. The same pointer was used for > the destination parameter of a memcpy() call. > This function is documented in the way that the same value is returned. > Thus convert two separate statements into a direct variable assignment for > the return value from a memory copy action. > > The source code was transformed by using the Coccinelle software. > > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> > --- > arch/powerpc/kvm/powerpc.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c > index 2ba057171ebe..ae28447b3e04 100644 > --- a/arch/powerpc/kvm/powerpc.c > +++ b/arch/powerpc/kvm/powerpc.c > @@ -216,8 +216,7 @@ int kvmppc_kvm_pv(struct kvm_vcpu *vcpu) > > shared &= PAGE_MASK; > shared |= vcpu->arch.magic_page_pa & 0xf000; > - new_shared = (void*)shared; > - memcpy(new_shared, old_shared, 0x1000); > + new_shared = memcpy(shared, old_shared, 0x1000); > vcpu->arch.shared = new_shared; > } > #endif This patch does not compile In file included from ./include/linux/string.h:382, from ./arch/powerpc/include/asm/paca.h:16, from ./arch/powerpc/include/asm/current.h:13, from ./include/linux/sched.h:12, from ./include/linux/resume_user_mode.h:6, from ./include/linux/entry-virt.h:6, from ./include/linux/kvm_host.h:5, from arch/powerpc/kvm/powerpc.c:12: arch/powerpc/kvm/powerpc.c: In function `kvmppc_kvm_pv´: arch/powerpc/kvm/powerpc.c:219:45: error: passing argument 1 of `__builtin_dynamic_object_size´ makes pointer from integer without a cast [-Wint-conversion] 219 | new_shared = memcpy(shared, old_shared, 0x1000); | ^~~~~~ | | | ulong {aka long unsigned int} Thanks, Gautam
>> A pointer was assigned to a variable. The same pointer was used for >> the destination parameter of a memcpy() call. >> This function is documented in the way that the same value is returned. >> Thus convert two separate statements into a direct variable assignment for >> the return value from a memory copy action. …>> +++ b/arch/powerpc/kvm/powerpc.c >> @@ -216,8 +216,7 @@ int kvmppc_kvm_pv(struct kvm_vcpu *vcpu) >> >> shared &= PAGE_MASK; >> shared |= vcpu->arch.magic_page_pa & 0xf000; >> - new_shared = (void*)shared; >> - memcpy(new_shared, old_shared, 0x1000); >> + new_shared = memcpy(shared, old_shared, 0x1000); >> vcpu->arch.shared = new_shared; >> } >> #endif > > This patch does not compile …> arch/powerpc/kvm/powerpc.c: In function `kvmppc_kvm_pv´: > arch/powerpc/kvm/powerpc.c:219:45: error: passing argument 1 of `__builtin_dynamic_object_size´ makes pointer from integer without a cast [-Wint-conversion] … Will another subsequent patch variant become relevant for the proposed source code transformation approach? Regards, Markus
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c index 2ba057171ebe..ae28447b3e04 100644 --- a/arch/powerpc/kvm/powerpc.c +++ b/arch/powerpc/kvm/powerpc.c @@ -216,8 +216,7 @@ int kvmppc_kvm_pv(struct kvm_vcpu *vcpu) shared &= PAGE_MASK; shared |= vcpu->arch.magic_page_pa & 0xf000; - new_shared = (void*)shared; - memcpy(new_shared, old_shared, 0x1000); + new_shared = memcpy(shared, old_shared, 0x1000); vcpu->arch.shared = new_shared; } #endif