Re: [PATCH] sna: CustomEDID fix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting dom.constant@xxxxxxx (2018-02-02 18:37:12)
> Hello, 
> 
> For my HTPC setup, I'm using the option "CustomEDID".
> With this option, output attaching and destroying events leads to crashes.
> 
> The following sequence leads to a crash:
> - In xorg.conf: Option "CustomEDID" "HDMI2:/etc/my_edid.bin"
> - Starting Xorg
> - Connect HDMI2
> - Disconnect HDMI2
> - Reconnect HDMI2
>   -> Crash
> 
> 
> The crash happens in xf86OutputSetEDID (xorg/xserver/hw/xfree86/modes/xf86Crtc.c) 
> at "free(output->MonInfo)". MonInfo is assigned with sna_output->fake_edid_mon 
> which is allocated by intel driver in sna_output_load_fake_edid (src/sna/sna_display.c). 

Ho hum, looks like I never tested it more than a quick start of Xorg.
Sorry about that :(
 
> Sequence details:
> - Starting Xorg
>    -> fake_edid_mon is initialized
> 
> - Connect HDMI2
>    -> xf86OutputSetEDID is called: 
>        - MonInfo is NULL
>        - MonInfo is assigned with fake_edid_mon pointer
>        - MonInfo is read by Xorg
> 
> - Disconnect HDMI2
> 
> - Reconnect HDMI2
>    -> xf86OutputSetEDID is called:
>        - MonInfo is freed thus also fake_edid_mon
>        - MonInfo is assigned with fake_edid_mon
>        - MonInfo is read but it was freed -> CRASH
> 
> 
> The fix consists of a new instance of xf86MonPtr for each calls of xf86OutputSetEDID. 
> This instance is initialized with fake_edid_raw which render fake_edid_mon useless. 
> With this proposal, the behaviour of an EDID override is similar to a "real" EDID. 
> 
> Regards,
> 
> 
> Signed-off-by: Dominique Constant <dom.constant@xxxxxxx>
> To: Chris Wilson <chris at chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux