ChangeSet@1.1534, 2003-12-30 03:21:51-08:00, davem@nuts.ninka.net [SPARC32]: Fix build after show_interrupts() changes. ChangeSet@1.1533, 2003-12-30 01:15:52-08:00, davem@nuts.ninka.net [SPARC64]: Fix build after show_interrupts() changes. ChangeSet@1.1530, 2003-12-29 22:09:43-08:00, torvalds@home.osdl.org Merge ia64 conflicts ChangeSet@1.1496.23.113, 2003-12-29 22:01:32-08:00, torvalds@home.osdl.org Merge bk://kernel.bkbits.net/davem/net-2.6 into home.osdl.org:/home/torvalds/v2.5/linux ChangeSet@1.1496.23.112, 2003-12-29 21:56:04-08:00, akpm@osdl.org [PATCH] dm: dm_table_event() sleep on spinlock bug From: Joe Thornber You can no longer call dm_table_event() from interrupt context. ChangeSet@1.1496.23.111, 2003-12-29 21:55:56-08:00, akpm@osdl.org [PATCH] dm: set io restriction defaults From: Joe Thornber Make sure that a target has a sensible set of default io restrictions. ChangeSet@1.1496.23.110, 2003-12-29 21:55:48-08:00, akpm@osdl.org [PATCH] dm: make v4 of the ioctl interface the default From: Joe Thornber Make the version-4 ioctl interface the default kernel configuration option. If you have out of date tools you will need to use the v1 interface. ChangeSet@1.1496.23.109, 2003-12-29 21:55:40-08:00, akpm@osdl.org [PATCH] dm: remove dynamic table resizing From: Joe Thornber The dm table size is always known in advance, so we can specify it in dm_table_create(), rather than relying on dynamic resizing. ChangeSet@1.1496.23.108, 2003-12-29 21:55:33-08:00, akpm@osdl.org [PATCH] dm: fix block device resizing From: Joe Thornber When setting the size of a Device-Mapper device in the gendisk entry, also try to set the size of the corresponding block_device entry's inode. This is necessary to allow online device/filesystem resizing to work correctly. [Kevin Corry] ChangeSet@1.1496.23.107, 2003-12-29 21:55:25-08:00, akpm@osdl.org [PATCH] name_to_dev_t() fix From: viro@parcelfarce.linux.theplanet.co.uk When we register disks, we mangle the disk names that contain slashes (e.g. cciss/c0d0) replacing them with '!' in corresponding sysfs names. So name_to_dev_t() should mangle the name in the same way before looking for it in /sys/block. ChangeSet@1.1496.23.106, 2003-12-29 21:55:17-08:00, akpm@osdl.org [PATCH] Kernel Locking Documentation update From: Rusty Russell Entirely revised, and largely rewritten. Has a continuing example now, which I think makes things clearer. Also covers Read Copy Update. This version further deprecates rwlock_t, shuffles sections for better organization. ChangeSet@1.1496.23.105, 2003-12-29 21:55:09-08:00, akpm@osdl.org [PATCH] VIA audio fixes From: Alan Cox VIA audio had a fix from 2.4 missing so any user could spam the system log. Also include a fix for a bug which is pending 2.4 fixing too and causes a bogus warning to be displayed on close of audio file handle. ChangeSet@1.1496.23.104, 2003-12-29 21:55:01-08:00, akpm@osdl.org [PATCH] cycx_drv warning fix From: Alan Cox Type errors, just fixes a warning ChangeSet@1.1496.23.103, 2003-12-29 21:54:53-08:00, akpm@osdl.org [PATCH] SCC warning fix From: Alan Cox Just a warning fix and behaviour tidy. Changing the kiss.mintime variable isn't going to work as its exposed to user space ChangeSet@1.1496.23.102, 2003-12-29 21:54:46-08:00, akpm@osdl.org [PATCH] update sn2 MAINTAINERS file entry From: jbarnes@sgi.com (Jesse Barnes) Just a quick patch to fix MAINTAINERS for sn2. ChangeSet@1.1496.23.101, 2003-12-29 21:54:37-08:00, akpm@osdl.org [PATCH] Winbond w83627hf driver From: Pádraig Brady Watchdog driver for the Winbond w83627hf which is on the last 3 motherboards I got here for test (tyan, advantech, force). ChangeSet@1.1496.23.100, 2003-12-29 21:54:29-08:00, akpm@osdl.org [PATCH] Fix ioctl related warnings in userspace From: Johannes Stezenbach the patch below removes warnings like: warning: signed and unsigned type in conditional expression when compiling userspace applications against a glibc built with 2.6 kernel headers (like on Debian unstable). ChangeSet@1.1496.23.99, 2003-12-29 21:54:21-08:00, akpm@osdl.org [PATCH] Rename legacy_bus to platform_bus From: Jeff Garzik I've seen this patch floating around. Not sure the origin, but it's surfaced on lkml and also when I was poking around handhelds.org CVS for iPAQ patches: on non-PCs, particularly system-on-chip devices but not just there, you have a custom "platform bus" that is the root of pretty much all other devices and buses. It's something I wanted to make sure people didn't forget; to make sure the legacy_bus didn't get "legacied out of existence." ;-) ChangeSet@1.1496.23.98, 2003-12-29 21:54:13-08:00, akpm@osdl.org [PATCH] synchronize use of mm->core_waiters From: Roland McGrath I believe I have identified a failure mode that Linus saw a couple weeks back when tracking down some other fork/exit sorts of races. We saw this come up on rare occasions with the RHEL3 kernel's backport of the new code (while trying to track down other race failure modes we have yet to fix, sigh). I am talking about the following scenario: > Btw, even with the fix, doing a "while : ; ./crash t 10 ; done" will > eventually result in a stuck process: > > 1415 tty1 D 0:00 ./crash > > This is some kind of deadlock: most of the fifty threads are in "D" > state, with a trace something like > > [] schedule+0x360/0x7f8 > [] wait_for_completion+0xd4/0x1c3 > [] do_exit+0x627/0x6a4 > [] do_group_exit+0x3d/0x177 > [] dequeue_signal+0x2d/0x84 > [] get_signal_to_deliver+0x390/0x575 > [] do_signal+0x6c/0xf1 > [] default_wake_function+0x0/0x12 > [] default_wake_function+0x0/0x12 > [] do_futex+0x6d/0x7d > [] sys_futex+0x116/0x12f > [] do_notify_resume+0x3b/0x3d > [] work_notifysig+0x13/0x15 > > except for one that is trying to core-dump: > > [] wait_for_completion+0xd4/0x1c3 > [] default_wake_function+0x0/0x12 > [] default_wake_function+0x0/0x12 > [] rwsem_wake+0x86/0x12d > [] coredump_wait+0xa8/0xaa > [] do_coredump+0x175/0x26c > > and three that are just doing a regular "exit()" system call: > > [] schedule+0x360/0x7f8 > [] recalc_task_prio+0x90/0x1aa > [] wait_for_completion+0xd4/0x1c3 > [] default_wake_function+0x0/0x12 > [] default_wake_function+0x0/0x12 > [] rwsem_wake+0xe3/0x12d > [] do_exit+0x627/0x6a4 > [] next_thread+0x0/0x53 > [] syscall_call+0x7/0xb > > However, the rest of the system is totally unaffected by this deadlock: > it's only deadlocked withing the thread group itself, nobody else cares. What happens here is a race between an exiting thread checking mm->core_waiters in __exit_mm, and the thread taking the core-dump signal (in coredump_wait) examining the first thread's ->mm pointer and incrementing mm->core_waiters to account for it. There is no synchronization at all in __exit_mm's use of mm->core_waiters. If the coredump_wait thread reads tsk->mm when tsk is in __exit_mm between checking mm->core_waiters and clearing tsk->mm, then it will increment mm->core_waiters and the total count will later exceed the number of threads that will ever decrement it and synchronize. Hence it blocks forever. The following patch fixes the problem by using mm->mmap_sem in __exit_mm. The read lock must be held around checking mm->core_waiters and clearing tsk->mm so that coredump_wait (which gets the write lock) cannot come in between and do bogus bookkeeping. ChangeSet@1.1496.23.97, 2003-12-29 21:54:05-08:00, akpm@osdl.org [PATCH] DAC960 request queue per disk From: Dave Olien Here's a patch that changes the DAC960 driver from having one request queue for ALL disks on the controller, to having a request queue for each logical disk. This turns out to make little difference for deadline scheduler, nor for AS scheduler under light IO load. But under AS scheduler with heavy IO, it makes about a 40% difference on dbt2 workload. Here are the measured numbers: The 2.6.0-test11-D kernel version includes this mutli-queue patch to the DAC960 driver. For non-cached dbt2 workload (heavy IO load) Scheduler kernel/driver NOTPM(bigger is better) AS 2.6.0-test11-D 1598 AS 2.6.0-test11 973 deadline 2.6.0-test11 1640 deadline 2.6.0-test11-D 1645 For cached dbt2 workload (lighter IO load) AS 2.6.0-test11-D 4993 AS 2.6.-test6-mm4 4976, 4890, 4972 deadline 2.6.0-test11-D 4998 Can this be included in 2.6.0? I know it's not a "critical patch" in the sense that something won't work without it. On the other hand, the change is isolated to a driver. ChangeSet@1.1496.23.96, 2003-12-29 21:53:57-08:00, akpm@osdl.org [PATCH] fix userspace compiles with nbd.h From: Paul Clements A previous "cleanup" on the nbd.h header file broke userspace compiles. I've added an #ifdef __KERNEL__ so that userspace doesn't need to worry about the nbd_device structure, which is only used in-kernel. The patch allows me to compile my nbd tools with the 2.6 nbd.h. ChangeSet@1.1496.23.95, 2003-12-29 21:53:49-08:00, akpm@osdl.org [PATCH] isdn_ppp_ccp.c uses uninitialized spinlock From: Tonnerre Anklin This spinlock was used uninitialized. Gave me a lot of warnings. ChangeSet@1.1496.23.94, 2003-12-29 21:53:42-08:00, akpm@osdl.org [PATCH] nr_slab accounting fix From: Manfred Spraul if alloc_slabmgmt fails, then kmem_freepages() calls sub_page_state(), altough nr_slab was not yet increased. The attached patch fixes that by moving the inc_page_state into kmem_getpages(). ChangeSet@1.1496.23.93, 2003-12-29 21:53:33-08:00, akpm@osdl.org [PATCH] More MODULE_ALIASes From: Rusty Russell Steve Youngs, Stephen Hemminger Three more MODULE_ALIASes. Trivial, but useful if people want things to "just work" in 2.6.0. ChangeSet@1.1496.23.92, 2003-12-29 21:53:25-08:00, akpm@osdl.org [PATCH] struct_cpy compilation warning From: Ingo Molnar i've attached a minor fix for the 2.6.1 timeframe - we clearly meant __struct_cpy_bug(). Newest versions of gcc warn about this. ChangeSet@1.1496.23.91, 2003-12-29 21:53:17-08:00, akpm@osdl.org [PATCH] slab reclaim accounting fix From: Manfred Spraul slab_reclaim_pages is increased even if get_free_pages fails. The attached patch moves the update to the correct position. ChangeSet@1.1496.23.90, 2003-12-29 21:53:09-08:00, akpm@osdl.org [PATCH] fix outdated comment in jiffies.h From: Tim Schmielau ChangeSet@1.1496.23.89, 2003-12-29 21:53:02-08:00, akpm@osdl.org [PATCH] Allow unimap change on non fg console From: Kurt Garloff The comment in front of vt_ioctl() reads /* * We handle the console-specific ioctl's here. We allow the * capability to modify any console, not just the fg_console.=20 */ Unfortunately, this does not apply to PIO_UNIMAPCLR, nor GIO_/PIO_UNIMAP. They always operate on the current foreground console, which is inconsistent at least. For most ioctls, the comment is applicable. It also causes problems, as setfont can't do the full job on the non-fg consoles. (OK, our setfont is slightly changed to even try it ... as you know.) The attached patch does fix this. I have a similar patch for 2.4, but it never got merged :-( because not many people seem to care and I submitted in the middle of the 2.4 series ... It has been in UnitedLinux/SUSE kernels for ages, though. ChangeSet@1.1496.23.88, 2003-12-29 21:52:55-08:00, akpm@osdl.org [PATCH] Clear dirty bits etc on compound frees From: "Martin J. Bligh" , Guillaume Morin We need to clear the software dirty bit on the tail pages of a compound page when freeing it up. The tail pages can become dirtied by mmap'ing /dev/mem, and writing into any clustered page group (that a driver might have created or whatever). Plus it's better to run all these pages through the free_pages_check checks anyway. ChangeSet@1.1496.23.87, 2003-12-29 21:52:48-08:00, akpm@osdl.org [PATCH] list_empty_careful() documentation. From: Ingo Molnar I'd also suggest the following patch below, to clarify the use of unsynchronized list_empty(). list_empty_careful() can only be safe in the very specific case of "one-shot" list entries which might be removed by another CPU. (but nothing else can happen to them and this is their only final state.) list_empty_careful() is otherwise completely unsynchronized on both the compiler and CPU level and is not 'SMP safe' in any way. ChangeSet@1.1496.23.86, 2003-12-29 21:52:38-08:00, akpm@osdl.org [PATCH] MAINTAINERS vger.rutgers.edu From: Geert Uytterhoeven Mailing lists at vger.rutgers.edu are obsolete, use vger.kernel.org instead. ChangeSet@1.1496.23.85, 2003-12-29 21:52:31-08:00, akpm@osdl.org [PATCH] more correct get_compat_timespec interface From: Joe Korty The API for get_compat_timespec / put_compat_timespec is incorrect, it forces a caller with const args to (incorrectly) cast. The posix message queue patch is one such caller. ChangeSet@1.1496.23.84, 2003-12-29 21:52:23-08:00, akpm@osdl.org [PATCH] dvb i2c timeout fix From: Gerd Knorr Below is a ObviouslyCorrect[tm] patch which fixes the i2c bus timeout handling in the saa7146 driver. ChangeSet@1.1496.23.83, 2003-12-29 21:52:15-08:00, akpm@osdl.org [PATCH] JBD: b_committed_data locking fix The locking rules say that b_committed_data is covered by jbd_lock_bh_state(), so implement that during the start of commit, while throwing away unused shadow buffers. I don't expect that there is really a race here, but them's the rules. ChangeSet@1.1496.23.82, 2003-12-29 21:52:07-08:00, akpm@osdl.org [PATCH] O_DIRECT memory leak fix From: Badari Pulavarty I found the problem with O_DIRECT memory leak. The problem is, when we are doing DIO read and crossed the end of file - we don't release referencess on all the pages we got from get_user_pages(). (since it is a success case). The fix is to call dio_cleanup() even for sucess cases. ChangeSet@1.1496.23.81, 2003-12-29 21:52:00-08:00, akpm@osdl.org [PATCH] fix ELF exec with huge bss From: Roland McGrath The following test program will crash every time if dynamically linked. I think this bites all 32-bit platforms, including 32-bit executables on 64-bit platforms that support them (and could in theory bite 64-bit platforms with bss sizes beyond the bounds of comprehension). volatile char hugebss[1080000000]; main() { printf("%p..%p\n", &hugebss[0], &hugebss[sizeof hugebss]); system("cat /proc/$PPID/maps"); hugebss[sizeof hugebss - 1] = 1; return 23; } The problem is that the kernel maps ld.so at 0x40000000 or some such place, before it maps the bss. Here the bss is so large that it overlaps and clobbers that mapping. I've changed it to map the bss before it loads the interpreter, so that part of the address space is reserved before ld.so's mapping (which doesn't really care where it goes) is done. This patch also adds error checking to the bss setup (and interpreter's bss setup). With the aforementioned change but no error checking, "ulimit -v 65536; ./hugebss" will crash in the store after the `system' call, because the kernel will have failed to allocate the bss and ignored the error, so the program runs without those pages being mapped at all. With this change it dies with a SIGKILL as for a failure to set up stack pages. It might be even better to try to detect the case earlier so that execve can return an error before it has wiped out the address space. But that seems like it would always be fragile and miss some corner cases, so I did not try to add such complexity. ChangeSet@1.1496.23.80, 2003-12-29 21:51:51-08:00, akpm@osdl.org [PATCH] Erronous use of tick_usec in do_gettimeofday From: Joe Korty do_gettimeofday() is using tick_usec which is defined in terms of USER_HZ not HZ. ChangeSet@1.1496.23.79, 2003-12-29 21:51:44-08:00, akpm@osdl.org [PATCH] md: set ra_pages for raid0/raid5 devices properly. From: NeilBrown stripe to be effective. This patch sets ra_pages appropriately. ChangeSet@1.1496.23.78, 2003-12-29 21:51:35-08:00, akpm@osdl.org [PATCH] md: Limit max_sectors on md when merge_bvec_fn defined on underlying device. From: NeilBrown As no md personalities honour the merge_bvec_fn of underlying devices, we must make sure never to submit a bio larger than 1 page when a merge_bvec_fn is defined. raid5 already does this (it never submits bios larger than one page). With this patch, all other raid personalities limit their max_sectors when a merge_bvec_fn is present. ChangeSet@1.1496.23.77, 2003-12-29 21:51:28-08:00, akpm@osdl.org [PATCH] BINFMT_ELF=m is not an option From: glee@gnupilgrims.org I think Adrian had forgotten to update the help text. ChangeSet@1.1496.23.76, 2003-12-29 21:51:19-08:00, akpm@osdl.org [PATCH] Ext3+quota deadlock fix From: Jan Kara here's patch which should fix deadlock with quotas+ext3 reported in 2.4 (the same problem existed in 2.6 but nobody found it). ChangeSet@1.1496.23.75, 2003-12-29 21:51:12-08:00, akpm@osdl.org [PATCH] Fix possible oops in vfs_quota_sync() From: Jan Kara I'm sending you a fix of possible Oops in vfs_quota_sync(). Actually nobody has run into that I found it when I was looking through the code. ChangeSet@1.1496.23.74, 2003-12-29 21:51:05-08:00, akpm@osdl.org [PATCH] sis comparison / assignment operator fix From: Geoffrey Lee This fixes what seems to be an obvious = vs == bug in the init301.c sis file. ChangeSet@1.1496.23.73, 2003-12-29 21:50:56-08:00, akpm@osdl.org [PATCH] remove mm->swap_address From: William Lee Irwin III This field is 100% unused. This patch removes it. ChangeSet@1.1496.23.72, 2003-12-29 21:50:49-08:00, akpm@osdl.org [PATCH] Fix 32bit siginfo problems on x86-64 From: Andi Kleen 32bit siginfo would sometimes get passed incorrectly on x86-64. This change fixes the conversion function to be a bit dumber, but more correct. ChangeSet@1.1496.23.71, 2003-12-29 21:50:40-08:00, akpm@osdl.org [PATCH] Don't panic in mpparse on x86-64 From: Andi Kleen Merge i386 fix. Don't panic in MP table parsing when the table is bad. ChangeSet@1.1496.23.70, 2003-12-29 21:50:32-08:00, akpm@osdl.org [PATCH] Signal fixes for x86-64 From: Andi Kleen Merge signal race fixes from i386 to x86-64. Fix a bug in system call restart, noted by John Blackwood. ChangeSet@1.1496.23.69, 2003-12-29 21:50:23-08:00, akpm@osdl.org [PATCH] Merge i386 fix for page fault to x86-64 From: Andi Kleen Merge the i386 fix for the page fault from Linus to x86-64 (I'm not actually sure what it fixes, but if it's good for 32bit it is likely good for 64bit too) ChangeSet@1.1496.23.68, 2003-12-29 21:50:16-08:00, akpm@osdl.org [PATCH] Add more paranoid checking in x86-64 prefetch checker From: Andi Kleen Make sure we never access anything in kernel mapping while doing the prefetch workaround checks on x86-64. Originally suggested by Jamie Lockier. ChangeSet@1.1496.23.67, 2003-12-29 21:50:08-08:00, akpm@osdl.org [PATCH] Fix 32bit truncate on x86-64 From: Andi Kleen Another potential data corruption fix. The 32bit truncate64 on x86-64 did silently truncate offsets >32bit. That broke mysql for example. Fix that. From Chris Wilson ChangeSet@1.1496.23.66, 2003-12-29 21:50:00-08:00, akpm@osdl.org [PATCH] Fix sysrq-t on x86-64 From: Andi Kleen From Badari Pulavarty Without this sysrq-t shows the same backtrace for all processes on x86-64 ChangeSet@1.1496.23.65, 2003-12-29 21:49:52-08:00, akpm@osdl.org [PATCH] Fix CPUID compilation on x86-64 From: Andi Kleen A lot of people have run into this: the x86-64 cpuid driver didn't compile as module. Using a kludge suggested by Sam Ravnsborg. ChangeSet@1.1496.23.64, 2003-12-29 21:49:45-08:00, akpm@osdl.org [PATCH] Critical x86-64 IOMMU fixes for 2.6.0 From: Andi Kleen Please consider applying this patch, I would consider it critical for x86-64. The 2.6.0 x86-64 IOMMU code unfortunately had a few problems, leading to non booting systems and in a few cases to data corruption. It fixes a two serious bugs in handling special kinds of scatter gather lists in pci_map_sg. AGP was completely broken with IOMMU because of a wrong #ifdef. Fix that. One TLB flush optimization I did a long time ago seems to break on some 3ware boards (who require IOMMU because they don't support 64bit addresses). The breakage lead to data corruption. This patch diables the optimization for now and fixes a potential SMP race in the flush code too. The TLB flush is done in a slower, but more reliable way now too. This patch fixes them. Please consider applying, because some of these problems hit quite many people. This also disables the IOMMU_DEBUG in the defconfig. A lot of people were using the IOMMU when they didn't need to, which multiplied the problems. IOMMU merge is disabled for now. This was an experimental optimization which helped with some block devices, but for production it seems to be better to disable it for now because there are some questionable corner cases when the IOMMU aperture fragments. The same is done for IOMMU SAC force, which was related to that. i386 has quite broken semantics for pci_alloc_consistent(). It uses the standard device DMA mask instead of the consistent mask. Make us bug-to-bug compatible here. This fixes problems with some sound drivers that don't support full 32bit addressing. ChangeSet@1.1496.23.63, 2003-12-29 21:49:36-08:00, akpm@osdl.org [PATCH] Add a.out support for x86-64 From: Andi Kleen Add 32bit a.out support for x86-64. Not exactly an important bug fix, but maybe it will help someone. This should increase the current 98% compatibility to i386 to perhaps 98.1% @) I tested an old a.out SuSE 4.2 installation in chroot and it worked. It also ran some very old linux binaries from '92 found on ftp.funet.fi. The only program that didn't was the SuSE a.out GNU emacs, but I was too lazy to track that down. Core dumps are not supported. ChangeSet@1.1496.23.62, 2003-12-29 21:49:29-08:00, akpm@osdl.org [PATCH] statfs64 fix From: Andi Kleen It fixes the statfs64 emulation on x86-64. The problem is that x86-64 needs an __attribute__((aligned)) on the compat_statfs64 structure. The conclusion last time this was discussed was that the structure should be duplicated. Essentially it is the old shared structure copied to every user and x86-64 uses __attribute__((packed)). ChangeSet@1.1496.23.61, 2003-12-29 21:49:20-08:00, akpm@osdl.org [PATCH] dm and bounce buffer panic fix From: Mark Haverkamp About three weeks ago markw at osdl posted a mail about a panic that he was seeing: http://marc.theaimsgroup.com/?l=linux-kernel&m=106737176716474&w=2 I believe what is happening, is that the dm __clone_and_map function is generating bio structures with the bi_idx field non-zero. When __blk_queue_bounce creates a new bio with bounce pages, it sets the bi_idx field to 0 rather than the bi_idx of the original. This causes trouble since bv_page pointers will be dereferenced later that are zero. The following uses the original bio structure's bi_idx in the new bio structure and in copy_to_high_bio_irq and bounce_end_io. This has cleared up the panic when using the volume. (acked by Joe Thornber) ChangeSet@1.1496.23.60, 2003-12-29 21:49:13-08:00, akpm@osdl.org [PATCH] ext3: bd_claim for journal device From: Neil Brown Change ext3 to run bd_claim() against external journal devices. It is significant only for those who have ext3 journals on a separate device, and gets exclusive access to that device. ChangeSet@1.1496.23.59, 2003-12-29 21:49:05-08:00, akpm@osdl.org [PATCH] remove include recursion from linux/pagemap.h From: Arnaldo Carvalho de Melo pagemap.h, do not include thyself. ChangeSet@1.1496.23.58, 2003-12-29 21:48:57-08:00, akpm@osdl.org [PATCH] remove lock_kernel() from proc_bus_pci_lseek() Remove pointless lock_kernel(), replace with the standard-but-still-odd i_sem-based lseek locking. ChangeSet@1.1496.23.57, 2003-12-29 21:48:49-08:00, akpm@osdl.org [PATCH] fix oops in proc_kill_inodes() proc_kill_inodes() walks the s_files list, playing with ->f_dentry. But there is a window in which __fput() will leave a file on that list with a null f_dentry and f_vfsmnt. I'm not sure it was ever confirmed that this fixed the reported oops, but it seems much better to set those fields to null _after_ removing the filp from the list. (Actually, there's no need to null those pointers out at all. But whatever; it caught a bug). ChangeSet@1.1496.23.56, 2003-12-29 21:48:41-08:00, akpm@osdl.org [PATCH] pagefault accounting fix From: William Lee Irwin III Our accounting of minor faults versus major faults is currently quite wrong. To fix it up we need to propagate the actual fault type back to the higher-level code. Repurpose the currently-unused third arg to ->nopage for this. ChangeSet@1.1496.23.55, 2003-12-29 21:48:33-08:00, akpm@osdl.org [PATCH] Remove CLONE_FILES from init kernel thread creation From: James Morris The patch below removes the CLONE_FILES flag from the kernel_thread() call which starts init. This is to prevent other kernel threads from sharing file descriptors opened by init (try 'lsof /dev/initctl' on a 2.6 system :-). The reason this patch is being proposed is so that usermode helper apps launched via kernel threads (e.g. modprobe, hotplug) do not then inherit any such file descriptors. This is not a problem in itself so far (other than being messy), but it is a problem for SELinux, which will otherwise need to grant access to /dev/initctl by modprobe and hotplug, a somewhat undesirable scenario. As far as I can tell, there is no reason why init needs to be spawned with CLONE_FILES. Please let me know if there are any objections to the change, which I would like to propose for 2.6.0+ as a cleanup. ChangeSet@1.1496.23.54, 2003-12-29 21:48:24-08:00, akpm@osdl.org [PATCH] Add support for SGI's IOC4 chipset From: Aniket Malatpure Adds support for the IOC4 IDE part. ChangeSet@1.1496.23.53, 2003-12-29 21:48:16-08:00, akpm@osdl.org [PATCH] new /proc/irq cpumask format; consolidate cpumask display and input code From: Paul Jackson This patch is a followup to one from Bill Irwin. On Nov 17, he had consolidated the half-dozen chunks of code that displayed cpumasks in /proc/irq/prof_cpu_mask and /proc/irq//smp_affinity into a single routine, which he called format_cpumask(). I believe that Andrew Morton has accepted Bill's patch into his 2.6.0-test10-mm1 patch set as the "format_cpumask" patch. I hope that the following patch will replace Bill's patch. I look forward to Bill's feedback on this patch. The following patch carries Bill's work further: 1) It also consolidates the input side (write syscalls). 2) It adapts a new format, same on input and output. 3) The core routines work for any multi-word bitmask, not just cpumasks. 4) The core routines avoid overrunning their output buffers. Note esp. for David Mosberger: The small patch I sent you and the linux-ia64 list yesterday entitled: "check user access ok writing /proc/irq//smp_affinity" for arch ia64 only is _separate_ from the following patch. Neither presumes the other. However, they do collide on one line. Last one in is a Monkey's Uncle and will need an updated patch from me (or otherwise need to resolve the one obvious collision). Details of the following patch: Both the display and input of cpumasks on 9 arch's are consolidated into a single pair of routines, which use the same format for input and output, as recommended by Tony Luck. The two common routines work on any multi-word bitmask (array of unsigned longs). A pair of trivial inline wrappers cpumask_snprintf() and cpumask_parse() hide this generality for the common case of cpumask input and output. My real motivation for consolidating this code will become visible later - when I seek to add a nodemask_t that resembles cpumask_t (just a different length). These common underlying routines will be used there as well, following up on a suggestion of Christoph Hellwig that I investigate implementing nodemask_t as an ADT sharing infrastructure with cpumask_t. However, I believe that this patch stands on its own merit, consolidating a couple hundred lines of duplicated code, and making the cpumask display format usable on very large systems. There are two exceptions to the consolidation - the alpha and sparc64 arch's manipulate bare unsigned longs, not cpumask_t's, on input (write syscall), and do stuff that was more funky than I could make sense of. So the input side of these two arch's was left as-is. I'd welcome someone with access to either of these systems to provide additional patches. The new format consists of multiple 32 bit words, separated by commas, displayed and input in hex. The following comment from this patch describes this format further: * The ascii representation of multi-word bit masks displays each * 32bit word in hex (not zero filled), and for masks longer than * one word, uses a comma separator between words. Words are * displayed in big-endian order most significant first. And hex * digits within a word are also in big-endian order, of course. * * Examples: * A mask with just bit 0 set displays as "1". * A mask with just bit 127 set displays as "80000000,0,0,0". * A mask with just bit 64 set displays as "1,0,0". * A mask with bits 0, 1, 2, 4, 8, 16, 32 and 64 set displays * as "1,1,10117". The first "1" is for bit 64, the second * for bit 32, the third for bit 16, and so forth, to the * "7", which is for bits 2, 1 and 0. * A mask with bits 32 through 39 set displays as "ff,0". The essential reason for adding the comma breaks was to make the long masks from our (SGI's) big 512 CPU systems parsable by humans. An unbroken string of 128 hex digits is pretty difficult to read. For those who are compiling systems with CONFIG_NR_CPUS of 32 or less, there should be no visible change in format. There are of course a thousand possible output formats that meet similar criteria. If someone wants to lobby for and seek consensus behind another such format, that's fine. Now that the format is consolidated into a single pair of routines, it should be easy to adapt whatever we choose. Internally, the display routine uses snprintf to track the remaining space in its output buffer, to avoid the risk of overrunning it. A new file, lib/mask.c, is added to the lib directory, to hold the two common routines. I anticipate adding a few more common routines for generic support of multi-word bit masks to lib/mask.c, in subsequent patches that will add a nodemask_t type as an ADT sharing implementation with cpumask_t. ChangeSet@1.1496.23.52, 2003-12-29 21:48:07-08:00, akpm@osdl.org [PATCH] cpumask.h reorg From: Paul Jackson Push the cpumask implementation from linux/cpumask.h into asm/cpumask.h, so that ia64 can do special things without breaking sparc64. 1) Each arch has its own include/asm-/cpumask.h file 2) That arch-specific header file can include , if it wants to make use of the generic cpumask implementation. 3) Using code should continue to include linux/cpumask.h, which in turn includes asm/cpumask.h. Some common implementation independent cpumask related items, such as the cpu_online_map, are declared directly in linux/cpumask.h. ChangeSet@1.1496.23.51, 2003-12-29 21:47:59-08:00, akpm@osdl.org [PATCH] Add lib/parser.c kernel-doc From: Will Dyson Add documentation and comments to lib/parser.c and include/linux/parser.h ChangeSet@1.1496.23.50, 2003-12-29 21:47:51-08:00, akpm@osdl.org [PATCH] IDE capability elevation fix From: Alan Cox Capability elevation bug in 2.6.0 IDE. Long fixed in 2.4.x, trivial to cure ChangeSet@1.1496.23.49, 2003-12-29 21:47:43-08:00, akpm@osdl.org [PATCH] IDE MMIO fix From: Alan Cox IDE core code had the mmio==2 (ioremap) mode supported but two small changes had been missed for ide-dma.c. Without this fix mmio IDE controllers bomb if you have plenty of memory as it uses request_mem_region on an ioremap return. ChangeSet@1.1496.23.48, 2003-12-29 21:47:35-08:00, akpm@osdl.org [PATCH] Can't disable IDE DMA From: Peter Chubb If you try to disable IDE DMA from Kconfig, you'll end up with an undefined symbol, ide_hwif_setup_dma(). The attached rather ugly patch fixes the problem by defining a dummy function. ChangeSet@1.1496.23.47, 2003-12-29 21:47:28-08:00, akpm@osdl.org [PATCH] PIIX5 Doesn't work on IA64 From: Peter Chubb The PIIX5 IDE controller on I2000 IA64 boxen using the 460GX chipset will hang on startup if an ordinary harddrive is plugged into it (it seems to workj for the LSI120 and the CDROM drives). This is because the 460GX chipset contains a PCI expanssion bridge that works like the 450NX PXB, and has the same PCI ID (but a later revision). The PIIX driver, to work around interactions between PIIX4 and the 450NX PXB, tries to disable DMA. Unfortunately, the way it tries to disable DMA doesn't work, and the higher layers think that DMA is still on, and so timeout waiting for DMA, and then hang on bootup. A simple workaround is to tighten the check for the buggy chipset, as in the attached patch. However, someone with more time (and who actually *understands* the IDE subsystem) needs to fix the real bug as well. ChangeSet@1.1496.23.46, 2003-12-29 21:47:20-08:00, akpm@osdl.org [PATCH] ide-tape update From: Bartlomiej Zolnierkiewicz , Stuart Hayes - Check drive's write protect bit, try to return appropriate errors when attempting to write a write-protected tape. - Moved "idetape_read_position" call in idetape_chrdev_open after the "wait_ready" call. - Added IDETAPE_MEDIUM_PRESENT flag so driver would know not to rewind tape after ejecting it. - Fixed bug with ide_abort_pipeline (it was deleting stages from tape->next_stage to end, instead of from new_last_stage->next (tape->next_stage was set to NULL by idetape_discard_read_pipeline before calling!). - Made improvements to idetape_wait_ready. - Added a few comments here and there. - Made MTOFFL unlock tape drive door before attempting to eject. - Added fixes to get Seagate STT3401A Travan working: Handle drives that don't support 0-length reads/writes increased timeout (retension takes ~10 minutes before irq is returned). Fixed request mode page packet command byte 3. Also remove code depending on NO_LONGER_REQUIRED to match 2.4.x (me). ChangeSet@1.1496.23.45, 2003-12-29 21:47:12-08:00, akpm@osdl.org [PATCH] Minor bug fixes to the compat layer From: Arun Sharma - Several instances where we were using pid_t instead of uid_t - If the caller passed a NULL `oldact' pointer into sys_sigprocmask then don't try to write the old sigmask there. ChangeSet@1.1496.23.44, 2003-12-29 21:47:04-08:00, akpm@osdl.org [PATCH] watchdog write() return value fixes From: gleb@nbase.co.il (Gleb Natapov) There is inconsistency in fops->write() implementation in different watchdog drivers. Some of them return number of bytes written while others return 1. I think the correct implementation should always return number of bytes written (we examine all the buffer after all) otherwise "echo V > /dev/watchdog" doesn't work as expected (it doesn't stop watchdog). ChangeSet@1.1496.23.43, 2003-12-29 21:46:56-08:00, akpm@osdl.org [PATCH] missing padding in cpio_mkfile in usr/gen_init_cpio.c From: Olaf Hering We need to update `offset' here so that the subsequent push_pad() (which uses `offset') will do the right thing. ChangeSet@1.1496.23.42, 2003-12-29 21:46:48-08:00, akpm@osdl.org [PATCH] document elevator= parameter From: Valdis.Kletnieks@vt.edu Nick wrote a nice as-iosched.txt file, but apparently nobody updated the kernel-parameters.txt file... ChangeSet@1.1496.23.41, 2003-12-29 21:46:40-08:00, akpm@osdl.org [PATCH] support centrino 1GHz From: Jeremy Fitzhardinge I've been getting quite a lot of people mailing me about this CPU. It seems Toshiba has released a machine with it. It would be nice if this patch gets into a kernel soonish. It's very low-impact. ChangeSet@1.1496.23.40, 2003-12-29 21:46:31-08:00, akpm@osdl.org [PATCH] Intel 440gx PCI IDs - Add missing PCI ID - Forward-port IRQ routing workaround from 2.4. ChangeSet@1.1496.23.39, 2003-12-29 21:46:23-08:00, akpm@osdl.org [PATCH] seq_file version of /proc/interrupts From: corbet@lwn.net (Jonathan Corbet) This converts all architectures' /proc/interrupts implementation over to seq_file. We need this for SMP machines with ridiculous numbers of CPUs and if you convert one arch, you have to convert them all... ChangeSet@1.1496.23.38, 2003-12-29 21:46:16-08:00, akpm@osdl.org [PATCH] eicon/ and hardware/eicon/ drivers using the same symbols From: Adrian Bunk The legacy eicon driver in drivers/isdn/eicon is the old one and will be removed as soon as all features went to the new driver. Anyway this old driver was never meant to be non-module. ChangeSet@1.1496.23.37, 2003-12-29 21:46:07-08:00, akpm@osdl.org [PATCH] fix SOUND_CMPCI Configure help entry From: Adrian Bunk the issue below is only a minor documentation fix, but it has confused me when configuring a kernel for such a card. ChangeSet@1.1496.23.36, 2003-12-29 21:46:00-08:00, akpm@osdl.org [PATCH] find_busiest_queue() commentary fix From: Ingo Molnar Clarify a comment in the CPU scheduler. ChangeSet@1.1496.23.35, 2003-12-29 21:45:53-08:00, akpm@osdl.org [PATCH] use alloc_percpu in percpu_counters From: Martin Hicks Once NR_CPUS exceeds about 300 ext2 and ext3 will not compile, because the percpu counters in the superblocks are so huge that they cannot be kmalloced. Fix this by converting the percpu_counter mechanism to use alloc_percpu() rather than an NR_CPUS-sized array. ChangeSet@1.1496.23.34, 2003-12-29 21:45:44-08:00, akpm@osdl.org [PATCH] lockless semop From: Manfred Spraul attached is the lockless semop patch. I did another test run with idle=poll on an pentium III, and it remained unchanged: 99.9% direct fast path, 0.1% race with wakeup against writing the final result code: http://khack.osdl.org/stp/282936/environment/proc/slabinfo That means there is no immediate need to add the two-stage implementation to finish_wait. It reduces the spinlock operations on the semaphore array spinlock by 1/3. ChangeSet@1.1496.23.33, 2003-12-29 21:45:37-08:00, akpm@osdl.org [PATCH] Fix writev atomicity on pipe/fifo From: OGAWA Hirofumi Current writev() of pipe/fifo can be interleaved with data from other processes doing writes even when the requests size is <= PIPE_BUF. These writes should in fact be atomic. The readv() side is also supported for same behavior with read(). And it is faster. readv/writev version of bw_pipe in LMbench 2.6.0-test9-bk12 hirofumi@devron (i686-pc-linux-gnu)[1010]$ ./bw_pipe -m 4096 -M 5 Pipe bandwidth: 45.53 MB/sec hirofumi@devron (i686-pc-linux-gnu)[1009]$ ./bw_pipe -m 1024 -M 5 Pipe bandwidth: 20.08 MB/sec 2.6.0-test9-bk12 + patch hirofumi@devron (i686-pc-linux-gnu)[1001]$ ./bw_pipe -m 4096 -M 5 Pipe bandwidth: 65.98 MB/sec hirofumi@devron (i686-pc-linux-gnu)[1002]$ ./bw_pipe -m 1024 -M 5 Pipe bandwidth: 32.19 MB/sec ChangeSet@1.1496.23.32, 2003-12-29 21:45:30-08:00, akpm@osdl.org [PATCH] optimize ia32 memmove From: Manfred Spraul The memmove implementation of i386 is not optimized: it uses movsb, which is far slower than movsd. The optimization is trivial: if dest is less than source, then call memcpy(). markw tried it on a 4xXeon with dbt2, it saved around 300 million cpu ticks in cache_flusharray(): oprofile, GLOBAL_POWER_EVENTS, count 100k Before: c0144ed1 : /* cache_flusharray total: 21823 0.0165 */ 6 4.5e-06 :c0144f8e: cmp %esi,%ebx 11 8.3e-06 :c0144f90: jae c0144f9e 3 2.3e-06 :c0144f92: mov %ebx,%edi 7305 0.0055 :c0144f94: repz movsb %ds:(%esi),%es:(%edi) 201 1.5e-04 :c0144f96: add $0x10,%esp After: c0144f1d : /* cache_flusharray total: 17959 0.0136 */ 1270 9.6e-04 :c0144f1d: push %ebp [snip] 6 4.6e-06 :c0144fdc: cmp %esi,%ebx 13 9.9e-06 :c0144fde: jae c0145000 2 1.5e-06 :c0144fe0: mov %edx,%eax 1 7.6e-07 :c0144fe2: mov %ebx,%edi 11 8.4e-06 :c0144fe4: shr $0x2,%eax 1 7.6e-07 :c0144fe7: mov %eax,%ecx 4129 0.0031 :c0144fe9: repz movsl %ds:(%esi),%es:(%edi) 261 2.0e-04 :c0144feb: test $0x2,%dl 27 2.1e-05 :c0144fee: je c0144ff2 :c0144ff0: movsw %ds:(%esi),%es:(%edi) 95 7.2e-05 :c0144ff2: test $0x1,%dl 96 7.3e-05 :c0144ff5: je c0144ff8 :c0144ff7: movsb %ds:(%esi),%es:(%edi) 121 9.2e-05 :c0144ff8: add $0x1c,%esp ChangeSet@1.1496.23.31, 2003-12-29 21:45:21-08:00, akpm@osdl.org [PATCH] Use NODES_SHIFT to calculate ZONE_SHIFT From: jbarnes@sgi.com (Jesse Barnes) Now that we have a proper NODES_SHIFT value, we need to use it to define ZONE_SHIFT otherwise we'll spill over 8 bits if we have more than 85 nodes. ChangeSet@1.1496.23.30, 2003-12-29 21:45:14-08:00, akpm@osdl.org [PATCH] Fix for more than 256 CPUs From: Paul Jackson The patch is needed to build NR_CPUS > 256. Without this fix, you get compile errors: include/linux/cpumask.h: In function `next_online_cpu': include/linux/cpumask.h:56: structure has no member named `val' ChangeSet@1.1496.23.29, 2003-12-29 21:45:05-08:00, akpm@osdl.org [PATCH] ia32 WP test cleanup From: Zwane Mwaikambo Make the test unconditional - we can always run it now we have fixmap support. ChangeSet@1.1496.23.28, 2003-12-29 21:44:58-08:00, akpm@osdl.org [PATCH] Restore /proc/pid/maps formatting The seq_file conversion of /proc/pid/maps caused altered behaviour with respect to 2.4.22. Before the conversion, spaces and tabs in filenames were displayed verbatim. After the conversion they are escaped as \040, etc. Also, if the mmapped file has been unlinked the output appears as 40017000-40018000 rw-p 00000000 03:02 1425800 /home/akpm/foo\040(deleted) instead of 40017000-40018000 rw-p 00000000 03:02 1425800 /home/akpm/foo (deleted) This could break applications which parse /proc/pid/maps (one person has reported this). The patch restores the 2.4.20 behaviour. ChangeSet@1.1496.23.27, 2003-12-29 21:44:50-08:00, akpm@osdl.org [PATCH] Get modpost to work properly with vmlinux in a different directory From: "Bryan O'Sullivan" The current version of modpost breaks if invoked from outside the build tree. This patch fixes that, and simplifies the code a bit while it's at it. ChangeSet@1.1496.23.26, 2003-12-29 21:44:41-08:00, akpm@osdl.org [PATCH] Be verbose about the ia32 time source From: john stultz The patch arranges for each timesource type to have a name, and uses that to tell the user which timesource is in use at bootup time. ChangeSet@1.1496.23.25, 2003-12-29 21:44:34-08:00, akpm@osdl.org [PATCH] vmscan: reset refill_counter after refilling the inactive list zone->refill_counter is only there to provide decent levels of work batching: don't call refill_inactive_zone() just for a couple of pages. But the logic in there allows it to build up to huge values and it can overflow (go negative) which will disable refilling altogether until it wraps positive again. Just reset it to zero whenever we decide to do some refilling. ChangeSet@1.1496.23.24, 2003-12-29 21:44:25-08:00, akpm@osdl.org [PATCH] serial console registration bugfix From: Bjorn Helgaas uart_set_options() can dereference a null pointer. This happens if you specify a console that hasn't previously been setup by early_serial_setup(). For example, on ia64, the HCDP typically tells us about line 0, so we calls early_serial_setup() for it. If the user specifies "console=ttyS3", we machine-check when trying to follow the uninitialized port->ops pointer. It's not entirely clear to me whether we should return 0 or -ENODEV or something. The advantage of returning zero is that if the user specifies "console=ttyS0" and we just lack the HCDP, the console doesn't work as early as usual, but it does start working after the serial driver detects the port (though the baud/parity/etc from the command line are lost). Returning -ENODEV seems to prevent it from ever working. ChangeSet@1.1496.23.23, 2003-12-29 21:44:18-08:00, akpm@osdl.org [PATCH] Fix sysenter disabling in vm86 mode From: Brian Gerst The current code disables sysenter when first entering vm86 mode, but does not disable it again when coming back to a vm86 task after a task switch. ChangeSet@1.1496.23.22, 2003-12-29 21:44:10-08:00, akpm@osdl.org [PATCH] Add `gcc -Os' config option From: Adrian Bunk Allow the kernel to be built with `-Os'. It requires CONFIG_EMBEDDED. This is to make it "hard to get at" because one gcc version (3.2.x I think) from RH9 generates crashy kernels with this option set. ChangeSet@1.1496.23.21, 2003-12-29 21:44:02-08:00, akpm@osdl.org [PATCH] Fix proc_pid_lookup vs exit race From: Manfred Spraul Fixes a race between proc_pid_lookup and sys_exit. - The inodes and dentries for /proc//whatever are cached in the dentry cache. d_revalidate is used to protect against stale data: d_revalidate returns invalid if the task exited. Additionally, sys_exit flushes the dentries for the task that died - otherwise the dentries would stay around until they arrive at the end of the LRU, which could take some time. But there is one race: - proc_pid_lookup finds a task and prepares new dentries for it. It must drop all locks for that operation. - the process exits, and the /proc/ dentries are flushed. Nothing happens, because they are not yet in the hash tables. - proc_pid_lookup adds the task to the dentry cache. Result: dentry of a dead task in the hash tables. The patch fixes that problem by flushing again if proc_pid_lookup notices that the thread exited while it created the dentry. The patch should go in, but it's not critical. - task->proc_dentry must be the dentry of /proc/. That way sys_exit can flush the whole subtree at exit time. proc_task_lookup is a direct copy of proc_pid_lookup and handles /proc/<>/task/. It contains the lines that set task->proc_dentry. This is bogus, and must be removed. This hunk is much more critical, because creates a de-facto dentry leak (they are recovered after flushing real dentries from the cache). ChangeSet@1.1496.23.20, 2003-12-29 21:43:54-08:00, akpm@osdl.org [PATCH] Fix init_i82365 sysfs ordering oops From: Russell King This oops has been caused by the need to register the class before registering any objects against it. Unfortunately, the class needs to be registered asynchronously in a separate thread to avoid driver model deadlock with yenta with cardbus cards inserted or standard PCMCIA cards not being detected correctly due to a race. I think the only real solution is to remove the class_device_create_file calls from all socket drivers. This is just a simple commenting out of the calls, and should be suitable for the remainder of the -test kernels. Due to the number of cases that we're encountering with PCMCIA, I'm beginning to wonder if the driver model could be fixed to be more kind to PCMCIA by avoiding some of these ordering dependencies. None of this would be a problem if the driver model would allow PCI device drivers to register PCI devices while their probe or remove functions were executing. ChangeSet@1.1496.23.19, 2003-12-29 21:43:47-08:00, akpm@osdl.org [PATCH] NSL config fixes From: OGAWA Hirofumi - use "select" instead of "depend" - remove the unused SMB_NLS - remove unneeded "default y" of CONFIG_NLS - revert to postion of nls menu (middle of filessytem menus is strange) - fix "#ifdef CONFIG_NLS" on UDF (should this add new one to Kconfig?) ChangeSet@1.1496.23.18, 2003-12-29 21:43:38-08:00, akpm@osdl.org [PATCH] Fix dcache and icache bloat with deep directories This fixes the recently-reported "fsstress memory leak" problem. It has been there since November 2002. shrink_dcache() has a heuristic to prevent the dcache (and hence icache) from getting shrunk too far: it refuses to allow the dcache to shrink below 2*nr_used. Problem is, _all_ non-leaf dentries (directories) count as used. So when you have really deep directory hierarchies (fsstress creates these), nr_used is really high, and there is no upper bound to the amount of pinned dcache. The patch just rips out the heuristic. This means that dcache (and hence icache (and hence pagecache)) will be shrunk more aggressively. This could be a problem, and tons of testing is needed - a new heuristic may be needed. However I am not able to reproduce the problem which cause me to add this heuristic in the first place: Simple testcase: run a huge `dd' while running a concurrent `watch -n1 cat /proc/meminfo'. The program text for `cat' gets loaded from disk once per second. ChangeSet@1.1496.23.17, 2003-12-29 21:43:31-08:00, akpm@osdl.org [PATCH] cmpci.c: remove pointless set_fs() It is doing a set_fs(KERNEL_DS) for no obvious reason. Spotted by margitsw@t-online.de (Margit Schubert-While) ChangeSet@1.1496.23.16, 2003-12-29 21:43:22-08:00, akpm@osdl.org [PATCH] ext3 scheduling latency fix Sometimes kjournald has to refile a huge number of buffers, because someone else wrote them out beforehand - they are all clean. This happens under a lock and scheduling latencies of 88 milliseconds on a 2.7GHx CPU were observed. The patch forward-ports a little bit of the 2.4 low-latency patch to fix this problem. Worst-case on ext3 is now sub-half-millisecond, except for when the RCU dentry reaping softirq cuts in :( ChangeSet@1.1496.23.15, 2003-12-29 21:43:15-08:00, akpm@osdl.org [PATCH] make name_to_dev_t __init It calls __init functions anyway. ChangeSet@1.1496.23.14, 2003-12-29 21:43:08-08:00, akpm@osdl.org [PATCH] Use __GFP_REPEAT for cdrom buffer The cdrom driver does an order-4 allocation and the open will fail if that allocation does not succeed. This happened to me on an unstressed 900MB machine. So add the __GFP_REPEAT flag in there - this will cause the page allocator to keep on freeing pages until the allocation succeeds. It can in theory livelock but in practice I expect it is OK: the user should just stop running dbench or whatever it is which is gobbling all the memory and the mount/open will then succeed. ChangeSet@1.1496.23.13, 2003-12-29 21:42:58-08:00, akpm@osdl.org [PATCH] scale the initial value of min_free_kbytes This tunable refers to the amount of free memory which the VM will attempt to sustain. It is mainly needed for atomic allocations (eg, networking receive). It is currently hardwired to 1024k, which is far too large for small machines and too small for large machines. Rework it to be 128k on tiny machines and 16M on huge machines. ChangeSet@1.1496.23.12, 2003-12-29 21:42:51-08:00, akpm@osdl.org [PATCH] sqrt() fixes It turns out that the int_sqrt() function in oom_kill.c gets it wrong. But fb_sqrt() in fbmon.c gets its math right. Move that function into lib/int_sqrt.c, and consolidate. (oom_kill.c fix from Thomas Schlichter ) ChangeSet@1.1496.23.11, 2003-12-29 21:42:42-08:00, akpm@osdl.org [PATCH] compat_ioctl for i2c From: Benjamin Herrenschmidt I needed those for the G5 on ppc64, so here they are, I was only able to test the SMBUS stuff though. ChangeSet@1.1496.23.10, 2003-12-29 21:42:34-08:00, akpm@osdl.org [PATCH] EFI support for ia32 From: Matt Tolentino Attached is a patch that enables EFI boot-up support in ia32 kernels. In order to continue to determine whether the kernel should initialize using EFI tables, I've temporarily added a check on the LOADER_TYPE boot parameter. Although I haven't requested that elilo be assigned an id for this yet, I've used this to determine whether the kernel should use the EFI initialization path as well as a check to see if the EFI_SYSTAB boot parameter contains anything. If someone has a better suggestion for determining this, I'm open... This patch also uses the existing ioremapping functions to map the efi tables into kernel virtual address space. I've added an option such that I could use Dave Hansen's boot_ioremap() before paging_init(). After paging_init, I then remap the efi memmap using bt_ioremap for use later. This has eliminated the need for several functions...thanks for the suggestions and thanks for your help Dave. Still this could use a look-see. ChangeSet@1.1496.23.9, 2003-12-29 21:42:23-08:00, akpm@osdl.org [PATCH] ia32 Message Signalled Interrupt support From: long Add support for Message Signalled Interrupt delivery on ia32. With a fix from Zwane Mwaikambo ChangeSet@1.1496.23.8, 2003-12-29 21:42:15-08:00, akpm@osdl.org [PATCH] futex uninlining text data bss dec hex filename Before: 4674 1040 4100 9814 2656 kernel/futex.o After: 4098 1176 4100 9374 249e kernel/futex.o ChangeSet@1.1496.23.7, 2003-12-29 21:42:07-08:00, akpm@osdl.org [PATCH] make /proc/tty/driver/ S_IRUSR | S_IXUSR for root only From: Chris Wright Fix for CAN-2003-0461: /proc/tty/driver/serial in Linux 2.4.x reveals the exact number of characters used in serial links, which could allow local users to obtain potentially sensitive information such as the length of passwords. ChangeSet@1.1496.23.6, 2003-12-29 21:42:00-08:00, akpm@osdl.org [PATCH] fix suid leak in /proc From: Chris Wright Fix for CAN-2003-0501: The /proc filesystem in Linux allows local users to obtain sensitive information by opening various entries in /proc/self before executing a setuid program, which causes the program to fail to change the ownership and permissions of those entries. ChangeSet@1.1496.23.5, 2003-12-29 21:41:51-08:00, akpm@osdl.org [PATCH] fix unsigned issue with env_end - env_start From: Chris Wright Fix for CAN-2003-0462: A race condition in the way env_start and env_end pointers are initialized in the execve system call and used in fs/proc/base.c on Linux 2.4 allows local users to cause a denial of service (crash). ChangeSet@1.1496.23.4, 2003-12-29 21:41:43-08:00, akpm@osdl.org [PATCH] use new steal_locks helper From: Chris Wright Use the new steal_locks helper to steal the locks from the old files struct left from unshare_files() when the new unshared struct files gets used. ChangeSet@1.1496.23.3, 2003-12-29 21:41:34-08:00, akpm@osdl.org [PATCH] add steal_locks helper From: Chris Wright Add steal_locks helper for use in conjunction with unshare_files to make sure POSIX file lock semantics aren't broken due to unshare_files. ChangeSet@1.1496.23.2, 2003-12-29 21:41:27-08:00, akpm@osdl.org [PATCH] use new unshare_files helper From: Chris Wright Use unshare_files during binary loading to eliminate potential leak of the binary's fd installed during execve(). As is, this breaks binfmt_som.c ChangeSet@1.1496.23.1, 2003-12-29 21:41:18-08:00, akpm@osdl.org [PATCH] unshare_files From: Chris Wright Introduce unshare_files as a helper for use during execve to eliminate potential leak of the execve'd binary's fd. ChangeSet@1.1496.1.23, 2003-12-30 00:05:40-05:00, jgarzik@redhat.com [netdrvr e100] remove __devinit markers, fixing oops ChangeSet@1.1496.1.22, 2003-12-29 23:00:49-05:00, akpm@osdl.org [netdrvr 8139too] Don't hold the lock across pci_set_power_state() - it can sleep ChangeSet@1.1496.1.21, 2003-12-29 22:59:18-05:00, webvenza@libero.it [netdrvr sis900] add suspend/resume support The attached patch adds support for suspend/resume to the sis900 driver. With this patch on resume the NIC is fully configured and operational, before a module reload was needed because of the complete lack of suspend/resume callbacks. I added two functions, sis900_suspend and sis900_resume, with their pointers in struct pci_driver. A vector of 16 u32 was then needed to the to keep PCI data during suspend. I added it in struct sis900_private. I updated the revision number to reflect my changes. Looking at the code I also killed three typos. The patch doesn't touch any other code. Since I don't know anything on ethernet drivers the rule 'works for me' is fully valid. ChangeSet@1.1496.22.2, 2003-12-29 17:02:05-08:00, wesolows@foobazco.org [SPARC]: Fix serial console selection. Add a generic add_preferred_console() to printk.c so that other platforms, such as MIPS for example, can sanely fix this problem as well. ChangeSet@1.1496.22.1, 2003-12-29 16:48:41-08:00, wesolows@foobazco.org [SPARC32]: Enable KALLSYMS. ChangeSet@1.1496.21.1, 2003-12-29 15:09:42-08:00, davem@kernel.bkbits.net Merge davem@nuts.ninka.net:/disk1/davem/BK/compat-aio-2.5 into kernel.bkbits.net:/home/davem/compat-aio-2.5 ChangeSet@1.1496.1.18, 2003-12-29 14:44:52-08:00, torvalds@home.osdl.org Merge bk://kernel.bkbits.net/davem/sparc-2.5 into home.osdl.org:/home/torvalds/v2.5/linux ChangeSet@1.1496.2.14, 2003-12-29 14:37:14-08:00, torvalds@home.osdl.org Merge bk://linuxusb.bkbits.net/usb-devel-2.6 into home.osdl.org:/home/torvalds/v2.5/linux ChangeSet@1.1496.1.16, 2003-12-29 13:16:58-08:00, zaitcev@redhat.com [SPARC]: Get sun4c functional again in 2.6.0 Move some elements of task_struct into thread_info so that these elements are locked into the TLB in the trap handlers and thus will not cause a watchdog reset. ChangeSet@1.1496.2.13, 2003-12-29 13:11:19-08:00, torvalds@home.osdl.org Fix ATA 64-bit divides with CONFIG_LBD. Use "sector_div()" to do the division, that's what it exists for. ChangeSet@1.1529, 2003-12-29 12:32:37-08:00, tony.luck@intel.com [PATCH] ia64: clean up MCA TLB error recovery code While backporting to 2.4 I noticed a few bits of fluff that I'd introduced into 2.6. Clean up the mess. ChangeSet@1.1496.19.7, 2003-12-29 12:31:36-08:00, arnaud.quette@mgeups.com [PATCH] USB: disable hiddev support for MGE UPS following my recent posts on libusb-devel and hidups, here's a patch to disable hiddev support for MGE UPSs. It only declares VID/PID as QUIRK_IGNORE in hid-core's blacklist. This simply prevent hiddev to be loaded when plugging an MGE UPS. ChangeSet@1.1496.19.6, 2003-12-29 12:30:55-08:00, david-b@pacbell.net [PATCH] USB: let USB_{PEGASUS,USBNET} depend on NET_ETHERNET Adrian Bunk wrote: > I observed the following small problem in 2.6: > > - MII depends on NET_ETHERNET > - USB_PEGASUS and USB_USBNET select MII, but they depend only on NET > > The patch below lets USB_PEGASUS and USB_USBNET depend on NET_ETHERNET > instead of NET to fix this issue. Actually how about this one instead? The PEGASUS bit is the same. The difference is that MII (and CRC32) are only attributed to the driver code that needs those ... AX8817X needs both, ZAURUS just needs CRC32. The core (which should eventually become a separate module) shouldn't depend on those modules at all. Also both CDCETHER and AX8817X are marked as non-experimental; I recall Dave Hollis submitted a patch to do that for AX8817X, and CDCETHER now seems to have gotten enough success reports too. ChangeSet@1.1528, 2003-12-29 12:30:34-08:00, kaos@sgi.com [PATCH] ia64: Avoid double clear of CMC/CPE records Credit to Ben Woodard . ChangeSet@1.1496.19.5, 2003-12-29 12:29:37-08:00, david-b@pacbell.net [PATCH] USB: ethernet gadget supports goku_udc This patch just adds TC86c001 (goku) UDC support to the "ether.c" gadget driver. This hardware supports a full speed CDC Ethernet interface. ChangeSet@1.1496.19.4, 2003-12-29 12:29:21-08:00, david-b@pacbell.net [PATCH] USB: gadget zero updates Small updates: - support TC86c001 (goku_udc) controller - simplify the per-controller configuration - add two vendor requests to test control-OUT - some minor fixes ChangeSet@1.1496.19.3, 2003-12-29 12:29:03-08:00, david-b@pacbell.net [PATCH] USB: doc updates As more people have been using this API, the need for some clarifications has (no surprise!) came up. Most significant is the halt processing, needed to make Alan's "File Storage Gadget" (mass storage class, talks to usb-storage and Windows) handle fault cases cleanly. Gadget drivers can't halt IN endpoints until the FIFO is emptied by the host ... virtually no hardware tries to sequence the DATA and STALL packets by itself. ChangeSet@1.1527, 2003-12-29 12:27:53-08:00, arun.sharma@intel.com [PATCH] ia64: ia32 sigaltstack() fix The attached patch fixes a bug introduced by the earlier patch to handle the differences between ia32 and ia64 in the definition of MINSIGSTKSZ. ChangeSet@1.1526, 2003-12-29 12:22:57-08:00, steiner@sgi.com [PATCH] ia64: fix ia64_ctx.lock deadlock I hit a deadlock involving the ia64_ctx.lock. The lock may be taken in interrupt context to process an IPI from smp_flush_tlb_mm. ChangeSet@1.1496.19.2, 2003-12-29 12:21:02-08:00, akropel1@rochester.rr.com [PATCH] USB: Stop hiddev generating empty events hiddev is mistakenly returning empty hiddev_event structures for report events. According to Documentation/usb/hiddev.txt, report events are only sent when HIDDEV_FLAG_REPORT and HIDDEV_FLAG_UREF are both set. Currently, report events from hid cause hiddev to generate empty hiddev_event events when HIDDEV_FLAG_UREF is not set. ChangeSet@1.1525, 2003-12-29 12:17:36-08:00, davidm@tiger.hpl.hp.com ia64: hugepage_free_pgtables() bug-fix When there are two huge page mappings, like the two in the example below, first one at the end of PGDIR_SIZE, and second one starts at next PGDIR_SIZE (64GB with 16K page size): 8000000ff0000000-8000001000000000 rw-s 8000001000000000-8000001010000000 rw-s Unmapping the first vma would trick free_pgtable to think it can remove one set of pgd indexed at 0x400, and it went ahead purge the entire pmd/pte that are still in use by the second mapping. Now any subsequent access to pmd/pte for the second active mapping will trigger the bug. We've seen hard kernel hang on some platform, some other platform will generate MCA, plus all kinds of unpleasant result. ChangeSet@1.1496.17.24, 2003-12-29 12:13:21-08:00, wim@iguana.be [PATCH] Watchdog update Kconfig: Reflect new watchdog Documentation directory. [USB] hid blacklist addition: Add the Berkshire Products USB PC Watchdog to the hid blacklist. This to avoid problems with USB-Disconnects when the card feels it should reboot... ChangeSet@1.1496.17.23, 2003-12-29 11:34:17-08:00, torvalds@home.osdl.org Don't print out I/O error warnings for non-filesystem requests. The errors will be reported by the code that started the request, and printing out "sector numbers" for special requests makes no sense. ChangeSet@1.1496.17.22, 2003-12-29 10:23:53-08:00, mingo@elte.hu [PATCH] Fix context switch accounting Noted by Nick Piggin, fix based on a patch by Linus. I've done some additional cleanups: fixed a compilation warning on UP and cleaned up the goto pick_next_task code. Moved the 'unlikely' to the test as a whole. I've tested this patch and the context-switch stats look OK. ChangeSet@1.1496.17.21, 2003-12-29 10:20:31-08:00, torvalds@home.osdl.org Turn off UHCI interrupts at initialization. The BIOS may have left the USB controller in some strange state, and we want to fully initialize it before we are ready to handle interrupts. ChangeSet@1.1496.17.20, 2003-12-29 10:19:06-08:00, torvalds@home.osdl.org Release the mmap semaphore in the legacy 80386 "verify_area()" if an error happens. ChangeSet@1.1496.17.19, 2003-12-29 10:18:11-08:00, torvalds@home.osdl.org Add support for checking before-the-fact whether an IRQ is already registered or not. The x86 PCI layer wants this for its availability testing. Doing a request_irq()/free_irq() pair to check this condition like we used to do can lock the machine if the irq happens to be screaming. ChangeSet@1.1496.12.18, 2003-12-24 19:44:11-08:00, yoshfuji@linux-ipv6.org [IPV6]: Do not update MTU by invalid value in RA message. Noticed by HIroaki Kago ChangeSet@1.1496.12.17, 2003-12-24 19:42:49-08:00, jmorris@redhat.com [CRYPTO]: Allow tcrypt module to be unloaded. ChangeSet@1.1496.12.16, 2003-12-24 19:42:21-08:00, erlend-a@ux.his.no [CRYPTO]: Clean up tcrypt module, part 2 ChangeSet@1.1496.12.15, 2003-12-24 19:39:48-08:00, kartik_me@hotmail.com [CRYPTO]: Clean up tcrypt module, part 1 ChangeSet@1.1496.12.14, 2003-12-24 19:37:18-08:00, pe1rxq@amsat.org [NET]: AX25, netrom, and rose bug fixes for 2.6.0 - Fix socket locking in ax25 - Fix waitqueue handling bug in ax25 - Use sock_orphan in ax25 - Fix waitqueue handling bug in netrom and rose too - Fix raw socket behavior in ax25 ChangeSet@1.1496.12.13, 2003-12-24 19:32:34-08:00, bdschuym@pandora.be [BRIDGE]: Add 4 sysctl entries for bridge netfilter behavioral control: bridge-nf-call-arptables - pass or don't pass bridged ARP traffic to arptables' FORWARD chain. bridge-nf-call-iptables - pass or don't pass bridged IPv4 traffic to iptables' chains. bridge-nf-filter-vlan-tagged - pass or don't pass bridged vlan-tagged ARP/IP traffic to arptables/iptables. ChangeSet@1.1496.1.14, 2003-12-24 19:30:55-08:00, davem@nuts.ninka.net Cset exclude: wesolows@foobazco.org|ChangeSet|20031222074047|57357 ChangeSet@1.1496.12.12, 2003-12-24 19:26:59-08:00, yoshfuji@linux-ipv6.org [NET]: Fix mis-spellings in net/core/neighbour.c ChangeSet@1.1496.12.11, 2003-12-24 19:22:33-08:00, kaber@trash.net [PKT_SCHED]: Remove backlog accounting from TBF, pass limit to default inner bfifo qdisc only. ChangeSet@1.1496.12.10, 2003-12-24 19:17:22-08:00, kaber@trash.net [PKT_SCHED]: Fix module refcount and mem leaks in classful qdiscs. Create common routine, tcf_destroy(), that does all the work properly in one centralized place. ChangeSet@1.1496.12.9, 2003-12-24 19:14:14-08:00, shemminger@osdl.org [AF_PACKET]: Drop SKB route of packets queued to userspace. ChangeSet@1.1496.18.10, 2003-12-24 22:52:51+00:00, rmk@flint.arm.linux.org.uk [ARM] Fix a small typo in SA1100 time.h ChangeSet@1.1496.18.9, 2003-12-24 19:20:08+00:00, ch@com.rmk.(none) [ARM PATCH] 1720/1: SA-1111 IRQ fix (for OHCI USB HC) Patch from Christopher Hoover dev->irq and dev->skpcr_mask aren't initialized. this makes the sa-1111 bus glue for the ohci driver fail. ChangeSet@1.1496.18.8, 2003-12-24 19:06:24+00:00, mail@de.rmk.(none) [ARM PATCH] 1718/1: vidc.c: remove vidc_mksound, add external reference clock Patch from Peter Teichmann vidc_mksound causes the kernel to crash badly when executed. As it does not do anything useful I did not take the time to find out why, but removed it. The vidc does have an external reference clock that is used to generate 44100/20050/10025kHz sample rates. The code is changed in a way that it uses that reference clock that can better approximate the desired clock. If we can approximate the desired rate to more than 1/256 accuracy, we return the desired rate instead of the real rate. This is to assist using some programs that for instance believe they need exacly 8kHz which we can not have, but we can have 8.018kHz which is pretty close so that nobody would notice the difference. ChangeSet@1.1496.7.31, 2003-12-24 18:58:02+00:00, ch@com.rmk.(none) [ARM PATCH] 1724/1: Fix name of ttySA0 and ttySA1 under devfs Patch from Christopher Hoover ttySA[01] show up as [01] under devfs. this makes init/getty et al very unhappy. ChangeSet@1.1496.18.7, 2003-12-24 18:47:02+00:00, woody@org.rmk.(none) [ARM PATCH] 1737/1: GNU assembler 2.12.90.0.1 on Debian aborts on "'" character Patch from Woody Suwalski GNU assembler 2.12.90.0.1 on Debian aborts on "'" character in the arch/arm/lib/div64.S file (in comments). Hence I have converted them into accepted English format ;-) Woody ChangeSet@1.1496.18.6, 2003-12-24 18:42:19+00:00, woody@org.rmk.(none) [ARM PATCH] 1736/1: Here is a working config file: the hard disk, ethernet, serial and sound are working OK, no modules. Patch from Woody Suwalski Here is a working config file: the hard disk, ethernet, serial and sound are working OK, no modules support, no initrd support. ChangeSet@1.1496.1.13, 2003-12-23 23:45:36-08:00, wesolows@foobazco.org [SPARC32]: Add myself as maintainer. ChangeSet@1.1496.18.5, 2003-12-22 16:49:55+00:00, ch@com.rmk.(none) [ARM PATCH] 1726/1: Add additional constants to km_type enum to match other platforms. Patch from Christopher Hoover Add additional constants to km_type enum to match other platforms. (I've forgotten what doesn't compile w/o this.) ChangeSet@1.1496.18.4, 2003-12-22 16:13:12+00:00, nico@org.rmk.(none) [ARM PATCH] 1729/1: workaround for PXA timer delay problem Patch from Nicolas Pitre ... as discussed on linux-arm-kernel. ChangeSet@1.1496.18.3, 2003-12-22 16:01:37+00:00, dsaxena@com.rmk.(none) [ARM PATCH] 1732/1: Fix put_unaligned type in BE mode Patch from Deepak Saxena put_unaligned is defined as __put_unaligned_be() but we're missing the "__" at the beggining. ChangeSet@1.1496.18.2, 2003-12-22 15:09:13+00:00, rmk@flint.arm.linux.org.uk [ARM] Add new timer/clock/statfs/tgkill/utimes/fadvise syscalls. ChangeSet@1.1496.12.8, 2003-12-22 00:18:26-08:00, shemminger@osdl.org [IPV6]: Build fix and dst entry leak in neighbour discovery. - NPRINTK2 will not compile if ND_DEBUG set to 3 - Missing dst_release in ndisc_send_rs if skb allocation fails. ChangeSet@1.1496.1.12, 2003-12-21 23:40:47-08:00, wesolows@foobazco.org [sparc] Fix display errors on HIGHMEM and Zilog addresses. ChangeSet@1.1496.18.1, 2003-12-21 21:08:33+00:00, rmk@flint.arm.linux.org.uk [ARM] Merge current 2.6 into experimental tree. ChangeSet@1.1337.29.7, 2003-12-21 20:26:29+00:00, dhylands@com.rmk.(none) [ARM] Fix minor bug in bitwise expression. Patch from Dave Hylands. The integrator code should have tested bits in INTEGRATOR_SC_VALID_INT but instead it performed a logical AND. ChangeSet@1.1337.29.6, 2003-12-21 19:51:30+00:00, rmk@flint.arm.linux.org.uk [ARM] Ensure that /proc/uptime returns sensible figures. When we set xtime at boot from the RTC, we weren't setting the monotonic time offset. This had the effect of making the uptime rather large. We get around this problem by using the do_settimeofday() to set the current time. do_settimeofday() knows about this issue, and will apply the appropriate correction to the monotonic time offset for us. ChangeSet@1.1496.2.9, 2003-12-20 23:18:24-05:00, bunk@fs.tum.de [PATCH] fix some dependencies for TMS380TR=m Hi Jeff, similar to the 2.4 patch (originally by Rik) I sent, the trivial patch below fixes some dependencies for TMS380TR=m . Please apply Adrian ChangeSet@1.1524, 2003-12-20 14:23:30-08:00, kaos@sgi.com [PATCH] ia64: Convert cmc deadlock avoidance patch from 2.4 to 2.6 ChangeSet@1.1496.3.9, 2003-12-19 20:42:46-05:00, jgarzik@redhat.com [libata] some cleanups suggested by Christoph * s/Scsi_Cmnd/struct scsi_cmnd/ * remove incorrect FIXME comments related to checking return values of certain SCSI mid layer functions. ChangeSet@1.1523, 2003-12-19 16:18:47-08:00, tony.luck@intel.com [PATCH] ia64: enable recovery from TLB errors Here's the updated version of the MCA TLB recovery patch. ChangeSet@1.1522, 2003-12-19 16:11:57-08:00, kaos@sgi.com [PATCH] ia64: fix deadlock in ia64_mca_cmc_int_caller() smp_call_function() must not be called from interrupt context (can deadlock on tasklist_lock). Use keventd to call smp_call_function(). ChangeSet@1.1521, 2003-12-19 16:10:05-08:00, kaos@sgi.com [PATCH] ia64: sync pal/sal/salinfo/mca with 2.4 code Forward port the recent changes to pal.h, sal.h, mca.h, salinfo.c and mca.c from 2.4.23-rc2 to 2.6.0-test9. This converts 2.6 to use salinfo instead of printing CMC/CPE/MCA/INIT records in the kernel. It makes the two kernel versions as close together as possible. ChangeSet@1.1520, 2003-12-19 15:40:20-08:00, jbarnes@sgi.com [PATCH] ia64: sn2 defconfig file As promised, here's a patch to add an sn2 defconfig file to get people started with 2.6 kernels. I even turned on CONFIG_IA64_SGI_SIM support to make Jack happy :) ChangeSet@1.1519, 2003-12-19 15:35:51-08:00, jbarnes@sgi.com [PATCH] ia64: initialize bootmem maps in reverse order The arch-independent bootmem code now requires that arches initialize their bootmem maps in reverse order (in particular, from high to low addesses), otherwise alloc_bootmem_pages_low() won't work. This change makes the ia64 code do just that, so that machines without an IOMMU can allocate their bounce buffers in low memory at early boot. It also adds a sanity check to the early init code to make sure that each node has a local data area, because if they don't, many things will break later on and may be hard to track down. ChangeSet@1.1518, 2003-12-19 15:20:29-08:00, bjorn.helgaas@hp.com [PATCH] ia64: Prevent SAL calls from being preempted (SAL_CALL_REENTRANT): Disable preemption around the SAL call to make sure we don't get rescheduled on a different CPU. ChangeSet@1.1517, 2003-12-19 15:19:55-08:00, bjorn.helgaas@hp.com [PATCH] ia64: Force generic and hp kernels to use 16MB granules This forces the granule size to 16MB for HP zx1 and generic kernels. HP sx1000 machines require this. ChangeSet@1.1516, 2003-12-19 15:18:47-08:00, bjorn.helgaas@hp.com [PATCH] ia64: Remove unused ACPI functions. Remove unused functions: acpi_get_prt() acpi_get_interrupt_model() acpi_get_addr_space() ChangeSet@1.1515, 2003-12-19 15:17:48-08:00, bjorn.helgaas@hp.com [PATCH] ia64: Remove extraneous printks (we get the same information from ACPI). (iosapic_init): Remove extraneous printk. (pci_acpi_scan_root): Remove extraneous printk. ChangeSet@1.1514, 2003-12-19 15:16:43-08:00, bjorn.helgaas@hp.com [PATCH] ia64: Fix PCI root bridge resources to handle prior allocations. (alloc_resources): Use insert_resource(), not request_resource(), to allocate PCI root bridge windows. This fixes the problem where root bridge window allocation fails because an early driver (like VGA) has already allocated things. ChangeSet@1.1513, 2003-12-19 15:15:20-08:00, jbarnes@sgi.com [PATCH] ia64: make NODES_SHIFT a little biggger Make NODES_SHIFT larger to accomodate 256 node machines. ChangeSet@1.1512, 2003-12-19 15:14:29-08:00, jbarnes@sgi.com [PATCH] ia64: update sn2 MAINTAINERS file entry ChangeSet@1.1511, 2003-12-19 15:13:48-08:00, jbarnes@sgi.com [PATCH] ia64: make cpu_to_node_map unsigned This small fix is needed for machines with more than 128 nodes. ChangeSet@1.1510, 2003-12-19 15:09:49-08:00, steiner@sgi.com [PATCH] ia64: prevent buffer-overrun in acpi_numa_memory_affinity_init() The code in acpi_numa_memory_affinity_init that sorts the node_memblk can overrun the array & clobber the memory that follows the end of the array. The error will be seen only on systems that fill the node_memblk array and only if SAL doesnt sort the entries in the SRAT. ChangeSet@1.1509, 2003-12-19 11:48:09-08:00, peterc@gelato.unsw.edu.au [PATCH] ia64: enable out-of-tree compilation for IA64 ChangeSet@1.1496.16.2, 2003-12-19 11:11:27-08:00, marr@flex.com [PATCH] Status Query On My MCT-U232 Patch Brief Patch Description: Fix a problem in the 'mct_u232' driver whereby output data gets held up in the USB/RS-232 adapter for RS-232 devices which don't assert the 'CTS' signal. Background: The Belkin F5U109 is a 9-pin USB/RS-232 adapter that is supported by the existing 'mct_u232' kernel module.  Recently, I've been testing it under the 2.4.22 (Slackware 9.1) kernel and the 2.6.0-test9 kernel. I've connected a Garmin 'GPS35 TracPak' GPS receiver (RS-232 interface) and an ordinary RS-232 external modem to my PC's USB port via the Belkin F5U109 adapter. Problem: Although _reads_ from either of the RS-232 devices mentioned above work fine via the Belkin adapter, _writes_ to the GPS receiver are not being seen by the GPS.  Writes to the modem, however, work perfectly. Aside: The 'Linux USB Users' archives show that at least one other person (circa May 2002) had the exact same problem I'm having, but it sounds like no solution was ever determined because the person in question just bought a different USB/RS-232 adapter. Investigation: Using the 'seyon' terminal emulator in Linux and a crude hardware RS-232 "breakout box" that I hacked together, I've determined that the problem is related to the RTS/CTS RS-232 hardware handshaking. After further investigation, I've concluded that RS-232 devices which do not assert the 'Clear To Send' ('CTS') signal prevent the Belkin F5U109 adapter from transmitting data to the RS-232 device when the current (version 1.1) 'mct_u232' module is used. The data gets "queued up" (up to a point -- 16 bytes, I think) in the adapter but never transmitted. Since this GPS receiver works perfectly (reads and writes) when connected to a PC running W98se using the same Belkin adapter and the Belkin-supplied Windows driver, the Linux driver became suspect. After some testing with SniffUSB, I found that the Windows driver sends a couple of unique undocumented USB 'device requests' that the Linux driver does not. As it turns out, the second of those 2 requests is critical in making the adapter transmit data to a device which doesn't assert 'CTS'. For completeness, the Windows driver in use was determined from the 'Device Manager', 'Driver File Details' page:    U2SPORT.VXD    Provider: Magic Control Technology    File version: 1.21P.0104 for Win98/Me Solution: My patch adds the 2 missing USB 'device request' commands right after a baud-change command. This mimics the operation of the W98 driver. Unfortunately, after much testing, I found no other operation (besides a baud-change request) under Windows that triggers either of these 2 'device request' commands. This makes it impossible to fully document the behavior of these requests, but I've made entries for them alongside the others in the 'mct_u232.h' file. Purely for clarity, the patch also modifies various comments in 'mct_u232.h', mostly to reflect proper sizes of the various 'USB Device Request' fields per the USB 1.1 specification. The patch also updates the version number of the driver, corrects a minor typographical error, and documents a difference in the length of the data in a 'baud rate change' command for certain adapters which use a coded baud-rate rather than the conventional RS-232 baud rate divisor. I've provided (tested) patches for both the 2.4.22 and the 2.6.0-test9 kernels. Please note that the changes to 'mct_u232.h' apply to both 2.4.22 and 2.6.0-test9 since that file has not changed between those kernel releases. Nevertheless, I've included that (same) portion of the patch in both attachments for simplicity. Bill Marr ChangeSet@1.1496.17.18, 2003-12-18 21:36:09-08:00, dtor_core@ameritech.net [PATCH] Input: synaptics protocol discovery If Synaptics fails to activate or if disabled by psmouse_proto option try other extended protocols as some touchpads may support them. ChangeSet@1.1496.17.17, 2003-12-18 21:35:52-08:00, dtor_core@ameritech.net [PATCH] Input: remove synaptics config option Remove Synaptics config option. Since mousedev was fixed with regard to touchpads generating absolute events there should no troubles for users migrating from older kernel or different hardware so we can have it always compiled in. ChangeSet@1.1496.17.16, 2003-12-18 21:35:36-08:00, dtor_core@ameritech.net [PATCH] Input: add serio_[un]register_port_delayed to fix deadlock Add serio_[un]register_port_delayed to allow delayed execution of register/unregister code (via kseriod) when it is not clear whether serio_sem has been taken or not. Use in i8042.c to avoid deadlock ChangeSet@1.1496.17.15, 2003-12-18 21:35:20-08:00, dtor_core@ameritech.net [PATCH] Input: psmouse fixes - Remove psmouse_pm_callback since i8042 now has its own resume handler which will issue reconnect request - Do not close/open serio port in psmouse_reconnect since i8042 should restore ports to the proper state before calling reconnect ChangeSet@1.1496.17.14, 2003-12-18 21:35:03-08:00, dtor_core@ameritech.net [PATCH] Input: add atkbd reconnect method Add reconnect method to atkbd to restore keyboard state after suspend (to be called from i8042 resume function) ChangeSet@1.1496.17.13, 2003-12-18 21:34:47-08:00, dtor_core@ameritech.net [PATCH] Input: implement resume methods - Implement resume methods using serio_reconnect facility - Register i8042 with sysfs - Register i8042 with older PM scheme to restore keyboard and mouse for APM users - Convert parameter handling to the new style - Unregister port not only when there is no free IRQ but also if the port fails to activate. ChangeSet@1.1496.17.12, 2003-12-18 21:34:30-08:00, dtor_core@ameritech.net [PATCH] Input: add psmouse_proto parameter New parameter psmouse_proto to replace psmouse_noext. Allows to specify highest PS/2 protocol extension that kernel has permission to negotiate (bare|imps|exps). psmouse_noext marked as deprecated and emits a warning when used. parameter parsing converted to the new scheme. ChangeSet@1.1496.17.11, 2003-12-18 21:34:14-08:00, dtor_core@ameritech.net [PATCH] input: fix atkbd_softrepeat Fix atkbd_softrepeat kernel command line parameter. ChangeSet@1.1496.17.10, 2003-12-18 21:33:58-08:00, vojtech@suse.cz [PATCH] Fixes for keyboard 2.4 compatibility I have two patches I'd like to get tested by a wider audience before sending them to Linus for the 2.6 tree. The first one fixes an issue in current 2.6-test with AT keyboard repeat rate setting, the second one makes setkeycodes/getkeycodes work the same as 2.4, so that people can keep their setups. It also fixes japanese and korean key handling. ChangeSet@1.1496.17.9, 2003-12-18 21:33:41-08:00, arief_m_utama@telkomsel.co.id [PATCH] psmouse pm resume fix I just want to share a little change that I've did to psmouse_pm_callback() which without this, my synaptics touchpad would prevent my laptop (IBM Thinkpad T30) from suspending. ChangeSet@1.1496.17.8, 2003-12-18 21:33:25-08:00, dtor_core@ameritech.net [PATCH] Input: unregister i8042 port when writing to control register fails I think that if we can't write to the control register it's not less critical than not having a free IRQ so we better unregister port in this case as well. Also logging moved a bit. ChangeSet@1.1496.17.7, 2003-12-18 21:33:09-08:00, petero2@telia.com [PATCH] synaptics powerpro fix Made the packet checking code less strict, so that the driver works also for touchpads that don't strictly follow the synaptics absolute protocol. Problem reported by Anders Kaseorg using a PowerPro C 3:16 laptop. ChangeSet@1.1496.17.6, 2003-12-18 21:32:52-08:00, dtor_core@ameritech.net [PATCH] Synaptics: use serio_reconnect Input/Synaptics: 1. Support for pass-through port moved from Synaptics driver to psmouse itself, it is cleaner and should allow using it in other drivers if needed. 2. The driver makes use of new reconnect functionality in serio. It will try to keep the same input device after resume or when it resets itself. 3. If mouse is disconnected or other mouse plugged in while sleeping the driver should correctly recognize that and create a new serio/input device. ChangeSet@1.1496.17.5, 2003-12-18 21:32:36-08:00, dtor_core@ameritech.net [PATCH] serio: reconnect facility Input: serio_reconnect added. Similar to serio_rescan but gives driver a chance to re-initialize keeping the same input device. ChangeSet@1.1496.17.4, 2003-12-18 21:32:19-08:00, dtor_core@ameritech.net [PATCH] Synaptics: code cleanup Input: Synaptics code cleanup and credit update. ChangeSet@1.1496.17.3, 2003-12-18 21:32:03-08:00, dtor_core@ameritech.net [PATCH] Add black list to handler<->device matching Input: Introduce an optional blacklist field in input_handler structure. When loading a new device or a new handler try to match device against handler's black list before doing match on required attributes. This allows to get rid of "surprises" in connect functions, IMO connect should only fail when it physically can not connect, not because it decides it does not like device. ChangeSet@1.1496.17.2, 2003-12-18 21:31:47-08:00, dtor_core@ameritech.net [PATCH] serio: possible race between port removal and kseriod Input: There is a possibility that serio might get deleted while there are outstanding events involving that serio waiting for kseriod to process them. Invalidate them so kseriod thread will just drop dead events. ChangeSet@1.1496.17.1, 2003-12-18 21:27:27-08:00, dtor_core@ameritech.net [PATCH] serio: rename serio_[un]register_slave_port to __serio_[un]register_port Input: rename serio_{register|unregister}_slave_port to __serio_{register|unregister}_port to better follow locked/lockless naming convention ChangeSet@1.1496.1.10, 2003-12-17 23:05:20-08:00, davem@nuts.ninka.net [SPARC64]: On Sabre, only access PCI controller config space specially. ChangeSet@1.1496.3.8, 2003-12-18 00:55:22-05:00, jgarzik@redhat.com Merge redhat.com:/spare/repo/linux-2.5 into redhat.com:/spare/repo/libata-2.5 ChangeSet@1.1496.7.29, 2003-12-17 18:56:13-08:00, torvalds@home.osdl.org Linux 2.6.0 TAG: v2.6.0