Re: Linux 2.6.24-rc6

2007-12-22 Thread S.Çağlar Onur
Hi;

21 Ara 2007 Cum tarihinde, Linus Torvalds şunları yazmıştı: 
> Here's to a merry christmas, doing the whole druidic festival around the
> tree thing,

With -rc6, dmesg shows following Unknown symbols;

[...]
[   26.883635] Bluetooth: Core ver 2.11
[   26.913123] hci_usb: Unknown symbol hci_suspend_dev
[   26.913155] hci_usb: Unknown symbol hci_free_dev
[   26.913495] hci_usb: Unknown symbol hci_resume_dev
[   26.913566] hci_usb: Unknown symbol hci_alloc_dev
[   26.913696] hci_usb: Unknown symbol hci_unregister_dev
[   26.913775] hci_usb: Unknown symbol hci_recv_fragment
[   26.913841] hci_usb: Unknown symbol hci_register_dev
[   26.914117] hci_usb: Unknown symbol hci_suspend_dev
[   26.914148] hci_usb: Unknown symbol hci_free_dev
[   26.914477] hci_usb: Unknown symbol hci_resume_dev
[   26.914548] hci_usb: Unknown symbol hci_alloc_dev
[   26.914678] hci_usb: Unknown symbol hci_unregister_dev
[   26.914757] hci_usb: Unknown symbol hci_recv_fragment
[   26.914823] hci_usb: Unknown symbol hci_register_dev
[   26.915070] hci_usb: Unknown symbol hci_suspend_dev
[   26.915101] hci_usb: Unknown symbol hci_free_dev
[   26.915429] hci_usb: Unknown symbol hci_resume_dev
[   26.915501] hci_usb: Unknown symbol hci_alloc_dev
[   26.915630] hci_usb: Unknown symbol hci_unregister_dev
[   26.915709] hci_usb: Unknown symbol hci_recv_fragment
[   26.915776] hci_usb: Unknown symbol hci_register_dev
[   26.928322] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   26.937433] ACPI: Thermal Zone [TZS0] (62 C)
[   26.942470] ACPI: Thermal Zone [TZS1] (66 C)
[   26.982668] NET: Registered protocol family 31
[   26.982671] Bluetooth: HCI device and connection manager initialized
[   26.982675] Bluetooth: HCI socket layer initialized
[   27.043943] Bluetooth: HCI USB driver ver 2.9
[   27.074386] usbcore: registered new interface driver hci_usb
[...]

A Google search found [1] and according to that old thread, its either a 
general module problem [2] or a module-init-tools (I'm using vanilla 
module-init-tools 3.3_pre11) problem [3]. 

I'm not sure whether its a user-space problem or these caused by bluetooth 
module's initialization phase so i decided to report LKML :). 

Although these shown in kern.log, bluetooth subsystem works without a problem.

You can find .config and full dmesg output from [4] and if anything else is 
needed, please just say it.

[1] http://osdir.com/ml/linux.bluez.devel/2004-10/msg00043.html
[2] http://osdir.com/ml/linux.bluez.devel/2004-10/msg00047.html
[3] http://osdir.com/ml/linux.bluez.devel/2004-10/msg00054.html
[4] http://cekirdek.pardus.org.tr/~caglar/kernel/

Cheers
-- 
S.Çağlar Onur <[EMAIL PROTECTED]>
http://cekirdek.pardus.org.tr/~caglar/

Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-22 Thread S.Çağlar Onur
Hi;

21 Ara 2007 Cum tarihinde, Linus Torvalds şunları yazmıştı: 
 Here's to a merry christmas, doing the whole druidic festival around the
 tree thing,

With -rc6, dmesg shows following Unknown symbols;

[...]
[   26.883635] Bluetooth: Core ver 2.11
[   26.913123] hci_usb: Unknown symbol hci_suspend_dev
[   26.913155] hci_usb: Unknown symbol hci_free_dev
[   26.913495] hci_usb: Unknown symbol hci_resume_dev
[   26.913566] hci_usb: Unknown symbol hci_alloc_dev
[   26.913696] hci_usb: Unknown symbol hci_unregister_dev
[   26.913775] hci_usb: Unknown symbol hci_recv_fragment
[   26.913841] hci_usb: Unknown symbol hci_register_dev
[   26.914117] hci_usb: Unknown symbol hci_suspend_dev
[   26.914148] hci_usb: Unknown symbol hci_free_dev
[   26.914477] hci_usb: Unknown symbol hci_resume_dev
[   26.914548] hci_usb: Unknown symbol hci_alloc_dev
[   26.914678] hci_usb: Unknown symbol hci_unregister_dev
[   26.914757] hci_usb: Unknown symbol hci_recv_fragment
[   26.914823] hci_usb: Unknown symbol hci_register_dev
[   26.915070] hci_usb: Unknown symbol hci_suspend_dev
[   26.915101] hci_usb: Unknown symbol hci_free_dev
[   26.915429] hci_usb: Unknown symbol hci_resume_dev
[   26.915501] hci_usb: Unknown symbol hci_alloc_dev
[   26.915630] hci_usb: Unknown symbol hci_unregister_dev
[   26.915709] hci_usb: Unknown symbol hci_recv_fragment
[   26.915776] hci_usb: Unknown symbol hci_register_dev
[   26.928322] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[   26.937433] ACPI: Thermal Zone [TZS0] (62 C)
[   26.942470] ACPI: Thermal Zone [TZS1] (66 C)
[   26.982668] NET: Registered protocol family 31
[   26.982671] Bluetooth: HCI device and connection manager initialized
[   26.982675] Bluetooth: HCI socket layer initialized
[   27.043943] Bluetooth: HCI USB driver ver 2.9
[   27.074386] usbcore: registered new interface driver hci_usb
[...]

