Linux: 2.6.4 Released

Submitted by Jeremy
on March 11, 2004 - 5:58am

Linux creator Linus Torvalds released the 2.6.4 Linux kernel with a handful of bugfixes since 2.6.4-rc3 [story], which itself consisted primarily of code cleanups and various bugfixes. Larger merges were seen in 2.6.4-rc2 [story] and 2.6.4-rc1 [story]. As one would hope with a stable kernel, a growing trend can be seen with less changes made in the core kernel, and more happening to the various subsystems and architecture specific code.

View the changelog and download 2.6.4 from a kernel.org mirror. Read on for Linus' full announcement.


From: Linus Torvalds [email blocked]
To: Kernel Mailing List [email blocked]
Subject: Linux 2.6.4
Date: Wed, 10 Mar 2004 19:28:17 -0800 (PST)


A few small fixes since -rc3, most notably an OHCI bug that would corrupt
memory and seems to have been the reason for the "Bad page flags" bug at
least on ppc64 (it's not been reported on x86, as far as I know, but I
don't see why the corruption couldn't have happened there too).

The full changelog from 2.6.3 is on the ftp-sites along with the patches
and tar-balls, and the BK trees have been updated.

			Linus

---

Summary of changes from v2.6.4-rc3 to v2.6.4
============================================

Andrew Morton:
  o tty oops fix

Anton Blanchard:
  o ppc64 POWER3 segment table fix

Benjamin Herrenschmidt:
  o Fix PCI<->OF matching on G5 AGP bus
  o ppc64: Fix occasional crash at boot in OF interface
  o ppc64: Let OF initialize all displays in the system
  o Fix lockup accessing config space on G5

David Brownell:
  o USB: fix OHCI list corruption
  o Proper OHCI unlink fix

Don Fry:
  o pcnet32.c oops

Gerd Knorr:
  o bttv input update

Jens Axboe:
  o set request fastfail bit correctly

Krishna Kumar:
  o [IPV4/IPV6]: Add missing kmalloc failure checks

Linus Torvalds:
  o Make sure to include syscalls.h to get proper prototypes
  o Remove 'const' from min/max, to avoid gcc warning about double
    usage
  o Make bad_page() print out information about who triggered it
  o Revert 8259 timer ack workaround
  o Make bad_page() print out the page address
  o Linux 2.6.4

Olaf Kirch:
  o [IPV6]: Do not report {multi,any}cast in inet6_dump_ifaddr()

Petr Vandrovec:
  o ncpfs fails to correctly retry requests on timeout

Richard Henderson:
  o [ALPHA] Mark exit_code before waking process for SINGLESTEP
  o [ALPHA] Fix compressed bootp
  o [ALPHA] Fix gcc 3.4 build problems
  o [ALPHA] Add stat64 syscalls

Related Links:

Still USB problems

Anonymous
on
March 11, 2004 - 1:32pm

When I plug in my USB-mp3player I get this in dmesg
hub 4-0:1.0: port 2, status 101, change 1, 12 Mb/s
hub 4-0:1.0: debounce: port 2: delay 100ms stable 4 status 0x101
usb 4-2: new full speed USB device using address 2
usb 4-2: new device strings: Mfr=1, Product=2, SerialNumber=3
drivers/usb/core/message.c: USB device number 2 default language ID 0x412
uhci_hcd 0000:00:10.2: uhci_result_control: failed with status 500000
[dee1f240] link (1ee1f1e2) element (1ee141c0)
Element != First TD
0: [dee14040] link (1ee14080) e3 Length=7 MaxLen=7 DT0 EndPt=0 Dev=2, PID=2d(SETUP) (buf=1c0c65e0)
1: [dee14080] link (1ee140c0) e3 Length=f MaxLen=f DT1 EndPt=0 Dev=2, PID=69(IN) (buf=1d62a4c0)
2: [dee140c0] link (1ee141c0) e3 Length=f MaxLen=f DT0 EndPt=0 Dev=2, PID=69(IN) (buf=1d62a4d0)
3: [dee141c0] link (1ee14200) e3 Stalled Babble Length=3 MaxLen=3 DT1 EndPt=0 Dev=2, PID=69(IN) (buf=1d62a4e0)
4: [dee14200] link (00000001) e3 IOC Active Length=0 MaxLen=7ff DT1 EndPt=0 Dev=2, PID=e1(OUT) (buf=00000000)

