[Mesa-dev] [Bug 110884] can't start GDM when building mesa master branch with LTO
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Mon Jun 17 20:16:12 UTC 2019
https://bugs.freedesktop.org/show_bug.cgi?id=110884
--- Comment #8 from Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com> ---
That MR landed.
Patch that fix the issue here is
commit 397d1a18ef78ddf46efda44d6783105f9fd87f7e
Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date: Wed Jun 12 15:32:30 2019 -0700
llvmpipe: Don't use u_ringbuffer for lp_scene_queue
Inline the ring buffer and signal logic into lp_scene_queue instead of
using a u_ringbuffer. The code ends up simpler since there's no need
to handle serializing data from / to packets.
This fixes a crash when compiling Mesa with LTO, that happened because
of util_ringbuffer_dequeue() was writing data after the "header
packet", as shown below
struct scene_packet {
struct util_packet header;
struct lp_scene *scene;
};
/* Snippet of old lp_scene_deque(). */
packet.scene = NULL;
ret = util_ringbuffer_dequeue(queue->ring,
&packet.header,
sizeof packet / 4,
return packet.scene;
but due to the way aliasing analysis work the compiler didn't
considered the "&packet->header" to alias with "packet->scene". With
the aggressive inlining done by LTO, this would end up always
returning NULL instead of the content read by
util_ringbuffer_dequeue().
Issue found by Marcos Simental and Thiago Macieira.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110884
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
--
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190617/f3ba190b/attachment.html>
More information about the mesa-dev
mailing list