[PATCH 20/42] Move DGA from extmod to built-in

Paulo Zanoni przanoni at gmail.com
Fri Dec 2 13:17:24 PST 2011

2011/12/2 Daniel Stone <daniel at fooishbar.org>:
> @@ -90,6 +104,9 @@ load_extension_config(void)
>         }
>  #endif
>     }
> +
> +    for (i = 0; i < ARRAY_SIZE(extensionModules); i++)
> +       LoadExtension(&extensionModules[i], TRUE);
>  }
>  void

With this statement, Xorg will try to load its modules twice. Maybe it
was added by accident? Don't forget to remove the "int i" declaration

Look: http://cgit.freedesktop.org/~daniels/xserver/tree/hw/xfree86/common/xf86Extensions.c?h=extension-cleanup&id=2c4cb57dfa2e37ef910be298c2bcbb9731e5f137#n108

xf86ExtensionInit will call load_extension_config, which will do that
loop quoted above (line 108). Then, at line 119 xf86ExtensionInit will
run the same loop again.

I cloned your full git tree, and Xorg was not starting because of
that. After I removed exactly the lines I quoted, Xorg starts and I
can login and play OpenArena (but I didn't test too much). I also
checked that simple Xorg startup/shutdown without clients doesn't
introduce any new memory leaks, and it also accidentaly fixes a memory
leak because you removed LoaderSortExtensions.

As a side note, don't we get a faster server startup after all this?
Did anyone measure?

I'll keep running your tree to see if I find anything else.


Paulo Zanoni

More information about the xorg-devel mailing list