[PATCH] libata-core cleanups (updated)
authorRandy Dunlap <rdunlap@xenotime.net>
Sat, 29 Oct 2005 03:37:23 +0000 (20:37 -0700)
committerJeff Garzik <jgarzik@pobox.com>
Sat, 29 Oct 2005 18:10:06 +0000 (14:10 -0400)
libata-core cleanups:
- use kzalloc() instead of kmalloc() + memset();
- use one exit path in ata_device_add();

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/scsi/libata-core.c

index 56c81f0aa1d9c7b7bc5247b0ac2fb07af19a409f..b1b1c6f01419efe3657dd516c538cf01106d019b 100644 (file)
@@ -4258,11 +4258,10 @@ int ata_device_add(const struct ata_probe_ent *ent)
 
        DPRINTK("ENTER\n");
        /* alloc a container for our list of ATA ports (buses) */
-       host_set = kmalloc(sizeof(struct ata_host_set) +
+       host_set = kzalloc(sizeof(struct ata_host_set) +
                           (ent->n_ports * sizeof(void *)), GFP_KERNEL);
        if (!host_set)
                return 0;
-       memset(host_set, 0, sizeof(struct ata_host_set) + (ent->n_ports * sizeof(void *)));
        spin_lock_init(&host_set->lock);
 
        host_set->dev = dev;
@@ -4302,10 +4301,8 @@ int ata_device_add(const struct ata_probe_ent *ent)
                count++;
        }
 
-       if (!count) {
-               kfree(host_set);
-               return 0;
-       }
+       if (!count)
+               goto err_free_ret;
 
        /* obtain irq, that is shared between channels */
        if (request_irq(ent->irq, ent->port_ops->irq_handler, ent->irq_flags,
@@ -4363,6 +4360,7 @@ err_out:
                ata_host_remove(host_set->ports[i], 1);
                scsi_host_put(host_set->ports[i]->host);
        }
+err_free_ret:
        kfree(host_set);
        VPRINTK("EXIT, returning 0\n");
        return 0;
@@ -4472,15 +4470,13 @@ ata_probe_ent_alloc(struct device *dev, const struct ata_port_info *port)
 {
        struct ata_probe_ent *probe_ent;
 
-       probe_ent = kmalloc(sizeof(*probe_ent), GFP_KERNEL);
+       probe_ent = kzalloc(sizeof(*probe_ent), GFP_KERNEL);
        if (!probe_ent) {
                printk(KERN_ERR DRV_NAME "(%s): out of memory\n",
                       kobject_name(&(dev->kobj)));
                return NULL;
        }
 
-       memset(probe_ent, 0, sizeof(*probe_ent));
-
        INIT_LIST_HEAD(&probe_ent->node);
        probe_ent->dev = dev;