A Google search found [1] and according to that old thread, its either a 
general module problem [2] or a module-init-tools (I'm using vanilla 
module-init-tools 3.3_pre11) problem [3]. 

I'm not sure whether its a user-space problem or these caused by bluetooth 
module's initialization phase so i decided to report LKML :). 

Although these shown in kern.log, bluetooth subsystem works without a problem.

You can find .config and full dmesg output from [4] and if anything else is 
needed, please just say it.

[1] http://osdir.com/ml/linux.bluez.devel/2004-10/msg00043.html
[2] http://osdir.com/ml/linux.bluez.devel/2004-10/msg00047.html
[3] http://osdir.com/ml/linux.bluez.devel/2004-10/msg00054.html
[4] http://cekirdek.pardus.org.tr/~caglar/kernel/

Cheers
-- 
S.Çağlar Onur [EMAIL PROTECTED]
http://cekirdek.pardus.org.tr/~caglar/

Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-21 Thread Junio C Hamano
Linus Torvalds <[EMAIL PROTECTED]> writes:

> Actually, the code to finding one '\n' is still needed to avoid the 
> (pathological) case of getting a "\No newline", so scrap that one which 
> was too aggressive, and use this (simpler) one instead.
>
> Not that it matters in real life, since nobody uses -U0, and "git blame" 
> won't care. But let's get it right anyway ;)

Actually "blame won't care" is a bit too strong.  It's only we
(you) made it not to care.  It is a different story if the
change to make it not to care was sensible.

The diff text "git blame" will see is affected with the tail
trimming optimization exactly the same way as the optimization
triggered this thread.  With the common tails trimmed, the hunks
match differently from the way they match without trimming (the
gcc changelog testcase has differences between the unoptimized
blame and the tail-trimming one --- your original to put this
logic only in blame and my rewrite to move it in xdiff-interface
produce the same result that is different from the unoptimized
version, although both are 4x faster than the original).

When there are multiple possible matches, any match among them
is a correct match, and a match with a line in a blob is a match
to the blob no matter what line the match is anyway.  The usual
workflow of checking blame to find the commit that introduced
the change and then going to "git show" to view the bigger
picture won't get affected.  But the blamed line numbers will be
different from the unoptimized blame, and it may not match the
expectation of human readers.  It won't match "git show" output
of the blamed commit.

> This whole function has had more bugs than it has lines.

I have to agree.  It started as a brilliant idea but then it was
enhanced (in an attempt to support context) and executed not so
brilliantly.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-21 Thread Junio C Hamano
Linus Torvalds [EMAIL PROTECTED] writes:

 Actually, the code to finding one '\n' is still needed to avoid the 
 (pathological) case of getting a \No newline, so scrap that one which 
 was too aggressive, and use this (simpler) one instead.

 Not that it matters in real life, since nobody uses -U0, and git blame 
 won't care. But let's get it right anyway ;)

Actually blame won't care is a bit too strong.  It's only we
(you) made it not to care.  It is a different story if the
change to make it not to care was sensible.

The diff text git blame will see is affected with the tail
trimming optimization exactly the same way as the optimization
triggered this thread.  With the common tails trimmed, the hunks
match differently from the way they match without trimming (the
gcc changelog testcase has differences between the unoptimized
blame and the tail-trimming one --- your original to put this
logic only in blame and my rewrite to move it in xdiff-interface
produce the same result that is different from the unoptimized
version, although both are 4x faster than the original).

When there are multiple possible matches, any match among them
is a correct match, and a match with a line in a blob is a match
to the blob no matter what line the match is anyway.  The usual
workflow of checking blame to find the commit that introduced
the change and then going to git show to view the bigger
picture won't get affected.  But the blamed line numbers will be
different from the unoptimized blame, and it may not match the
expectation of human readers.  It won't match git show output
of the blamed commit.

 This whole function has had more bugs than it has lines.

I have to agree.  It started as a brilliant idea but then it was
enhanced (in an attempt to support context) and executed not so
brilliantly.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Linus Torvalds


On Thu, 20 Dec 2007, Linus Torvalds wrote:
>
> And here's the git patch to avoid this optimization when there is 
> context.

Actually, the code to finding one '\n' is still needed to avoid the 
(pathological) case of getting a "\No newline", so scrap that one which 
was too aggressive, and use this (simpler) one instead.

Not that it matters in real life, since nobody uses -U0, and "git blame" 
won't care. But let's get it right anyway ;)

This whole function has had more bugs than it has lines.

Linus

---
 xdiff-interface.c |7 +--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/xdiff-interface.c b/xdiff-interface.c
index 9ee877c..711029e 100644
--- a/xdiff-interface.c
+++ b/xdiff-interface.c
@@ -115,15 +115,18 @@ static void trim_common_tail(mmfile_t *a, mmfile_t *b, 
long ctx)
char *bp = b->ptr + b->size;
long smaller = (a->size < b->size) ? a->size : b->size;
 
+   if (ctx)
+   return;
+
while (blk + trimmed <= smaller && !memcmp(ap - blk, bp - blk, blk)) {
trimmed += blk;
ap -= blk;
bp -= blk;
}
 
-   while (recovered < trimmed && 0 <= ctx)
+   while (recovered < trimmed)
if (ap[recovered++] == '\n')
-   ctx--;
+   break;
a->size -= (trimmed - recovered);
b->size -= (trimmed - recovered);
 }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Kyle McMartin
