2002-12-26 00:26:51

by Jörg Prante

[permalink] [raw]
Subject: [PATCHSET] 2.4.21-pre2-jp15

Hi,

here is my christmas present for you!

Linux kernel patch set 2.4.21-pre2-jp15

This is the fifteenth release of the -jp patch set.

Status: 25 Dec 2002 22:00 CEST

What is it?

The -jp kernel patch sets are development kernels for testing purpose only.
They provide a service for developers who want keep up to date with the
latest kernels and interesting patches. If you like to test interesting new
features of patches and evaluate bleeding-edge enhancements not to be
expected for inclusion into the standard 2.4 kernel in the near future, the
-jp kernel patch set is the one for you.

The patches are selected under performance improvement criterias and increased
stability under load, with an eye on better file system support and security.
Each patch is carefully evaluated, compiled and adapted to fit into the
collection. The patch set should compile; but it can't be guarantueed that it
successfully boots on every machine.

Before being released, the -jp kernel is tested for successful booting into
SuSE Linux 8.1 on a test machine with the Elitegroup K7S5A board, Duron 1
Ghz, 256 MB, 40 GB IDE drive, SCSI 4.3 GB drive, Geforce 2 graphics card. It
will be released if a -jp kernel self-compile and reboot on an XFS file
system partition succeeds.

The -jp patch sets will appear regularly, depending on the progress of 2.4
kernel releases. The 2.6 kernel is scheduled for second quarter of 2003, and
-jp patch sets will be continued for 2.6 kernels.

Download

http://infolinux.de/jp15

The patch set is provided as a single archive where you will find all patches
as separate files. Please take care if you split the set and try to use parts
of it. The recommended method is downloading the set, unpacking the archive,
and apply the patches with the applypatches shell script provided in the
archive.

Content

001_intermezzo-fix 038_i2c
002_parport-fix 039_i2c-fix
003_ncpfs-fix 040_lmsensors
004_i8k-fix 041_h323-netmeeting-nat-fix
005_ide-fix 042_talk-nat-fix
006_ide-hack 043_net-khttpd-remove
007_aic7xx-trivialdb 044_net-tux2
008_scx200-fix 045_nfs-all
009_variable-hz-rml 046_xfs
010_amd-cool 047_xfs-kernel
011_cpufreq 048_xfs-quota32
012_cpufreq-coppermine 049_xfs-dmapi
013_via-northbridge-fixup 050_xfs-misc
014_TIOCGDEV 051_xfs-acl
015_vm-rmap 052_xfs-ia64
016_vm-rmap-fix 053_ntfs
017_vm-strict-overcommit-rml 054_ftpfs
018_vm-strict-overcommit-rml-fix 055_cdfs
019_sched-O1-rml 056_ftpfs-fix
020_sched-O1-bluetooth-bnep-fix 057_njbfs
021_sched-hyperthreading 058_evms
021_sched-tunables-rml 059_evms-common
022_preempt-kernel-rml 060_evms-xfs-vfs-lock
022_preempt-log-rml 061_lvm2-devmapper-ioctl
022_preempt-stats-rml 062_lvm2-mempool-alloc-slab-fix
023_preempt-lock-break 063_driver-console-unicon
024_preempt-lowlatency 064_grsecurity
025_read-latency2-rmap 065_patch-int
026_pagecache-radixtree-lockbreak 066_loop-jari
027_driver-scsi-dc395x 067_alsa-kernel
028_driver-net-3c59x 068_alsa-kernel-stubs
029_driver-usbd-net 069_alsa-config
030_driver-usbd-net-fix 070_alsa-doc
031_driver-pdc202xx-pci 071_alsa-pde-airo-fix
032_driver-ide-cd-audio-dma 072_alsa-sb16-fix
033_driver-cdrw-packet-write 073_alsa-devfs-fix
034_supermount 074_ieee1394-fix
035_supermount-fix 075_freeswan-nodebug-fix
036_ipsec-freeswan 100_VERSION
037_acpi

Known Issues

* XFS with preemptive kernel can't sync, a kernel BUG is thrown. Please don't
use XFS with preemptive kernel.

* Kernel panic: VFS: Unable to mount root fs on ... Please build your root
fs into the kernel, not as a module.

* The variable 'CONFIG_SOUND' is shared between Alsa and OSS. This is not very
elegant. Kernel will be bigger than necessary.

* mkinitrd might fail with:
xfs: failed to add module "/lib/modules/2.4.21-pre2-jp15/kernel/fs/xfs/xfs.o"
initrd too small
Please don't switch on xfs debugging. It will bloat xfs.o over 22 MB.

* building a "Jumbo Kernel" with *all* possible configuration options selected
to 'y' will build, but it fails at vmlinux link time due to limitations in
binutils-2.12.90 (SuSE 8.1).

Have fun!

J?rg Prante <[email protected]>


2002-12-26 17:45:52

by Greg KH

[permalink] [raw]
Subject: Re: [PATCHSET] 2.4.21-pre2-jp15

On Thu, Dec 26, 2002 at 01:33:54AM +0100, J?rg Prante wrote:
> 029_driver-usbd-net
> 030_driver-usbd-net-fix

I'm pretty sure these drivers aren't needed anymore, as the usbnet
driver should work for the devices that usbd previously supported.

thanks,

greg k-h

2002-12-29 16:22:35

by Margit Schubert-While

[permalink] [raw]
Subject: Re: [PATCHSET] 2.4.21-pre2-jp15

ld -m elf_i386 -T /var/tmp/linux-2.4.20/arch/i386/vmlinux.lds -e stext
arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o
init/version.o init/do_mounts.o \
--start-group \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o
mm/mm.o fs/fs.o ipc/ipc.o \
drivers/acpi/acpi.o drivers/char/char.o drivers/block/block.o
drivers/misc/misc.o drivers/net/net.o drivers/media/media.o
drivers/char/drm/drm.o drivers/net/fc/fc.o
drivers/net/appletalk/appletalk.o drivers/net/tokenring/tr.o
drivers/net/wan/wan.o drivers/atm/atm.o drivers/ide/idedriver.o
drivers/scsi/scsidrv.o drivers/cdrom/driver.o drivers/pci/driver.o
drivers/net/pcmcia/pcmcia_net.o drivers/net/wireless/wireless_net.o
drivers/video/video.o drivers/net/hamradio/hamradio.o drivers/md/mddev.o
drivers/isdn/vmlinux-obj.o drivers/sensors/sensor.o \
net/network.o \
grsecurity/grsec.o \
crypto/crypto.o \
/var/tmp/linux-2.4.20/arch/i386/lib/lib.a
/var/tmp/linux-2.4.20/lib/lib.a /var/tmp/linux-2.4.20/arch/i386/lib/lib.a \
--end-group \
-o vmlinux
drivers/char/char.o: In function `sysrq_handle_preempt_log':
drivers/char/char.o(.text+0x1c79e): undefined reference to `show_preempt_log'
make: *** [vmlinux] Error 1

Margit

2002-12-30 18:49:03

by Jörg Prante

[permalink] [raw]
Subject: Re: [PATCHSET] 2.4.21-pre2-jp15

>drivers/char/char.o: In function `sysrq_handle_preempt_log':
>drivers/char/char.o(.text+0x1c79e): undefined reference to `show_preempt_log'

Please apply

http://infolinux.de/jp15/076_sysrq-preempt-log-fix

Patchset .bz2 archive will be updated.

J?rg

--- linux-jp15/drivers/char/sysrq.c.orig 2002-12-30 19:48:15.000000000 +0100
+++ linux-jp15/drivers/char/sysrq.c 2002-12-30 19:48:35.000000000 +0100
@@ -27,7 +27,7 @@
#include <linux/quotaops.h>
#include <linux/smp_lock.h>
#include <linux/module.h>
-
+#include <linux/sched.h>
#include <linux/spinlock.h>

#include <asm/ptrace.h>

2002-12-30 20:23:20

by Margit Schubert-While

[permalink] [raw]
Subject: Re: [PATCHSET] 2.4.21-pre2-jp15

Hi J?rg,
Sorry, the patch doesn't change anything.
I am compiling with PREEMPT off.
Looking at sysrq.c , I would say that a couple of
#ifdef's are missing. The code in the handle_preempt
function, I think should be ifdef'd on CONFIG_PREEMPT_LOG

Margit

At 19:56 30.12.02 +0100, you wrote:
> >drivers/char/char.o: In function `sysrq_handle_preempt_log':
> >drivers/char/char.o(.text+0x1c79e): undefined reference to
> `show_preempt_log'
>
>Please apply
>
>http://infolinux.de/jp15/076_sysrq-preempt-log-fix
>
>Patchset .bz2 archive will be updated.
>
>J?rg
>
>--- linux-jp15/drivers/char/sysrq.c.orig 2002-12-30
>19:48:15.000000000 +0100
>+++ linux-jp15/drivers/char/sysrq.c 2002-12-30 19:48:35.000000000 +0100
>@@ -27,7 +27,7 @@
> #include <linux/quotaops.h>
> #include <linux/smp_lock.h>
> #include <linux/module.h>
>-
>+#include <linux/sched.h>
> #include <linux/spinlock.h>
>
> #include <asm/ptrace.h>

2002-12-30 20:53:39

by Jörg Prante

[permalink] [raw]
Subject: Re: [PATCHSET] 2.4.21-pre2-jp15