usb 4-2: control timeout on ep0in

With the 2.6.3 kernel I only got
usb 4-2: new full speed USB device using address 2
usb 4-2: control timeout on ep0in

So there are clearly more debug messages, but my player still doesn't work.

My motherboard is an L7VTA
Any suggestions?

2.6.4-ck1

Anonymous
on
March 12, 2004 - 4:37am

It appears Con Kolivas has a patch set for 2.6.4 already, hooray!

And what's best, it has Reiser4 in it. Which snapshot? Will -ck be
updated with new Reiser4 snapshots?

The latest internal Reiser4 does not apply cleanly with the split
-ck1 patches, so I'm really looking forward to the next official
snapshot and hopefully its inclusion in -ck.

The only reason I'm not using -ck is because it has always conflicted
with Reiser4 :)

Reiser4 snapshot

Con Kolivas
on
March 12, 2004 - 6:32am

00:49:37 up 1 day, 1:15, 3 users, load average: 2.77, 2.45, 2.22

That's the uptime on my 2.6.4-ck1, and the snapshot was taken from namesys.com an hour before that so it's about 27 hours old at this moment in time.

I will be posting updated patches with newer -ck patches but unfortunately I'll be away for 2 months soon and therefore will be unable to do any kernel development in that time sorry :|

Was it a bk pull or the 2004.

Anonymous
on
March 12, 2004 - 7:31am

Was it a bk pull or the 2004.02.25 snapshot?

The 2004.02.25 has issues with reiser4 as root fs, which causes
issues for me from time to time...

But thanks anyway!

Snapshot

Con Kolivas
on
March 12, 2004 - 7:54am

2004.02.25 snapshot

2.6.4-ck1 and 2004.03.10-internal.testing

mjt
on
March 14, 2004 - 6:50am

I just did my first real messing around with the kernel.

First I applied all of the -ck1 patches, except for the Reiser4 one.

root@shrike:/usr/src/linux-2.6.4-ck1-reiser4-test# ls ../kernel_stuff/2.6.4-ck1-split/order/
01-patch-2.6.4-am9
02-patch-2.6.4.am9-domains
03-patch-2.6.4.domains-smtnice5
04-patch-2.6.4.schedioprio3-sng204
05-patch-2.6.4.smtnice5-batch10
06-patch-2.6.4.batch10-iso3
07-patch-2.6.4.cfqionice-schedioprio3
08-patch-2.6.4.sng204-bs313
09-patch-2.6.4.iso3-cfqionice

Then I downloaded
http://www.namesys.com/snapshots/2004.03.10-internal.testing/all.diff.gz
and patched it in. This resulted in three rejects:

root@shrike:/usr/src/linux-2.6.4-ck1-reiser4-test# patch -p1 < 
../reiser4/2004.03.10-internal.testing/all.diff | grep -B1 rej
Hunk #1 FAILED at 882.
1 out of 1 hunk FAILED -- saving rejects to file arch/i386/kernel/entry.S.rej
--
Hunk #2 succeeded at 401 (offset 2 lines).
1 out of 2 hunks FAILED -- saving rejects to file include/asm-i386/unistd.h.rej
--
Hunk #1 FAILED at 111.
1 out of 1 hunk FAILED -- saving rejects to file include/linux/init_task.h.rej

These I fixed thus:

mjt@shrike:/usr/src/linux-2.6.4-ck1-reiser4-test$ diff -u arch/i386/kernel/entry.S 
/usr/src/linux-2.6.4-ck1-reiser2004.03.10/arch/i386/kernel/entry.S           
--- arch/i386/kernel/entry.S    2004-03-14 13:59:21.000000000 +0000             
+++ /usr/src/linux-2.6.4-ck1-reiser2004.03.10/arch/i386/kernel/entry.S  
2004-03-14 11:43:13.000000000 +0000
@@ -882,6 +882,11 @@
        .long sys_utimes
        .long sys_fadvise64_64
        .long sys_ni_syscall    /* sys_vserver */
+       #ifdef CONFIG_REISER4_FS
+       .long sys_reiser4
+       #else
+       .long sys_ni_syscall
+       #endif
        .long sys_ioprio_set
        .long sys_ioprio_get

