Commit 369fd7b0 authored by Keith Busch's avatar Keith Busch Committed by Bjorn Helgaas

PCI/AER: Use managed resource allocations

Use the managed device resource allocations for the service data so the AER
driver doesn't need to manage it, further simplifying this driver.

Link: https://lore.kernel.org/linux-pci/20180918235848.26694-12-keith.busch@intel.comSigned-off-by: default avatarKeith Busch <keith.busch@intel.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent 6200cc5e
......@@ -1367,11 +1367,7 @@ static void aer_remove(struct pcie_device *dev)
{
struct aer_rpc *rpc = get_service_data(dev);
if (rpc) {
aer_disable_rootport(rpc);
kfree(rpc);
set_service_data(dev, NULL);
}
aer_disable_rootport(rpc);
}
/**
......@@ -1384,10 +1380,9 @@ static int aer_probe(struct pcie_device *dev)
{
int status;
struct aer_rpc *rpc;
struct device *device = &dev->port->dev;
struct device *device = &dev->device;
/* Alloc rpc data structure */
rpc = kzalloc(sizeof(struct aer_rpc), GFP_KERNEL);
rpc = devm_kzalloc(device, sizeof(struct aer_rpc), GFP_KERNEL);
if (!rpc) {
dev_printk(KERN_DEBUG, device, "alloc AER rpc failed\n");
return -ENOMEM;
......@@ -1395,13 +1390,11 @@ static int aer_probe(struct pcie_device *dev)
rpc->rpd = dev->port;
set_service_data(dev, rpc);
/* Request IRQ ISR */
status = request_threaded_irq(dev->irq, aer_irq, aer_isr,
IRQF_SHARED, "aerdrv", dev);
status = devm_request_threaded_irq(device, dev->irq, aer_irq, aer_isr,
IRQF_SHARED, "aerdrv", dev);
if (status) {
dev_printk(KERN_DEBUG, device, "request AER IRQ %d failed\n",
dev->irq);
aer_remove(dev);
return status;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment