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

Bug#761445: Not X.Org bug, probably libpciaccess0 one; fix attached



On Sun, Sep 14, 2014 at 03:39:10 +0400, Vitaliy Filippov wrote:

> With the help of gdb memory breakpoints, I've found the bug and made a sort
> of fix for it...
> 
> The real problem is not in X.Org, but more in either libdrm-intel1 or
> libpciaccess0...
> 
> The problem is that libdrm-intel1 calls pci_system_init() and then
> pci_system_cleanup() in function drm_intel_probe_agp_aperture_size from
> intel_bufmgr.c, and it doesn't take into account that someone else may need
> it, while libpciaccess0 just blindly accepts all these calls and does
> init/deinit.
> 
> The solution that first came to my mind is to "reference count" init/deinit
> calls so real init doesn't happen twice, and real deinit doesn't happen
> until the last user calls cleanup. The patch is attached; X.Org crash goes
> away after rebuilding libpciaccess0 with it...
> 
> Maybe it also would be good to fix libdrm-intel1 in some way, but it seems a
> slightly harder task :-)
> 
> The bug probably should be retargeted to libpciaccess0 package...
> 
Please report this on xorg-devel@lists.x.org and intel-gfx@lists.x.org.

Thanks,
Julien

Attachment: signature.asc
Description: Digital signature


Reply to: