Re: 2.6.0-rc1-mm1 error in bond_main.c

From: Jeff Garzik
Date: Wed Dec 31 2003 - 10:17:03 EST


Jon K. Akers wrote:
Recieved the following error when compiling the bonding section of the network drivers as a module.

CC [M] drivers/net/bonding/bond_main.o
drivers/net/bonding/bond_main.c: In function `bond_release':
drivers/net/bonding/bond_main.c:1660: error: structure has no member named `params'
drivers/net/bonding/bond_main.c:1661: error: structure has no member named `params'
make[3]: *** [drivers/net/bonding/bond_main.o] Error 1
make[2]: *** [drivers/net/bonding] Error 2
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2


Fixed in my update:

http://www.kernel.org/pub/linux/kernel/people/jgarzik/patchkits/2.6/2.6.0-rc1-netdrvr-exp1.patch.bz2
http://www.kernel.org/pub/linux/kernel/people/jgarzik/patchkits/2.6/2.6.0-rc1-netdrvr-exp1.log

The broken-out patch that fixes this is attached.

Jeff


# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.1591 -> 1.1592
# drivers/net/bonding/bond_main.c 1.71 -> 1.72
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/12/30 jgarzik@xxxxxxxxxx 1.1474.13.23
# [netdrvr e100] remove __devinit markers, fixing oops
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.1
# [PATCH] unshare_files
#
# From: Chris Wright <chrisw@xxxxxxxx>
#
# Introduce unshare_files as a helper for use during execve to eliminate
# potential leak of the execve'd binary's fd.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.2
# [PATCH] use new unshare_files helper
#
# From: Chris Wright <chrisw@xxxxxxxx>
#
# 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
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.3
# [PATCH] add steal_locks helper
#
# From: Chris Wright <chrisw@xxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.4
# [PATCH] use new steal_locks helper
#
# From: Chris Wright <chrisw@xxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.5
# [PATCH] fix unsigned issue with env_end - env_start
#
# From: Chris Wright <chrisw@xxxxxxxx>
#
# 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).
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.6
# [PATCH] fix suid leak in /proc
#
# From: Chris Wright <chrisw@xxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.7
# [PATCH] make /proc/tty/driver/ S_IRUSR | S_IXUSR for root only
#
# From: Chris Wright <chrisw@xxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.8
# [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
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.9
# [PATCH] ia32 Message Signalled Interrupt support
#
# From: long <tlnguyen@xxxxxxxxxxxxxxxxxxxxxxx>
#
#
# Add support for Message Signalled Interrupt delivery on ia32.
#
# With a fix from Zwane Mwaikambo <zwane@xxxxxxxxxxxxxxxx>
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.10
# [PATCH] EFI support for ia32
#
# From: Matt Tolentino <metolent@xxxxxxxxxxxxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.11
# [PATCH] compat_ioctl for i2c
#
# From: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
#
# I needed those for the G5 on ppc64, so here they are, I was only
# able to test the SMBUS stuff though.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.12
# [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 <schlicht@xxxxxxxxxxxxxxx>)
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.13
# [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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.14
# [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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.15
# [PATCH] make name_to_dev_t __init
#
# It calls __init functions anyway.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.16
# [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 :(
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.17
# [PATCH] cmpci.c: remove pointless set_fs()
#
# It is doing a set_fs(KERNEL_DS) for no obvious reason.
#
# Spotted by margitsw@xxxxxxxxxxx (Margit Schubert-While)
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.18
# [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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.19
# [PATCH] NSL config fixes
#
# From: OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
#
# - 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?)
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.20
# [PATCH] Fix init_i82365 sysfs ordering oops
#
# From: Russell King <rmk@xxxxxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.21
# [PATCH] Fix proc_pid_lookup vs exit race
#
# From: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx>
#
# Fixes a race between proc_pid_lookup and sys_exit.
#
# - The inodes and dentries for /proc/<pid>/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/<pid>. 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/<pid>. 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).
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.22
# [PATCH] Add `gcc -Os' config option
#
# From: Adrian Bunk <bunk@xxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.23
# [PATCH] Fix sysenter disabling in vm86 mode
#
# From: Brian Gerst <bgerst@xxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.24
# [PATCH] serial console registration bugfix
#
# From: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.25
# [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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.26
# [PATCH] Be verbose about the ia32 time source
#
# From: john stultz <johnstul@xxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.27
# [PATCH] Get modpost to work properly with vmlinux in a different directory
#
# From: "Bryan O'Sullivan" <bos@xxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.28
# [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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.29
# [PATCH] ia32 WP test cleanup
#
# From: Zwane Mwaikambo <zwane@xxxxxxxxxxxxxxxx>
#
# Make the test unconditional - we can always run it now we have fixmap
# support.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.30
# [PATCH] Fix for more than 256 CPUs
#
# From: Paul Jackson <pj@xxxxxxx>
#
# 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'
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.31
# [PATCH] Use NODES_SHIFT to calculate ZONE_SHIFT
#
# From: jbarnes@xxxxxxx (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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.32
# [PATCH] optimize ia32 memmove
#
# From: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx>
#
# 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>: /* cache_flusharray total: 21823 0.0165 */
# 6 4.5e-06 :c0144f8e: cmp %esi,%ebx
# 11 8.3e-06 :c0144f90: jae c0144f9e <cache_flusharray+0xcd>
# 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>: /* 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 <cache_flusharray+0xe3>
# 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 <cache_flusharray+0xd5>
# :c0144ff0: movsw %ds:(%esi),%es:(%edi)
# 95 7.2e-05 :c0144ff2: test $0x1,%dl
# 96 7.3e-05 :c0144ff5: je c0144ff8 <cache_flusharray+0xdb>
# :c0144ff7: movsb %ds:(%esi),%es:(%edi)
# 121 9.2e-05 :c0144ff8: add $0x1c,%esp
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.33
# [PATCH] Fix writev atomicity on pipe/fifo
#
# From: OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
#
# 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
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.34
# [PATCH] lockless semop
#
# From: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.35
# [PATCH] use alloc_percpu in percpu_counters
#
# From: Martin Hicks <mort@xxxxxxxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.36
# [PATCH] find_busiest_queue() commentary fix
#
# From: Ingo Molnar <mingo@xxxxxxx>
#
# Clarify a comment in the CPU scheduler.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.37
# [PATCH] fix SOUND_CMPCI Configure help entry
#
# From: Adrian Bunk <bunk@xxxxxxxxx>
#
# the issue below is only a minor documentation fix, but it has confused
# me when configuring a kernel for such a card.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.38
# [PATCH] eicon/ and hardware/eicon/ drivers using the same symbols
#
# From: Adrian Bunk <bunk@xxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.39
# [PATCH] seq_file version of /proc/interrupts
#
# From: corbet@xxxxxxx (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...
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.40
# [PATCH] Intel 440gx PCI IDs
#
# - Add missing PCI ID
#
# - Forward-port IRQ routing workaround from 2.4.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.41
# [PATCH] support centrino 1GHz
#
# From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.42
# [PATCH] document elevator= parameter
#
# From: Valdis.Kletnieks@xxxxxx
#
# Nick wrote a nice as-iosched.txt file, but apparently nobody updated the
# kernel-parameters.txt file...
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.43
# [PATCH] missing padding in cpio_mkfile in usr/gen_init_cpio.c
#
# From: Olaf Hering <olh@xxxxxxx>
#
# We need to update `offset' here so that the subsequent push_pad() (which
# uses `offset') will do the right thing.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.44
# [PATCH] watchdog write() return value fixes
#
# From: gleb@xxxxxxxxxxx (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).
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.45
# [PATCH] Minor bug fixes to the compat layer
#
# From: Arun Sharma <arun.sharma@xxxxxxxxx>
#
# - 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.46
# [PATCH] ide-tape update
#
# From: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@xxxxxxxxxxxxxx>,
# Stuart Hayes <stuart_hayes@xxxxxxxx>
#
# - 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).
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.47
# [PATCH] PIIX5 Doesn't work on IA64
#
# From: Peter Chubb <peterc@xxxxxxxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.48
# [PATCH] Can't disable IDE DMA
#
# From: Peter Chubb <peterc@xxxxxxxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.49
# [PATCH] IDE MMIO fix
#
# From: Alan Cox <alan@xxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.50
# [PATCH] IDE capability elevation fix
#
# From: Alan Cox <alan@xxxxxxxxxx>
#
# Capability elevation bug in 2.6.0 IDE. Long fixed in 2.4.x, trivial to cure
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.51
# [PATCH] Add lib/parser.c kernel-doc
#
# From: Will Dyson <will_dyson@xxxxxxxxx>
#
# Add documentation and comments to lib/parser.c and include/linux/parser.h
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.52
# [PATCH] cpumask.h reorg
#
# From: Paul Jackson <pj@xxxxxxx>
#
# 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-<arch>/cpumask.h file
#
# 2) That arch-specific header file can include <asm-generic/cpumask.h>,
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.53
# [PATCH] new /proc/irq cpumask format; consolidate cpumask display and input code
#
# From: Paul Jackson <pj@xxxxxxx>
#
# 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/<pid>/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/<pid>/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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.54
# [PATCH] Add support for SGI's IOC4 chipset
#
# From: Aniket Malatpure <aniket@xxxxxxx>
#
# Adds support for the IOC4 IDE part.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.55
# [PATCH] Remove CLONE_FILES from init kernel thread creation
#
# From: James Morris <jmorris@xxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.56
# [PATCH] pagefault accounting fix
#
# From: William Lee Irwin III <wli@xxxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.57
# [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).
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.58
# [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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.59
# [PATCH] remove include recursion from linux/pagemap.h
#
# From: Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxx>
#
# pagemap.h, do not include thyself.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.60
# [PATCH] ext3: bd_claim for journal device
#
# From: Neil Brown <neilb@xxxxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.61
# [PATCH] dm and bounce buffer panic fix
#
# From: Mark Haverkamp <markh@xxxxxxxx>
#
# 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)
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.62
# [PATCH] statfs64 fix
#
# From: Andi Kleen <ak@xxxxxx>
#
# 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)).
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.63
# [PATCH] Add a.out support for x86-64
#
# From: Andi Kleen <ak@xxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.64
# [PATCH] Critical x86-64 IOMMU fixes for 2.6.0
#
# From: Andi Kleen <ak@xxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.65
# [PATCH] Fix CPUID compilation on x86-64
#
# From: Andi Kleen <ak@xxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.66
# [PATCH] Fix sysrq-t on x86-64
#
# From: Andi Kleen <ak@xxxxxx>
#
# From Badari Pulavarty
#
# Without this sysrq-t shows the same backtrace for all processes on x86-64
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.67
# [PATCH] Fix 32bit truncate on x86-64
#
# From: Andi Kleen <ak@xxxxxx>
#
# 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
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.68
# [PATCH] Add more paranoid checking in x86-64 prefetch checker
#
# From: Andi Kleen <ak@xxxxxx>
#
# Make sure we never access anything in kernel mapping while
# doing the prefetch workaround checks on x86-64.
#
# Originally suggested by Jamie Lockier.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.69
# [PATCH] Merge i386 fix for page fault to x86-64
#
# From: Andi Kleen <ak@xxxxxx>
#
# 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)
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.70
# [PATCH] Signal fixes for x86-64
#
# From: Andi Kleen <ak@xxxxxx>
#
# Merge signal race fixes from i386 to x86-64.
#
# Fix a bug in system call restart, noted by John Blackwood.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.71
# [PATCH] Don't panic in mpparse on x86-64
#
# From: Andi Kleen <ak@xxxxxx>
#
# Merge i386 fix. Don't panic in MP table parsing when the table is bad.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.72
# [PATCH] Fix 32bit siginfo problems on x86-64
#
# From: Andi Kleen <ak@xxxxxx>
#
# 32bit siginfo would sometimes get passed incorrectly on x86-64. This
# change fixes the conversion function to be a bit dumber, but more
# correct.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.73
# [PATCH] remove mm->swap_address
#
# From: William Lee Irwin III <wli@xxxxxxxxxxxxxx>
#
# This field is 100% unused. This patch removes it.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.74
# [PATCH] sis comparison / assignment operator fix
#
# From: Geoffrey Lee <glee@xxxxxxxxxxxxxxx>
#
# This fixes what seems to be an obvious = vs == bug in the init301.c sis
# file.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.75
# [PATCH] Fix possible oops in vfs_quota_sync()
#
# From: Jan Kara <jack@xxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.76
# [PATCH] Ext3+quota deadlock fix
#
# From: Jan Kara <jack@xxxxxx>
#
# 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).
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.77
# [PATCH] BINFMT_ELF=m is not an option
#
# From: glee@xxxxxxxxxxxxxxx
#
# I think Adrian had forgotten to update the help text.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.78
# [PATCH] md: Limit max_sectors on md when merge_bvec_fn defined on underlying device.
#
# From: NeilBrown <neilb@xxxxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.79
# [PATCH] md: set ra_pages for raid0/raid5 devices properly.
#
# From: NeilBrown <neilb@xxxxxxxxxxxxxxx>
#
# stripe to be effective. This patch sets ra_pages
# appropriately.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.80
# [PATCH] Erronous use of tick_usec in do_gettimeofday
#
# From: Joe Korty <joe.korty@xxxxxxxx>
#
# do_gettimeofday() is using tick_usec which is defined in terms of USER_HZ
# not HZ.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.81
# [PATCH] fix ELF exec with huge bss
#
# From: Roland McGrath <roland@xxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.82
# [PATCH] O_DIRECT memory leak fix
#
# From: Badari Pulavarty <pbadari@xxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.83
# [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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.84
# [PATCH] dvb i2c timeout fix
#
# From: Gerd Knorr <kraxel@xxxxxxxxxxx>
#
# Below is a ObviouslyCorrect[tm] patch which fixes the i2c bus timeout
# handling in the saa7146 driver.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.85
# [PATCH] more correct get_compat_timespec interface
#
# From: Joe Korty <joe.korty@xxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.86
# [PATCH] MAINTAINERS vger.rutgers.edu
#
# From: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
#
# Mailing lists at vger.rutgers.edu are obsolete, use vger.kernel.org
# instead.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.87
# [PATCH] list_empty_careful() documentation.
#
# From: Ingo Molnar <mingo@xxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.88
# [PATCH] Clear dirty bits etc on compound frees
#
# From: "Martin J. Bligh" <mbligh@xxxxxxxxxxx>,
# Guillaume Morin <guillaume@xxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.89
# [PATCH] Allow unimap change on non fg console
#
# From: Kurt Garloff <garloff@xxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.90
# [PATCH] fix outdated comment in jiffies.h
#
# From: Tim Schmielau <tim@xxxxxxxxxxxxxxxxxxxxxx>
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.91
# [PATCH] slab reclaim accounting fix
#
# From: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx>
#
# slab_reclaim_pages is increased even if get_free_pages fails. The attached
# patch moves the update to the correct position.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.92
# [PATCH] struct_cpy compilation warning
#
# From: Ingo Molnar <mingo@xxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.93
# [PATCH] More MODULE_ALIASes
#
# From: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
# Steve Youngs, Stephen Hemminger
#
# Three more MODULE_ALIASes. Trivial, but useful if people want things
# to "just work" in 2.6.0.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.94
# [PATCH] nr_slab accounting fix
#
# From: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx>
#
# 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().
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.95
# [PATCH] isdn_ppp_ccp.c uses uninitialized spinlock
#
# From: Tonnerre Anklin <thunder@xxxxxxxxxxx>
#
# This spinlock was used uninitialized. Gave me a lot of warnings.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.96
# [PATCH] fix userspace compiles with nbd.h
#
# From: Paul Clements <Paul.Clements@xxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.97
# [PATCH] DAC960 request queue per disk
#
# From: Dave Olien <dmo@xxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.98
# [PATCH] synchronize use of mm->core_waiters
#
# From: Roland McGrath <roland@xxxxxxxxxx>
#
# 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
# >
# > [<c011fbe3>] schedule+0x360/0x7f8
# > [<c0120539>] wait_for_completion+0xd4/0x1c3
# > [<c0128c9e>] do_exit+0x627/0x6a4
# > [<c0128ddd>] do_group_exit+0x3d/0x177
# > [<c0130c13>] dequeue_signal+0x2d/0x84
# > [<c0133911>] get_signal_to_deliver+0x390/0x575
# > [<c010a541>] do_signal+0x6c/0xf1
# > [<c01200be>] default_wake_function+0x0/0x12
# > [<c01200be>] default_wake_function+0x0/0x12
# > [<c013d50f>] do_futex+0x6d/0x7d
# > [<c013d635>] sys_futex+0x116/0x12f
# > [<c010a601>] do_notify_resume+0x3b/0x3d
# > [<c010a82e>] work_notifysig+0x13/0x15
# >
# > except for one that is trying to core-dump:
# >
# > [<c0120539>] wait_for_completion+0xd4/0x1c3
# > [<c01200be>] default_wake_function+0x0/0x12
# > [<c01200be>] default_wake_function+0x0/0x12
# > [<c02101aa>] rwsem_wake+0x86/0x12d
# > [<c01738af>] coredump_wait+0xa8/0xaa
# > [<c0173a26>] do_coredump+0x175/0x26c
# >
# > and three that are just doing a regular "exit()" system call:
# >
# > [<c011fbe3>] schedule+0x360/0x7f8
# > [<c011e19a>] recalc_task_prio+0x90/0x1aa
# > [<c0120539>] wait_for_completion+0xd4/0x1c3
# > [<c01200be>] default_wake_function+0x0/0x12
# > [<c01200be>] default_wake_function+0x0/0x12
# > [<c0210207>] rwsem_wake+0xe3/0x12d
# > [<c0128c9e>] do_exit+0x627/0x6a4
# > [<c0128d4d>] next_thread+0x0/0x53
# > [<c010a7e3>] 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.99
# [PATCH] Rename legacy_bus to platform_bus
#
# From: Jeff Garzik <jgarzik@xxxxxxxxx>
#
# 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." ;-)
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.100
# [PATCH] Fix ioctl related warnings in userspace
#
# From: Johannes Stezenbach <js@xxxxxxxxxxxxxx>
#
# 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).
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.101
# [PATCH] Winbond w83627hf driver
#
# From: Pádraig Brady <P@xxxxxxxxxxxxxx>
#
# Watchdog driver for the Winbond w83627hf which is on the last 3 motherboards
# I got here for test (tyan, advantech, force).
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.102
# [PATCH] update sn2 MAINTAINERS file entry
#
# From: jbarnes@xxxxxxx (Jesse Barnes)
#
# Just a quick patch to fix MAINTAINERS for sn2.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.103
# [PATCH] SCC warning fix
#
# From: Alan Cox <alan@xxxxxxxxxx>
#
# Just a warning fix and behaviour tidy. Changing the kiss.mintime variable isn't
# going to work as its exposed to user space
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.104
# [PATCH] cycx_drv warning fix
#
# From: Alan Cox <alan@xxxxxxxxxx>
#
# Type errors, just fixes a warning
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.105
# [PATCH] VIA audio fixes
#
# From: Alan Cox <alan@xxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.106
# [PATCH] Kernel Locking Documentation update
#
# From: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.107
# [PATCH] name_to_dev_t() fix
#
# From: viro@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.108
# [PATCH] dm: fix block device resizing
#
# From: Joe Thornber <thornber@xxxxxxxxxxx>
#
# 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]
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.109
# [PATCH] dm: remove dynamic table resizing
#
# From: Joe Thornber <thornber@xxxxxxxxxxx>
#
# The dm table size is always known in advance, so we can specify it in
# dm_table_create(), rather than relying on dynamic resizing.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.110
# [PATCH] dm: make v4 of the ioctl interface the default
#
# From: Joe Thornber <thornber@xxxxxxxxxxx>
#
# 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.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.111
# [PATCH] dm: set io restriction defaults
#
# From: Joe Thornber <thornber@xxxxxxxxxxx>
#
# Make sure that a target has a sensible set of default io restrictions.
# --------------------------------------------
# 03/12/29 akpm@xxxxxxxx 1.1474.48.112
# [PATCH] dm: dm_table_event() sleep on spinlock bug
#
# From: Joe Thornber <thornber@xxxxxxxxxxx>
#
# You can no longer call dm_table_event() from interrupt context.
# --------------------------------------------
# 03/12/29 torvalds@xxxxxxxxxxxxx 1.1474.48.113
# Merge bk://kernel.bkbits.net/davem/net-2.6
# into home.osdl.org:/home/torvalds/v2.5/linux
# --------------------------------------------
# 03/12/29 torvalds@xxxxxxxxxxxxx 1.1474.48.114
# Merge bk://bk.arm.linux.org.uk/linux-2.6-serial
# into home.osdl.org:/home/torvalds/v2.5/linux
# --------------------------------------------
# 03/12/29 torvalds@xxxxxxxxxxxxx 1.1474.1.56
# Merge ia64 conflicts
# --------------------------------------------
# 03/12/29 torvalds@xxxxxxxxxxxxx 1.1474.1.57
# Merge bk://gkernel.bkbits.net/net-drivers-2.5
# into home.osdl.org:/home/torvalds/v2.5/linux
# --------------------------------------------
# 03/12/30 davem@xxxxxxxxxxxxxx 1.1474.1.58
# Merge nuts.ninka.net:/disk1/davem/BK/sparcwork-2.6
# into nuts.ninka.net:/disk1/davem/BK/sparc-2.6
# --------------------------------------------
# 03/12/30 davem@xxxxxxxxxxxxxx 1.1474.49.1
# Merge nuts.ninka.net:/disk1/davem/BK/network-2.6
# into nuts.ninka.net:/disk1/davem/BK/net-2.6
# --------------------------------------------
# 03/12/30 davem@xxxxxxxxxxxxxx 1.1474.49.2
# Merge nuts.ninka.net:/disk1/davem/BK/net-2.6.1
# into nuts.ninka.net:/disk1/davem/BK/net-2.6
# --------------------------------------------
# 03/12/30 davem@xxxxxxxxxxxxxx 1.1474.1.59
# [SPARC64]: Fix build after show_interrupts() changes.
# --------------------------------------------
# 03/12/30 davem@xxxxxxxxxxxxxx 1.1474.1.60
# [SPARC32]: Fix build after show_interrupts() changes.
# --------------------------------------------
# 03/12/30 bcollins@xxxxxxxxxx 1.1474.1.61
# Merge http://linux.bkbits.net/linux-2.5
# into debian.org:/usr/src/kernel/linux-2.6
# --------------------------------------------
# 03/12/30 bcollins@xxxxxxxxxx 1.1474.1.62
# MAINTAINERS:
# [IEEE1394]: Update maintainer info
# --------------------------------------------
# 03/12/30 bcollins@xxxxxxxxxx 1.1474.1.63
# video1394.c:
# [IEEE1394]
# Patch from Damien Douxchamps to fix video1394 when image size is less than
# page size.
# --------------------------------------------
# 03/12/30 amir.noam@xxxxxxxxx 1.1592
# [netdrvr bonding] fix build breakage
# --------------------------------------------
#
diff -Nru a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
--- a/drivers/net/bonding/bond_main.c Wed Dec 31 10:13:11 2003
+++ b/drivers/net/bonding/bond_main.c Wed Dec 31 10:13:11 2003
@@ -1657,8 +1657,8 @@
bond_change_active_slave(bond, NULL);
}

- if ((bond->params.mode == BOND_MODE_TLB) ||
- (bond->params.mode == BOND_MODE_ALB)) {
+ if ((bond_mode == BOND_MODE_TLB) ||
+ (bond_mode == BOND_MODE_ALB)) {
/* Must be called only after the slave has been
* detached from the list and the curr_active_slave
* has been cleared (if our_slave == old_current),