On Thu, Dec 20, 2007 at 08:40:54PM -0800, Linus Torvalds wrote:
> That was a rather long-winded explanation of what happened, mainly because 
> it was all very unexpected to me, and I had personally mistakenly thought 
> the git optimization was perfectly valid and actually had to go through 
> the end result to see what was going on.
> 
> Anyway, the diff on kernel.org should be all ok now, and mirrored out too.
> 

Thanks again for being so quick to track this down, applies fine and is
out for building in rawhide now.

cheers, Kyle
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Linus Torvalds


On Thu, 20 Dec 2007, Linus Torvalds wrote:
> 
> It only happened for a few files that had lots of repeated lines - so that 
> the diff could literally be done multiple different ways - and in fact, 
> the file that caused the problems really had a bogus commit that 
> duplicated *way* too much data, and caused lots of #define's to exist 
> twice.

Here's the example of this kind of behaviour: in the 2.6.26-rc5 tree the 
file drivers/video/mbx/reg_bits.h has the #defines for 

/* DINTRS - Display Interrupt Status Register */
/* DINTRE - Display Interrupt Enable Register */

duplicated twice due to commit ba282daa919f89c871780f344a71e5403a70b634 
("mbxfb: Improvements and new features") by Raphael Assenat mistakenly 
adding another copy of the same old set of defines that we already got 
added once before by commit fb137d5b7f2301f2717944322bba38039083c431 
("mbxfb: Add more registers bits access macros").

Now, that was a mistake - and one that probably happened because Rafael or 
more likely Andrew Morton used GNU patch with its insane defaults (which 
is to happily apply the same patch that adds things twice, because it 
doesn't really care if the context matches or not).

But what that kind of thing causes is that when you create a patch of the 
end result, it can show the now new duplicate lines two different (but 
equally valid) ways: it can show it as an addition of the _first_ set of 
lines, or it can show it as an addition of the _second_ set of lines. They 
are the same, after all.

Now, it doesn't really matter which way you choose to show it, although 
because of how "git diff" finds similarities, it tends to prefer to show 
the second set of identical lines as the "new" ones. Which is generally 
reasonable.

However, that interacted really badly with the new git logic that said 
that "if the two files end in the same sequence, just ignore the common 
tail of the file", because the latter copy of the identical lines would 
now show up as _part_ of that common tail, so the lines that the git diff 
machinery would normally like to show up as "new" did in fact end up being 
considered uninteresting, because they were part of an idential tail. 

So now "git diff" would happily pick _earlier_ lines as the new ones, and 
it would still be a conceptually valid diff, but because we had trimmed 
the tail of the file, that conceptually valid diff no longer had the 
expected shared context at the end.

And while it's a bit embarrassing, I'm really rather happy that both GNU 
patch and "git apply" actually refused to apply the patch. It may have 
been "conceptually correct" (ie it did really contain all of the changes!) 
but because it lacked the expected context it really wasn't a good patch. 

That was a rather long-winded explanation of what happened, mainly because 
it was all very unexpected to me, and I had personally mistakenly thought 
the git optimization was perfectly valid and actually had to go through 
the end result to see what was going on.

Anyway, the diff on kernel.org should be all ok now, and mirrored out too.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Linus Torvalds


On Thu, 20 Dec 2007, Linus Torvalds wrote:
> 
> The tar-ball and the git archive itself is fine, but yes, the diff from 
> 2.6.23 to 2.6.24-rc6 is bad. It's the "trim_common_tail()" optimization 
> that has caused way too much pain.

Very interesting breakage. The patch was actually "correct" in a (rather 
limited) technical sense, but the context at the end was missing because 
while the trim_common_tail() code made sure to keep enough common context 
to allow a valid diff to be generated, the diff machinery itself could 
decide that it could generate the diff differently than the "obvious" 
solution.

It only happened for a few files that had lots of repeated lines - so that 
the diff could literally be done multiple different ways - and in fact, 
the file that caused the problems really had a bogus commit that 
duplicated *way* too much data, and caused lots of #define's to exist 
twice.

But the sad fact appears that the git optimization (which is very 
important for "git blame", which needs no context), is only really valid 
for that one case where we really don't need any context.

I uploaded a fixed patch. And here's the git patch to avoid this 
optimization when there is context.

Linus

---
 xdiff-interface.c |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/xdiff-interface.c b/xdiff-interface.c
index 9ee877c..0b7e057 100644
--- a/xdiff-interface.c
+++ b/xdiff-interface.c
@@ -110,22 +110,22 @@ int xdiff_outf(void *priv_, mmbuffer_t *mb, int nbuf)
 static void trim_common_tail(mmfile_t *a, mmfile_t *b, long ctx)
 {
const int blk = 1024;
-   long trimmed = 0, recovered = 0;
+   long trimmed = 0;
char *ap = a->ptr + a->size;
char *bp = b->ptr + b->size;
long smaller = (a->size < b->size) ? a->size : b->size;
 
+   if (ctx)
+   return;
+
while (blk + trimmed <= smaller && !memcmp(ap - blk, bp - blk, blk)) {
trimmed += blk;
ap -= blk;
bp -= blk;
}
 
-   while (recovered < trimmed && 0 <= ctx)
-   if (ap[recovered++] == '\n')
-   ctx--;
-   a->size -= (trimmed - recovered);
-   b->size -= (trimmed - recovered);
+   a->size -= trimmed;
+   b->size -= trimmed;
 }
 
 int xdi_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp, xdemitconf_t 
const *xecfg, xdemitcb_t *xecb)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Linus Torvalds


