2002-11-18 04:34:52

by Linus Torvalds

[permalink] [raw]
Subject: Linux v2.5.48


Hmm.. All over the place, best you see the changelog. Lots of small
cleanups (remove unnecessary header files etc), but a few more fundamental
changes too. Times in nsecs in stat64(), for example, and the
oft-discussed kernel module loader changes..

Linus


Summary of changes from v2.5.47 to v2.5.48
============================================

<[email protected]>:
o Add 'needed for mouse and keyboard' comments to Kconfig to make
configuration of mouse and keyboard support more obvious.

<[email protected]>:
o Re: USB scanner fix for 2.5.47 was not good ?

<[email protected]>:
o I found a missing '\n' in serio.c:118. This prevents the next
printk to be interpreted correctly.

<[email protected]>:
o Handle return values from interface_register() and misc_register()
in the input drivers.

<[email protected]>:
o Add defaults for the most needed keyboard/mouse options

<[email protected]>:
o Remove unused variable

Adrian Bunk <[email protected]>:
o trivial compile fix for pxa-regs.h

Alexander Viro <[email protected]>:
o CLONE_NEWNS fix
o sys_swapoff() cleanup
o paride/pseudo.h cleanup
o late-boot cleanups
o dm_ioctl() fix
o >pmtu compile fix
o bdevname() cleanups
o bd_dev cleanups
o dasd fixe and cleanups
o misc cleanups
o dv1394 devfs use
o dm use of devfs
o paride.c fed through Lindent
o eliminated use of devfs_auto_unregister() in checks.c
o cleaned up callers of devfs_mk_dir()
o devfs_register_tape() cleanup
o gratitious MOD_INC_USE_COUNT
o paride protocols switched to ->owner
o late-boot fixes
o devfs_remove() helper
o more bogus MOD_INC_USE_COUNT removals
o fix for rescan_partitions()

Alexey Kuznetsov <[email protected]>:
o [IPSEC]: More fixes and corrections
o [UDP]: silly bug, local input policy did not work on udp sockets
o [IPSEC]: ah/esp, 0 was used as tunnels protocol
o [IPSEC]: authentication signature for MD5/SHA was not truncated to
conform RFC
o [IPSEC]: More pfkey2 semantic fixes

Andi Kleen <[email protected]>:
o nanosecond stat timefields

Andrew Morton <[email protected]>:
o timers: drivers/
o timers: sound/
o timers: fs/
o [NET]: More timer init fixes
o direct-io bio_add_page fix
o mbcache: add gfp_mask parameter to free() callback,
o run flush_cache_page while pte is valid
o unlock_page when get_swap_bio fails
o handle pages which alter their ->mapping
o misc fixes
o hugetlb cleanups
o more hugetlb fixes
o improved slab error diagnostics
o try to remove buffer_heads from to-be-reaped inodes
o kmap->kmap_atomic in mpage.c
o better inode reclaim balancing

Andy Grover <[email protected]>:
o ACPI: Interpreter update to fix mutex wait problem This changes the
timeout param around the interpreter to a u16, so that
ACPI_WAIT_FOREVER is equivalent to 0xFFFF, the value ASL expects to
mean "wait forever".
o ACPI: bus.c needed device.h included
o ACPI: Correctly init device struct, permissing proper
unloading/reloading (John Cagle)
o ACPI: Interpreter update to 20021111 - Adds support for SMBus
OpRegions
o ACPI: Make unload/reload of modules work properly w.r.t. /proc
o ACPI: Do not compile code for EC unloading, because it cannot be
unloaded atm

Anton Blanchard <[email protected]>:
o [SPARC64]: In sys32_sched_getaffinity, put mask back to user if
ret > 0

Arnaldo Carvalho de Melo <[email protected]>:
o arp: fix seq_file support
o ipv4: convert /proc/net/netstat to seq_file
o ipv4: convert /proc/net/snmp to seq_file
o ipv4: convert /proc/net/sockstat to seq_file
o ipv4: convert /proc/net/raw to seq_file
o Fix up after header file cleanups: add <linux/mount.h> to quota
that got it implicitly before.
o Fix up after header file cleanups: add <linux/mount.h> to cifs that
got it implicitly before.
o Fix up after header file cleanups: add <linux/mount.h> to hugetlbfs
that got it implicitly before.
o Fix up after header file cleanups: add <linux/mount.h> to
intermezzo that got it implicitly before.
o Fix up after header file cleanups: add <linux/mount.h> to jffs2
that got it implicitly before.
o Fix up after header file cleanups: add <linux/mount.h> to ntfs that
got it implicitly before.
o Fix up after header file cleanups: add <linux/mount.h> to
pci_hotplug_core that got it implicitly before.
o Fix up after header file cleanups: add <linux/mount.h> to smbfs
that got it implicitly before.
o Fix up after header file cleanups: add <linux/mount.h> to dquot
that got it implicitly before.
o ps2esdi: fixups after header file cleanups
o xd: fixup after header files cleanups: add include
<linux/interrupt.h>
o cpqarray/cciss: fixup after header files cleanups: add include
<linux/interrupt.h>
o mcd/mcdx: fixup after header files cleanups: add include
<linux/interrupt.h>
o tp3870i: fixup after header files cleanups: add include
<linux/interrupt.h>
o mtpav: fix up header file cleanup: add include
<linux/interrupt.h>
o ncpfs: fix up header cleanup: forward declare struct sock
o sound: fix up header cleanups: add include <linux/interrupt.h>
o char: fix up header cleanups: include linux/interrupt.h

