Used kmemdup instead of replicating it's behaviour with kmalloc followed
by memcpy.
Patch found using coccinelle.

Signed-off-by: Alexandru Gheorghiu <gheorghiuan...@gmail.com>
---
 sound/oss/uart401.c |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/sound/oss/uart401.c b/sound/oss/uart401.c
index 8e514a6..5433c6f 100644
--- a/sound/oss/uart401.c
+++ b/sound/oss/uart401.c
@@ -352,23 +352,26 @@ int probe_uart401(struct address_info *hw_config, struct 
module *owner)
                goto cleanup_irq;
        }
        conf_printf(name, hw_config);
-       midi_devs[devc->my_dev] = kmalloc(sizeof(struct midi_operations), 
GFP_KERNEL);
+       midi_devs[devc->my_dev] = kmemdup(&uart401_operations,
+                                         sizeof(struct midi_operations),
+                                         GFP_KERNEL);
        if (!midi_devs[devc->my_dev]) {
                printk(KERN_ERR "uart401: Failed to allocate memory\n");
                goto cleanup_unload_mididev;
        }
-       memcpy(midi_devs[devc->my_dev], &uart401_operations, sizeof(struct 
midi_operations));
 
        if (owner)
                midi_devs[devc->my_dev]->owner = owner;
        
        midi_devs[devc->my_dev]->devc = devc;
-       midi_devs[devc->my_dev]->converter = kmalloc(sizeof(struct 
synth_operations), GFP_KERNEL);
+       midi_devs[devc->my_dev]->converter = kmemdup(&std_midi_synth,
+                                                    sizeof(struct 
synth_operations),
+                                                    GFP_KERNEL);
+
        if (!midi_devs[devc->my_dev]->converter) {
                printk(KERN_WARNING "uart401: Failed to allocate memory\n");
                goto cleanup_midi_devs;
        }
-       memcpy(midi_devs[devc->my_dev]->converter, &std_midi_synth, 
sizeof(struct synth_operations));
        strcpy(midi_devs[devc->my_dev]->info.name, name);
        midi_devs[devc->my_dev]->converter->id = "UART401";
        midi_devs[devc->my_dev]->converter->midi_dev = devc->my_dev;
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
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