15 years agoLinux v2.5.52
Linus Torvalds [Sun, 15 Dec 2002 10:01:02 +0000 (02:01 -0800)]
Linux v2.5.52

15 years agoRemove bogus checkin file from xfs.
Linus Torvalds [Sun, 15 Dec 2002 09:34:16 +0000 (01:34 -0800)]
Remove bogus checkin file from xfs.

15 years agoMerge
Linus Torvalds [Sun, 15 Dec 2002 09:30:18 +0000 (01:30 -0800)]

15 years ago[PATCH] m68knommu support restart_block
Greg Ungerer [Sun, 15 Dec 2002 09:00:13 +0000 (01:00 -0800)]
[PATCH] m68knommu support restart_block

This patch addes the new restart_block field support to m68knommu

15 years ago[PATCH] m68knommu definition of TASK_UNMAPPED_BASE
Greg Ungerer [Sun, 15 Dec 2002 09:00:07 +0000 (01:00 -0800)]
[PATCH] m68knommu definition of TASK_UNMAPPED_BASE

This patch adds a definition for TASK_UNMAPPED_BASE in m68knommu
process.h.  Recent changes need a definition for this, although its
value is unsed for nommu targets.

15 years ago[PATCH] m68knommu hardirq.h include cache.h
Greg Ungerer [Sun, 15 Dec 2002 09:00:01 +0000 (01:00 -0800)]
[PATCH] m68knommu hardirq.h include cache.h

The patch include cache.h in m68knommu hardirq.h.

Cleans up compile problems, and make its consistent with
all other architecture hardirq.h files.

15 years ago[PATCH] m68knommu current include thread_info.h
Greg Ungerer [Sun, 15 Dec 2002 08:59:55 +0000 (00:59 -0800)]
[PATCH] m68knommu current include thread_info.h

This changes m68knommu current.h to include the linux/thread_info.h
instead of asm/thread_info.h.  This is needed to get the restart_block
definition from linux/thread_info.h first.

15 years ago[PATCH] m68knommu fix ELF_CORE_COPY_REGS macro
Greg Ungerer [Sun, 15 Dec 2002 08:59:50 +0000 (00:59 -0800)]
[PATCH] m68knommu fix ELF_CORE_COPY_REGS macro

This fixes the broken ELF_CORE_COPY_REGS macro for m68knommu arch.  It
is missing a ";" after the pr_reg[16] setting, and attempts to set the
non-existant a2 field.

15 years ago[PATCH] m68knommu remove sys_security
Greg Ungerer [Sun, 15 Dec 2002 08:59:45 +0000 (00:59 -0800)]
[PATCH] m68knommu remove sys_security

This removes use of the depricated sys_security system call entry for
the m68knommu architectures.

15 years ago[PATCH] m68knommu spinlocks around signal api calls
Greg Ungerer [Sun, 15 Dec 2002 08:59:40 +0000 (00:59 -0800)]
[PATCH] m68knommu spinlocks around signal api calls

This adds spinlocks around calls to generic kernel signal routine calls.

15 years ago[PATCH] m68knommu add missing do_fork arg
Greg Ungerer [Sun, 15 Dec 2002 08:59:35 +0000 (00:59 -0800)]
[PATCH] m68knommu add missing do_fork arg

This adds the missing argument to do_fork() calls in m68knommu arch

15 years ago[PATCH] m68knommu fix kstat_cpu usage int ints.c
Greg Ungerer [Sun, 15 Dec 2002 08:59:30 +0000 (00:59 -0800)]
[PATCH] m68knommu fix kstat_cpu usage int ints.c

This fixes the use kstat_cpu in m68knommu arch ints.c Replcae obsolete
use of kstat.irqs.

15 years ago[PATCH] sonypi driver update
Stelian Pop [Sun, 15 Dec 2002 08:59:25 +0000 (00:59 -0800)]
[PATCH] sonypi driver update

This little patch changes the way button release events are reported
by the sonypi driver to the application: previously, separate
release events were detected for each button. However, many buttons
(example: the jogdial, the capture button, the back button etc) share
the same release event.

The attached patch propagates a single 'ANYBUTTON_RELEASED' event
to the userspace, leaving all state machine intelligence to the

Kunihiko IMAI should be credited for his ideas and tests.

15 years ago[PATCH] PATCH: eata driver update
Dario Ballabio [Sun, 15 Dec 2002 08:56:29 +0000 (00:56 -0800)]
[PATCH] PATCH: eata driver update

The enclosed patch fix compile problems and adds all the diffs which
were still missing from 2.5.51.

15 years agoMerge ieee1394 update
Linus Torvalds [Sun, 15 Dec 2002 08:30:53 +0000 (00:30 -0800)]
Merge ieee1394 update

15 years ago[PATCH] IEEE-1394/Firewire update
Ben Collins [Sun, 15 Dec 2002 08:27:06 +0000 (00:27 -0800)]
[PATCH] IEEE-1394/Firewire update

