I've stumbled into a problem with current mainline. I have this changeset that I can't get GIT to properly generate diffs for. It always give me: diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c index 4440532..096974b 100644 --- a/net/ipv6/esp6.c +++ b/net/ipv6/esp6.c @@ -177,5 +177,4 @@ static int esp6_input(struct xfrm_state *x, struct sk_buff *skb) BUG(); if (unlikely(memcmp(esp->auth.work_icv, sum, alen))) { - x->stats.integrity_failed++; - ret = -EINVAL; \ No newline at end of file + ret = -EBADMSG; \ No newline at end of file No matter what I do, 1.5.3.7 doesn't do this. The file does have a newline at the end. Here are files you can hopefully use to reproduce: 1) esp6.c 2) the patch, one that can be applied properly You should be able to put that esp6.c into an empty git repo, apply the patch in #2, then run "git diff >diff" using mainline to see the problem.