x86/efi: Use kmalloc_array() in efi_call_phys_prolog()
authorMarkus Elfring <elfring@users.sourceforge.net>
Thu, 25 Aug 2016 09:34:03 +0000 (11:34 +0200)
committerMatt Fleming <matt@codeblueprint.co.uk>
Fri, 9 Sep 2016 15:08:55 +0000 (16:08 +0100)
* A multiplication for the size determination of a memory allocation
  indicated that an array data structure should be processed.
  Thus reuse the corresponding function "kmalloc_array".

  This issue was detected by using the Coccinelle software.

* Replace the specification of a data type by a pointer dereference
  to make the corresponding size determination a bit safer according to
  the Linux coding style convention.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
arch/x86/platform/efi/efi_64.c

index e1ca712..d65cdad 100644 (file)
@@ -85,7 +85,7 @@ pgd_t * __init efi_call_phys_prolog(void)
        early_code_mapping_set_exec(1);
 
        n_pgds = DIV_ROUND_UP((max_pfn << PAGE_SHIFT), PGDIR_SIZE);
-       save_pgd = kmalloc(n_pgds * sizeof(pgd_t), GFP_KERNEL);
+       save_pgd = kmalloc_array(n_pgds, sizeof(*save_pgd), GFP_KERNEL);
 
        for (pgd = 0; pgd < n_pgds; pgd++) {
                save_pgd[pgd] = *pgd_offset_k(pgd * PGDIR_SIZE);