On Thu, 20 Dec 2007, Kyle McMartin wrote:
> 
> I think I see the problem, it's lack of context in the diff,

No, the problem is that "git diff" is apparently broken by a recent 
optimization. The diff is simply broken.

The tar-ball and the git archive itself is fine, but yes, the diff from 
2.6.23 to 2.6.24-rc6 is bad. It's the "trim_common_tail()" optimization 
that has caused way too much pain.

Sorry about that, I'll fix it up asap.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Kyle McMartin
On Thu, Dec 20, 2007 at 07:49:05PM -0800, Linus Torvalds wrote:
> 
> 
> On Thu, 20 Dec 2007, Kyle McMartin wrote:
> > 
> > I think I see the problem, it's lack of context in the diff,
> 
> No, the problem is that "git diff" is apparently broken by a recent 
> optimization. The diff is simply broken.
> 
> The tar-ball and the git archive itself is fine, but yes, the diff from 
> 2.6.23 to 2.6.24-rc6 is bad. It's the "trim_common_tail()" optimization 
> that has caused way too much pain.
> 
> Sorry about that, I'll fix it up asap.
> 

no biggie, thanks!

cheers, Kyle
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Kyle McMartin
On Thu, Dec 20, 2007 at 09:48:05PM -0500, Kyle McMartin wrote:
> 1 out of 3 hunks FAILED -- saving rejects to file
> drivers/video/mbx/reg_bits.h.rej
> error: Bad exit status from /var/tmp/rpm-tmp.22316 (%prep)
> 

I think I see the problem, it's lack of context in the diff,

commit ba282daa919f89c871780f344a71e5403a70b634
Author: Raphael Assenat <[EMAIL PROTECTED]>
Date:   Tue Oct 16 01:28:40 2007 -0700

seems to duplicate the DINTRS & DINTRE defines for no obvious reason,
confusing the hell out of patch.

regards,
Kyle
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Kyle McMartin
On Thu, Dec 20, 2007 at 05:41:09PM -0800, Linus Torvalds wrote:
> The regression list keeps shrinking, so we're still on track for a full 
> 2.6.24 release in early January. Assuming we don't all overeat during the 
> holidays and nobody gets any work done. But we all know that the holidays 
> are really the time when we get away from the boring "real work", and can 
> spend 24/7 on kernel hacking instead, right?
> 

The patch-2.6.24-rc6.bz2 doesn't seem to apply to a pristine
linux-2.6.23 tree? I see this while updating Fedora:

+ '[' '!' -f /home/kyle/rpms/kernel/devel/patch-2.6.24-rc6.bz2 ']'
+ case "$patch" in
+ bunzip2
+ patch -p1 -F1 -s
1 out of 3 hunks FAILED -- saving rejects to file
drivers/video/mbx/reg_bits.h.rej
error: Bad exit status from /var/tmp/rpm-tmp.22316 (%prep)

cheers, Kyle
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Zhang, Yanmin
On Thu, 2007-12-20 at 17:41 -0800, Linus Torvalds wrote:
> The most noticeable part here (both to users and in the diffstat) should 
> be the libata-acpi fixes by Tejun Heo, which should hopefully take care of 
> all of the regressions that were caused by teaching SATA about doing the 
> proper ACPI stuff at bootup/suspend/resume/shutdown.
> 
> Other changes visible in the diffstat are a couple of new watchdog drivers 
> and the removal of the old tipar driver, and some Korean translations of 
> the kernel docs. And some V4L videobuf changes.
> 
> Other than that, it's pretty much a lot of small fixes (maybe not 
> one-liners, but we're talking "a few lines"). Networking, USB, scsi, 
> wireless, infiniband, IDE... With some alpha, ia64 and x86 arch updates.
> 
> The regression list keeps shrinking, so we're still on track for a full 
> 2.6.24 release in early January. Assuming we don't all overeat during the 
> holidays and nobody gets any work done. But we all know that the holidays 
> are really the time when we get away from the boring "real work", and can 
> spend 24/7 on kernel hacking instead, right?
> 
> Here's to a merry christmas, doing the whole druidic festival around the 
> tree thing,
When my automation testing system applied it to 2.6.23, below error stopped
the testing.

***
Hunk #3 FAILED at 534.
1 out of 3 hunks FAILED -- saving rejects to file 
drivers/video/mbx/reg_bits.h.rej
patching file drivers/video/mbx/regs.h

-yanmin


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Linux 2.6.24-rc6

2007-12-20 Thread Linus Torvalds
:
  [POWERPC] Fix typo #ifdef -> #ifndef
  [POWERPC] Kill non-existent symbols from ksyms and commproc.h

Joe Perches (2):
  i2c: Add missing spaces in split log messages
  [IA64] Two trivial spelling fixes

Jorge Boncompte [DTI2] (1):
  [WATCHDOG] IT8212F watchdog driver

Julia Lawall (4):
  [UM]: Fix use of skb after netif_rx
  [XTENSA]: Fix use of skb after netif_rx
  [S390]: Fix use of skb after netif_rx
  drivers/macintosh/via-pmu.c: Added a missing iounmap

Jun'ichi Nomura (1):
  dm: table detect io beyond device

Kenji Kaneshige (1):
  [IA64] Remove compiler warinings about uninitialized variable in 
irq_ia64.c

Kevin Hilman (2):
  [ARM] 4694/1: IXP4xx: Update clockevent support for shutdown and resume
  genirq: add unlocked version of set_irq_handler()

Komuro (1):
  pcnet_cs: add new id

