提交 daac3bbe 编写于 作者: E Eric Auger 提交者: Alex Williamson

vfio: platform: reset: calxedaxgmac: fix ioaddr leak

In the current code the vfio_platform_region is copied on the stack.
As a consequence the ioaddr address is not iounmapped in the vfio
platform driver (vfio_platform_regions_cleanup). The patch uses the
pointer to the region instead.
Signed-off-by: NEric Auger <eric.auger@linaro.org>
Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
上级 705e60ba
......@@ -59,20 +59,20 @@ static inline void xgmac_mac_disable(void __iomem *ioaddr)
int vfio_platform_calxedaxgmac_reset(struct vfio_platform_device *vdev)
{
struct vfio_platform_region reg = vdev->regions[0];
struct vfio_platform_region *reg = &vdev->regions[0];
if (!reg.ioaddr) {
reg.ioaddr =
ioremap_nocache(reg.addr, reg.size);
if (!reg.ioaddr)
if (!reg->ioaddr) {
reg->ioaddr =
ioremap_nocache(reg->addr, reg->size);
if (!reg->ioaddr)
return -ENOMEM;
}
/* disable IRQ */
writel(0, reg.ioaddr + XGMAC_DMA_INTR_ENA);
writel(0, reg->ioaddr + XGMAC_DMA_INTR_ENA);
/* Disable the MAC core */
xgmac_mac_disable(reg.ioaddr);
xgmac_mac_disable(reg->ioaddr);
return 0;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册