> Sorry, the patch doesn't change anything.
> I am compiling with PREEMPT off.
> Looking at sysrq.c , I would say that a couple of
> #ifdef's are missing. The code in the handle_preempt
> function, I think should be ifdef'd on CONFIG_PREEMPT_LOG
>
> Margit

Hi Margit,

you should enable preemptive kernel logging only if you selected preemptive
kernel.

In the case of preempt logging turned off, the show_preempt_log() function
should evaluate to an empty function

#define show_preempt_log() do { } while(0)

as defined in <linux/sched.h>

Best regards,

J?rg

2002-12-30 21:17:13

by Margit Schubert-While

[permalink] [raw]
Subject: Re: [PATCHSET] 2.4.21-pre2-jp15

Hi J?rg,
No, the defines in sched.h are surrounded by #idef CONFIG_PREEMPT
before #ifdef CONFIG_PREEMPT_LOG and therefore don't bite.
You need the #ifdef CONFIG_PREEMPT_LOG around the
sysrq_handle_preempt_log and the following sysrq_key_op sysrq_preempt_log_op
functions as per later in the code :
#ifdef CONFIG_PREEMPT_LOG
/* g */ &sysrq_preempt_log_op,
#else
/* g */ NULL,
#endif


Next problems :

scx200.c:117: parse error before
"this_object_must_be_defined_as_export_objs_in_the_Makefile"
scx200.c:117: warning: type defaults to `int' in declaration of
`this_object_must_be_defined_as_export_objs_in_the_Makefile'
scx200.c:117: warning: data definition has no type or storage class
scx200.c:118: parse error before
"this_object_must_be_defined_as_export_objs_in_the_Makefile"
scx200.c:118: warning: type defaults to `int' in declaration of
`this_object_must_be_defined_as_export_objs_in_the_Makefile'
scx200.c:118: warning: data definition has no type or storage class
scx200.c:119: parse error before
"this_object_must_be_defined_as_export_objs_in_the_Makefile"
scx200.c:119: warning: type defaults to `int' in declaration of
`this_object_must_be_defined_as_export_objs_in_the_Makefile'
scx200.c:119: warning: data definition has no type or storage class
scx200.c:120: parse error before
"this_object_must_be_defined_as_export_objs_in_the_Makefile"
scx200.c:120: warning: type defaults to `int' in declaration of
`this_object_must_be_defined_as_export_objs_in_the_Makefile'
scx200.c:120: warning: data definition has no type or storage class
scx200.c:121: parse error before
"this_object_must_be_defined_as_export_objs_in_the_Makefile"
scx200.c:121: warning: type defaults to `int' in declaration of
`this_object_must_be_defined_as_export_objs_in_the_Makefile'
scx200.c:121: warning: data definition has no type or storage class
make[2]: *** [scx200.o] Error 1
make[2]: Leaving directory `/var/tmp/linux-2.4.20/drivers/char'
make[1]: *** [_modsubdir_char] Error 2
make[1]: Leaving directory `/var/tmp/linux-2.4.20/drivers'
make: *** [_mod_drivers] Error 2


find kernel -path '*/pcmcia/*' -name '*.o' | xargs -i -r ln -sf ../{} pcmcia
if [ -r System.map ]; then /sbin/depmod -ae -F System.map 2.4.21mw0; fi
depmod: *** Unresolved symbols in
/lib/modules/2.4.21mw0/kernel/drivers/net/wan/comx.o
depmod: proc_get_inode
depmod: *** Unresolved symbols in /lib/modules/2.4.21mw0/kernel/net/irda/irda.o
depmod: irlmp_lap_tx_queue_full


Margit

2002-12-30 23:01:32

by Jörg Prante

[permalink] [raw]
Subject: Re: [PATCHSET] 2.4.21-pre2-jp15

Hi Margit,

> No, the defines in sched.h are surrounded by #idef CONFIG_PREEMPT
> before #ifdef CONFIG_PREEMPT_LOG and therefore don't bite.

The surrounding is correct. You can't get into an error because the
configuration claims

dep_bool ' Preemption logging' CONFIG_PREEMPT_LOG $CONFIG_PREEMPT

so I guess your configuration is bad.

> scx200.c:117: parse error before
> "this_object_must_be_defined_as_export_objs_in_the_Makefile"

Here is a fix:

http://infolinux.de/jp15/077_scx200-export-fix

> find kernel -path '*/pcmcia/*' -name '*.o' | xargs -i -r ln -sf ../{}
> pcmcia if [ -r System.map ]; then /sbin/depmod -ae -F System.map
> 2.4.21mw0; fi depmod: *** Unresolved symbols in
> /lib/modules/2.4.21mw0/kernel/drivers/net/wan/comx.o
> depmod: proc_get_inode

