提交 039bb71a 编写于 作者: K Keith Busch 提交者: Caspar Zhang

PCI/AER: Use managed resource allocations

task #29600094

commit 369fd7b00fce169570d6a74cb369e60dbfc95fb4 upstream.
Backport summary: for 4.19 kernel ICX PCIe Gen4 support.

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: NKeith Busch <keith.busch@intel.com>
Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
(cherry picked from commit 369fd7b00fce169570d6a74cb369e60dbfc95fb4)
Signed-off-by: NEthan Zhao <haifeng.zhao@intel.com>
Signed-off-by: NArtie Ding <artie.ding@linux.alibaba.com>
Acked-by: NCaspar Zhang <caspar@linux.alibaba.com>
上级 b3623f8e
......@@ -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);
}
}
/**
......@@ -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,
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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册