Art Haas <[email protected]>:
o C99 designated initializers for arch/s390
o C99 designated initializers for arch/mips64
o C99 designated initializers for drivers/ide/pci (2 of 2)
o C99 designated initializers for arch/arm
o C99 designated initializers for arch/ppc64
o C99 designated initializers for arch/v850
o C99 designated initializers for arch/mips
o C99 designated initializer for arch/alpha/kernel/sys_jensen.c
o C99 designated initializers for arch/s390x
o C99 designated initializers for arch/cris
o C99 designated initializers for drivers/ide/pci (1 of 2)
o C99 designated initializers for drivers/char/agp
o C99 designated initializers for drivers/macintosh
o C99 designated initializer for drivers/usb/media/vicam.c
o C99 designated initializers for arch/i386

Ben Collins <[email protected]>:
o [SPARC64]: Do not NULL conswitchp when serial_console
o [TG3]: TG3_HW_STATUS_SIZE should be 0x50 not 0x80

Ben Fennema <[email protected]>:
o UDF sync with CVS

Brian Gerst <[email protected]>:
o Emu10k1 gameport fix

Christoph Hellwig <[email protected]>:
o get rid of ->detect for upper layer drivers
o remove some dead declarations from the scsi headers
o move all procfs code to scsi_proc
o nuke some crap from fs.h
o include mount.h explicitly were needed
o don't include mount.h in dcache.h
o move mount.h out of fs_struct.h
o fork.c bits for uClinux
o don't include net.h in fs.h
o move scsi_reset_provider to scsi_error.c
o pull even more crap out of fs.h

Dave Kleikamp <[email protected]>:
o Add fs/jfs/acl.c

David Brownell <[email protected]>:
o <linux/device.h> KERN_WARN(ING)
o usbtest, add some unlink testcases
o usbnet Kconfig helptext
o USB: update usb hotplug documentation
o ehci-hcd, use dummy td when queueing
o usb problems (ohci-hcd + printer)
o usb sysfs shows bNumConfigurations
o usb_new_device() sets up dev->dev earlier
o cleanup usb hcd unlink code
o ohci-hcd, driverfs files work again, less debug output
o HID patches for MGE UPS

David S. Miller <[email protected]>:
o [SPARC64]: Fix accidental clobbering of register on cheetahplus
o net/ipv4/arp.c: Fix compiler warning
o [IPSEC]: Make netlink user interface header
o kernel/module.c: Kill warnings on egcs-2.9x and 64-bit
o drivers/net/sk98lin/skge.c: Kill useless init_module/cleanup_module
forward declarations
o drivers/net/skfp/skfddi.c: Kill useless init_module/cleanup_module
forward declarations
o drivers/net/tulip/de4x5.c: Kill useless init_module/cleanup_module
forward declarations
o [SPARC]: Updated module support
o net/ipv6/af_inet6.c: Remove extraneous #endef
o [SPARC]: More new modules work
o [IPSEC]: Netlink xfrm configuration interface
o [XFRM_USER]: Fix xfrm_find_acq args
o [XFRM_USER]: Destroy netlink socket on shutdown
o [XFRM]: Add family member to state/policy structs
o Fix tg3 net driver to properly disable interrupts during some TX
operations

David Woodhouse <[email protected]>:
o psmouse.c: First check for a Synaptics touchpad, other probes
confuse it enough to disable the trackpoint.

Davide Libenzi <[email protected]>:
o remove code duplication from fs/eventpoll.c
o epoll bits 0.46
o epoll bit 0.47
o epoll - just when you think it's over

Doug Ledford <[email protected]>:
o mptscsih.h: compile fix
o scsi.c
o Update high level scsi drivers to use struct list_head in templates
Update scsi.c for struct list_head in upper layer templates Update
scsi.c for new module loader semantics
o aic7xxx_old: fix check_region/request_region usage so that the
module may be loaded/unloaded/reloaded
o Christoph Hellwig posted a patch that conflicted with a lot of my
own changes, so this is the merge of his work into my own.
o module.c: allow modules to enter themselves during mod init
o pci/setup-bus.c: Fix compile bustage from pci header cleanup

Douglas Gilbert <[email protected]>:
o scsi_debug 1.64 , remove detect(), "hotplug" hosts
o scsi_mid_low_api.txt
o scsi_debug 1.64 against 2.5.47
o [update] scsi_mid_low_api.txt

Geert Uytterhoeven <[email protected]>:
o Fix dyslexia in Amiga keyboard driver

Greg Kroah-Hartman <[email protected]>:
o USB: fixed up the wording of the bluetty driver's help entry to be
stronger
o USB: changed USB_UHCI_HCD_ALT to USB_UHCI_HCD as there is only one
driver
o kernel.h: changed #if DEBUG to #ifdef DEBUG to play nicer with
compilers
o USB: hcd.c: move #ifdef CONFIG_USB_DEBUG statement around a bit
o USB: fixup previous missed hunk in vicam patch

