On 25.07.2016 17:12, Emily Deng wrote: > In function xf86VGAarbiterScrnInit when the "pEnt->bus.type" is > BUS_PLATFORM, the "pScrn->vgaDev" won't be set, so the "pScrn->vgaDev" is > equal to zero. > > The variable "rsrc_decodes" in function "xf86VGAarbiterAllowDRI" is not > initialized. So it will occur error when "pScrn->vgaDev == 0", and > "vga_count > 1". For this case, as "pScrn->vgaDev == 0", the function > "pci_device_vgaarb_get_info" will only set the value of "vga_count", > but won't set the value of "rsrc_decodes", so it will has two different > return values for function "xf86VGAarbiterAllowDRI" in different > platforms. One platform will return TRUE, as the "rsrc_decodes" 's > default value is 0, but another platform will return FALSE, as the > "rsrc_decodes" 's default value is "32767", this will cause disable > direct rendering. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96937 > > Signed-off-by: Emily Deng <[email protected]> > --- > hw/xfree86/common/xf86VGAarbiter.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/xfree86/common/xf86VGAarbiter.c > b/hw/xfree86/common/xf86VGAarbiter.c > index 5cc2429..0a3d6c6 100644 > --- a/hw/xfree86/common/xf86VGAarbiter.c > +++ b/hw/xfree86/common/xf86VGAarbiter.c > @@ -105,7 +105,7 @@ Bool > xf86VGAarbiterAllowDRI(ScreenPtr pScreen) > { > int vga_count; > - int rsrc_decodes; > + int rsrc_decodes = 0; > ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); > > if (vga_no_arb) >
Reviewed-by: Michel Dänzer <[email protected]> -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
