mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
fbdev: hyperv_fb: iounmap() the correct memory when removing a device
[ Upstream commit 7241c886a71797cc51efc6fadec7076fcf6435c2 ] When a Hyper-V framebuffer device is removed, or the driver is unbound from a device, any allocated and/or mapped memory must be released. In particular, MMIO address space that was mapped to the framebuffer must be unmapped. Current code unmaps the wrong address, resulting in an error like: [ 4093.980597] iounmap: bad address 00000000c936c05c followed by a stack dump. Commitd21987d709("video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver") changed the kind of address stored in info->screen_base, and the iounmap() call in hvfb_putmem() was not updated accordingly. Fix this by updating hvfb_putmem() to unmap the correct address. Fixes:d21987d709("video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver") Signed-off-by: Michael Kelley <mhklinux@outlook.com> Reviewed-by: Saurabh Sengar <ssengar@linux.microsoft.com> Link: https://lore.kernel.org/r/20250209235252.2987-1-mhklinux@outlook.com Signed-off-by: Wei Liu <wei.liu@kernel.org> Message-ID: <20250209235252.2987-1-mhklinux@outlook.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f9c572d02f
commit
01e8a8111b
@@ -1106,7 +1106,7 @@ static void hvfb_putmem(struct hv_device *hdev, struct fb_info *info)
|
||||
|
||||
if (par->need_docopy) {
|
||||
vfree(par->dio_vp);
|
||||
iounmap(info->screen_base);
|
||||
iounmap(par->mmio_vp);
|
||||
vmbus_free_mmio(par->mem->start, screen_fb_size);
|
||||
} else {
|
||||
hvfb_release_phymem(hdev, info->fix.smem_start,
|
||||
|
||||
Reference in New Issue
Block a user