]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
pata_pcmcia: get rid of extra indirection
authorDominik Brodowski <linux@dominikbrodowski.net>
Sat, 20 Mar 2010 19:04:26 +0000 (20:04 +0100)
committerDominik Brodowski <linux@dominikbrodowski.net>
Mon, 10 May 2010 08:23:24 +0000 (10:23 +0200)
We don't need ata_pcmcia_info any more.

Acked-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
drivers/ata/pata_pcmcia.c

index 2aab1e0f6633e9673be2df2e4eb69e9425960280..aa39bda6441a6749e0681eb6454fc9583097fa84 100644 (file)
 #define DRV_NAME "pata_pcmcia"
 #define DRV_VERSION "0.3.5"
 
-/*
- *     Private data structure to glue stuff together
- */
-
-struct ata_pcmcia_info {
-       struct pcmcia_device *pdev;
-       int             ndev;
-       dev_node_t      node;
-};
-
 /**
  *     pcmcia_set_mode -       PCMCIA specific mode setup
  *     @link: link
@@ -248,7 +238,6 @@ static int pcmcia_init_one(struct pcmcia_device *pdev)
 {
        struct ata_host *host;
        struct ata_port *ap;
-       struct ata_pcmcia_info *info;
        struct pcmcia_config_check *stk = NULL;
        int is_kme = 0, ret = -ENOMEM, p;
        unsigned long io_base, ctl_base;
@@ -256,14 +245,6 @@ static int pcmcia_init_one(struct pcmcia_device *pdev)
        int n_ports = 1;
        struct ata_port_operations *ops = &pcmcia_port_ops;
 
-       info = kzalloc(sizeof(*info), GFP_KERNEL);
-       if (info == NULL)
-               return -ENOMEM;
-
-       /* Glue stuff together. FIXME: We may be able to get rid of info with care */
-       info->pdev = pdev;
-       pdev->priv = info;
-
        /* Set up attributes in order to probe card and get resources */
        pdev->io.Attributes1 = IO_DATA_PATH_WIDTH_AUTO;
        pdev->io.Attributes2 = IO_DATA_PATH_WIDTH_8;
@@ -347,16 +328,14 @@ static int pcmcia_init_one(struct pcmcia_device *pdev)
        if (ret)
                goto failed;
 
-       info->ndev = 1;
+       pdev->priv = host;
        kfree(stk);
        return 0;
 
 failed:
        kfree(stk);
-       info->ndev = 0;
        pcmcia_disable_device(pdev);
 out1:
-       kfree(info);
        return ret;
 }
 
@@ -370,20 +349,12 @@ out1:
 
 static void pcmcia_remove_one(struct pcmcia_device *pdev)
 {
-       struct ata_pcmcia_info *info = pdev->priv;
-       struct device *dev = &pdev->dev;
-
-       if (info != NULL) {
-               /* If we have attached the device to the ATA layer, detach it */
-               if (info->ndev) {
-                       struct ata_host *host = dev_get_drvdata(dev);
-                       ata_host_detach(host);
-               }
-               info->ndev = 0;
-               pdev->priv = NULL;
-       }
+       struct ata_host *host = pdev->priv;
+
+       if (host)
+               ata_host_detach(host);
+
        pcmcia_disable_device(pdev);
-       kfree(info);
 }
 
 static struct pcmcia_device_id pcmcia_devices[] = {