Subject: Kernel bug caused by 'git apply' misapplying a patch with ambiguous chunk

From: Mikko Perttunen <[email-masked]>
Date: Thu, 02 Apr 2015 18:25:12 +0300

Hello everyone,

we recently ran into a kernel bug caused by git misapplying this patch: 
https://lkml.org/lkml/2014/7/3/896 .

The chunk '@@ -653,6 +655,7 @@' in tegra124.dtsi (the second file in the 
patch) has ambiguous context (there are several almost identical PHY 
nodes in the file). Git applied the chunk to the second PHY node when it 
should have been applied to the first node.

You can reproduce this by checking out, for example, version 3.16 of the 
Linux kernel and applying the patch from the above link and then looking at

   arch/arm/boot/dts/tegra124.dtsi

and verifying that git has added the 'nvidia,has-utmi-pad-registers'
property to the second, instead of the first 'phy' node.

Of course this is probably rather hard to fix on the applying end; but 
perhaps format-patch could check for ambiguous chunks and either warn 
the user or increase the context size automatically, or apply could warn 
about the chunk being ambiguous?

Thanks,
Mikko Perttunen