http://bugs.freedesktop.org/show_bug.cgi?id=18967





--- Comment #7 from peter garrone <pgarr...@optusnet.com.au>  2008-12-11 
23:45:18 PST ---
After a comment by Dave Airlie that if a map has been created already, then
that lock should be the primary, I analysed the addition of maps to
the "dev->maplist" list in the drm code.

Each time randr is run, all drm file descriptors are closed and reopened, and
the list accumulates map elements. However these elements are never removed,
because, although there is code to delete elements from the list, that code is
never executed. It could be if a user space ioctl were invoked, but that does
not happen. 

The old elements in the list are generally not reused, because they have a
"master" field that identifies them with the "master" structure active in the
device when the map was created. These master structures are allocated and
freed on each xrandr close/reopen cycle.

However if, by chance, an old "master" structure is returned by the dynamic
memory allocation function, then one of the elements is reused, and the branch
is taken in the code that does not set the master hwlock. So the infinite loop
is entered when a later attempt is made to lock the drm.

It seems problematic to free dynamic master structures, without also freeing
any elements that rely on a reference to that structure for correct operation. 
Actually it seems problematic having all these map structures hanging round
anyway, because I cannot find where they are ever freed, so at least they
represent a memory leak.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to