This covers a lot of ground in the Linux1394 SVN tree.  I haven't had
time to keep in sync with you in a more granular way, so here's a
bohemoth patch.  However, consider it well tested.

15 years ago[PATCH] C99 initializers for drivers/scsi (4 of 4)
Art Haas [Sun, 15 Dec 2002 08:13:51 +0000 (00:13 -0800)]
[PATCH] C99 initializers for drivers/scsi (4 of 4)

15 years ago[PATCH] C99 initializers for drivers/scsi (3 of 4)
Art Haas [Sun, 15 Dec 2002 08:13:46 +0000 (00:13 -0800)]
[PATCH] C99 initializers for drivers/scsi (3 of 4)

15 years ago[PATCH] C99 initializers for drivers/scsi (2 of 4)
Art Haas [Sun, 15 Dec 2002 08:13:39 +0000 (00:13 -0800)]
[PATCH] C99 initializers for drivers/scsi (2 of 4)

15 years ago[PATCH] C99 initializers for drivers/scsi (1 of 4)
Art Haas [Sun, 15 Dec 2002 08:13:32 +0000 (00:13 -0800)]
[PATCH] C99 initializers for drivers/scsi (1 of 4)

15 years ago[PATCH] C99 initializers for drivers/ide/pci
Art Haas [Sun, 15 Dec 2002 08:13:26 +0000 (00:13 -0800)]
[PATCH] C99 initializers for drivers/ide/pci

15 years ago[PATCH] C99 initializers for net/irda/irnet/irnet_ppp.h
Art Haas [Sun, 15 Dec 2002 08:13:20 +0000 (00:13 -0800)]
[PATCH] C99 initializers for net/irda/irnet/irnet_ppp.h

15 years ago[PATCH] C99 initializers for drivers/net
Art Haas [Sun, 15 Dec 2002 08:13:14 +0000 (00:13 -0800)]
[PATCH] C99 initializers for drivers/net

15 years ago[PATCH] C99 initializers for drivers/char
Art Haas [Sun, 15 Dec 2002 08:13:07 +0000 (00:13 -0800)]
[PATCH] C99 initializers for drivers/char

15 years ago[PATCH] C99 initializer for drivers/base/class.c
Art Haas [Sun, 15 Dec 2002 08:13:01 +0000 (00:13 -0800)]
[PATCH] C99 initializer for drivers/base/class.c

15 years agoCset exclude:|ChangeSet|20021215220743|56906
Christoph Hellwig [Sun, 15 Dec 2002 08:12:44 +0000 (00:12 -0800)]
Cset exclude: hch@hera.|ChangeSet|20021215220743|56906

15 years ago[PATCH] Add helper routines for fixing up page alignment on xdr_buf
Trond Myklebust [Sun, 15 Dec 2002 08:11:24 +0000 (00:11 -0800)]
[PATCH] Add helper routines for fixing up page alignment on xdr_buf

In order to speed up NFS reads, we attempt to copy directly from
skbuffs into the pagecache pages. As we cannot do XDR decoding in the
soft interrupts, we attempt to estimate the size of the RPC header (+
attributes,...) that will precede the actual data that goes in the
pagecache. If we get the estimate wrong, the XDR decode routines
perform a realignment of the data into the pagecache.

In the existing code, we do a multi-page kmap() from the xdr_buf into
an iovec array, in order to do the shift.

The following patch adds tools for doing the realigment without going
through the iovec array (and without having to do the deadlock-prone
multi-page kmap()).

It also adds the 2 helper routines xdr_read_pages()/xdr_write_pages()
which will be needed for NFSv4 reads/writes in order to add pre/post
operation GETATTR calls.

15 years ago[PATCH] NFSv4 cleanups
Trond Myklebust [Sun, 15 Dec 2002 08:11:18 +0000 (00:11 -0800)]
[PATCH] NFSv4 cleanups

 - Move the encoding/decoding of the actual COMPOUND XDR header out of

 - Make each NFSv4 operation 'decode_' routine also take care of
   decoding its own header, and checking it for correctness.
   Also allows us to get rid of the 'nfserr' parameter...

15 years ago[PATCH] Fix buffer reservations in nfs4xdr.c
Trond Myklebust [Sun, 15 Dec 2002 08:11:12 +0000 (00:11 -0800)]
[PATCH] Fix buffer reservations in nfs4xdr.c

This fixes a couple of incorrect XDR buffer reservations.  The values
passed to RESERVE_SPACE() must reflect precisely the number of bytes
that we wish to send down the wire.

15 years ago[PATCH] kconfig: fix T_STRING usage
Roman Zippel [Sun, 15 Dec 2002 08:04:26 +0000 (00:04 -0800)]
[PATCH] kconfig: fix T_STRING usage

T_STRING token was used twice, so quoted strings use now T_WORD_QUOTE.

15 years ago[PATCH] kconfig: updates
Roman Zippel [Sun, 15 Dec 2002 08:04:21 +0000 (00:04 -0800)]
[PATCH] kconfig: updates

- allow double click to start edit of string symbols
- help text by
- small reorganiztion to prepare for new features