>From the documentation:
"You must say Y to "/proc file system support" (CONFIG_PROC_FS) to
use this driver."

If you managed to build procfs as a module, which is unusual, try this fix:

http://infolinux.de/jp15/078_proc-inode-export

> depmod: *** Unresolved symbols in
> /lib/modules/2.4.21mw0/kernel/net/irda/irda.o depmod:
> irlmp_lap_tx_queue_full

This is a bug introduced by 2.4.21-pre2.

Here is a fix:

http://infolinux.de/jp15/079_irttp-fix

J?rg

2002-12-31 09:47:47

by Margit Schubert-While

[permalink] [raw]
Subject: Re: [PATCHSET] 2.4.21-pre2-jp15

Hi J?rg,
My config is A1 OK !
--snip --
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_TIMES is not set
# CONFIG_PREEMPT_LOG is not set
-- end snip --

As I said, you NEED the ifdef in sysrq.c. Look again.

Re: scx200 - OK, I had sorted that one myself.

Re: comx
Sorry - procfs is configured. Don't know what's going on here.
--snip --
CONFIG_PROC_FS=y
-- end snip --

Re: irda - OK

Margit

2002-12-31 11:00:40

by Margit Schubert-While

[permalink] [raw]
Subject: Re: [PATCHSET] 2.4.21-pre2-jp15

Hi J?rg,
Here is the patch for the wan/comx problem.

--- linux-2.4.20/fs/proc/root.c 2002-12-29 17:54:33.000000000 +0100
+++ linux-2.4.20mw0/fs/proc/root.c 2002-12-31 11:45:21.000000000 +0100
@@ -158,3 +158,4 @@
EXPORT_SYMBOL(proc_net);
EXPORT_SYMBOL(proc_bus);
EXPORT_SYMBOL(proc_root_driver);
+EXPORT_SYMBOL(proc_get_inode);

Margit

2002-12-31 12:09:14

by Jörg Prante

[permalink] [raw]
Subject: Re: [PATCHSET] 2.4.21-pre2-jp15

Hi Margit,

You are right, I missed the obvious case when preempt is disabled at all. An
updated patch is here: http://infolinux.de/jp15/076_sysrq-preempt-log-fix-2

The proc_get_inode problem is for a long time now a vanilla kernel problem,
since the early days of 2.4.

I assume the proc_get_inode function is considered not to be exported because
the proc fs driver was likely to have race conditions, so Marcelo don't feel
ok with fixing it. The comx driver is broken with proc fs.

Maybe Gergely Madarasz <[email protected]> (comx Maintainer) is going to fix it. My
favorite solution would be getting rid of proc_get_inode in
drivers/net/wan/comx.c

Al Viro announced a rework of proc fs a long time ago, I don't know if the
changes have been made.

http://www.cs.helsinki.fi/linux/linux-kernel/2001-24/0984.html

Willy Tarreau tried a fix in comx, but gave up:

http://www.cs.helsinki.fi/linux/linux-kernel/2002-25/0562.html

Some more URLs from Google:

http://www.cs.helsinki.fi/linux/linux-kernel/2001-12/0677.html
http://www.uwsg.iu.edu/hypermail/linux/kernel/0206.3/0466.html
http://www.cs.helsinki.fi/linux/linux-kernel/2002-37/0063.html
http://hypermail.idiosynkrasia.net/linux-kernel/archived/2002/week37/0122.html
http://www.van-dijk.net/linuxkernel/200218/0359.html.gz

etc.

>From the ChangeLog of 2.4.0prerelease-ac6
o Fix proc_get_inode export (for comx) (Hans Grobler)

:-)

Also, the code in comx don't seem to be clean according to this NULL checker
tool. In fact, de->name is dereferenced without being checked.

[BUG] contra
/u2/engler/mc/oses/linux/2.4.4/drivers/net/wan/comx.c:920:comx_lookup:
ERROR:INTERNAL_NULL:924:920: [type=set] (set at line 924) Dereferencing NULL
ptr "de" illegally! [val=400]
{
struct proc_dir_entry *de;
struct inode *inode = NULL;

if ((de = (struct proc_dir_entry *) dir->u.generic_ip) != NULL) {
Error --->
for (de = de->subdir ; de ; de = de->next) {
if ((de && de->low_ino) &&
(de->namelen == dentry->d_name.len) &&
(memcmp(dentry->d_name.name, de->name,
Start --->
de->namelen) == 0)) {
if ((inode = proc_get_inode(dir->i_sb,
de->low_ino, de)) == NULL) {
printk(KERN_ERR "COMX: lookup error\n");

I don't have the hardware, so I can't help with a solid fix. While there is no
good solution, I recommend to disable the driver.

J?rg