Lachlan McIlroy (3):
  [XFS] Don't wait for pending I/Os when purging blocks beyond eof.
  [XFS] Put the correct offset in dirent d_off
  [XFS] Initialise current offset in xfs_file_readdir correctly

Larry Finger (1):
  b43: Fix rfkill radio LED

Linus Torvalds (3):
  Revert "make bnx2x select ZLIB_INFLATE"
  Do dirty page accounting when removing a page from the page cache
  Linux 2.6.24-rc6

Liu Yu (1):
  [POWERPC] Fix rounding bug in emulation for double float operating

Livio Soares (1):
  sched: mark rwsem functions as __sched for wchan/profiling

Mark Fasheh (4):
  ocfs2: fix exit-while-locked bug in ocfs2_queue_orphans()
  ocfs2: Don't panic when truncating an empty extent
  ocfs2: Allow for debugging of transaction extends
  ocfs2: Re-journal buffers after transaction extend

Mark Lord (1):
  sata_mv: improve warnings about Highpoint RocketRAID 23xx cards

Martin Habets (2):
  [SERIAL] sparc: Infrastructure to fix section mismatch bugs.
  [SPARC32]: Silence sparc32 warnings on missing syscalls.

Martin Schwidefsky (1):
  [S390] pud_present/pmd_present bug.

Masami Hiramatsu (2):
  x86: jprobe bugfix
  x86: kprobes bugfix

Matheos Worku (1):
  ixgb: make sure jumbos stay enabled after reset

Mauro Carvalho Chehab (5):
  V4L/DVB (6542): Fix S-video mode on tvp5150
  V4L/DVB (6581): Fix: avoids negative vma usage count
  V4L/DVB (6750): Fix in-kernel compilation for cxusb
  V4L/DVB (6794): Fix compilation when dib3000mc is compiled as a module
  V4L/DVB (6609): Re-adds lock safe videobuf_read_start

Mel Gorman (1):
  mm: fix page allocation for larger I/O segments

Michael Brunner (1):
  [ARM] 4690/1: PXA: fix CKEN corruption in PXA27x AC97 cold reset code

Michael Chan (3):
  [BNX2]: Add PHY_DIS_EARLY_DAC workaround.
  [BNX2]: Fix RX packet rot.
  [BNX2]: Update version to 1.6.9.

Michael Ellerman (1):
  [POWERPC] Make PS3_SYS_MANAGER default y, not m

Michael Krufky (1):
  V4L/DVB (6798): saa7134: enable LNA in analog mode for Hauppauge WinTV 
HVR-1110

Mike Rapoport (1):
  [ARM] 4667/1: CM-X270 fixes

Mike Travis (1):
  x86: fix show cpuinfo cpu number always zero

Milan Broz (2):
  dm crypt: fix write endio
  dm crypt: use bio_add_page

Nathan Lynch (1):
  fix bloat-o-meter for ppc64

Neil Brown (1):
  dm: merge max_hw_sector

Nick Piggin (1):
  [IA64] ia32 nopage

Nicolas Ferre (1):
  USB: at91_udc: correct hanging while disconnecting usb cable

Nicolas Pitre (1):
  mmc: remove unused 'mode' from the mmc_host structure

Nishanth Aravamudan (3):
  hugetlb: introduce nr_overcommit_hugepages sysctl
  Revert "hugetlb: Add hugetlb_dynamic_pool sysctl"
  Documentation: update hugetlb information

Olaf Hartmann (1):
  [IRDA]: stir4200 fixes.

Oliver Neukum (1):
  [IRDA]: Race between open and disconnect in irda-usb.

Pablo Neira Ayuso (1):
  [NETFILTER]: ctnetlink: set expected bit for related conntracks

Patrick McHardy (2):
  [NETFILTER]: ip_tables: fix compat copy race
  [NETFILTER]: bridge: fix missing link layer headers on outgoing routed 
packets

Paul Moore (1):
  [XFRM]: Display the audited SPI value in host byte order.

Paul Mundt (2):
  net: smc911x: shut up compiler warnings
  dm mpath: hp requires scsi

Pavel Emelyanov (2):
  [IPV4]: Swap the ifa allocation with the"ipv4_devconf_setall" call
  [VLAN]: Fix potential race in vlan_cleanup_module vs vlan_ioctl_handler.

Peter Zijlstra (1):
  sched: rt: account the cpu time during the tick

Pierre Ossman (4):
  sdhci: describe quirks
  sdhci: don't warn about sdhci 2.0 controllers
  sdhci: use PIO when DMA can't satisfy the request
  sdhci: support JMicron JMB38x chips

Ralf Baechle (3):
  [MIPS] Atlas, Malta: Don't free firmware memory on free_initmem.
  [MIPS] PCI: Make pcibios_fixup_device_resources ignore legacy resources.
  [MIPS] time: Delete weak definition of plat_time_init() due to gcc bug.

Randy Dunlap (2):
  us

Linux 2.6.24-rc6

2007-12-20 Thread Linus Torvalds
 from ksyms and commproc.h

Joe Perches (2):
  i2c: Add missing spaces in split log messages
  [IA64] Two trivial spelling fixes

Jorge Boncompte [DTI2] (1):
  [WATCHDOG] IT8212F watchdog driver

Julia Lawall (4):
  [UM]: Fix use of skb after netif_rx
  [XTENSA]: Fix use of skb after netif_rx
  [S390]: Fix use of skb after netif_rx
  drivers/macintosh/via-pmu.c: Added a missing iounmap

Jun'ichi Nomura (1):
  dm: table detect io beyond device

