2013-06-01 09:42:26

by Thomas Meyer

[permalink] [raw]
Subject: [PATCH] x86, microcode, AMD: Cocci spatch "memdup.spatch"


Signed-off-by: Thomas Meyer <[email protected]>
---

diff -u -p a/arch/x86/kernel/microcode_amd.c b/arch/x86/kernel/microcode_amd.c
--- a/arch/x86/kernel/microcode_amd.c
+++ b/arch/x86/kernel/microcode_amd.c
@@ -345,7 +345,7 @@ static int verify_and_add_patch(unsigned
return -EINVAL;
}

- patch->data = kzalloc(patch_size, GFP_KERNEL);
+ patch->data = kmemdup(fw + SECTION_HDR_SIZE, patch_size, GFP_KERNEL);
if (!patch->data) {
pr_err("Patch data allocation failure.\n");
kfree(patch);
@@ -353,7 +353,6 @@ static int verify_and_add_patch(unsigned
}

/* All looks ok, copy patch... */
- memcpy(patch->data, fw + SECTION_HDR_SIZE, patch_size);
INIT_LIST_HEAD(&patch->plist);
patch->patch_id = mc_hdr->patch_id;
patch->equiv_cpu = proc_id;


2013-06-02 10:21:32

by Borislav Petkov

[permalink] [raw]
Subject: Re: [PATCH] x86, microcode, AMD: Cocci spatch "memdup.spatch"

On Sat, Jun 01, 2013 at 11:42:11AM +0200, Thomas Meyer wrote:
>
> Signed-off-by: Thomas Meyer <[email protected]>
> ---
>
> diff -u -p a/arch/x86/kernel/microcode_amd.c b/arch/x86/kernel/microcode_amd.c
> --- a/arch/x86/kernel/microcode_amd.c
> +++ b/arch/x86/kernel/microcode_amd.c
> @@ -345,7 +345,7 @@ static int verify_and_add_patch(unsigned
> return -EINVAL;
> }
>
> - patch->data = kzalloc(patch_size, GFP_KERNEL);
> + patch->data = kmemdup(fw + SECTION_HDR_SIZE, patch_size, GFP_KERNEL);
> if (!patch->data) {
> pr_err("Patch data allocation failure.\n");
> kfree(patch);
> @@ -353,7 +353,6 @@ static int verify_and_add_patch(unsigned
> }
>
> /* All looks ok, copy patch... */
> - memcpy(patch->data, fw + SECTION_HDR_SIZE, patch_size);
> INIT_LIST_HEAD(&patch->plist);
> patch->patch_id = mc_hdr->patch_id;
> patch->equiv_cpu = proc_id;

I can see what happens with a little code browsing of the definition of
kmemdup but patches without a commit message are most times not a very
elegant thing.

So please add a nice commit message explaining why you're doing what
you're doing. If the coccinelle script is not in the kernel tree,
then referring to it doesn't mean a whole lot so don't do it. Rather,
explaining why you're doing the change, is a much better thing to do.

Thanks.