PCI: Remove struct pci_vpd_ops.release function pointer
authorBjorn Helgaas <bhelgaas@google.com>
Mon, 22 Feb 2016 19:58:20 +0000 (13:58 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 29 Feb 2016 23:47:24 +0000 (17:47 -0600)
The struct pci_vpd_ops.release function pointer is always
pci_vpd_pci22_release(), so there's no need for the flexibility of a
function pointer.

Inline the pci_vpd_pci22_release() body into pci_vpd_release() and remove
pci_vpd_pci22_release() and the struct pci_vpd_ops.release function
pointer.

Tested-by: Shane Seymour <shane.seymour@hpe.com>
Tested-by: Babu Moger <babu.moger@oracle.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
drivers/pci/access.c
drivers/pci/pci.h

index ca42a33bbb001ba00b9d599ffcfbd6a7e7ec7ded..68ed22a4b116ee4b91d3d6b3652d505d331b4ca2 100644 (file)
@@ -508,15 +508,9 @@ out:
        return ret ? ret : count;
 }
 
-static void pci_vpd_pci22_release(struct pci_dev *dev)
-{
-       kfree(container_of(dev->vpd, struct pci_vpd_pci22, base));
-}
-
 static const struct pci_vpd_ops pci_vpd_pci22_ops = {
        .read = pci_vpd_pci22_read,
        .write = pci_vpd_pci22_write,
-       .release = pci_vpd_pci22_release,
 };
 
 static ssize_t pci_vpd_f0_read(struct pci_dev *dev, loff_t pos, size_t count,
@@ -552,7 +546,6 @@ static ssize_t pci_vpd_f0_write(struct pci_dev *dev, loff_t pos, size_t count,
 static const struct pci_vpd_ops pci_vpd_f0_ops = {
        .read = pci_vpd_f0_read,
        .write = pci_vpd_f0_write,
-       .release = pci_vpd_pci22_release,
 };
 
 int pci_vpd_pci22_init(struct pci_dev *dev)
@@ -584,7 +577,7 @@ int pci_vpd_pci22_init(struct pci_dev *dev)
 void pci_vpd_release(struct pci_dev *dev)
 {
        if (dev->vpd)
-               dev->vpd->ops->release(dev);
+               kfree(container_of(dev->vpd, struct pci_vpd_pci22, base));
 }
 
 /**
index 52e86b0d56d2548d701c2f8ead75a499363ea56e..b3e9daac67d4c49488d8b657da4c7c46b217f2af 100644 (file)
@@ -97,7 +97,6 @@ static inline bool pci_has_subordinate(struct pci_dev *pci_dev)
 struct pci_vpd_ops {
        ssize_t (*read)(struct pci_dev *dev, loff_t pos, size_t count, void *buf);
        ssize_t (*write)(struct pci_dev *dev, loff_t pos, size_t count, const void *buf);
-       void (*release)(struct pci_dev *dev);
 };
 
 struct pci_vpd {