lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 11 Apr 2020 10:49:30 +0800 From: Tian Tao <tiantao6@...ilicon.com> To: <puck.chen@...ilicon.com>, <airlied@...ux.ie>, <daniel@...ll.ch>, <tzimmermann@...e.de>, <kraxel@...hat.com>, <alexander.deucher@....com>, <tglx@...utronix.de>, <dri-devel@...ts.freedesktop.org>, <xinliang.liu@...aro.org>, <linux-kernel@...r.kernel.org> CC: <linuxarm@...wei.com> Subject: [PATCH] drm/hisilicon: Add the shutdown for hibmc_pci_driver add the shutdown function to release the resource. Signed-off-by: Tian Tao <tiantao6@...ilicon.com> --- drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c index a6fd0c2..126d4f4 100644 --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c @@ -232,6 +232,21 @@ static int hibmc_hw_map(struct hibmc_drm_private *priv) return 0; } +static void hibmc_hw_unmap(struct hibmc_drm_private *priv) +{ + struct drm_device *dev = priv->dev; + + if (priv->mmio) { + devm_iounmap(dev->dev, priv->mmio); + priv->mmio = NULL; + } + + if (priv->fb_map) { + devm_iounmap(dev->dev, priv->fb_map); + priv->fb_map = NULL; + } +} + static int hibmc_hw_init(struct hibmc_drm_private *priv) { int ret; @@ -258,6 +273,7 @@ static int hibmc_unload(struct drm_device *dev) hibmc_kms_fini(priv); hibmc_mm_fini(priv); + hibmc_hw_unmap(priv); dev->dev_private = NULL; return 0; } @@ -374,6 +390,12 @@ static void hibmc_pci_remove(struct pci_dev *pdev) drm_dev_unregister(dev); hibmc_unload(dev); drm_dev_put(dev); + pci_disable_device(pdev); +} + +static void hibmc_pci_shutdown(struct pci_dev *pdev) +{ + hibmc_pci_remove(pdev); } static struct pci_device_id hibmc_pci_table[] = { @@ -386,6 +408,7 @@ static struct pci_driver hibmc_pci_driver = { .id_table = hibmc_pci_table, .probe = hibmc_pci_probe, .remove = hibmc_pci_remove, + .shutdown = hibmc_pci_shutdown, .driver.pm = &hibmc_pm_ops, }; -- 2.7.4
Powered by blists - more mailing lists