Greg Ungerer [Wed, 2 Nov 2005 04:42:03 +0000 (14:42 +1000)]
[PATCH] m68knommu: change use of extern inline to static inline in headers
"extern inline" doesn't make much sense here.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Greg Ungerer <gerg@uclinux.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Wed, 2 Nov 2005 05:33:06 +0000 (21:33 -0800)]
Merge /pub/scm/linux/kernel/git/acme/net-2.6
Linus Torvalds [Wed, 2 Nov 2005 05:32:46 +0000 (21:32 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-serial
Linus Torvalds [Wed, 2 Nov 2005 05:32:14 +0000 (21:32 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Wed, 2 Nov 2005 05:29:57 +0000 (21:29 -0800)]
Merge /linux/kernel/git/wim/linux-2.6-watchdog
Linus Torvalds [Wed, 2 Nov 2005 05:28:53 +0000 (21:28 -0800)]
Merge /pub/scm/linux/kernel/git/sfrench/cifs-2.6
Roland Dreier [Sat, 29 Oct 2005 04:50:35 +0000 (21:50 -0700)]
[PATCH] toshiba_ohci1394_dmi_table should be __devinitdata, not __devinit
I don't really understand why gcc gives the error it does, but without
this patch, when building with CONFIG_HOTPLUG=n, I get errors like:
CC arch/x86_64/pci/../../i386/pci/fixup.o
arch/x86_64/pci/../../i386/pci/fixup.c: In function `pci_fixup_i450nx':
arch/x86_64/pci/../../i386/pci/fixup.c:13: error: pci_fixup_i450nx causes a section type conflict
The change is obviously correct: an array should be declared
__devinitdata rather that __devinit.
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Acked-by: Martin J. Bligh <mbligh@mbligh.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Nathan Scott [Wed, 2 Nov 2005 04:14:09 +0000 (15:14 +1100)]
[XFS] Ensure fsync does not incorrectly return EIO for pages beyond EOF.
SGI-PV: 944819
SGI-Modid: xfs-linux:xfs-kern:24236a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Eric Sandeen [Wed, 2 Nov 2005 04:13:42 +0000 (15:13 +1100)]
[XFS] Fix calculation of reserved AGs for inodes in 32-bit inode mode
Spotted by Roger Willcocks <willcor @at@ gmail.com>
SGI-PV: 944858
SGI-Modid: xfs-linux:xfs-kern:
201213a
Signed-off-by: Eric Sandeen <sandeen@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 04:13:13 +0000 (15:13 +1100)]
[XFS] Fix boundary conditions when issuing direct IOs from large userspace
buffers.
SGI-PV: 944820
SGI-Modid: xfs-linux:xfs-kern:24223a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 04:12:28 +0000 (15:12 +1100)]
[XFS] Remove an unhelpful ifdef, the comment above the routine explains
the purpose well enough here.
SGI-PV: 944821
SGI-Modid: xfs-linux:xfs-kern:24214a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 04:12:04 +0000 (15:12 +1100)]
[XFS] Remove old, broken nolog-mode code - noone plans to ever fix it.
SGI-PV: 944821
SGI-Modid: xfs-linux:xfs-kern:24213a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 04:11:45 +0000 (15:11 +1100)]
[XFS] Rework fid encode/decode wrt 64 bit inums interacting with NFS.
SGI-PV: 937127
SGI-Modid: xfs-linux:xfs-kern:24201a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Wed, 2 Nov 2005 04:11:25 +0000 (15:11 +1100)]
[XFS] Endianess annotations for various allocator data structures
SGI-PV: 943272
SGI-Modid: xfs-linux:xfs-kern:
201006a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Eric Sandeen [Wed, 2 Nov 2005 04:10:55 +0000 (15:10 +1100)]
[XFS] remove unused code from xfs_iomap_write_direct
SGI-PV: 943266
SGI-Modid: xfs-linux:xfs-kern:
200996a
Signed-off-by: Eric Sandeen <sandeen@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Eric Sandeen [Wed, 2 Nov 2005 04:10:41 +0000 (15:10 +1100)]
[XFS] fix old xfs_setattr mis-merge from irix; mostly harmless esp if not
using xfs rt
SGI-PV: 944632
SGI-Modid: xfs-linux:xfs-kern:
200983a
Signed-off-by: Eric Sandeen <sandeen@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Yingping Lu [Wed, 2 Nov 2005 04:10:24 +0000 (15:10 +1100)]
[XFS] Fixing size report discrepancy between ls and du caused by xfs_fsr
SGI-PV: 943908
SGI-Modid: xfs-linux:xfs-kern:
200874a
Signed-off-by: Yingping Lu <yingping@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Yingping Lu [Wed, 2 Nov 2005 04:09:54 +0000 (15:09 +1100)]
[XFS] Fixed a bug in reporting extent list for attribute fork running
xfs_bmap -a.
SGI-PV: 944075
SGI-Modid: xfs-linux:xfs-kern:
200860a
Signed-off-by: Yingping Lu <yingping@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Wed, 2 Nov 2005 04:09:35 +0000 (15:09 +1100)]
[XFS] Simplify pagebuf_rele Remove a conditional that can not be true
anymore and simplify the final put path a little
SGI-PV: 908809
SGI-Modid: xfs-linux:xfs-kern:
200790a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 04:09:22 +0000 (15:09 +1100)]
[XFS] Rework the final mount options flag bit to make room for more.
SGI-PV: 943866
SGI-Modid: xfs-linux:xfs-kern:24030a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 04:08:25 +0000 (15:08 +1100)]
[XFS] Rework the dquot hash sizing heuristics.
SGI-PV: 943123
SGI-Modid: xfs-linux:xfs-kern:24012a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Eric Sandeen [Wed, 2 Nov 2005 04:08:10 +0000 (15:08 +1100)]
[XFS] Add ATTR_NOSIZETOK definition for xfs_vnodeops.c change
SGI-PV: 942439
SGI-Modid: xfs-linux:xfs-kern:
200185a
Signed-off-by: Eric Sandeen <sandeen@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 04:07:51 +0000 (15:07 +1100)]
[XFS] Disable attr2 by default, until a more appropriate time to enable
it.
SGI-PV: 941645
SGI-Modid: xfs-linux:xfs-kern:24002a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Eric Sandeen [Wed, 2 Nov 2005 04:07:34 +0000 (15:07 +1100)]
[XFS] Prevent data corruption on extending truncate case from cxfs client
SGI-PV: 942439
SGI-Modid: xfs-linux:xfs-kern:
200152a
Signed-off-by: Eric Sandeen <sandeen@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Wed, 2 Nov 2005 04:07:23 +0000 (15:07 +1100)]
[XFS] Fix sparse warnings in ktrace.[ch]
SGI-PV: 943556
SGI-Modid: xfs-linux:xfs-kern:
200113a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Wed, 2 Nov 2005 04:06:18 +0000 (15:06 +1100)]
[XFS] silence gcc4 warnings. the directory ones are wrong because of
information gcc could not find out (that a directory always has a ..
entry), the others are outright gcc bugs.
SGI-PV: 943511
SGI-Modid: xfs-linux:xfs-kern:
200055a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 04:05:34 +0000 (15:05 +1100)]
[XFS] Remove unused type, xfs_gap_t.
SGI-PV: 907752
SGI-Modid: xfs-linux:xfs-kern:23932a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Wed, 2 Nov 2005 04:01:12 +0000 (15:01 +1100)]
[XFS] endianess annotations and cleanup for the quota code
SGI-PV: 943272
SGI-Modid: xfs-linux:xfs-kern:
199767a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 04:00:48 +0000 (15:00 +1100)]
[XFS] Show additional mount options in /proc/mounts, fix up some debug
code.
SGI-PV: 941645
SGI-Modid: xfs-linux:xfs-kern:23926a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 04:00:20 +0000 (15:00 +1100)]
[XFS] Fix up a 32/64 local flags variable issue when enabling attr2 mode.
SGI-PV: 941645
SGI-Modid: xfs-linux:xfs-kern:23925a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Eric Sandeen [Wed, 2 Nov 2005 04:00:01 +0000 (15:00 +1100)]
[XFS] Remove dead code in xfs_iomap_write_direct; save some stack
SGI-PV: 943266
SGI-Modid: xfs-linux:xfs-kern:
199750a
Signed-off-by: Eric Sandeen <sandeen@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 03:59:41 +0000 (14:59 +1100)]
[XFS] Update license/copyright notices to match the prefered SGI
boilerplate.
SGI-PV: 913862
SGI-Modid: xfs-linux:xfs-kern:23917a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 03:58:39 +0000 (14:58 +1100)]
[XFS] Update license/copyright notices to match the prefered SGI
boilerplate.
SGI-PV: 913862
SGI-Modid: xfs-linux:xfs-kern:23903a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 03:38:42 +0000 (14:38 +1100)]
[XFS] Remove xfs_macros.c, xfs_macros.h, rework headers a whole lot.
SGI-PV: 943122
SGI-Modid: xfs-linux:xfs-kern:23901a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Wed, 2 Nov 2005 00:44:57 +0000 (11:44 +1100)]
[XFS] remove unused struct xfs_ail_ticket
SGI-PV: 919278
SGI-Modid: xfs-linux:xfs-kern:
199498a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 00:44:33 +0000 (11:44 +1100)]
[XFS] Track external log/realtime device names for correct reporting in
/proc/mounts.
SGI-PV: 942984
SGI-Modid: xfs-linux:xfs-kern:23862a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 00:43:58 +0000 (11:43 +1100)]
[XFS] Improve buffered read throughput by removing unnecessary timer calls
that showed in ´kernel profiles.
SGI-PV: 925163
SGI-Modid: xfs-linux:xfs-kern:23861a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 00:43:42 +0000 (11:43 +1100)]
[XFS] Remove a null CELL macro and its one caller, not useful to anyone.
SGI-PV: 942986
SGI-Modid: xfs-linux:xfs-kern:23860a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 00:43:18 +0000 (11:43 +1100)]
[XFS] Fix up an internal sort function name collision issue.
SGI-PV: 942986
SGI-Modid: xfs-linux:xfs-kern:23859a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Wed, 2 Nov 2005 00:43:04 +0000 (11:43 +1100)]
[XFS] Make some extended attributes routines take const parameters, for
the FreeBSD porters.
SGI-PV: 942906
SGI-Modid: xfs-linux:xfs-kern:23845a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Tue, 1 Nov 2005 23:35:56 +0000 (10:35 +1100)]
[XFS] Ondisk format extension for extended attributes (attr2). Basically,
the data/attr forks now grow up/down from either end of the literal area,
rather than dividing the literal area into two chunks and growing both
upward. Means we can now make much more efficient use of the attribute
space, incl. fitting DMF attributes inline in 256 byte inodes, and large
jumps in dbench3 performance numbers. It is self enabling, but can be
forced on/off via the attr2/noattr2 mount options.
SGI-PV: 941645
SGI-Modid: xfs-linux:xfs-kern:23837a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Tue, 1 Nov 2005 23:35:46 +0000 (10:35 +1100)]
[XFS] Ondisk format extension for extended attributes (attr2). Basically,
the data/attr forks now grow up/down from either end of the literal area,
rather than dividing the literal area into two chunks and growing both
upward. Means we can now make much more efficient use of the attribute
space, incl. fitting DMF attributes inline in 256 byte inodes, and large
jumps in dbench3 performance numbers. It is self enabling, but can be
forced on/off via the attr2/noattr2 mount options.
SGI-PV: 941645
SGI-Modid: xfs-linux:xfs-kern:23836a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Tue, 1 Nov 2005 23:34:53 +0000 (10:34 +1100)]
[XFS] Ondisk format extension for extended attributes (attr2). Basically,
the data/attr forks now grow up/down from either end of the literal area,
rather than dividing the literal area into two chunks and growing both
upward. Means we can now make much more efficient use of the attribute
space, incl. fitting DMF attributes inline in 256 byte inodes, and large
jumps in dbench3 performance numbers. It is self enabling, but can be
forced on/off via the attr2/noattr2 mount options.
SGI-PV: 941645
SGI-Modid: xfs-linux:xfs-kern:23835a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Tue, 1 Nov 2005 23:33:33 +0000 (10:33 +1100)]
[XFS] Move some code around to prepare for the upcoming extended
attributes format change (attr2).
SGI-PV: 941645
SGI-Modid: xfs-linux:xfs-kern:23833a
Signed-off-by: Nathan Scott <nathans@sgi.com>
David Chinner [Tue, 1 Nov 2005 23:33:05 +0000 (10:33 +1100)]
[XFS] Introduce two new mount options (nolargeio/largeio) to allow
filesystems to expose the filesystem stripe width in stat(2) rather than
the page cache size. This allows applications requiring high bandwidth to
easily determine the optimum I/O size for the underlying filesystem. The
default is to report the page cache size (i.e. "nolargeio").
SGI-PV: 942818
SGI-Modid: xfs-linux:xfs-kern:23830a
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Tue, 1 Nov 2005 23:32:38 +0000 (10:32 +1100)]
[XFS] Provide a mechiansm for flushing delalloc before quota reporting.
SGI-PV: 942815
SGI-Modid: xfs-linux:xfs-kern:23829a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Tue, 1 Nov 2005 23:31:41 +0000 (10:31 +1100)]
[XFS] Fix signedness issues in dquot ID handling, allowing uids/gids above
MAXINT
SGI-PV: 942528
SGI-Modid: xfs-linux:xfs-kern:23828a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott [Tue, 1 Nov 2005 23:31:13 +0000 (10:31 +1100)]
[XFS] Add a comment about the use of XFS_SIZE_TOKEN_WANT.
SGI-PV: 936331
SGI-Modid: xfs-linux:xfs-kern:23827a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Tue, 1 Nov 2005 23:29:39 +0000 (10:29 +1100)]
[XFS] only mark buffers done when all pages are uptodate in addition
replace PBF_NONE with an inverted PBF_DONE, so it's like all the other
flags.
SGI-PV: 942609
SGI-Modid: xfs-linux:xfs-kern:
199136a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Eric Sandeen [Tue, 1 Nov 2005 23:29:04 +0000 (10:29 +1100)]
[XFS] Stack footprint reduction for xfs_swapext (used from xfs_fsr)
SGI-PV: 913332
SGI-Modid: xfs-linux:xfs-kern:
198926a
Signed-off-by: Eric Sandeen <sandeen@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Tue, 1 Nov 2005 23:26:59 +0000 (10:26 +1100)]
[XFS] write barrier support Issue all log sync operations as ordered
writes. In addition flush the disk cache on fsync if the sync cached
operation didn't sync the log to disk (this requires some additional
bookeping in the transaction and log code). If the device doesn't claim to
support barriers, the filesystem has an extern log volume or the trial
superblock write with barriers enabled failed we disable barriers and
print a warning. We should probably fail the mount completely, but that
could lead to nasty boot failures for the root filesystem. Not enabled by
default yet, needs more destructive testing first.
SGI-PV: 912426
SGI-Modid: xfs-linux:xfs-kern:
198723a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Tue, 1 Nov 2005 23:25:51 +0000 (10:25 +1100)]
[XFS] fix PBF_NONE handling
SGI-PV: 908809
SGI-Modid: xfs-linux:xfs-kern:
198669a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Tue, 1 Nov 2005 23:21:35 +0000 (10:21 +1100)]
[XFS] Add format checking to cmn_err and icmn_err
SGI-PV: 942243
SGI-Modid: xfs-linux:xfs-kern:
198658a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Tue, 1 Nov 2005 23:21:14 +0000 (10:21 +1100)]
[XFS] remove unused pagebuf flags
SGI-PV: 908809
SGI-Modid: xfs-linux:xfs-kern:
198656a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Christoph Hellwig [Tue, 1 Nov 2005 23:15:05 +0000 (10:15 +1100)]
[XFS] Make sure the threads and shaker in xfs_buf are de-initialized in
reverse startup order
SGI-PV: 942063
SGI-Modid: xfs-linux:xfs-kern:
198651a
Signed-off-by: Christoph Hellwig <hch@sgi.com>
Signed-off-by: Nathan Scott <nathans@sgi.com>
Deepak Saxena [Tue, 1 Nov 2005 22:32:12 +0000 (22:32 +0000)]
[ARM] 3081/1: Remove GTWX5715 from ixp4xx_defconfig
Patch from Deepak Saxena
CONFIG_MACH_GTWX5715 hardcodes the machine type in head-xscale.S so we
can no longer boot on any other machine types. The proper fix would be
to remove the hardcoding, but that machine is an off-the-shelf system
and most users won't have access to the bootloader. :(
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Dan Williams [Tue, 1 Nov 2005 22:31:12 +0000 (22:31 +0000)]
[ARM] 3079/1: Fix typo in i2c-iop3xx.c (invalid pointer passed to release_mem_region)
Patch from Dan Williams
* If request_irq fails then a call to release_mem_region will be made with an invalid pointer.
* Two formatting fixes
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Lennert Buytenhek [Tue, 1 Nov 2005 19:53:50 +0000 (19:53 +0000)]
[ARM] 3052/1: add ixp2000 microcode loader
Patch from Lennert Buytenhek
This patch adds a microcode loader for the ixp2000 architecture.
The ixp2000 is an xscale-based CPU with a number of additional small
CPUs ('microengines') on die that can be programmed to do various
things. Depending on the ixp2000 model, there are between 2 and 16
microengines.
This code provides an API that allows configuring the microengines,
loading code into them, and starting and stopping them and reading
out a number of status registers, and is used by the microengine
network driver that was recently announced to netdev.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Nicolas Pitre [Tue, 1 Nov 2005 19:52:24 +0000 (19:52 +0000)]
[ARM] 2948/1: new preemption safe copy_{to|from}_user implementation
Patch from Nicolas Pitre
This patch provides a preemption safe implementation of copy_to_user
and copy_from_user based on the copy template also used for memcpy.
It is enabled unconditionally when CONFIG_PREEMPT=y. Otherwise if the
configured architecture is not ARMv3 then it is enabled as well as it
gives better performances at least on StrongARM and XScale cores. If
ARMv3 is not too affected or if it doesn't matter too much then
uaccess.S could be removed altogether.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Nicolas Pitre [Tue, 1 Nov 2005 19:52:23 +0000 (19:52 +0000)]
[ARM] 2947/1: copy template with new memcpy/memmove
Patch from Nicolas Pitre
This patch provides a new implementation for optimized memory copy
functions on ARM. It is made of two levels: a template that consists of
the core copy code and separate files that define macros to be used with
the core code depending on the type of copy needed. This allows for best
performances while sharing the same core for implementing memcpy(),
copy_from_user() and copy_to_user() for instance.
Two reasons for this work:
1) the current copy_to_user/copy_from_user implementation assumes no
task switch will ever occur in the middle of each copied page making
it completely unsafe with CONFIG_PREEMPT=y.
2) current copy implementations are measurably suboptimal and optimizing
different implementations separately is a pain and more opportunities
for bugs.
The reason for (1) is the fact that copy inside user pages are performed
with the ldm instruction which has no mean for testing user protections
and could possibly race with process preemption bypassing the COW mechanism
for example. This is a longstanding issue that we said ought to be fixed
for about two years now. The solution is to substitute those ldm insns
with a series of ldrt or strt insns to enforce user memory protection.
At least on StrongARM and XScale cores the ldm is not faster than the
equivalent ldr/str insns with a warm i-cache so there is no measurable
performance degradation with that change. The fact that the copy code is
a template makes it pretty easy to reuse the same core code as for memcpy
and benefit from the same performance optimizations.
Now (2) is best demonstrated with actual throughput measurements.
First, here is a summary of memcopy tests performed on a StrongARM core:
PTR alignment buffer size kernel version this version
------------------------------------------------------------
aligned 32 59.73 107.43
unaligned 32 61.31 74.72
aligned 100 132.47 136.15
unaligned 100 103.84 123.76
aligned 4096 130.67 130.80
unaligned 4096 130.68 130.64
aligned
1048576 68.03 68.18
unaligned
1048576 68.03 68.18
The buffer size is in bytes and the measured speed in MB/s. The copy
was performed repeatedly with given buffer and throughput averaged over
3 seconds.
Here we can see that the current kernel version has a higher entry cost
that shows up with small buffers. As buffer size grows both implementation
converge to the same throughput.
Now here's the exact same test performed on an XScale core (PXA255):
PTR alignment buffer size kernel version this version
------------------------------------------------------------
aligned 32 46.99 77.58
unaligned 32 53.61 59.59
aligned 100 107.19 136.59
unaligned 100 83.61 97.58
aligned 4096 129.13 129.98
unaligned 4096 128.36 128.53
aligned
1048576 53.76 59.41
unaligned
1048576 33.67 56.96
Again we can see the entry setup cost being higher for the current kernel
before getting to the main copy loop. Then throughput results converge
as long as the buffer remains in the cache. Then the 1MB case shows more
differences probably due to better pld placement and/or less instruction
interlocks in this proposed implementation.
Disclaimer: The PXA system was running with slower clocks than the
StrongARM system so trying to infer any conclusion by comparing those
separate sets of results side by side would be completely inappropriate.
So... What this patch does is to replace both memcpy and memmove with
an implementation based on the provided copy code template. The memmove
code is kept separate since it is used only if the memory areas involved
do overlap in which case the code is a transposition of the template but
with the copy occurring in the opposite direction (trying to fit that
mode into the template turned it into a mess not worth it for memmove
alone). And obviously both memcpy and memmove were tested with all kinds
of pointer alignments and buffer sizes to exercise all code paths for
correctness.
The next patch will provide the now trivial replacement implementation
copy_to_user and copy_from_user.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Nicolas Pitre [Tue, 1 Nov 2005 19:52:22 +0000 (19:52 +0000)]
[ARM] 2946/2: split --arch_clear_user() out of lib/uaccess.S
Patch from Nicolas Pitre
Required for future enhancement patches.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
David Brownell [Tue, 1 Nov 2005 19:44:30 +0000 (19:44 +0000)]
[ARM] 3078/1: lubbock platform updates, mostly mmc detection
Patch from David Brownell
Lubbock updates:
* Provide an address for the SMC91x chip that doesn't generate
a boot-time warning (matching the EEPROM).
* Update MMC support to (a) detect card insert/remove, and
(b) report the readonly switch setting for SD cards.
Previously, MMC/SD cards had to be present at boot time else they
couldn't be detected.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Ben Dooks [Tue, 1 Nov 2005 19:44:30 +0000 (19:44 +0000)]
[ARM] 3077/1: S3C2410 - regs-iis.h missing mask for IISMOD_FS
Patch from Ben Dooks
Add definition for S3C2410_IISMOD_FS_MASK
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Ben Dooks [Tue, 1 Nov 2005 19:44:29 +0000 (19:44 +0000)]
[ARM] 3076/1: S3C2410 - updated documentation for platfrom data init
Patch from Ben Dooks
Update the Documentation/arm/Samsung-S3C24XX to add
example platform data initialisation, and add the
linux-arm mailing list URL.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Ben Dooks [Tue, 1 Nov 2005 19:44:28 +0000 (19:44 +0000)]
[ARM] 3071/1: RX3715 - add lcd/fb platform setup
Patch from Ben Dooks
Platform data for the LCD/framebuffer driver for
the RX3715 LCD panel.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Lennert Buytenhek [Tue, 1 Nov 2005 19:44:27 +0000 (19:44 +0000)]
[ARM] 3065/1: ixp2000 typo and whitespace fixes
Patch from Lennert Buytenhek
Misc ixp2000 typo and whitespace fixes.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Lennert Buytenhek [Tue, 1 Nov 2005 19:44:26 +0000 (19:44 +0000)]
[ARM] 3064/1: start using ixp2000_reg_wrb
Patch from Lennert Buytenhek
Switch the users of ixp2000_reg_write that depend on writes being
flushed out of the write buffer by the time that function returns
over to ixp2000_reg_wrb.
When using XCB=101, writes to the same functional unit are still
guaranteed to complete in order, so we only need to protect against:
- reordering of writes to different functional units
- masking an interrupt and then reenabling the IRQ bit in CPSR
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Lennert Buytenhek [Tue, 1 Nov 2005 19:44:25 +0000 (19:44 +0000)]
[ARM] 3063/1: allow slave ixp2000 cpu reset
Patch from Lennert Buytenhek
On the ixdp2x00, the slave CPU is currently not allowed to reset itself
for fear that it will do something 'funky' on the PCI bus. This fear is
ungrounded -- the slave CPU is wired up such that a CPU reset will not
cause a PCI bus reset to be done. This patch changes arch_reset() so
that the slave CPU also executes the reset sequence, allowing it to
reboot itself using /sbin/reboot.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Lennert Buytenhek [Tue, 1 Nov 2005 19:44:24 +0000 (19:44 +0000)]
[ARM] 3062/1: map in various enp2611 peripherals for the ixp2000 netdev driver
Patch from Lennert Buytenhek
The enp2611 version of the ixp2000 netdev driver needs to be able to
access a number of on-board peripherals. ioremap() is not suitable
for this, as that will cause XCB=000 mappings to be done, which will
make the cpu susceptible to crashing on ixp2400 erratum #66. Properly
aligned iotable mappings with MT_IXP2000_DEVICE will cause section
mappings with XCB=101 to be done, which is safe.
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Wim Van Sebroeck [Sun, 23 Oct 2005 13:21:44 +0000 (15:21 +0200)]
[WATCHDOG] adds device_driver .owner field
Initialise the .owner field of the device driver
with the module that owns it, for easier tracking
of device driver ownership. (probably also better
for sysfs...)
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Wim Van Sebroeck [Sat, 22 Oct 2005 14:27:19 +0000 (16:27 +0200)]
[WATCHDOG] pcwd_pci.c update comments
update copyright + update bells and whistles driver for v2.6
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Pozsar Balazs [Fri, 21 Oct 2005 09:52:01 +0000 (10:52 +0100)]
[WATCHDOG] w83627hf_wdt trivial typo
The most trivial typo fix in the world.
Signed-off-by: Pozsar Balazs <pozsy@uhulinux.hu>
Signed-off-by: Pádraig Brady <P@draigBrady.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Ben Dooks [Mon, 10 Oct 2005 00:28:30 +0000 (01:28 +0100)]
[WATCHDOG] s3c2410 wdt - add .owner field
Initialise the .owner field of the device driver
with the module that owns it, for easier tracking
of device driver ownership.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Steve French [Tue, 1 Nov 2005 18:22:55 +0000 (10:22 -0800)]
Export __pagevec_release and pagevec_lookup_tag
These are needed to implement cifs_writepages
Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Steve French [Tue, 1 Nov 2005 17:02:10 +0000 (09:02 -0800)]
Merge ... /linux/kernel/git/torvalds/linux-2.6.git
Linus Torvalds [Tue, 1 Nov 2005 16:30:05 +0000 (08:30 -0800)]
Merge git://git./linux/kernel/git/aia21/ntfs-2.6
Anton Altaparmakov [Tue, 1 Nov 2005 15:51:32 +0000 (15:51 +0000)]
Merge branch 'master' of /home/src/linux-2.6/
Anton Altaparmakov [Tue, 1 Nov 2005 15:49:31 +0000 (15:49 +0000)]
NTFS: Fix a stupid bug causing writes to non-initialized pages to segfault.
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
Jens Axboe [Tue, 1 Nov 2005 08:54:23 +0000 (09:54 +0100)]
[BLOCK] aoe: update for combined io statistics
Signed-off-by: Jens Axboe <axboe@suse.de>
Jens Axboe [Tue, 1 Nov 2005 08:26:16 +0000 (09:26 +0100)]
[BLOCK] Unify the seperate read/write io stat fields into arrays
Instead of having ->read_sectors and ->write_sectors, combine the two
into ->sectors[2] and similar for the other fields. This saves a branch
several places in the io path, since we don't have to care for what the
actual io direction is. On my x86-64 box, that's 200 bytes less text in
just the core (not counting the various drivers).
Signed-off-by: Jens Axboe <axboe@suse.de>
Jens Axboe [Tue, 1 Nov 2005 07:35:42 +0000 (08:35 +0100)]
[BLOCK] Update read/write block io statistics at completion time
Right now we do it at queueing time, which works alright for reads
(since they are usually sync), but not for async writes since we can
queue io a lot faster than we can complete it. This makes the vmstat
output look extremely bursty.
Signed-off-by: Jens Axboe <axboe@suse.de>
Linus Torvalds [Tue, 1 Nov 2005 05:12:40 +0000 (21:12 -0800)]
Don't touch USB controller IO registers when they are disabled
The USB "handoff" code is an early PCI quirk to make sure we own the USB
controller (as opposed to the BIOS/SMM). But if the controller isn't
even enabled yet, don't try to access it.
Acked-by: Paul Mackerras <paulus@samba.org> (who had an alternate patch)
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Linus Torvalds [Tue, 1 Nov 2005 03:16:17 +0000 (19:16 -0800)]
Revert "i386: move apic init in init_IRQs"
Commit
f2b36db692b7ff6972320ad9839ae656a3b0ee3e causes a bootup hang on
at least one machine. Revert for now until we understand why. The old
code may be ugly, but it works.
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Yan Zheng [Mon, 31 Oct 2005 12:09:45 +0000 (20:09 +0800)]
[MCAST] IPv6: Check packet size when process Multicast
Signed-off-by: Yan Zheng <yanzheng@21cn.com
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Herbert Xu [Sun, 30 Oct 2005 00:20:59 +0000 (11:20 +1100)]
[DCCP]: Set socket owner iff packet is not data
Here is a complimentary insurance policy for those feeling a bit insecure.
You don't have to accept this. However, if you do, you can't blame me for
it :)
> 1) dccp_transmit_skb sets the owner for all packets except data packets.
We can actually verify this by looking at pkt_type.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
James Courtier-Dutton [Mon, 31 Oct 2005 10:27:41 +0000 (10:27 +0000)]
[PATCH] Creative Audigy 2 cardbus: Add IO window wakeup magic
This adds the magic IO wakeup code for the CardBus version of the
Creative Labs Audigy 2 to the snd-emu10k1 driver.
Without the magic IO enable sequence, reading from the IO region of the
card will fail spectacularly, and the machine will hang.
My next task will be getting the driver to actually play sound without
distortion.
Signed-off-by: James Courtier-Dutton <James@superbug.co.uk>
[ This is a work-in-progress, but since it avoids a total lockup
if the emu10k module is loaded on a machine with the cardbus
card inserted, we're better off with it than without it, even
if sound quality is bad right now ]
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrea Arcangeli [Mon, 31 Oct 2005 22:08:54 +0000 (14:08 -0800)]
[PATCH] fix __writeback_single_inode WARN_ON
When the inode count is zero in inode writeback, the
WARN_ON(!(inode->i_state & I_WILL_FREE));
is broken, and needs to test for either I_WILL_FREE|I_FREEING.
When the inode is in I_FREEING state, it's already out of the visibility
of the vm so it can't be freed so it doesn't require the __iget and the
generic_delete_inode path can call the sync internally to the lowlevel
fs callback during the last iput. So the inode being in I_FREEING is
also a valid condition for calling the sync with i_count == 0.
The specific stack trace is this:
0xc00000007b8fb6e0 0xc00000000010118c .__writeback_single_inode +0x5c
0xc00000007b8fb6e0 0xc0000000001014dc (lr) .sync_inode +0x3c
0xc00000007b8fb790 0xc0000000001014dc .sync_inode +0x3c
0xc00000007b8fb820 0xc0000000001a5020 .ext2_sync_inode +0x64
0xc00000007b8fb8f0 0xc0000000001a65b4 .ext2_truncate +0x3f8
0xc00000007b8fba40 0xc0000000001a6940 .ext2_delete_inode +0xdc
0xc00000007b8fbac0 0xc0000000000f7a5c .generic_delete_inode +0x124
0xc00000007b8fbb50 0xc0000000000f5fe0 .iput +0xb8
0xc00000007b8fbbe0 0xc0000000000e9fd4 .sys_unlink +0x2a8
0xc00000007b8fbd10 0xc00000000001048c .ret_from_syscall_1 +0x0
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Andrew Morton [Mon, 31 Oct 2005 22:08:53 +0000 (14:08 -0800)]
[PATCH] revert ide-scsi highmem cleanup
Jeff Garzik <jgarzik@pobox.com> points out that this was wrong: we need to
disable local interrupts while holding KM_IRQ0 due to IRQ sharing.
And holding interrupts off during a big PIO opration is expensive, so we only
want to do that if we know the page was highmem.
So revert commit
17fd47ab4d33e764216b87006d8118fa050b4c92
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Herbert Xu [Sun, 30 Oct 2005 00:20:59 +0000 (11:20 +1100)]
[DCCP]: Simplify skb_set_owner_w semantics
While we're at it let's reorganise the set_owner_w calls a little so that:
1) dccp_transmit_skb sets the owner for all packets except data packets.
2) Add dccp_skb_entail to set owner for packets queued for retransmission.
3) Make dccp_transmit_skb static.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Yan Zheng [Fri, 28 Oct 2005 22:12:00 +0000 (15:12 -0700)]
[IPV6]: Fix behavior of ip6_route_input() for link local address
I find that linux will reply echo request destined to an address which
belongs to an interface other than the one from which the request received.
This behavior doesn't make sense for link local address.
YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> said:
Please note that sender does need to setup neighbor entry by hand to reproduce
this bug. (Link-local address on eth1 is not visible on eth0, from the point
of view of neighbor discovery in IPv6.)
+--------+ +--------+
| sender | | router |
+---+----+ +-+----+-+
|eth0 eth0| |eth1
-----+----------------------+- -+--------------
Signed-off-by: Yan Zheng <yanzheng@21cn.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: Andrew Morton <akpm@osdl.org> (forwarded)
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Tony Luck [Mon, 31 Oct 2005 18:51:57 +0000 (10:51 -0800)]
manual update from upstream:
Applied Al's change
06a544971fad0992fe8b92c5647538d573089dd4
to new location of swiotlb.c
Signed-off-by: Tony Luck <tony.luck@intel.com>
Andrew Morton [Fri, 28 Oct 2005 22:12:02 +0000 (15:12 -0700)]
[ROSE]: rose_heartbeat_expiry() locking fix
Missing unlock, as noted by Ted Unangst <tedu@coverity.com>.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Harald Welte [Wed, 26 Oct 2005 07:34:24 +0000 (09:34 +0200)]
[NETFILTER]: Add "revision" support to arp_tables and ip6_tables
Like ip_tables already has it for some time, this adds support for
having multiple revisions for each match/target. We steal one byte from
the name in order to accomodate a 8 bit version number.
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Stephen Hemminger [Tue, 25 Oct 2005 22:04:59 +0000 (15:04 -0700)]
[BRIDGE]: Use ether_compare
Use compare_ether_addr in bridge code.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Arthur Othieno [Mon, 31 Oct 2005 04:04:05 +0000 (23:04 -0500)]
[PATCH] i386: CONFIG_PC removal
CONFIG_PC is left-over cruft after the introduction of CONFIG_X86_PC with
the subarch split. Remove it, and fixup the remaining users to depend on
CONFIG_X86_PC instead.
Signed-off-by: Arthur Othieno <a.othieno@bluewin.ch>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Russell King [Mon, 31 Oct 2005 17:14:57 +0000 (17:14 +0000)]
[ARM] Convert EBSA110 network driver to a platform driver
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Russell King [Mon, 31 Oct 2005 16:57:06 +0000 (16:57 +0000)]
[ARM] Fixup platform device.h includes for realview board
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Steve French [Mon, 31 Oct 2005 16:36:11 +0000 (08:36 -0800)]
Merge ... /linux/kernel/git/torvalds/linux-2.6.git
Jens Axboe [Mon, 31 Oct 2005 08:23:54 +0000 (09:23 +0100)]
[PATCH] noop-iosched: avoid corrupted request merging
Tejun Heo notes:
"I'm currently debugging this. The problem is that we are using the
generic dispatch queue directly in the noop sched and merging is NOT
allowed on dispatch queues but generic handling of last_merge tries
to merge requests. I'm still trying to verify this, so I'll be back
with results soon."
In the meantime, disable merging for noop by setting REQ_NOMERGE in
elevator_noop_add_request().
Eventually, we should add a noop_list and do the dispatching like in the
other io schedulers. Merging is still beneficial for noop (and it has
always done it).
Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Jens Axboe [Mon, 31 Oct 2005 12:51:33 +0000 (13:51 +0100)]
[PATCH] Fix on-the-fly switch from cfq i/o scheduler
Don't clear ->elevator_data on exit, if we are switching queues we are
overwriting the data of the new io scheduler.
Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>