]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
net: ep93xx_eth: fix mismatch of request_mem_region in remove
authorChuhong Yuan <hslester96@gmail.com>
Thu, 14 Nov 2019 15:43:24 +0000 (23:43 +0800)
committerMarcelo Henrique Cerri <marcelo.cerri@canonical.com>
Fri, 17 Jan 2020 17:22:03 +0000 (14:22 -0300)
BugLink: https://bugs.launchpad.net/bugs/1857158
[ Upstream commit 3df70afe8d33f4977d0e0891bdcfb639320b5257 ]

The driver calls release_resource in remove to match request_mem_region
in probe, which is incorrect.
Fix it by using the right one, release_mem_region.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
drivers/net/ethernet/cirrus/ep93xx_eth.c

index e2a702996db41f073879b91475c24c249292955a..82bd918bf967f53aa003996d24a00cd4c2098c36 100644 (file)
@@ -767,6 +767,7 @@ static int ep93xx_eth_remove(struct platform_device *pdev)
 {
        struct net_device *dev;
        struct ep93xx_priv *ep;
+       struct resource *mem;
 
        dev = platform_get_drvdata(pdev);
        if (dev == NULL)
@@ -782,8 +783,8 @@ static int ep93xx_eth_remove(struct platform_device *pdev)
                iounmap(ep->base_addr);
 
        if (ep->res != NULL) {
-               release_resource(ep->res);
-               kfree(ep->res);
+               mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+               release_mem_region(mem->start, resource_size(mem));
        }
 
        free_netdev(dev);