Kenji Kaneshige (1):
  [IA64] Remove compiler warinings about uninitialized variable in 
irq_ia64.c

Kevin Hilman (2):
  [ARM] 4694/1: IXP4xx: Update clockevent support for shutdown and resume
  genirq: add unlocked version of set_irq_handler()

Komuro (1):
  pcnet_cs: add new id

Lachlan McIlroy (3):
  [XFS] Don't wait for pending I/Os when purging blocks beyond eof.
  [XFS] Put the correct offset in dirent d_off
  [XFS] Initialise current offset in xfs_file_readdir correctly

Larry Finger (1):
  b43: Fix rfkill radio LED

Linus Torvalds (3):
  Revert make bnx2x select ZLIB_INFLATE
  Do dirty page accounting when removing a page from the page cache
  Linux 2.6.24-rc6

Liu Yu (1):
  [POWERPC] Fix rounding bug in emulation for double float operating

Livio Soares (1):
  sched: mark rwsem functions as __sched for wchan/profiling

Mark Fasheh (4):
  ocfs2: fix exit-while-locked bug in ocfs2_queue_orphans()
  ocfs2: Don't panic when truncating an empty extent
  ocfs2: Allow for debugging of transaction extends
  ocfs2: Re-journal buffers after transaction extend

Mark Lord (1):
  sata_mv: improve warnings about Highpoint RocketRAID 23xx cards

Martin Habets (2):
  [SERIAL] sparc: Infrastructure to fix section mismatch bugs.
  [SPARC32]: Silence sparc32 warnings on missing syscalls.

Martin Schwidefsky (1):
  [S390] pud_present/pmd_present bug.

Masami Hiramatsu (2):
  x86: jprobe bugfix
  x86: kprobes bugfix

Matheos Worku (1):
  ixgb: make sure jumbos stay enabled after reset

Mauro Carvalho Chehab (5):
  V4L/DVB (6542): Fix S-video mode on tvp5150
  V4L/DVB (6581): Fix: avoids negative vma usage count
  V4L/DVB (6750): Fix in-kernel compilation for cxusb
  V4L/DVB (6794): Fix compilation when dib3000mc is compiled as a module
  V4L/DVB (6609): Re-adds lock safe videobuf_read_start

Mel Gorman (1):
  mm: fix page allocation for larger I/O segments

Michael Brunner (1):
  [ARM] 4690/1: PXA: fix CKEN corruption in PXA27x AC97 cold reset code

Michael Chan (3):
  [BNX2]: Add PHY_DIS_EARLY_DAC workaround.
  [BNX2]: Fix RX packet rot.
  [BNX2]: Update version to 1.6.9.

Michael Ellerman (1):
  [POWERPC] Make PS3_SYS_MANAGER default y, not m

Michael Krufky (1):
  V4L/DVB (6798): saa7134: enable LNA in analog mode for Hauppauge WinTV 
HVR-1110

Mike Rapoport (1):
  [ARM] 4667/1: CM-X270 fixes

Mike Travis (1):
  x86: fix show cpuinfo cpu number always zero

Milan Broz (2):
  dm crypt: fix write endio
  dm crypt: use bio_add_page

Nathan Lynch (1):
  fix bloat-o-meter for ppc64

Neil Brown (1):
  dm: merge max_hw_sector

Nick Piggin (1):
  [IA64] ia32 nopage

Nicolas Ferre (1):
  USB: at91_udc: correct hanging while disconnecting usb cable

Nicolas Pitre (1):
  mmc: remove unused 'mode' from the mmc_host structure

Nishanth Aravamudan (3):
  hugetlb: introduce nr_overcommit_hugepages sysctl
  Revert hugetlb: Add hugetlb_dynamic_pool sysctl
  Documentation: update hugetlb information

Olaf Hartmann (1):
  [IRDA]: stir4200 fixes.

Oliver Neukum (1):
  [IRDA]: Race between open and disconnect in irda-usb.

Pablo Neira Ayuso (1):
  [NETFILTER]: ctnetlink: set expected bit for related conntracks

Patrick McHardy (2):
  [NETFILTER]: ip_tables: fix compat copy race
  [NETFILTER]: bridge: fix missing link layer headers on outgoing routed 
packets

Paul Moore (1):
  [XFRM]: Display the audited SPI value in host byte order.

Paul Mundt (2):
  net: smc911x: shut up compiler warnings
  dm mpath: hp requires scsi

Pavel Emelyanov (2):
  [IPV4]: Swap the ifa allocation with theipv4_devconf_setall call
  [VLAN]: Fix potential race in vlan_cleanup_module vs vlan_ioctl_handler.

Peter Zijlstra (1):
  sched: rt: account the cpu time during the tick

Pierre Ossman (4):
  sdhci: describe quirks
  sdhci: don't warn about sdhci 2.0 controllers
  sdhci: use PIO when DMA can't satisfy the request
  sdhci: support JMicron JMB38x chips

Ralf Baechle (3):
  [MIPS] Atlas, Malta: Don't free firmware memory on free_initmem.
  [MIPS] PCI: Make pcibios_fixup_device_resources ignore legacy resources.
  [MIPS] time: Delete weak definition of plat_time_init() due to gcc bug.

Randy Dunlap (2):
  usb.h: fix kernel-doc warning
  Cleanup umem driver: fix most checkpatch warnings, conform to kernel

