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

diff -u -p a/arch/x86/platform/mrst/mrst.c b/arch/x86/platform/mrst/mrst.c
--- a/arch/x86/platform/mrst/mrst.c
+++ b/arch/x86/platform/mrst/mrst.c
@@ -356,10 +356,9 @@ static int __init sfi_parse_gpio(struct
        num = SFI_GET_NUM_ENTRIES(sb, struct sfi_gpio_table_entry);
        pentry = (struct sfi_gpio_table_entry *)sb->pentry;
 
-       gpio_table = kmalloc(num * sizeof(*pentry), GFP_KERNEL);
+       gpio_table = kmemdup(pentry, num * sizeof(*pentry), GFP_KERNEL);
        if (!gpio_table)
                return -1;
-       memcpy(gpio_table, pentry, num * sizeof(*pentry));
        gpio_num_entry = num;
 
        pr_debug("GPIO pin info:\n");
@@ -744,13 +743,12 @@ static void __init intel_scu_spi_device_
                return;
        }
 
-       new_dev = kzalloc(sizeof(*sdev), GFP_KERNEL);
+       new_dev = kmemdup(sdev, sizeof(*sdev), GFP_KERNEL);
        if (!new_dev) {
                pr_err("failed to alloc mem for delayed spi dev %s\n",
                        sdev->modalias);
                return;
        }
-       memcpy(new_dev, sdev, sizeof(*sdev));
 
        spi_devs[spi_next_dev++] = new_dev;
 }
@@ -765,13 +763,12 @@ static void __init intel_scu_i2c_device_
                return;
        }
 
-       new_dev = kzalloc(sizeof(*idev), GFP_KERNEL);
+       new_dev = kmemdup(idev, sizeof(*idev), GFP_KERNEL);
        if (!new_dev) {
                pr_err("failed to alloc mem for delayed i2c dev %s\n",
                        idev->type);
                return;
        }
-       memcpy(new_dev, idev, sizeof(*idev));
 
        i2c_bus[i2c_next_dev] = bus;
        i2c_devs[i2c_next_dev++] = new_dev;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to