Hugh Dickins <[email protected]>:
o loop sendfile retval

Ingo Molnar <[email protected]>:
o threading fix, tid-2.5.47-A3

Jeff Dike <[email protected]>:
o A bunch of miscellaneous changes - mostly fixes from 2.4 and
updates to 2.5.43.
o A number of small fixes
o The block driver supports partitions again
o Merged the 2.5.44 ubd driver changes
o Updated to work as 2.5.44
o Updated to 2.5.45
o A small Makefile change
o Updates to 2.5.47

James Bottomley <jejb@mulgrave.(none)>:
o add request prep functions to SCSI
o warn (and don't attach) if no error handling
o [SCSI] downgrade lack of eh to warning and stack dump
o [SCSI] minor fixes
o fix potential panic due to scsi_init_io failure [[email protected]]
o move sd_init_onedisk so that the disk name is usable
o final tidy up of hch/dledford merger
o Tidy up compile warnings in scsi.c

James Morris <[email protected]>:
o [AF_KEY]: Fix alloc_skb args

Jens Axboe <[email protected]>:
o incorrect block layer segment accounting

Jes Sorensen <[email protected]>:
o rrunner PCI DMA mappings

Kai Germaschewski <[email protected]>:
o ISDN: config update
o ISDN: Missed conversion in drivers/isdn/i4l/isdn_net_lib.c
o ISDN: Fix some typos
o ISDN: Eicon driver fixes
o ISDN: Eicon driver indent
o ISDN: More Eicon driver cosmetics
o kbuild: Indicate building modules in non-verbose mode
o ISDN: Fix Kconfig typo

Linus Torvalds <[email protected]>:
o Re-introduce __MODULE_STRING, since some drivers depend on it
o Fix impressive call gate misuse DoS reported on bugtraq
o Duh. Fix the other lcall entry point too
o Merge Radeon driver updates from DRI CVS (add support for R200 cube
map registers)
o Update r128 driver to DRI CVS tree. Add getparam and vblank irq
handling.
o MGA driver update to DRI CVS (3.0.2 -> 3.1.0). Add vblank
interrupt, DMA blit and getparam support.
o i810 driver update to DRI CVS tree: use pci_alloc_consistent
instead of home-brew PCI allocations.
o i830 driver update to DRI CVS tree: use pci_alloc_consistent
instead of home-brew PCI allocations.
o Merge with DRI CVS tree: handle lack of AGP gracefully
o Fix up after pci name removal
o Fix up after header file cleanups: add <linux/mount.h> to NFSD
users that got it implicitly before.
o Make sure we clean user_tid when we've released the memory space it
was associated with.
o Fix up missing "struct iovec" declaration that was lost in
<linux/fs.h> cleanups
o Add forgotten system call number for set_tid_address()
o Initialize exception tables early - don't use an initcall, since
they are needed for early arch initialization.
o Fix up devfs handling for when it is disabled
o Fix more CONFIG_MODULE_UNLOAD issues

Maciej W. Rozycki <[email protected]>:
o Make it clearer that the atkbd.c driver is for PS/2 keyboards as
well in the Kconfig help text.

Manfred Spraul <[email protected]>:
o additional cleanup for f_op->poll
o yenta resource handling bugs
o drivers/char/raw.c
o fs/autofs/dirhash.c
o drivers/pcmcia/i8???.c

Matthew Dharm <[email protected]>:
o usb storage: remmove unneeded abort checks
o usb storage: remove duplicate functions
o usb storage: fix aborted auto-sense
o usb storage: fix spelling, comments
o usb storage: remove unneeded workaround for START_STOP

Matthew Wilcox <[email protected]>:
o Mux driver for PA-RISC
o Remove d_path from sched.h
o Move fd-related functions from sched.h to file.h
o Move request_irq & free_irq to interrupt.h
o Move wait queue handling from sched.h to wait.h
o remove sched.h from blkdev.h
o remove sched.h from atmdev.h
o remove sched.h from input.h
o remove sched.h from nfsd/cache.h
o remove sched.h from parport.h
o eliminate pci_dev name
o remove sched.h from if_pppox.h
o remove sched.h from i2c.h
o remove sched.h from ftape.h
o remove sched.h from elf.h
o remove sched.h from coda_linux.h
o Add some missing includes to drivers/base
o Run timers as softirqs, not tasklets

Patrick Mansfield <[email protected]>:
o dynamic device info flag entries
o remove scsi_host_hn_list

Pavel Machek <[email protected]>:
o swsusp: rewrite critical parts to assembly

Pete Zaitcev <[email protected]>:
o include/asm-sparc/elf.h: Include uaccess.h
o [SPARC]: Move LDFLAGS_BLOD define out from NEW_GAS test
o [sparc] Fix off-by-one in s/g handling

Randy Dunlap <[email protected]>:
o usblp buffer allocation (2.5.47)

Rolf Eike Beer <[email protected]>:
o [PATCH 0/2] clean up scsi documentation
o clean up scsi documentation
o clean up scsi documentation

Russell King <[email protected]>:
o Here's a patch that makes the RiscPC input bits work in 2.5

Russell King <[email protected]>:
o [ARM] Cleanup ARM configuration
o [ARM] Clean up includes
o [ARM] Fix flush_dcache_page()
o [ARM] Optimise set_pmd
o [ARM] Finally kill old ecard device discovery interfaces
o [ARM] Move ARMv4 wbi functions to separate file

Rusty Russell <[email protected]>:
o [Trivial Patch] scsi_register 1-8
o KBUILD_MODNAME define for build system
o In-kernel Module Loader
o New Module Loader: x86 support
o Fix module loader compile bug
o Sparc and Sparc64 Module updates
o module_name macro
o separate out moduleloader.h
o Allocate struct module using special allocator
o add strcspn() library function
o Forced module unload
o Export module_dummy_usage

Sam Ravnborg <[email protected]>:
o [ARM] makefile cleanup Added prerequisite FORCE in several rules,
now kbuild build a kernel even the second time you try.

Trond Myklebust <[email protected]>:
o cleanup: switch to passing *(struct rpc_procinfo) in rpc_message
o More rpc cleanup

Vojtech Pavlik <[email protected]>:
o Rescan a serio port in serio.c only when a character comes from it
o Add Logitech Wheel Mouse to the list of Logitech mice that have a
wheel in mousedev.c
o atkbd.c: Only issue the set LED command during probe when
absolutely needed
o Remove dead logibusmouse.h
o hid-input.c: Back out a (wrong) find_next_zero_bit() patch from
Arnaldo Carvalho de Melo
o Fix open counting in usbkbd.c and usbmouse.c in case the irq urb
submit fails. Bug spotted by Thiemo Seufer.
o Some fixes after conflict merge, in rpcmouse.c and rpckbd.c



2002-11-18 06:25:30

by bert hubert

[permalink] [raw]
Subject: modutils url for: Re: Linux v2.5.48

On Sun, Nov 17, 2002 at 08:41:05PM -0800, Linus Torvalds wrote:

> Hmm.. All over the place, best you see the changelog. Lots of small
> cleanups (remove unnecessary header files etc), but a few more fundamental
> changes too. Times in nsecs in stat64(), for example, and the
> oft-discussed kernel module loader changes..

To get this to load modules, you need:
http://www.kernel.org/pub/linux/kernel/people/rusty/module-init-tools-0.7.tar.gz

Just to save you the searching.

Shameless plug: to play with the ipsec, see
http://lartc.org/howto/lartc.ipsec.html - should now work without further
patches!

Regards,

bert

--
http://www.PowerDNS.com Versatile DNS Software & Services
http://lartc.org Linux Advanced Routing & Traffic Control HOWTO

2002-11-18 06:52:44

by William Lee Irwin III

[permalink] [raw]
Subject: Re: Linux v2.5.48

On Sun, Nov 17, 2002 at 08:41:05PM -0800, Linus Torvalds wrote:
> Hmm.. All over the place, best you see the changelog. Lots of small
> cleanups (remove unnecessary header files etc), but a few more fundamental
> changes too. Times in nsecs in stat64(), for example, and the
> oft-discussed kernel module loader changes..

This oopses on NUMA-Q sometime prior to TSC synch and then hangs in TSC
synch because not all cpus are responding where 2.5.47-mm3 (which
included some intermediate bk stuff) did not. This is because AP's are
taking timer interrupts before they are prepared to do so. Please apply
the following patch from Martin Bligh which resolves this issue:


Thanks,
Bill


diff -purN -X /home/mbligh/.diff.exclude virgin/arch/i386/kernel/smpboot.c noearlyirq/arch/i386/kernel/smpboot.c
--- virgin/arch/i386/kernel/smpboot.c Mon Nov 4 14:30:27 2002
+++ noearlyirq/arch/i386/kernel/smpboot.c Wed Nov 6 15:22:12 2002
@@ -419,6 +419,7 @@ void __init smp_callin(void)
smp_store_cpu_info(cpuid);

disable_APIC_timer();
+ local_irq_disable();
/*
* Allow the master to continue.
*/
@@ -1186,6 +1187,7 @@ int __devinit __cpu_up(unsigned int cpu)
if (!test_bit(cpu, &cpu_callin_map))
return -EIO;

+ local_irq_enable();
/* Unleash the CPU! */
set_bit(cpu, &smp_commenced_mask);
while (!test_bit(cpu, &cpu_online_map))

2002-11-18 07:15:26

by William Lee Irwin III

[permalink] [raw]
Subject: Re: Linux v2.5.48

On Sun, Nov 17, 2002 at 10:57:05PM -0800, William Lee Irwin III wrote:
> This oopses on NUMA-Q sometime prior to TSC synch and then hangs in TSC
> synch because not all cpus are responding where 2.5.47-mm3 (which
> included some intermediate bk stuff) did not. This is because AP's are
> taking timer interrupts before they are prepared to do so. Please apply
> the following patch from Martin Bligh which resolves this issue:

Actually, please apply this one instead. The prior patch did not
re-enable interrupts appropriately in its return paths (pointed out
by Andrew Morton):


diff -urpN linux-2.5.48/arch/i386/kernel/smpboot.c numaq-2.5.48/arch/i386/kernel/smpboot.c
--- linux-2.5.48/arch/i386/kernel/smpboot.c 2002-11-17 20:29:45.000000000 -0800
+++ numaq-2.5.48/arch/i386/kernel/smpboot.c 2002-11-17 22:35:05.000000000 -0800
@@ -419,6 +419,7 @@ void __init smp_callin(void)
smp_store_cpu_info(cpuid);

disable_APIC_timer();
+ local_irq_disable();
/*
* Allow the master to continue.
*/
@@ -1179,13 +1180,18 @@ void __init smp_prepare_cpus(unsigned in
int __devinit __cpu_up(unsigned int cpu)
{
/* This only works at boot for x86. See "rewrite" above. */
- if (test_bit(cpu, &smp_commenced_mask))
+ if (test_bit(cpu, &smp_commenced_mask)) {
+ local_irq_enable();
return -ENOSYS;
+ }

/* In case one didn't come up */
- if (!test_bit(cpu, &cpu_callin_map))
+ if (!test_bit(cpu, &cpu_callin_map)) {
+ local_irq_enable();
return -EIO;
+ }

+ local_irq_enable();
/* Unleash the CPU! */
set_bit(cpu, &smp_commenced_mask);
while (!test_bit(cpu, &cpu_online_map))

2002-11-18 07:43:17

by Martin J. Bligh

[permalink] [raw]
Subject: Re: Linux v2.5.48

> This oopses on NUMA-Q sometime prior to TSC synch and then hangs in TSC
> synch because not all cpus are responding where 2.5.47-mm3 (which
> included some intermediate bk stuff) did not. This is because AP's are
> taking timer interrupts before they are prepared to do so. Please apply
> the following patch from Martin Bligh which resolves this issue:

It seems to come and go randomly (timing issue), it's not new with 48.
Has been happening since 44-mm3 or so. Just as a point of interest,
doesn't seem to be the timer int itself that kill her, it's the
softirq processing that happens in irq_exit on the way back.

M.

2002-11-18 07:51:27

by William Lee Irwin III

[permalink] [raw]
Subject: Re: Linux v2.5.48

At some point in the past, my attribution was stripped from this comment:
>> This oopses on NUMA-Q sometime prior to TSC synch and then hangs in TSC
>> synch because not all cpus are responding where 2.5.47-mm3 (which
>> included some intermediate bk stuff) did not. This is because AP's are
>> taking timer interrupts before they are prepared to do so. Please apply
>> the following patch from Martin Bligh which resolves this issue:

On Sun, Nov 17, 2002 at 11:47:12PM -0800, Martin J. Bligh wrote:
> It seems to come and go randomly (timing issue), it's not new with 48.
> Has been happening since 44-mm3 or so. Just as a point of interest,
> doesn't seem to be the timer int itself that kill her, it's the
> softirq processing that happens in irq_exit on the way back.

This is all the more ammunition for the patch's inclusion. Linus, this
problem is even more severe and more persistent than I originally reported.


Please apply.


Thanks,
Bill

2002-11-18 09:01:26

by Gabor Z. Papp

[permalink] [raw]
Subject: Re: Linux v2.5.48

gcc 2.95.4
GNU ld version 2.12.90.0.15 20020717

make -f scripts/Makefile.build obj=fs/devfs
gcc -Wp,-MD,fs/devfs/.base.o.d -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -Iarch/i386/mach-generic -nostdinc -iwithprefix include -DKBUILD_BASENAME=base -DKBUILD_MODNAME=devfs -DEXPORT_SYMTAB -c -o fs/devfs/base.o fs/devfs/base.c
fs/devfs/base.c: In function `devfs_symlink':
fs/devfs/base.c:3032: incompatible types in assignment
fs/devfs/base.c:3033: incompatible types in assignment
fs/devfs/base.c:3034: incompatible types in assignment
fs/devfs/base.c: In function `devfs_mkdir':
fs/devfs/base.c:3063: incompatible types in assignment
fs/devfs/base.c:3064: incompatible types in assignment
fs/devfs/base.c:3065: incompatible types in assignment
fs/devfs/base.c: In function `devfs_mknod':
fs/devfs/base.c:3132: incompatible types in assignment
fs/devfs/base.c:3133: incompatible types in assignment
fs/devfs/base.c:3134: incompatible types in assignment
make[3]: *** [fs/devfs/base.o] Error 1
make[2]: *** [fs/devfs] Error 2
make[1]: *** [fs] Error 2
make: *** [vmlinux] Error 2

2002-11-18 12:31:59

by Adrian Bunk

[permalink] [raw]
Subject: Re: Linux v2.5.48

On Sun, Nov 17, 2002 at 08:41:05PM -0800, Linus Torvalds wrote:

>...
> Summary of changes from v2.5.47 to v2.5.48
> ============================================
>...
> Alexander Viro <[email protected]>:
>...
> o dv1394 devfs use
>...

This patch broke the compilation of dv1394:

<-- snip -->

...
gcc -Wp,-MD,drivers/ieee1394/.dv1394.o.d -D__KERNEL__ -Iinclude -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=k6 -Iarch/i386/mach-generic -nostdinc -iwithprefix include
-DKBUILD_BASENAME=dv1394 -DKBUILD_MODNAME=dv1394 -c -o
drivers/ieee1394/dv1394.o drivers/ieee1394/dv1394.c
drivers/ieee1394/dv1394.c:2586: parse error before `return'
make[2]: *** [drivers/ieee1394/dv1394.o] Error 1

<-- snip -->

The fix is trivial:

--- linux-2.5.48/drivers/ieee1394/dv1394.c.old 2002-11-18 13:32:02.000000000 +0100
+++ linux-2.5.48/drivers/ieee1394/dv1394.c 2002-11-18 13:35:55.000000000 +0100
@@ -2579,7 +2579,7 @@

static int dv1394_devfs_add_dir(char *name)
{
- if (!devfs_mk_dir(NULL, name, NULL))
+ if (!devfs_mk_dir(NULL, name, NULL)) {
printk(KERN_ERR "dv1394: unable to create /dev/%s\n", name);
return -ENOMEM;
}


cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2002-11-18 18:23:30

by Manfred Spraul

[permalink] [raw]
Subject: Re: Linux v2.5.48

At least the 2nd hunk is bogus:

@@ -1179,13 +1180,18 @@ void __init smp_prepare_cpus(unsigned in
int __devinit __cpu_up(unsigned int cpu)
{
/* This only works at boot for x86. See "rewrite" above. */
- if (test_bit(cpu, &smp_commenced_mask))
+ if (test_bit(cpu, &smp_commenced_mask)) {
+ local_irq_enable();
return -ENOSYS;
+ }

__cpu_up is called in the context of the boot cpu, not in the context of
the new cpu.

I think this patch should keep the interrupts disabled until after
smp_commenced is set. It's partially tested: bochs boots until all cpus
are up and then crashes.

I've tested the interrupt flag (pushfl;popfl), noone else enables them.

--
Manfred

--- 2.5/arch/i386/kernel/smpboot.c 2002-11-04 23:30:27.000000000 +0100
+++ build-2.5/arch/i386/kernel/smpboot.c 2002-11-18 19:19:38.000000000 +0100
@@ -405,8 +405,6 @@
clear_local_APIC();
setup_local_APIC();

- local_irq_enable();
-
/*
* Get our bogomips.
*/
@@ -449,6 +447,8 @@
smp_callin();
while (!test_bit(smp_processor_id(), &smp_commenced_mask))
rep_nop();
+
+ local_irq_enable();
setup_secondary_APIC_clock();
if (nmi_watchdog == NMI_IO_APIC) {
disable_8259A_irq(0);

2002-11-18 18:28:24

by Udo A. Steinberg

[permalink] [raw]
Subject: Re: Linux v2.5.48

On Sun, 17 Nov 2002 20:41:05 -0800 (PST) Linus Torvalds (LT) wrote:

Hi Linus,

2.5.48 broke completely monolithic kernels.

ld -m elf_i386 -e stext -T arch/i386/vmlinux.lds.s arch/i386/kernel/head.o
arch/i386/kernel/init_task.o init/built-in.o --start-group usr/built-in.o
arch/i386/kernel/built-in.o arch/i386/mm/built-in.o arch/i386/mach-generic/built-in.o
kernel/built-in.o mm/built-in.o fs/built-in.o ipc/built-in.o security/built-in.o
crypto/built-in.o lib/lib.a arch/i386/lib/lib.a drivers/built-in.o sound/built-in.o
arch/i386/pci/built-in.o net/built-in.o --end-group -o vmlinux
init/built-in.o(.init.text+0x684): In function `start_kernel':
: undefined reference to `extable_init'
make: *** [vmlinux] Error 1

#
# Loadable module support
#
# CONFIG_MODULES is not set


If module support is enabled, the thing links beautifully.

Regards,
-Udo.


Attachments:
(No filename) (189.00 B)

2002-11-18 18:53:26

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux v2.5.48


On Mon, 18 Nov 2002, Manfred Spraul wrote:
>
> I think this patch should keep the interrupts disabled until after
> smp_commenced is set. It's partially tested: bochs boots until all cpus
> are up and then crashes.

This patch certainly cannot work: calibrate_delay() needs interrupts.

However, I think it's a mistake to even _try_ to calibrate the delay this
early, so the real fix probably looks something like this together with
moving the calibration to after the CPU is fully initialized.

Linus

2002-11-18 19:03:07

by Manfred Spraul

[permalink] [raw]
Subject: Re: Linux v2.5.48

Linus Torvalds wrote:

>On Mon, 18 Nov 2002, Manfred Spraul wrote:
>
>
>>I think this patch should keep the interrupts disabled until after
>>smp_commenced is set. It's partially tested: bochs boots until all cpus
>>are up and then crashes.
>>
>>
>
>This patch certainly cannot work: calibrate_delay() needs interrupts.
>
>
Not really. calibrate_delay needs interrupts on one cpu.
The boot cpu is still around, and spinning with enabled interrupts in
do_boot_cpu().

I haven't checked the irq routing, the timer must be fixed to the boot
cpu, otherwise my patch is unreliable/incomplete.

--
Manfred


2002-11-18 19:08:49

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux v2.5.48


On Mon, 18 Nov 2002, Manfred Spraul wrote:
>
> Not really. calibrate_delay needs interrupts on one cpu.

Good point, I missed that.

I'd still be a lot happier with calibrate_delay() being moved down, we
really shouldn't do things that depend on interrupts if we can't take them
ourselves.

Linus

2002-11-18 20:53:20

by William Lee Irwin III

[permalink] [raw]
Subject: Re: Linux v2.5.48

On Mon, Nov 18, 2002 at 07:30:37PM +0100, Manfred Spraul wrote:
> __cpu_up is called in the context of the boot cpu, not in the context of
> the new cpu.
> I think this patch should keep the interrupts disabled until after
> smp_commenced is set. It's partially tested: bochs boots until all cpus
> are up and then crashes.
> I've tested the interrupt flag (pushfl;popfl), noone else enables them.

That's odd, this should (in theory) enable them:

void __init setup_secondary_APIC_clock(void)
{
local_irq_disable(); /* FIXME: Do we need this? --RR */
setup_APIC_timer(calibration_result);
local_irq_enable();
}


> --- 2.5/arch/i386/kernel/smpboot.c 2002-11-04 23:30:27.000000000 +0100
> +++ build-2.5/arch/i386/kernel/smpboot.c 2002-11-18 19:19:38.000000000 +0100
> @@ -405,8 +405,6 @@
> clear_local_APIC();
> setup_local_APIC();
>
> - local_irq_enable();
> -
> /*
> * Get our bogomips.
> */
> @@ -449,6 +447,8 @@
> smp_callin();
> while (!test_bit(smp_processor_id(), &smp_commenced_mask))
> rep_nop();
> +
> + local_irq_enable();
> setup_secondary_APIC_clock();
> if (nmi_watchdog == NMI_IO_APIC) {
> disable_8259A_irq(0);

I've booted this and it functions equivalently on my machines.


Bill

2002-11-18 21:22:41

by Manfred Spraul

[permalink] [raw]
Subject: Re: Linux v2.5.48

William Lee Irwin III wrote:

>On Mon, Nov 18, 2002 at 07:30:37PM +0100, Manfred Spraul wrote:
>
>
>>__cpu_up is called in the context of the boot cpu, not in the context of
>>the new cpu.
>>I think this patch should keep the interrupts disabled until after
>>smp_commenced is set. It's partially tested: bochs boots until all cpus
>>are up and then crashes.
>>I've tested the interrupt flag (pushfl;popfl), noone else enables them.
>>
>>
>
>That's odd, this should (in theory) enable them:
>
>void __init setup_secondary_APIC_clock(void)
>{
> local_irq_disable(); /* FIXME: Do we need this? --RR */
> setup_APIC_timer(calibration_result);
> local_irq_enable();
>}
>
>

That's ok.

>
>> +
>> + local_irq_enable();
>> setup_secondary_APIC_clock();
>>
>
Irqs are enabled just before setup_secondary_APIC_clock();

SMP bootstrap for i386 is
init() [linux/init/main.c()]
-> smp_prepare_cpus()
-> smp_boot_cpus() [arch/i386/kernel/smpboot.c]
->do_boot_cpu()
-> kick the new cpu.
new cpu: spinns on the smp_commenced_mask
***** start of critical area: new cpu must not get an irq
-> do_pre_smp_initcalls()
-> smp_init()
->cpu_up() [kernel/cpu.c]
-> CPU_ONLINE_PREPARE notifier call
***** end of critical area: memory for new cpu initialized
->__cpu_up() [arch/i386/kernel/smpboot.c]
-> set_bit(smp_commenced_mask);

--
Manfred


2002-11-19 05:06:27

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux v2.5.48


On Mon, 18 Nov 2002, Udo A. Steinberg wrote:
>
> 2.5.48 broke completely monolithic kernels.

Ok, this should be fixed in current -bk (snapshots will be built at 4AM
PST as usual, so they should show up reasonably soon).

I also merged/updated the old kallsyms fixups from Rusty, so together with
the updated module loader we should be back to "working order" both
without and with modules and not missing any features.

Please test,

Linus

2002-11-19 11:12:56

by Allan Duncan

[permalink] [raw]
Subject: Re: modutils url for: Re: Linux v2.5.48

bert hubert wrote:

> On Sun, Nov 17, 2002 at 08:41:05PM -0800, Linus Torvalds wrote:
>
>
> >Hmm.. All over the place, best you see the changelog. Lots of small
> >cleanups (remove unnecessary header files etc), but a few more fundamental
> >changes too. Times in nsecs in stat64(), for example, and the
> >oft-discussed kernel module loader changes..
>
>
> To get this to load modules, you need:
> http://www.kernel.org/pub/linux/kernel/people/rusty/module-init-tools-0.7.tar.gz

Does this then make depmod happy?

Without it I get heaps of (eg)
depmod: *** Unresolved symbols in /lib/modules/2.5.48/kernel/zlib_deflate.o

I tried applying Adam Richter's module device ID tables patch without success.


#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODULE_UNLOAD is not set
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_KMOD=y

Turning off KMOD, or turning on UNLOAD makes no difference.

depmod version 2.4.18 I tried the latest 2.4.21 as well.

2002-11-26 23:07:58

by Adrian Bunk

[permalink] [raw]
Subject: Re: Linux v2.5.48

On Sun, Nov 17, 2002 at 08:41:05PM -0800, Linus Torvalds wrote:

>...
> Summary of changes from v2.5.47 to v2.5.48
> ============================================
>...
> Alexey Kuznetsov <[email protected]>:
> o [IPSEC]: More fixes and corrections
>...

The following part of this patch looks bogus:

<-- snip -->

--- 1.6/net/key/af_key.c Fri Nov 8 00:34:37 2002
+++ 1.7/net/key/af_key.c Mon Nov 11 01:03:55 2002
...
@@ -2179,7 +2223,7 @@
if (skb)
kfree_skb(skb);

- return err;
+ return err ? : len;
}

static int pfkey_recvmsg(struct kiocb *kiocb,

<-- snip -->


Is the following correct to fix it?


--- linux/net/key/af_key.c.old 2002-11-27 00:12:28.000000000 +0100
+++ linux/net/key/af_key.c 2002-11-27 00:12:40.000000000 +0100
@@ -2242,7 +2242,7 @@
if (skb)
kfree_skb(skb);

- return err ? : len;
+ return err ? err : len;
}

static int pfkey_recvmsg(struct kiocb *kiocb,


cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2002-11-26 23:44:18

by Randy.Dunlap

[permalink] [raw]
Subject: Re: Linux v2.5.48

On Wed, 27 Nov 2002, Adrian Bunk wrote:

| On Sun, Nov 17, 2002 at 08:41:05PM -0800, Linus Torvalds wrote:
|
| >...
| > Summary of changes from v2.5.47 to v2.5.48
| > ============================================
| >...
| > Alexey Kuznetsov <[email protected]>:
| > o [IPSEC]: More fixes and corrections
| >...
|
| The following part of this patch looks bogus:
|
| <-- snip -->
|
| --- 1.6/net/key/af_key.c Fri Nov 8 00:34:37 2002
| +++ 1.7/net/key/af_key.c Mon Nov 11 01:03:55 2002
| ...
| @@ -2179,7 +2223,7 @@
| if (skb)
| kfree_skb(skb);
|
| - return err;
| + return err ? : len;
| }
|
| static int pfkey_recvmsg(struct kiocb *kiocb,
|
| <-- snip -->
|
|
| Is the following correct to fix it?
|
|
| --- linux/net/key/af_key.c.old 2002-11-27 00:12:28.000000000 +0100
| +++ linux/net/key/af_key.c 2002-11-27 00:12:40.000000000 +0100
| @@ -2242,7 +2242,7 @@
| if (skb)
| kfree_skb(skb);
|
| - return err ? : len;
| + return err ? err : len;
| }
|
| static int pfkey_recvmsg(struct kiocb *kiocb,

Hi Adrian,

That's a gcc extension that means the same as your patch. See
http://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/Conditionals.html#Conditionals

It would be OK with me not to accept such extensions. :)

--
~Randy

2002-11-27 00:37:58

by Alexey Kuznetsov

[permalink] [raw]
Subject: Re: Linux v2.5.48

Hello!

> It would be OK with me not to accept such extensions. :)

One of a few of extensions which does not cause any reaction
but "it's strange that it was not in KR, apparently it was lost
due to a buglet in the first parser" :-)

Alexey

2002-11-27 00:46:33

by Adrian Bunk

[permalink] [raw]
Subject: Re: Linux v2.5.48

On Tue, Nov 26, 2002 at 03:49:11PM -0800, Randy.Dunlap wrote:
> On Wed, 27 Nov 2002, Adrian Bunk wrote:
>...
> | - return err;
> | + return err ? : len;
>...
> Hi Adrian,
>
> That's a gcc extension that means the same as your patch. See
> http://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/Conditionals.html#Conditionals
>...

Ah, thanks for the correction. I didn't know that there is such a gcc
extension.

> ~Randy

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

2002-11-27 04:50:41

by Andi Kleen

[permalink] [raw]
Subject: Re: Linux v2.5.48

[email protected] writes:

> > It would be OK with me not to accept such extensions. :)
>
> One of a few of extensions which does not cause any reaction
> but "it's strange that it was not in KR, apparently it was lost
> due to a buglet in the first parser" :-)

IMHO it's a bit dangerous. It even inspired me to my first gcc
patch, adding a warning for:

bla > 0 ? : somethingelse

(boolean expression as first argument)

returning the boolean value for true which would be always 1. But the real
intention was to return bla. I did this mistake at least twice. After that
I decided to avoid this extension. Unfortunately the gcc guys ignored the patch
to warn for it.

-Andi