From: Thomas Zimmermann <tzimmermann@xxxxxxx> Sent: Thursday, February 1, 2024 12:17 AM > > Hi > > Am 01.02.24 um 07:00 schrieb mhkelley58@xxxxxxxxx: > > From: Michael Kelley <mhklinux@xxxxxxxxxxx> > > > > A recent commit removing the use of screen_info introduced a logic > > error. The error causes hvfb_getmem() to always return -ENOMEM > > for Generation 2 VMs. As a result, the Hyper-V frame buffer > > device fails to initialize. The error was introduced by removing > > an "else if" clause, leaving Gen2 VMs to always take the -ENOMEM > > error path. > > > > Fix the problem by removing the error path "else" clause. Gen 2 > > VMs now always proceed through the MMIO memory allocation code, > > but with "base" and "size" defaulting to 0. > > Indeed, that's how it was supposed to work. IDK how I didn't notice this > bug. Thanks a lot for the fix. > > > > > Fixes: 0aa0838c84da ("fbdev/hyperv_fb: Remove firmware framebufferswith aperture helpers") > > Signed-off-by: Michael Kelley <mhklinux@xxxxxxxxxxx> > > Reviewed-by: Thomas Zimmermann <tzimmermann@xxxxxxx> Wei Liu and Helge Deller -- Should this fix go through the Hyper-V tree or the fbdev tree? I'm not aware of a reason that it really matters, but it needs to be one or the other, and sooner rather than later, because the Hyper-V driver is broken starting in 6.8-rc1. Michael > > > --- > > drivers/video/fbdev/hyperv_fb.c | 2 -- > > 1 file changed, 2 deletions(-) > > > > diff --git a/drivers/video/fbdev/hyperv_fb.c > b/drivers/video/fbdev/hyperv_fb.c > > index c26ee6fd73c9..8fdccf033b2d 100644 > > --- a/drivers/video/fbdev/hyperv_fb.c > > +++ b/drivers/video/fbdev/hyperv_fb.c > > @@ -1010,8 +1010,6 @@ static int hvfb_getmem(struct hv_device *hdev, > struct fb_info *info) > > goto getmem_done; > > } > > pr_info("Unable to allocate enough contiguous physical memory on Gen 1 VM. Using MMIO instead.\n"); > > - } else { > > - goto err1; > > } > > > > /* >