Richard Knutsson (2

Re: Linux 2.6.24-rc6

2007-12-20 Thread Zhang, Yanmin
On Thu, 2007-12-20 at 17:41 -0800, Linus Torvalds wrote:
 The most noticeable part here (both to users and in the diffstat) should 
 be the libata-acpi fixes by Tejun Heo, which should hopefully take care of 
 all of the regressions that were caused by teaching SATA about doing the 
 proper ACPI stuff at bootup/suspend/resume/shutdown.
 
 Other changes visible in the diffstat are a couple of new watchdog drivers 
 and the removal of the old tipar driver, and some Korean translations of 
 the kernel docs. And some V4L videobuf changes.
 
 Other than that, it's pretty much a lot of small fixes (maybe not 
 one-liners, but we're talking a few lines). Networking, USB, scsi, 
 wireless, infiniband, IDE... With some alpha, ia64 and x86 arch updates.
 
 The regression list keeps shrinking, so we're still on track for a full 
 2.6.24 release in early January. Assuming we don't all overeat during the 
 holidays and nobody gets any work done. But we all know that the holidays 
 are really the time when we get away from the boring real work, and can 
 spend 24/7 on kernel hacking instead, right?
 
 Here's to a merry christmas, doing the whole druidic festival around the 
 tree thing,
When my automation testing system applied it to 2.6.23, below error stopped
the testing.

***
Hunk #3 FAILED at 534.
1 out of 3 hunks FAILED -- saving rejects to file 
drivers/video/mbx/reg_bits.h.rej
patching file drivers/video/mbx/regs.h

-yanmin


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Kyle McMartin
On Thu, Dec 20, 2007 at 05:41:09PM -0800, Linus Torvalds wrote:
 The regression list keeps shrinking, so we're still on track for a full 
 2.6.24 release in early January. Assuming we don't all overeat during the 
 holidays and nobody gets any work done. But we all know that the holidays 
 are really the time when we get away from the boring real work, and can 
 spend 24/7 on kernel hacking instead, right?
 

The patch-2.6.24-rc6.bz2 doesn't seem to apply to a pristine
linux-2.6.23 tree? I see this while updating Fedora:

+ '[' '!' -f /home/kyle/rpms/kernel/devel/patch-2.6.24-rc6.bz2 ']'
+ case $patch in
+ bunzip2
+ patch -p1 -F1 -s
1 out of 3 hunks FAILED -- saving rejects to file
drivers/video/mbx/reg_bits.h.rej
error: Bad exit status from /var/tmp/rpm-tmp.22316 (%prep)

cheers, Kyle
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Kyle McMartin
On Thu, Dec 20, 2007 at 09:48:05PM -0500, Kyle McMartin wrote:
 1 out of 3 hunks FAILED -- saving rejects to file
 drivers/video/mbx/reg_bits.h.rej
 error: Bad exit status from /var/tmp/rpm-tmp.22316 (%prep)
 

I think I see the problem, it's lack of context in the diff,

commit ba282daa919f89c871780f344a71e5403a70b634
Author: Raphael Assenat [EMAIL PROTECTED]
Date:   Tue Oct 16 01:28:40 2007 -0700

seems to duplicate the DINTRS  DINTRE defines for no obvious reason,
confusing the hell out of patch.

regards,
Kyle
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Linus Torvalds


On Thu, 20 Dec 2007, Kyle McMartin wrote:
 
 I think I see the problem, it's lack of context in the diff,

No, the problem is that git diff is apparently broken by a recent 
optimization. The diff is simply broken.

The tar-ball and the git archive itself is fine, but yes, the diff from 
2.6.23 to 2.6.24-rc6 is bad. It's the trim_common_tail() optimization 
that has caused way too much pain.

Sorry about that, I'll fix it up asap.

Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Kyle McMartin
On Thu, Dec 20, 2007 at 07:49:05PM -0800, Linus Torvalds wrote:
 
 
 On Thu, 20 Dec 2007, Kyle McMartin wrote:
  
  I think I see the problem, it's lack of context in the diff,
 
 No, the problem is that git diff is apparently broken by a recent 
 optimization. The diff is simply broken.
 
 The tar-ball and the git archive itself is fine, but yes, the diff from 
 2.6.23 to 2.6.24-rc6 is bad. It's the trim_common_tail() optimization 
 that has caused way too much pain.
 
 Sorry about that, I'll fix it up asap.
 

no biggie, thanks!

cheers, Kyle
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Linus Torvalds


On Thu, 20 Dec 2007, Linus Torvalds wrote:
 
 The tar-ball and the git archive itself is fine, but yes, the diff from 
 2.6.23 to 2.6.24-rc6 is bad. It's the trim_common_tail() optimization 
 that has caused way too much pain.

Very interesting breakage. The patch was actually correct in a (rather 
limited) technical sense, but the context at the end was missing because 
while the trim_common_tail() code made sure to keep enough common context 
to allow a valid diff to be generated, the diff machinery itself could 
decide that it could generate the diff differently than the obvious 
solution.

It only happened for a few files that had lots of repeated lines - so that 
the diff could literally be done multiple different ways - and in fact, 
the file that caused the problems really had a bogus commit that 
duplicated *way* too much data, and caused lots of #define's to exist 
twice.

But the sad fact appears that the git optimization (which is very 
important for git blame, which needs no context), is only really valid 
for that one case where we really don't need any context.

I uploaded a fixed patch. And here's the git patch to avoid this 
optimization when there is context.

Linus

---
 xdiff-interface.c |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/xdiff-interface.c b/xdiff-interface.c
index 9ee877c..0b7e057 100644
--- a/xdiff-interface.c
+++ b/xdiff-interface.c
@@ -110,22 +110,22 @@ int xdiff_outf(void *priv_, mmbuffer_t *mb, int nbuf)
 static void trim_common_tail(mmfile_t *a, mmfile_t *b, long ctx)
 {
const int blk = 1024;
-   long trimmed = 0, recovered = 0;
+   long trimmed = 0;
char *ap = a-ptr + a-size;
char *bp = b-ptr + b-size;
long smaller = (a-size  b-size) ? a-size : b-size;
 
+   if (ctx)
+   return;
+
while (blk + trimmed = smaller  !memcmp(ap - blk, bp - blk, blk)) {
trimmed += blk;
ap -= blk;
bp -= blk;
}
 
-   while (recovered  trimmed  0 = ctx)
-   if (ap[recovered++] == '\n')
-   ctx--;
-   a-size -= (trimmed - recovered);
-   b-size -= (trimmed - recovered);
+   a-size -= trimmed;
+   b-size -= trimmed;
 }
 
 int xdi_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp, xdemitconf_t 
const *xecfg, xdemitcb_t *xecb)
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Linus Torvalds


