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