On 05/09/2017 04:51 PM, Eric Anholt wrote:
Aaron Plattner <[email protected]> writes:Commit 112d0d7d01b9 lost the initialization of the variable i in the loop to add secondary driver matches to the list of configs: @@ -398,8 +412,8 @@ autoConfigDevice(GDevPtr preconf_device) /* for each other driver found, copy the first screen, insert it * into the list of screens and set the driver */ - for (i = 1; i < num_matches; i++) { - if (!copyScreen(slp[0].screen, ptr, i, matches[i])) + while (i++ < md.nmatches) { + if (!copyScreen(slp[0].screen, ptr, i, md.matches[i])) return NULL; } This caused only the first match to be added, because an earlier loop sets i = md.nmatches. Fix this by reverting the while loop back to a for loop. Reported-by: Michel Dänzer <[email protected]> Reported-by: Peter Hutterer <[email protected]> Reported-by: Eric Anholt <[email protected]> Cc: Adam Jackson <[email protected]> Fixes: 112d0d7d01b9 ("xfree86: Improved autoconfig drivers matching") Signed-off-by: Aaron Plattner <[email protected]> --- Resend: forgot to Cc the list.This is a pretty clear unintended behavior change. Tested-by: Eric Anholt <[email protected]> Since we collided on me pushing the revert, shall I squash this into a re-cherry-pick of the change as a v2?
Sounds good to me. -- Aaron nvpublic _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