On Thu, 20 Dec 2007, Linus Torvalds wrote:
 
 It only happened for a few files that had lots of repeated lines - so that 
 the diff could literally be done multiple different ways - and in fact, 
 the file that caused the problems really had a bogus commit that 
 duplicated *way* too much data, and caused lots of #define's to exist 
 twice.

Here's the example of this kind of behaviour: in the 2.6.26-rc5 tree the 
file drivers/video/mbx/reg_bits.h has the #defines for 

/* DINTRS - Display Interrupt Status Register */
/* DINTRE - Display Interrupt Enable Register */

duplicated twice due to commit ba282daa919f89c871780f344a71e5403a70b634 
(mbxfb: Improvements and new features) by Raphael Assenat mistakenly 
adding another copy of the same old set of defines that we already got 
added once before by commit fb137d5b7f2301f2717944322bba38039083c431 
(mbxfb: Add more registers bits access macros).

Now, that was a mistake - and one that probably happened because Rafael or 
more likely Andrew Morton used GNU patch with its insane defaults (which 
is to happily apply the same patch that adds things twice, because it 
doesn't really care if the context matches or not).

But what that kind of thing causes is that when you create a patch of the 
end result, it can show the now new duplicate lines two different (but 
equally valid) ways: it can show it as an addition of the _first_ set of 
lines, or it can show it as an addition of the _second_ set of lines. They 
are the same, after all.

Now, it doesn't really matter which way you choose to show it, although 
because of how git diff finds similarities, it tends to prefer to show 
the second set of identical lines as the new ones. Which is generally 
reasonable.

However, that interacted really badly with the new git logic that said 
that if the two files end in the same sequence, just ignore the common 
tail of the file, because the latter copy of the identical lines would 
now show up as _part_ of that common tail, so the lines that the git diff 
machinery would normally like to show up as new did in fact end up being 
considered uninteresting, because they were part of an idential tail. 

So now git diff would happily pick _earlier_ lines as the new ones, and 
it would still be a conceptually valid diff, but because we had trimmed 
the tail of the file, that conceptually valid diff no longer had the 
expected shared context at the end.

And while it's a bit embarrassing, I'm really rather happy that both GNU 
patch and git apply actually refused to apply the patch. It may have 
been conceptually correct (ie it did really contain all of the changes!) 
but because it lacked the expected context it really wasn't a good patch. 

That was a rather long-winded explanation of what happened, mainly because 
it was all very unexpected to me, and I had personally mistakenly thought 
the git optimization was perfectly valid and actually had to go through 
the end result to see what was going on.

Anyway, the diff on kernel.org should be all ok now, and mirrored out too.

Linus
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Kyle McMartin
On Thu, Dec 20, 2007 at 08:40:54PM -0800, Linus Torvalds wrote:
 That was a rather long-winded explanation of what happened, mainly because 
 it was all very unexpected to me, and I had personally mistakenly thought 
 the git optimization was perfectly valid and actually had to go through 
 the end result to see what was going on.
 
 Anyway, the diff on kernel.org should be all ok now, and mirrored out too.
 

Thanks again for being so quick to track this down, applies fine and is
out for building in rawhide now.

cheers, Kyle
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: Linux 2.6.24-rc6

2007-12-20 Thread Linus Torvalds


On Thu, 20 Dec 2007, Linus Torvalds wrote:

 And here's the git patch to avoid this optimization when there is 
 context.

Actually, the code to finding one '\n' is still needed to avoid the 
(pathological) case of getting a \No newline, so scrap that one which 
was too aggressive, and use this (simpler) one instead.

Not that it matters in real life, since nobody uses -U0, and git blame 
won't care. But let's get it right anyway ;)

This whole function has had more bugs than it has lines.

Linus

---
 xdiff-interface.c |7 +--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/xdiff-interface.c b/xdiff-interface.c
index 9ee877c..711029e 100644
--- a/xdiff-interface.c
+++ b/xdiff-interface.c
@@ -115,15 +115,18 @@ static void trim_common_tail(mmfile_t *a, mmfile_t *b, 
long ctx)
char *bp = b-ptr + b-size;
long smaller = (a-size  b-size) ? a-size : b-size;
 
+   if (ctx)
+   return;
+
while (blk + trimmed = smaller  !memcmp(ap - blk, bp - blk, blk)) {
trimmed += blk;
ap -= blk;
bp -= blk;
}
 
-   while (recovered  trimmed  0 = ctx)
+   while (recovered  trimmed)
if (ap[recovered++] == '\n')
-   ctx--;
+   break;
a-size -= (trimmed - recovered);
b-size -= (trimmed - recovered);
 }
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/