2004-06-20 00:52:43

by Marcelo Tosatti

[permalink] [raw]
Subject: Linux 2.4.27-rc1

Hi,

Here goes the first release candidate of kernel v2.4.27.

It contains a handful of ACPI bugfixes, HPFS update, USB fixes,
amongst other smaller fixes.

Read the detailed changelog for more details

Summary of changes from v2.4.27-pre6 to v2.4.27-rc1
============================================

<andreas:xss.co.at>:
o fix hotplug Config.in xconfig breakage

Andi Kleen:
o Undo mistaken hunks in previous x86-64 MCE change
o Add missing include to x86-64 bluesmoke.c

Chris Wedgwood:
o stat nlink resolution fix

David S. Miller:
o Cset exclude: [email protected]|ChangeSet|20040529193918|20643

David Stevens:
o [IPV4]: Fix interface selection in multicast sockops

Eyal Lebedinsky:
o Fix USB visor.c compilation error

Hideaki Yoshifuji:
o [IPV6]: UDPv6 checksum
o [IPV6]: UDPv6: Use udpv6_queue_rcv_skb()
o [IPV6]: Missing include in ip6_tables.c

Karol Kozimor:
o acpi4asus trivial sync with 2.6 (Karol 'sziwan' Kozimor)

Len Brown:
o [ACPI] PCI bus numbering workaround for ServerWorks from David Shaohua Li http://bugzilla.kernel.org/show_bug.cgi?id=1662
o [ACPI] fix passive cooling mode indicator (Luming Yu) http://bugzilla.kernel.org/show_bug.cgi?id=1770
o [ACPI] avoid spurious interrupts on VIA http://bugzilla.kernel.org/show_bug.cgi?id=2243
o [ACPI] fix 2.4.27-pre3 IRQ override regression due to dynamically allocated mp_irqs[].
o [ACPI] handle SCI override to nth IOAPIC http://bugzilla.kernel.org/show_bug.cgi?id=2835

Marcelo Tosatti:
o Add missing struct definition of rwsem race fixes
o Changed EXTRAVERSION to -rc1
o journal_try_to_free_buffers(): Add debug print in case of bh list corruption

Mikulas Patocka:
o HPFS fixes

Pete Zaitcev:
o USB: Fix jumpshot's capacity




2004-06-20 17:16:46

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: Linux 2.4.27-rc1

On Sat, 19 Jun 2004, Marcelo Tosatti wrote:
> Marcelo Tosatti:
> o journal_try_to_free_buffers(): Add debug print in case of bh list corruption

Which introduced 4 warnings. Here's a fix:

--- linux-2.4.27-rc1/fs/jbd/transaction.c.orig 2004-06-20 13:04:20.000000000 +0200
+++ linux-2.4.27-rc1/fs/jbd/transaction.c 2004-06-20 19:08:07.000000000 +0200
@@ -1700,11 +1700,11 @@ void debug_page(struct page *p)

bh = p->buffers;

- printk(KERN_ERR "%s: page index:%u count:%d flags:%x\n", __FUNCTION__,
+ printk(KERN_ERR "%s: page index:%lu count:%d flags:%lx\n", __FUNCTION__,
p->index, atomic_read(&p->count), p->flags);

while (bh) {
- printk(KERN_ERR "%s: bh b_next:%p blocknr:%u b_list:%u state:%x\n",
+ printk(KERN_ERR "%s: bh b_next:%p blocknr:%lu b_list:%u state:%lx\n",
__FUNCTION__, bh->b_next, bh->b_blocknr, bh->b_list,
bh->b_state);
bh = bh->b_this_page;


And now I just looked at the original patch:

| --- linux-2.4.26/fs/jbd/transaction.c 2004-02-18 13:36:31.000000000 +0000
| +++ linux-2.4.27-rc1/fs/jbd/transaction.c 2004-06-19 23:37:33.000000000 +0000
| @@ -1752,6 +1769,11 @@ int journal_try_to_free_buffers(journal_
| do {
| struct buffer_head *p = tmp;
|
| + if (!unlikely(tmp)) {
^^^^^^^^^^^^^^
Shouldn't this be `unlikely(!tmp))'?

| + debug_page(page);
| + BUG();
| + }
| +
| tmp = tmp->b_this_page;
| if (buffer_jbd(p))
| if (!__journal_try_to_free_buffer(p, &locked_or_dirty))

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2004-06-20 19:41:11

by Marcelo Tosatti

[permalink] [raw]
Subject: Re: Linux 2.4.27-rc1


Hi Geert!


On Sun, Jun 20, 2004 at 07:16:40PM +0200, Geert Uytterhoeven wrote:
> On Sat, 19 Jun 2004, Marcelo Tosatti wrote:
> > Marcelo Tosatti:
> > o journal_try_to_free_buffers(): Add debug print in case of bh list corruption
>
> Which introduced 4 warnings. Here's a fix:
>
> --- linux-2.4.27-rc1/fs/jbd/transaction.c.orig 2004-06-20 13:04:20.000000000 +0200
> +++ linux-2.4.27-rc1/fs/jbd/transaction.c 2004-06-20 19:08:07.000000000 +0200
> @@ -1700,11 +1700,11 @@ void debug_page(struct page *p)
>
> bh = p->buffers;
>
> - printk(KERN_ERR "%s: page index:%u count:%d flags:%x\n", __FUNCTION__,
> + printk(KERN_ERR "%s: page index:%lu count:%d flags:%lx\n", __FUNCTION__,
> p->index, atomic_read(&p->count), p->flags);
>
> while (bh) {
> - printk(KERN_ERR "%s: bh b_next:%p blocknr:%u b_list:%u state:%x\n",
> + printk(KERN_ERR "%s: bh b_next:%p blocknr:%lu b_list:%u state:%lx\n",
> __FUNCTION__, bh->b_next, bh->b_blocknr, bh->b_list,
> bh->b_state);
> bh = bh->b_this_page;

Right.

> And now I just looked at the original patch:
>
> | --- linux-2.4.26/fs/jbd/transaction.c 2004-02-18 13:36:31.000000000 +0000
> | +++ linux-2.4.27-rc1/fs/jbd/transaction.c 2004-06-19 23:37:33.000000000 +0000
> | @@ -1752,6 +1769,11 @@ int journal_try_to_free_buffers(journal_
> | do {
> | struct buffer_head *p = tmp;
> |
> | + if (!unlikely(tmp)) {
> ^^^^^^^^^^^^^^
> Shouldn't this be `unlikely(!tmp))'?

The original works, but thats cleaner as Willy also pointed out.

I'll fix those.

Thanks!