qla4xxx: Use kmemdup instead of kmalloc + memcpy
authorBenoit Taine <benoit.taine@lip6.fr>
Mon, 26 May 2014 15:21:13 +0000 (17:21 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 28 May 2014 16:13:19 +0000 (18:13 +0200)
This issue was reported by coccicheck using the semantic patch
at scripts/coccinelle/api/memdup.cocci

Signed-off-by: Benoit Taine <benoit.taine@lip6.fr>
Acked-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/qla4xxx/ql4_os.c

index 9eef7d41522f198295e66a891fcfd599a3f211f6..32020637620649d6068876b532267935e3918647 100644 (file)
@@ -3565,14 +3565,13 @@ static int qla4xxx_copy_from_fwddb_param(struct iscsi_bus_flash_session *sess,
        if (test_bit(OPT_IPV6_DEVICE, &options)) {
                conn->ipv6_traffic_class = fw_ddb_entry->ipv4_tos;
 
-               conn->link_local_ipv6_addr = kzalloc(IPv6_ADDR_LEN, GFP_KERNEL);
+               conn->link_local_ipv6_addr = kmemdup(
+                                       fw_ddb_entry->link_local_ipv6_addr,
+                                       IPv6_ADDR_LEN, GFP_KERNEL);
                if (!conn->link_local_ipv6_addr) {
                        rc = -ENOMEM;
                        goto exit_copy;
                }
-
-               memcpy(conn->link_local_ipv6_addr,
-                      fw_ddb_entry->link_local_ipv6_addr, IPv6_ADDR_LEN);
        } else {
                conn->ipv4_tos = fw_ddb_entry->ipv4_tos;
        }