mjt@shrike:/usr/src/linux-2.6.4-ck1-reiser4-test$ diff -u include/asm-i386/unistd.h 
/usr/src/linux-2.6.4-ck1-reiser2004.03.10/include/asm-i386/unistd.h 
--- include/asm-i386/unistd.h   2004-03-14 13:59:21.000000000 +0000             
+++ 
/usr/src/linux-2.6.4-ck1-reiser2004.03.10/include/asm-i386/unistd.h 
2004-03-14 11:54:21.000000000 +0000
@@ -279,10 +279,12 @@
 #define __NR_utimes            271
 #define __NR_fadvise64_64      272
 #define __NR_vserver           273
-#define __NR_ioprio_set                274
-#define __NR_ioprio_get                275
+/* #define __NR_ioprio_set             274 */
+/* #define __NR_ioprio_get             275 */
+#define __NR_reiser4          274
 
-#define NR_syscalls 276
+/* #define NR_syscalls 276 */
+#define NR_syscalls 275
 
 /* user-visible error numbers are in the range -1 - -124: see  */

mjt@shrike:/usr/src/linux-2.6.4-ck1-reiser4-test$ diff -u include/linux/init_task.h 
/usr/src/linux-2.6.4-ck1-reiser2004.03.10/include/linux/init_task.h 
--- include/linux/init_task.h   2004-03-14 13:59:21.000000000 +0000
+++ 
/usr/src/linux-2.6.4-ck1-reiser2004.03.10/include/linux/init_task.h 
2004-03-14 11:55:36.000000000 +0000
@@ -111,7 +111,7 @@
        .alloc_lock     = SPIN_LOCK_UNLOCKED,                           \
        .proc_lock      = SPIN_LOCK_UNLOCKED,                           \
        .switch_lock    = SPIN_LOCK_UNLOCKED,                           \
-       .journal_info   = NULL,                                         \
+       .fs_context     = NULL,                                         \
        .ioprio         = IOPRIO_NORM,                                  \
 }
 

What I'd like to know is what are the chances everything will break
because of the changes in the syscalls? How would that be seen
in practice?

It did boot and mount my Reiser4 / partition correctly and all that,
so it's probably not all FUBAR, but what are the risks, are there
others than unsupported syscalls?

I also heard that I should recompile glibc because of this. I would
rather not. Should I?

This is probably not as good a forum for this question as, say,
the LKML, but it's way too active for me to follow, alas :P

--
Markus Törnqvist
(Who created an account this time around ;)

Bad

Con Kolivas
on
March 14, 2004 - 7:21am

dont drop the syscalls

-#define __NR_ioprio_set                274
-#define __NR_ioprio_get                275
+/* #define __NR_ioprio_set             274 */
+/* #define __NR_ioprio_get             275 */
+#define __NR_reiser4          274
 
-#define NR_syscalls 276
+/* #define NR_syscalls 276 */
+#define NR_syscalls 275

should be

#define __NR_ioprio_set                274
#define __NR_ioprio_get                275
+#define __NR_reiser4          276
 
-#define NR_syscalls 276
+#define NR_syscalls 277

You should have looked at my reiser4 patch as a guide. Don't fret over glic though.

Con

Argh, my bad

mjt
on
March 14, 2004 - 1:43pm

Yes, of course.

I had my doubts about that syscall thing all along, and
I've never dared touch the kernel before, apart from patching
something that goes cleanly in :)

Thanks, once again!

--
Markus Törnqvist
(Recompiling before all Hell breaks loose)

Still compilation errors

Anonymous
on
March 16, 2004 - 9:43am

CC [M] drivers/macintosh/macserial.o
drivers/macintosh/macserial.c: In function `rs_tiocmget':
drivers/macintosh/macserial.c:1793: error: `cmd' undeclared (first use in this function)
drivers/macintosh/macserial.c:1793: error: (Each undeclared identifier is reported only once
drivers/macintosh/macserial.c:1793: error: for each function it appears in.)
drivers/macintosh/macserial.c: In function `rs_tiocmset':
drivers/macintosh/macserial.c:1823: error: `cmd' undeclared (first use in this function)
drivers/macintosh/macserial.c:1813: warning: unused variable `arg'
drivers/macintosh/macserial.c:1813: warning: unused variable `bits'
make[3]: *** [drivers/macintosh/macserial.o] Error 1
make[2]: *** [drivers/macintosh] Error 2
make[1]: *** [drivers] Error 2
make[1]: Leaving directory `/home/capitol/linux-2.6.4'
make: *** [stamp-build] Error 2

I have an iBook G4.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.