释放平台驱动程序设备结构

时间:2019-03-12 05:24:36

标签: linux-kernel linux-device-driver device-driver kmalloc

在平台驱动程序的探测例程中,我看到专用设备结构是通过devm_kzalloc()分配的。在通过platform_set_drvdata()设置驱动程序数据之前,有一些错误情况会在不释放分配的专用设备结构的情况下返回。我找不到释放该结构的地方。您能指出结构在哪里被释放。以下是Linux内核源代码(v5.0)中的示例平台驱动程序,其中ep分配失败时不会释放pci

static int __init exynos_pcie_probe(struct platform_device *pdev)
{
    struct device *dev = &pdev->dev;
    struct dw_pcie *pci;
    struct exynos_pcie *ep;
    struct device_node *np = dev->of_node;
    int ret;

    ep = devm_kzalloc(dev, sizeof(*ep), GFP_KERNEL);
    if (!ep)
            return -ENOMEM;
    pci = devm_kzalloc(dev, sizeof(*pci), GFP_KERNEL);
    if (!pci)
       return -ENOMEM;
    ...
    ...
}

0 个答案:

没有答案