15 years ago[PATCH] kconfig: geometry defaults
Roman Zippel [Sun, 15 Dec 2002 08:04:16 +0000 (00:04 -0800)]
[PATCH] kconfig: geometry defaults

Set geometry defaults, if TIOCGWINSZ fails.

15 years ago[PATCH] kconfig: symbol change notification
Roman Zippel [Sun, 15 Dec 2002 08:04:11 +0000 (00:04 -0800)]
[PATCH] kconfig: symbol change notification

Add a changed flag to properties, which can be used by front ends to check
for changed symbols/properties.

15 years ago[PATCH] kconfig: dependencies for choices
Roman Zippel [Sun, 15 Dec 2002 08:04:06 +0000 (00:04 -0800)]
[PATCH] kconfig: dependencies for choices

Enable dependencies for choice defaults.

15 years ago[PATCH] kconfig: config file parse update
Roman Zippel [Sun, 15 Dec 2002 08:03:59 +0000 (00:03 -0800)]
[PATCH] kconfig: config file parse update

- search for config files under $srctree (by Sam Ravnborg & me)
- allow to break long lines with \

15 years ago[PATCH] kconfig: off-by-one error
Roman Zippel [Sun, 15 Dec 2002 08:03:53 +0000 (00:03 -0800)]
[PATCH] kconfig: off-by-one error

Use all of choice input and don't ignore last character.

15 years ago[PATCH] kconfig: qt installation workaround
Roman Zippel [Sun, 15 Dec 2002 08:03:47 +0000 (00:03 -0800)]
[PATCH] kconfig: qt installation workaround

Work around broken mandrake qt installation, which doesn't have a $QTDIR/bin/moc.

15 years agoMerge
Linus Torvalds [Sun, 15 Dec 2002 07:49:08 +0000 (23:49 -0800)]

15 years ago[PATCH] ptrace-sigfix-2.5.51-A1
Ingo Molnar [Sun, 15 Dec 2002 07:48:05 +0000 (23:48 -0800)]
[PATCH] ptrace-sigfix-2.5.51-A1

This fixes a threading/ptrace bug noticed by the gdb people: when a
thread is ptraced but other threads in the thread group are not then a
SIGTRAP (via int3 or any of the other debug traps) causes the child
thread(s) to die unexpectedly.  This is because the default behavior for
a no-handler SIGTRAP is to broadcast it.

The solution is to make all such signals specific, then the ptracer (gdb)
can filter the signal and upon continuation it's being handled properly
(or put on the shared signal queue). SIGKILL and SIGSTOP are an exception.
The patch only affects threaded and ptrace-d processes.

15 years ago[XFS] add missing file xfs_iomap.c
Christoph Hellwig [Sun, 15 Dec 2002 06:07:43 +0000 (22:07 -0800)]
[XFS] add missing file xfs_iomap.c

15 years agoMerge
Christoph Hellwig [Sun, 15 Dec 2002 05:47:21 +0000 (21:47 -0800)]

15 years ago[PATCH] epoll bits forgot a nasty printk() ...
Davide Libenzi [Sun, 15 Dec 2002 04:32:16 +0000 (20:32 -0800)]
[PATCH] epoll bits forgot a nasty printk() ...

Robert made me notice that I forgot an explicit debugging printk()
inside the epoll module.

o Make the printk() to be debugging

15 years ago[PATCH] NUMA topology sysfs panic fix
Matthew Dobson [Sun, 15 Dec 2002 04:30:54 +0000 (20:30 -0800)]
[PATCH] NUMA topology sysfs panic fix

This (from wli & myself) was overlooked for 2.5.51.  Without this fix,
sysfs panics when registering topology for NUMA boxen.

15 years agoMerge
Linus Torvalds [Sun, 15 Dec 2002 04:29:45 +0000 (20:29 -0800)]

15 years ago[PATCH] consolidate sys32_new[lf]stat - architecture independent
Stephen Rothwell [Sun, 15 Dec 2002 04:16:19 +0000 (20:16 -0800)]
[PATCH] consolidate sys32_new[lf]stat - architecture independent

This renames more types and moves them into asm/compat.h and also
consolidates sys32_new{stat,fstat,lstat}.

15 years ago[PATCH] mips64 compatibility syscall layer
Stephen Rothwell [Sun, 15 Dec 2002 04:16:13 +0000 (20:16 -0800)]
[PATCH] mips64 compatibility syscall layer

Given Ralf's blessing, here is the mips64 part of the initial compatibility
syscall layer.

15 years ago[PATCH] consolidate sys32_times - architecture independent
Stephen Rothwell [Sun, 15 Dec 2002 04:16:06 +0000 (20:16 -0800)]
[PATCH] consolidate sys32_times - architecture independent

This patch creates compat_sys_times and a few more compability types.

15 years ago[PATCH] MODULE_PARM support for older modules
Rusty Russell [Sun, 15 Dec 2002 04:13:23 +0000 (20:13 -0800)]
[PATCH] MODULE_PARM support for older modules

