ia64: pcibr: Use kmemdup rather than duplicating its implementation
authorThomas Meyer <thomas@m3y3r.de>
Sat, 19 Nov 2011 11:26:05 +0000 (12:26 +0100)
committerTony Luck <tony.luck@intel.com>
Fri, 9 Dec 2011 23:22:44 +0000 (15:22 -0800)
The semantic patch that makes this change is available
in scripts/coccinelle/api/memdup.cocci.

Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/sn/pci/pcibr/pcibr_provider.c

index 5698f29d5add0ce3b7cc35471fa9dcb3f5a0b233..8886a0bc4a11c31ad2b174f23ed7c14843ace3f7 100644 (file)
@@ -127,12 +127,11 @@ pcibr_bus_fixup(struct pcibus_bussoft *prom_bussoft, struct pci_controller *cont
         * Allocate kernel bus soft and copy from prom.
         */
 
-       soft = kmalloc(sizeof(struct pcibus_info), GFP_KERNEL);
+       soft = kmemdup(prom_bussoft, sizeof(struct pcibus_info), GFP_KERNEL);
        if (!soft) {
                return NULL;
        }
 
-       memcpy(soft, prom_bussoft, sizeof(struct pcibus_info));
        soft->pbi_buscommon.bs_base = (unsigned long)
                ioremap(REGION_OFFSET(soft->pbi_buscommon.bs_base),
                        sizeof(struct pic));