This is the backwards compatibility code for MODULE_PARM, and moves
__MODULE_STRING() down to the graveyard at the bottom of module.h.

It's complicated by the fact that many modules place MODULE_PARM()
before the declaration (some do MODULE_PARM() for non-existant
variables, too).  To avoid breaking them, we have to do the name
lookups at load time, rather than just storing a pointer 8(

CONFIG_OBSOLETE_MODPARM is set to y without prompting: it's a useful
marker for deprecating in 2.7.

15 years ago[PATCH] Parameter implementation for modules
Rusty Russell [Sun, 15 Dec 2002 04:13:17 +0000 (20:13 -0800)]
[PATCH] Parameter implementation for modules

This activates parameter parsing for module_param() declarations in modules.

15 years ago[PATCH] Module Parameter Core Patch
Rusty Russell [Sun, 15 Dec 2002 04:13:11 +0000 (20:13 -0800)]
[PATCH] Module Parameter Core Patch

This patch is a rewrite of the insmod and boot parameter handling,
to unify them.

The new format is fairly simple: built on top of __module_param_call there
are several helpers, eg "module_param(foo, int, 000)".  The final argument
is the permissions bits, for exposing parameters in sysfs (if
non-zero) at a later stage.

15 years ago[PATCH] OSS ad1848 initialisation order
Zwane Mwaikambo [Sun, 15 Dec 2002 04:10:51 +0000 (20:10 -0800)]
[PATCH] OSS ad1848 initialisation order

I need to initialise the ad1848 driver before attempting attach/probe
from dependent drivers (e.g.  opl3sa2)

15 years ago[PATCH] nanosleep compatibility layer fix
Stephen Rothwell [Sun, 15 Dec 2002 04:10:13 +0000 (20:10 -0800)]
[PATCH] nanosleep compatibility layer fix

Fix for the compatibility layer for NULL 'remaining time' pointer.

15 years agoFix Rules.make removal merge
Linus Torvalds [Sun, 15 Dec 2002 04:06:38 +0000 (20:06 -0800)]
Fix Rules.make removal merge

15 years ago[PATCH] s390: export sys_wait4.
Martin Schwidefsky [Sun, 15 Dec 2002 04:03:11 +0000 (20:03 -0800)]
[PATCH] s390: export sys_wait4.

Add sys_wait4 to the list of exported functions.

15 years ago[PATCH] s390: warnings.
Martin Schwidefsky [Sun, 15 Dec 2002 04:03:04 +0000 (20:03 -0800)]
[PATCH] s390: warnings.

Warning fixes: remove an unused variable and make bitops complain if the
pointer isn't of type long. Make 31 bit BUG() emit 4 0-bytes instead of 2.
This improves the readability of the listing.

15 years ago[PATCH] s390: staticification.
Martin Schwidefsky [Sun, 15 Dec 2002 04:02:58 +0000 (20:02 -0800)]
[PATCH] s390: staticification.

Make some functions and variables static.

15 years ago[PATCH] s390: old tape file.
Martin Schwidefsky [Sun, 15 Dec 2002 04:02:51 +0000 (20:02 -0800)]
[PATCH] s390: old tape file.

Remove last remaining file of the old tape driver.

15 years ago[PATCH] s390: uaccess bug.
Martin Schwidefsky [Sun, 15 Dec 2002 04:02:45 +0000 (20:02 -0800)]
[PATCH] s390: uaccess bug.

Fix return value of __put_user_asm_8.

15 years ago[PATCH] s390: io fixes.
Martin Schwidefsky [Sun, 15 Dec 2002 04:02:38 +0000 (20:02 -0800)]
[PATCH] s390: io fixes.

Start of chsc interface cleanup. Fix for a race condition in do_IRQ.
Fix device reference counting.

15 years ago[PATCH] s390: nanosleep restarting.
Martin Schwidefsky [Sun, 15 Dec 2002 04:02:32 +0000 (20:02 -0800)]
[PATCH] s390: nanosleep restarting.

sys_restart_syscall for nanosleep restarting.

15 years ago[PATCH] s390: Makefiles.
Martin Schwidefsky [Sun, 15 Dec 2002 04:02:25 +0000 (20:02 -0800)]
[PATCH] s390: Makefiles.

Makefile changes by Sam Ravnborg. Summary of changes:
o Added FORCE prerequisite in boot/Makefile
o Do not use shorthand targets when calling the boot/Makefile
o No longer use BOOT_IMAGE, not needed now
o Use kbuild clean infrastructure when cleaning up in boot
o Offset generation shrinked with one rule
o removed inclusion of Rules.make in all Makefiles
o no longer use the descend macro, use $(Q)$(MAKE) as replacement

15 years ago[PATCH] CREDITS update
Christoph Hellwig [Sun, 15 Dec 2002 03:54:00 +0000 (19:54 -0800)]

hch moved around to work for SGI..

15 years ago[PATCH] cpufreq: move x86 configuration to "Power Management"
Dominik Brodowski [Sun, 15 Dec 2002 03:50:38 +0000 (19:50 -0800)]
[PATCH] cpufreq: move x86 configuration to "Power Management"

This patch moves the Kconfig entries for CPUfreq from "Processor type and
features" to "Power management options".

15 years ago[PATCH] cpufreq: clean up CPU information
Dominik Brodowski [Sun, 15 Dec 2002 03:50:32 +0000 (19:50 -0800)]
[PATCH] cpufreq: clean up CPU information

This patch moves some basic per-CPU static information (minimum frequency,
maximum frequency and maximum transition latency) into a struct
cpufreq_cpuinfo. This offers a much cleaner struct cpufreq_driver and
struct cpufreq_policy.

15 years ago[PATCH] ACPI/S3: simplify assembly code a bit
Pavel Machek [Sun, 15 Dec 2002 03:48:45 +0000 (19:48 -0800)]
[PATCH] ACPI/S3: simplify assembly code a bit

Kill unused variable and simplify assembly portion a bit...

15 years ago[PATCH] ACPI/S3: fix gcc3.2 compatibility
Pavel Machek [Sun, 15 Dec 2002 03:48:38 +0000 (19:48 -0800)]
[PATCH] ACPI/S3: fix gcc3.2 compatibility

gcc3.2 is a bit more pedantic...

15 years ago[PATCH] sr_ioctl fix
Richard Henderson [Sun, 15 Dec 2002 03:45:19 +0000 (19:45 -0800)]
[PATCH] sr_ioctl fix

sr_ioctl.c uses virt_to_phys, which is defined in asm/io.h.
On x86, this accidentally works, due to other indirect includes,
but on Alpha results in a link error.

15 years ago[PATCH] threaded coredumps, tcore-fixes-2.5.51-A0
Ingo Molnar [Sun, 15 Dec 2002 03:44:20 +0000 (19:44 -0800)]
[PATCH] threaded coredumps, tcore-fixes-2.5.51-A0

This fixes one more threaded-coredumps detail reported by the glibc
people: all threads taken down by the coredump code should report the
proper exit code.  We can do this rather easily via the group_exit
mechanism.  'Other' threads used to report SIGKILL, which was highly
confusing as the shell often displayed the 'Killed' message instead of a
'Segmentation fault' message.

Another missing bit was the 0x80 bit set in the exit status for all
threads, if the coredump was successful.  (it's safe to set this bit in
->sig->group_exit_code in an unlocked way because all threads are
artificially descheduled by the coredump code.)

15 years ago[PATCH] move console_loglevel scalars to array (resend)
Randy Dunlap [Sun, 15 Dec 2002 03:42:33 +0000 (19:42 -0800)]
[PATCH] move console_loglevel scalars to array (resend)

Moves console_loglevel & friends to an array, as sysctl expects.

15 years ago[PATCH] Remove Rules.make from Makefiles (3/3)
Brian Gerst [Sun, 15 Dec 2002 03:41:56 +0000 (19:41 -0800)]
[PATCH] Remove Rules.make from Makefiles (3/3)

Makefiles no longer need to include Rules.make, which is currently an
empty file.  This patch removes it from the remaining Makefiles, and
removes the empty Rules.make file.

15 years ago[PATCH] Remove Rules.make from Makefiles (2/3)
Brian Gerst [Sun, 15 Dec 2002 03:41:42 +0000 (19:41 -0800)]
[PATCH] Remove Rules.make from Makefiles (2/3)

Makefiles no longer need to include Rules.make, which is currently an
empty file.  This patch removes it from the drivers tree Makefiles.

15 years ago[PATCH] Remove Rules.make from Makefiles (1/3)
Brian Gerst [Sun, 15 Dec 2002 03:41:30 +0000 (19:41 -0800)]
[PATCH] Remove Rules.make from Makefiles (1/3)

Makefiles no longer need to include Rules.make, which is currently an
empty file.  This patch removes it from the arch tree Makefiles.

15 years ago[PATCH] SCSI tape driver fixes for 2.5.51
Kai Mäkisara [Sat, 14 Dec 2002 12:46:29 +0000 (04:46 -0800)]
[PATCH] SCSI tape driver fixes for 2.5.51

This contains the following changes for the SCSI tape driver in 2.5.51:
- fix module bugs that prevent finding any devices
- allow opening a device with O_NONBLOCK | O_RDWR even if the tape in drive
  is write protected

15 years ago[PATCH] remove vm_area_struct.vm_raend
Andrew Morton [Sat, 14 Dec 2002 11:19:46 +0000 (03:19 -0800)]
[PATCH] remove vm_area_struct.vm_raend

Remove the unused vm_area_struct.vm_raend.

If someone wants to tune per-VMA readaround then they can alter

15 years ago[PATCH] ext3: fix error-path bh leak
Andrew Morton [Sat, 14 Dec 2002 11:19:40 +0000 (03:19 -0800)]
[PATCH] ext3: fix error-path bh leak

It is missing a brelse() on an error path.

15 years ago[PATCH] Add prefetching to get_page_state()
Andrew Morton [Sat, 14 Dec 2002 11:19:34 +0000 (03:19 -0800)]
[PATCH] Add prefetching to get_page_state()

Fetch the next cacheline as we're counting up the fields in this one.

15 years ago[PATCH] ext2 synchronous mount fix
Andrew Morton [Sat, 14 Dec 2002 11:19:27 +0000 (03:19 -0800)]
[PATCH] ext2 synchronous mount fix

The optimisation for synchronous mounts was only correct for S_ISREG
files.  Directories do not pass through generic_osync_inode() and we
still need to synchronously write out their indirect blocks.

15 years ago[PATCH] pad pte_chains out to a cacheline
Andrew Morton [Sat, 14 Dec 2002 11:19:22 +0000 (03:19 -0800)]
[PATCH] pad pte_chains out to a cacheline

In PAE mode there is a 4-byte gap and they're not aligning correctly.

15 years ago[PATCH] Fix off-by-one in the page allocator
Andrew Morton [Sat, 14 Dec 2002 11:19:17 +0000 (03:19 -0800)]
[PATCH] Fix off-by-one in the page allocator

From Hugh.

Be consistent in deciding when we are below the zone allocation

15 years ago[PATCH] tidier atomic check in mempool_alloc()
Andrew Morton [Sat, 14 Dec 2002 11:19:11 +0000 (03:19 -0800)]
[PATCH] tidier atomic check in mempool_alloc()

From Hugh.

Be more explicit in the "can we sleep" test.  It doesn't change
anything unless someone is performing __GFP_IO && !__GFP_WAIT
allocations, which is nonsensical.

15 years ago[PATCH] provide a default super_block_operations
Andrew Morton [Sat, 14 Dec 2002 11:19:05 +0000 (03:19 -0800)]
[PATCH] provide a default super_block_operations

A little cleanup suggested by Chris Mason or Al Viro.

Quite a number of codepaths are testing whether a superblock has a
non-null ->s_op pointer.  We can remove all those by making sure that
all superblocks have a valid ->s_op.

15 years ago[PATCH] madvise_willneed() maximum readahead checking
Andrew Morton [Sat, 14 Dec 2002 11:18:58 +0000 (03:18 -0800)]
[PATCH] madvise_willneed() maximum readahead checking

madvise_willneed() currently has a very strange check on how much readahead
it is prepared to do.

  It is based on the user's rss limit.  But this is usually enormous, and
  the user isn't necessarily going to map all that memory at the same time

  And the logic is wrong - it is comparing rss (which is in bytes) with
  `end - start', which is in pages.

  And it returns -EIO on error, which is not mentioned in the Open Group
  spec and doesn't make sense.

This patch takes it all out and applies the same upper limit as is used in
sys_readahead() - half the inactive list.

15 years ago[PATCH] remove a vm debug check
Andrew Morton [Sat, 14 Dec 2002 11:18:52 +0000 (03:18 -0800)]
[PATCH] remove a vm debug check

This ad-hoc assertion is no longer true.  If all zones are in the `all
unreclaimable' state it can trigger.  When testing with a tiny amount
of physical memory.

15 years ago[PATCH] limit pinned memory due to readahead
Andrew Morton [Sat, 14 Dec 2002 11:18:47 +0000 (03:18 -0800)]
[PATCH] limit pinned memory due to readahead

readahead allocates all the pages before starting I/O.  Potentially bad
if someone is performing huge reads with madvise or sys_readahead().

So the patch just busts that up into two-megabyte units.

15 years ago[PATCH] don't apply file size rlimits to blockdevs
Andrew Morton [Sat, 14 Dec 2002 11:18:42 +0000 (03:18 -0800)]
[PATCH] don't apply file size rlimits to blockdevs

generic_file_write()'s rlimit checks are preventing writes to large
offsets into blockdevs:

# ulimit -f 10000
# dd if=/dev/zero of=/dev/sde5 bs=1k count=1 seek=1000000
zsh: file size limit exceeded

So don't apply that check if it's a blockdev.

The patch also caches the S_ISBLK result in a local.

15 years ago[PATCH] ext2/ext3_free_blocks() extra check
Andrew Morton [Sat, 14 Dec 2002 11:18:36 +0000 (03:18 -0800)]
[PATCH] ext2/ext3_free_blocks() extra check

From Andreas Dilger.

Additional sanity checks in the ext2 and ext3 block allocators: if
someone tries to free a negative number of blocks, detect and handle
that rather than wrecking the fs.

15 years ago[PATCH] bootmem allocator merging fix
Andrew Morton [Sat, 14 Dec 2002 11:18:30 +0000 (03:18 -0800)]
[PATCH] bootmem allocator merging fix

Patch from "Juan M. de la Torre" <>

If the requested align is PAGE_SIZE, it is impossible to merge with the
previous allocation request, because the allocated area must begin in a
page boundary.

15 years ago[PATCH] Don't inherit mm->def_flags across forks
Andrew Morton [Sat, 14 Dec 2002 11:18:24 +0000 (03:18 -0800)]
[PATCH] Don't inherit mm->def_flags across forks

Prevents children from inheriting mlockall(MCL_FUTURE).
Standards-friendly, and 2.4 has it.

15 years ago[PATCH] remove PF_SYNC
Andrew Morton [Sat, 14 Dec 2002 11:18:17 +0000 (03:18 -0800)]
[PATCH] remove PF_SYNC

current->flags:PF_SYNC was a hack I added because I didn't want to
change all ->writepage implementations.

It's foul.  And it means that if someone happens to run direct page
reclaim within the context of (say) sys_sync, the writepage invokations
from the VM will be treated as "data integrity" operations, not "memory
cleansing" operations, which would cause latency.

So the patch removes PF_SYNC and adds an extra arg to a_ops->writepage.
 It is the `writeback_control' structure which contains the full context
information about why writepage was called.

The initial version of this patch just passed in a bare `int sync', but
the XFS team need more info so they can perform writearound from within
page reclaim.

The patch also adds writeback_control.for_reclaim, so writepage
implementations can inspect that to work out the call context rather
than peeking at current->flags:PF_MEMALLOC.

15 years ago[PATCH] Reserve an additional transaction block in
Andrew Morton [Sat, 14 Dec 2002 11:18:11 +0000 (03:18 -0800)]
[PATCH] Reserve an additional transaction block in

Under rare conditions (filesystem corruption, really) it is possible
for ext3_dirty_inode() to require _two_ blocks for the transaction: one
for the inode and one to update the superblock - to set
EXT3_FEATURE_RO_COMPAT_LARGE_FILE.  This causes the filesystem to go

So reserve an additional block for that eventuality.

15 years ago[PATCH] Set a minimum hash table size for wait_on_page()
Andrew Morton [Sat, 14 Dec 2002 11:18:04 +0000 (03:18 -0800)]
[PATCH] Set a minimum hash table size for wait_on_page()

Fixes the problem identified by Miles Bader on extremely small zones:
calling hash_long with `bits = 0' is treated as `bits = 32'.

So don't permit the zone to have a one-slot waitqueue hashtable.

15 years ago[PATCH] Add /proc/sys/vm/lower_zone_protection
Andrew Morton [Sat, 14 Dec 2002 11:17:58 +0000 (03:17 -0800)]
[PATCH] Add /proc/sys/vm/lower_zone_protection

This allows us to control the aggressiveness of the lower-zone defense
algorithm.  The `incremental min'.  For workloads which are using a
serious amount of mlocked memory, a few megabytes is not enough.

So the `lower_zone_protection' tunable allows the administrator to
increase the amount of protection which lower zones receive against
allocations which _could_ use higher zones.

The default value of lower_zone_protection is zero, giving unchanged
behaviour.  We should not normally make large amounts of memory
unavailable for pagecache just in case someone mlocks many hundreds of

15 years ago[PATCH] fs-writeback rework.
Andrew Morton [Sat, 14 Dec 2002 11:17:52 +0000 (03:17 -0800)]
[PATCH] fs-writeback rework.

I've revisited all the superblock->inode->page writeback paths.  There
were several silly things in there, and things were not as clear as they
could be.

scenario 1: create and dirty a MAP_SHARED segment over a sparse file,
then exit.

  All the memory turns into dirty pagecache, but the kupdate function
  only writes it out at a trickle - 4 megabytes every thirty seconds.
  We should sync it all within 30 seconds.

  What's happening is that when writeback tries to write those pages,
  the filesystem needs to instantiate new blocks for them (they're over
  holes).  The filesystem runs mark_inode_dirty() within the writeback

  This redirtying of the inode while we're writing it out triggers
  some livelock avoidance code in __sync_single_inode().  That function
  says "ah, someone redirtied the file while I was writing it.  Let's
  move the file to the new end of the superblock dirty list and write
  it out later." Problem is, writeback dirtied the inode itself.

  (It is rather silly that mark_inode_dirty() sets I_DIRTY_PAGES when
  clearly no pages have been dirtied.  Fixing that up would be a
  largish work, so work around it here).

  So this patch just removes the livelock avoidance from
  __sync_single_inode().  It is no longer needed anyway - writeback
  livelock is now avoided (in all writeback paths) by writing a finite
  number of pages.

scenario 2: an application is continuously dirtying a 200 megabyte
file, and your disk has a bandwidth of less than 40 megabytes/sec.

  What happens is that once 30 seconds passes, pdflush starts writing
  out the file.  And because that writeout will take more than five
  seconds (a `kupdate' interval), pdflush just keeps writing it out
  forever - continuous I/O.

  What we _want_ to happen is that the 200 megabytes gets written,
  and then IO stops for thirty seconds (minus the writeout period).  So
  the file is fully synced every thirty seconds.

The patch solves this by using mapping->io_pages more intelligently.
When the time comes to write the file out, move all the dirty pages
onto io_pages.  That is a "batch of pages for this kupdate round".
When io_pages is empty, we know we're done.

The address_space_operations.writepages() API is changed!  It now only
needs to write the pages which the caller placed on mapping->io_pages.

This conceptually cleans things up a bit, by more clearly defining the
role of ->io_pages, and the motion between the various mapping lists.

The treatment of sb->s_dirty and sb->s_io is now conceptually identical
to mapping->dirty_pages and mapping->io_pages: move the items-to-be
written onto ->s_io/io_pages, alk walk that list.  As inodes (or pages)
are written, move them over to the clean/locked/dirty lists.

Oh, scenario 3: start an app whcih continuously overwrites a 5 meg
file.  Wait five seconds, start another, wait 5 seconds, start another.
 What we _should_ see is three 5-meg writes, five seconds apart, every
thirty seconds.  That did all sorts of odd things.  It now does the
right thing.

15 years ago[PATCH] hugetlb fixes
Andrew Morton [Sat, 14 Dec 2002 11:17:47 +0000 (03:17 -0800)]
[PATCH] hugetlb fixes

From Rohit

1) hugetlbfs_zero_setup returns ENOMEM in case the request size can
   not be easily handleed.

2) Preference is given to LOW_MEM while freeing the pages from
   hugetlbpage free list.

15 years ago[PATCH] vm accounting fixes and addition
Andrew Morton [Sat, 14 Dec 2002 11:17:42 +0000 (03:17 -0800)]
[PATCH] vm accounting fixes and addition

- /proc/vmstat:pageoutrun and /proc/vmstat:allocstall are always
  identical.  Rework this so that

  - "allocstall" is the number of times a page allocator ran diect reclaim

  - "pageoutrun" is the number of times kswapd ran page reclaim

- Add a new stat: "pgrotated".  The number of pages which were
  rotated to the tail of the LRU for immediate reclaim by

- Document things a bit.

15 years ago[PATCH] copy_user checks in filldir()
Andrew Morton [Sat, 14 Dec 2002 11:17:37 +0000 (03:17 -0800)]
[PATCH] copy_user checks in filldir()

Check for usercopy faults in filldir().

15 years ago[PATCH] implement ext3_sync_fs
Andrew Morton [Sat, 14 Dec 2002 11:17:31 +0000 (03:17 -0800)]
[PATCH] implement ext3_sync_fs

ext3_sync_fs will start a commit and will wait on that commit.  This
means that on its return, all journalled file data has been dirtied and
exposed to sync_inodes_sb().  Which is sufficient to fix the umount
data loss problem.

15 years ago[PATCH] Add a sync_fs super_block operation
Andrew Morton [Sat, 14 Dec 2002 11:17:26 +0000 (03:17 -0800)]
[PATCH] Add a sync_fs super_block operation

This is infrastructure for fixing the journalled-data ext3 unmount data
loss problem. It was sent for comment to linux-fsdevel a week ago; there
was none.

Add a `sync_fs' superblock operation whose mandate is to perform
filesystem-specific operations to ensure a successful sync.

It is called in two places:

1: fsync_super() - for umount.

2: sys_sync() - for global sync.

In the sys_sync() case we call all the ->write_super() methods first.
write_super() is an async flushing operation.  It should not block.

After that, we call all the ->sync_fs functions.  This is independent
of the state of s_dirt!  That was all confused up before, and in this
patch ->write_super() and ->sync_fs() are quite separate.

With ext3 as an example, the initial ->write_super() will start a
transaction, but will not wait on it.  (But only if s_dirt was set!)

The first ->sync_fs() call will get the IO underway.

The second ->sync_fs() call will wait on the IO.

And we really do need to be this elaborate, because all the testing of
s_dirt in there makes ->write_super() an unreliable way of detecting
when the VFS is trying to sync the filesystem.

15 years ago[PATCH] handle overflows in radix_tree_gang_lookup()
Andrew Morton [Sat, 14 Dec 2002 11:17:21 +0000 (03:17 -0800)]
[PATCH] handle overflows in radix_tree_gang_lookup()

Fix a radix-tree bug spotted by Vladimir Saveliev <>.

Each step in the radix tree spans six address bits.  So a height=6 tree
spans 36-bits worth of nodes.

On 32-bit machines radix_tree_gang_lookup() doesn't handle this right -
at the 12TB mark it wraps back to zero, and returns pages at quite
wrong indices.

The patch fixes all that up, and tidies a couple of things.

A user-space test harness was developed so that the code can be sanely
tested.  It is at

15 years ago[PATCH] make sure all PMDs are allocated under PAE mode
Andrew Morton [Sat, 14 Dec 2002 11:17:15 +0000 (03:17 -0800)]
[PATCH] make sure all PMDs are allocated under PAE mode

Patch from Martin Bligh and Dave Hansen

If a PAE machine has 1G of memory and you set PAGE_OFFSET to 2G, the
kernel will only instantiate a PMD to cover the 2G-3G region.  But
another PMD is needed for the 3G-4G region for the APIC and possibly an
extended vmalloc region.

So the patch changes the code to instantiate PMDs out to the end of
physical memory.

It's a no-op for PAGE_OFFSET=3G, and _could_ be part of the
CONFIG_PAGE_OFFSET patch.  But it seems a reasonable generalisation