Andrew Vasquez [Tue, 24 Mar 2009 16:08:05 +0000 (09:08 -0700)]
[SCSI] qla2xxx: Ensure the timer and DPC routines complete prior to midlayer tear-down.
Since the routines can/will use resources such as devices and
rports that aren't valid after midlayer tear-down, correct this
potential race, by stopping the offending during the early stages
of the remove() callback.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Andrew Vasquez [Tue, 24 Mar 2009 16:08:02 +0000 (09:08 -0700)]
[SCSI] qla2xxx: Preserve an fcport's loop-id after terminate_rport_io().
Since in some circumstances, login-retries may be occuring in the
background via the DPC routine. This race, in the inadvertant
setting of the loop-id to 'NONE' breaks the existing retry logic.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Post refactoring/multi-queue additions essentially eliminated the
need for separate ISP24XX+ queuecommand as isp_ops contains a
function pointer to the associated 'start_scsi()' operation.
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Andrew Vasquez [Tue, 24 Mar 2009 16:07:55 +0000 (09:07 -0700)]
[SCSI] qla2xxx: Refactor request/response-queue register handling.
Original code used an overabundance of indirect pointers to
function helpers. Instead, the driver can exploit the immutable
properties of a queue's ISP-association and ID, which are both
known at queue initialization-time.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Brian King [Fri, 20 Mar 2009 20:44:39 +0000 (15:44 -0500)]
[SCSI] ibmvfc: Improve ADISC timeout handling
The ibmvfc driver currently breaks the CRQ and essentially
resets the entire virtual FC adapter, killing all outstanding
ops to all attached targets, if an ADISC times out during target
discover/rediscovery. This patch adds some code to cancel the
ADISC if it times out, which prevents a single ADISC timeout from
affecting the other devices attached to the fabric.
Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Brian King [Fri, 20 Mar 2009 20:44:37 +0000 (15:44 -0500)]
[SCSI] ibmvfc: Fixup module parms attributes
The ibmvfc driver really does not handle dynamically changing disc_threads.
To change this dynamically would cause confusion in the driver regarding
the number of event structs allocated. Fix this by simply not allowing
disc_threads to be changed at runtime.
Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Brian King [Fri, 20 Mar 2009 20:44:35 +0000 (15:44 -0500)]
[SCSI] ibmvfc: Fix dropped interrupts
This patch fixes a problem of possible dropped interrupts. Currently,
the ibmvfc driver has a race condition where after ibmvfc_interrupt
gets run, the platform code clears the interrupt. This can result in
lost interrupts and, in worst case scenarios, result in command
timeouts. Fix this by implementing a tasklet similar to what the
ibmvscsi driver does so that interrupt processing is no longer done in
the actual interrupt handler, which eliminates the race.
Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Li Zefan [Thu, 2 Apr 2009 05:43:26 +0000 (13:43 +0800)]
blktrace: fix pdu_len when tracing packet command requests
Impact: output all of packet commands - not just the first 4 / 8 bytes
Since commit d7e3c3249ef23b4617393c69fe464765b4ff1645 ("block: add
large command support"), struct request->cmd has been changed from
unsinged char cmd[BLK_MAX_CDB] to unsigned char *cmd.
Make sure messages from user space are NUL-terminated strings,
otherwise we could dump random memory to the block trace file.
Additionally, I've limited the message to BLK_TN_MAX_MSG-1
characters, because the last character would be stripped by
vscnprintf anyway.
Signed-off-by: Carl Henrik Lunde <chlunde@ping.uio.no> Cc: Li Zefan <lizf@cn.fujitsu.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: "Alan D. Brunelle" <alan.brunelle@hp.com> Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <20090403122714.GT5178@kernel.dk> Signed-off-by: Ingo Molnar <mingo@elte.hu>
x86/dma: unify definition of pci_unmap_addr* and pci_unmap_len macros
Impact: unification of pci-dma macros and pci_32.h removal
This patch unifies the definition of the pci_unmap_addr*, pci_unmap_len*
and DECLARE_PCI_UNMAP* macros. This makes sense because the pci_unmap
functions are no longer no-ops anymore when the kernel runs with
CONFIG_DMA_API_DEBUG. Without an iommu or DMA_API_DEBUG it is a no-op on 32 bit
because the dma mapping path returns a physical address and therefore the
dma-api implementation has no internal state which needs to be destroyed with
an unmap call.
This unification also simplifies the port of x86_64 iommu drivers to 32 bit x86
and let us get rid of pci_32.h.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Acked-by: Stephen Hemminger <shemminger@vyatta.com>
Pekka Enberg [Wed, 25 Mar 2009 09:05:57 +0000 (11:05 +0200)]
kmemtrace: trace kfree() calls with NULL or zero-length objects
Impact: also output kfree(NULL) entries
This patch moves the trace_kfree() calls before the ZERO_OR_NULL_PTR
check so that we can trace call-sites that call kfree() with NULL many
times which might be an indication of a bug.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
LKML-Reference: <1237971957.30175.18.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
kmemtrace: restore original tracing data binary format, improve ABI
When kmemtrace was ported to ftrace, the marker strings were taken as
an indication of how the traced data was being exposed to the userspace.
However, the actual format had been binary, not text.
This restores the original binary format, while also adding an origin CPU
field (since ftrace doesn't expose the data per-CPU to userspace), and
re-adding the timestamp field. It also drops arch-independent field
sizing where it didn't make sense, so pointers won't always be 64 bits
wide like they used to.
Signed-off-by: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
LKML-Reference: <161be9ca8a27b432c4a6ab79f47788c4521652ae.1237813499.git.eduard.munteanu@linux360.ro> Signed-off-by: Ingo Molnar <mingo@elte.hu>
kmemtrace now uses tracepoints instead of markers. We no longer need to
use format specifiers to pass arguments.
Signed-off-by: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
[ folded: Use the new TP_PROTO and TP_ARGS to fix the build. ]
[ folded: fix build when CONFIG_KMEMTRACE is disabled. ]
[ folded: define tracepoints when CONFIG_TRACEPOINTS is enabled. ] Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
LKML-Reference: <ae61c0f37156db8ec8dc0d5778018edde60a92e3.1237813499.git.eduard.munteanu@linux360.ro> Signed-off-by: Ingo Molnar <mingo@elte.hu>
kmemtrace, rcu: don't include unnecessary headers, allow kmemtrace w/ tracepoints
Impact: cleanup
linux/percpu.h includes linux/slab.h, which generates circular inclusion
dependencies when trying to switch kmemtrace to use tracepoints instead
of markers.
This patch allows tracing within slab headers' inline functions.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro> Cc: paulmck@linux.vnet.ibm.com
LKML-Reference: <1237898630.25315.83.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Wed, 25 Mar 2009 15:42:24 +0000 (16:42 +0100)]
kmemtrace, rcu: fix rcu_tree_trace.c data structure dependencies
Impact: cleanup
We want to remove rcutree internals from the public rcutree.h file for
upcoming kmemtrace changes - but kernel/rcutree_trace.c depends on them.
Introduce kernel/rcutree.h for internal definitions. (Probably all
the other data types from include/linux/rcutree.h could be
moved here too - except rcu_data.)
Cc: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro> Cc: paulmck@linux.vnet.ibm.com
LKML-Reference: <1237898630.25315.83.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Fri, 13 Mar 2009 02:20:49 +0000 (03:20 +0100)]
kmemtrace, rcu: fix linux/rcutree.h and linux/rcuclassic.h dependencies
Impact: build fix for all non-x86 architectures
We want to remove percpu.h from rcuclassic.h/rcutree.h (for upcoming
kmemtrace changes) but that would break the DECLARE_PER_CPU based
declarations in these files.
Move the quiescent counter management functions to their respective
RCU implementation .c files - they were slightly above the inlining
limit anyway.
Cc: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro> Cc: paulmck@linux.vnet.ibm.com
LKML-Reference: <1237898630.25315.83.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Pekka Enberg [Tue, 24 Mar 2009 09:59:21 +0000 (11:59 +0200)]
kmemtrace, mm: fix slab.h dependency problem in mm/failslab.c
Impact: cleanup
mm/failslab.c depends on slab.h without including it:
CC mm/failslab.o
mm/failslab.c: In function ‘should_failslab’:
mm/failslab.c:16: error: ‘__GFP_NOFAIL’ undeclared (first use in this function)
mm/failslab.c:16: error: (Each undeclared identifier is reported only once
mm/failslab.c:16: error: for each function it appears in.)
mm/failslab.c:19: error: ‘__GFP_WAIT’ undeclared (first use in this function)
make[1]: *** [mm/failslab.o] Error 1
make: *** [mm] Error 2
It gets included implicitly currently - but this will not be the
case with upcoming kmemtrace changes.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
LKML-Reference: <1237888761.25315.69.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Pekka Enberg [Tue, 24 Mar 2009 09:22:01 +0000 (11:22 +0200)]
kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_unlzma.c
Impact: cleanup
lib/decompress_unlzma.c depends on slab.h without including it:
CC lib/decompress_unlzma.o
lib/decompress_unlzma.c: In function ‘rc_free’:
lib/decompress_unlzma.c:122: error: implicit declaration of function ‘kfree’
lib/decompress_unlzma.c: In function ‘unlzma’:
lib/decompress_unlzma.c:551: error: implicit declaration of function ‘kmalloc’
lib/decompress_unlzma.c:551: warning: assignment makes pointer from integer without a cast
make[1]: *** [lib/decompress_unlzma.o] Error 1
make: *** [lib/] Error 2
It gets included implicitly currently - but this will not be the
case with upcoming kmemtrace changes.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
LKML-Reference: <1237886521.25315.58.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Pekka Enberg [Tue, 24 Mar 2009 09:13:52 +0000 (11:13 +0200)]
kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_bunzip2.c
Impact: cleanup
lib/decompress_bunzip2.c depends on slab.h without including it:
CC lib/decompress_bunzip2.o
lib/decompress_bunzip2.c: In function ‘start_bunzip’:
lib/decompress_bunzip2.c:636: error: implicit declaration of function ‘kmalloc’
lib/decompress_bunzip2.c:636: warning: assignment makes pointer from integer without a cast
lib/decompress_bunzip2.c: In function ‘bunzip2’:
lib/decompress_bunzip2.c:682: warning: assignment makes pointer from integer without a cast
lib/decompress_bunzip2.c:693: warning: assignment makes pointer from integer without a cast
lib/decompress_bunzip2.c:726: error: implicit declaration of function ‘kfree’
make[1]: *** [lib/decompress_bunzip2.o] Error 1
make: *** [lib/] Error 2
It gets included implicitly currently - but this will not be the
case with upcoming kmemtrace changes.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
LKML-Reference: <1237886032.25315.48.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Pekka Enberg [Tue, 24 Mar 2009 09:13:50 +0000 (11:13 +0200)]
kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_inflate.c
Impact: fix build
lib/decompress_inflate.c depends on slab.h without including it:
CC lib/decompress_inflate.o
lib/decompress_inflate.c: In function ‘gunzip’:
lib/decompress_inflate.c:45: error: implicit declaration of function ‘kmalloc’
lib/decompress_inflate.c:45: warning: assignment makes pointer from integer without a cast
lib/decompress_inflate.c:57: warning: assignment makes pointer from integer without a cast
lib/decompress_inflate.c:65: warning: assignment makes pointer from integer without a cast
lib/decompress_inflate.c:71: warning: assignment makes pointer from integer without a cast
lib/decompress_inflate.c:154: error: implicit declaration of function ‘kfree’
make[1]: *** [lib/decompress_inflate.o] Error 1
make: *** [lib/] Error 2
It gets included implicitly currently - but this will not be the
case with upcoming kmemtrace changes.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
LKML-Reference: <1237886030.25315.47.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Pekka Enberg [Tue, 24 Mar 2009 08:56:39 +0000 (10:56 +0200)]
kmemtrace, squashfs: fix slab.h dependency problem in squasfs
Impact: cleanup
fs/squashfs/export.c depends on slab.h without including it:
CC fs/squashfs/export.o
fs/squashfs/export.c: In function ‘squashfs_read_inode_lookup_table’:
fs/squashfs/export.c:133: error: implicit declaration of function ‘kmalloc’
fs/squashfs/export.c:133: warning: assignment makes pointer from integer without a cast
fs/squashfs/export.c:143: error: implicit declaration of function ‘kfree’
make[1]: *** [fs/squashfs/export.o] Error 1
make: *** [fs/squashfs/] Error 2
It gets included implicitly currently - but this will not be the
case with upcoming kmemtrace changes.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
LKML-Reference: <1237884999.25315.41.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Pekka Enberg [Tue, 24 Mar 2009 08:43:50 +0000 (10:43 +0200)]
kmemtrace, befs: fix slab.h dependency problem
Impact: cleanup
fs/befs/debug.c depends on slab.h without including it. Upcoming
changes for kmemtrace would break the build:
CC fs/befs/debug.o
fs/befs/debug.c: In function ‘befs_error’:
fs/befs/debug.c:31: error: implicit declaration of function ‘kmalloc’
fs/befs/debug.c:31: warning: initialization makes pointer from integer without a cast
fs/befs/debug.c:42: error: implicit declaration of function ‘kfree’
fs/befs/debug.c: In function ‘befs_warning’:
fs/befs/debug.c:49: warning: initialization makes pointer from integer without a cast
fs/befs/debug.c: In function ‘befs_debug’:
fs/befs/debug.c:73: warning: assignment makes pointer from integer without a cast
make[1]: *** [fs/befs/debug.o] Error 1
make: *** [fs/befs/] Error 2
So add the dependency explicitly.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
LKML-Reference: <1237884230.25315.33.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
We want to remove percpu.h from rcupdate.h (for upcoming kmemtrace
changes), but this is not possible currently without breaking the
build because key.h has an implicit include file dependency on
rwsem.h:
CC [M] fs/cifs/cifs_spnego.o
In file included from include/keys/user-type.h:15,
from fs/cifs/cifs_spnego.c:24:
include/linux/key.h:128: error: field ‘sem’ has incomplete type
make[2]: *** [fs/cifs/cifs_spnego.o] Error 1
make[1]: *** [fs/cifs] Error 2
make: *** [fs] Error 2
Fix it by making the dependency explicit.
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
LKML-Reference: <1237884886.25315.39.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
We want to remove percpu.h from rcupdate.h (for upcoming kmemtrace
changes), but this is not possible currently without breaking the
build because fdtable.h has an implicit include file dependency: it
uses __init does not include init.h.
This can cause build failures on non-x86 architectures:
/home/mingo/tip/include/linux/fdtable.h:66: error: expected '=', ',',
';', 'asm' or '__attribute__' before 'files_defer_init'
make[2]: *** [fs/locks.o] Error 1
We got this header included indirectly via rcupdate.h's percpu.h
inclusion - but if that is not there the build will break.
Fix it.
Cc: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro> Cc: paulmck@linux.vnet.ibm.com
LKML-Reference: <1237898630.25315.83.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Wed, 25 Mar 2009 15:48:35 +0000 (16:48 +0100)]
kmemtrace, fs: uninline simple_transaction_set()
Impact: cleanup
We want to remove percpu.h from rcupdate.h (for upcoming kmemtrace
changes), but this is not possible currently without breaking the
build because fs.h has an implicit include file depedency: it
uses PAGE_SIZE but does not include asm/page.h which defines it.
This problem gets masked in practice because most fs.h using sites
use rcupreempt.h (and other headers) which includes percpu.h which
brings in asm/page.h indirectly.
We cannot add asm/page.h to asm/fs.h because page.h is not an
exported header.
Move simple_transaction_set() to the other simple-transaction
file helpers in fs/libfs.c.
This removes the include file hell and also reduces
kernel size a bit.
Acked-by: Al Viro <viro@zeniv.linux.org.uk> Cc: Alexey Dobriyan <adobriyan@gmail.com> Cc: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro> Cc: paulmck@linux.vnet.ibm.com
LKML-Reference: <1237898630.25315.83.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Pekka Enberg [Tue, 24 Mar 2009 09:59:23 +0000 (11:59 +0200)]
kmemtrace, fs, security: move alloc_secdata() and free_secdata() to linux/security.h
Impact: cleanup
We want to remove percpu.h from rcupdate.h (for upcoming kmemtrace
changes), but this is not possible currently without breaking the
build because fs.h has implicit include file depedencies: it uses
GFP_* types in inlines but does not include gfp.h.
In practice most fs.h using .c files get gfp.h included implicitly,
via an indirect route: via rcupdate.h inclusion - so this underlying
problem gets masked in practice.
So we want to solve fs.h's dependency on gfp.h.
gfp.h can not be included here directly because it is not exported and it
would break the build the following way:
/home/mingo/tip/usr/include/linux/bsg.h:11: found __[us]{8,16,32,64} type without #include <linux/types.h>
/home/mingo/tip/usr/include/linux/fs.h:11: included file 'linux/gfp.h' is not exported
make[3]: *** [/home/mingo/tip/usr/include/linux/.check] Error 1
make[2]: *** [linux] Error 2
As suggested by Alexey Dobriyan, move alloc_secdata() and free_secdata()
to linux/security.h - they belong there. This also cleans fs.h of GFP_*
usage.
Suggested-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro>
LKML-Reference: <1237906803.25315.96.camel@penberg-laptop> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Uwe Kleine-König [Fri, 27 Mar 2009 23:26:58 +0000 (00:26 +0100)]
[MTD] [NAND] move gen_nand's probe function to .devinit.text
A pointer to plat_nand_probe is passed to the core via
platform_driver_register and so the function must not disappear when the
.init sections are discarded. Otherwise (if also having HOTPLUG=y)
unbinding and binding a device to the driver via sysfs will result in an
oops as does a device being registered late.
An alternative to this patch is using platform_driver_probe instead of
platform_driver_register plus removing the pointer to the probe function
from the struct platform_driver.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Hamish Moffatt <hamish@cloud.net.au> Cc: David Brownell <dbrownell@users.sourceforge.net> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Li Zefan <lizf@cn.fujitsu.com> Cc: Vitaly Wool <vitalywool@gmail.com> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Uwe Kleine-König [Fri, 27 Mar 2009 23:27:03 +0000 (00:27 +0100)]
[MTD] [MAPS] move sa1100 flash's probe function to .devinit.text
A pointer to sa1100_mtd_probe is passed to the core via
platform_driver_register and so the function must not disappear when the
.init sections are discarded. Otherwise (if also having HOTPLUG=y)
unbinding and binding a device to the driver via sysfs will result in an
oops as does a device being registered late.
An alternative to this patch is using platform_driver_probe instead of
platform_driver_register plus removing the pointer to the probe function
from the struct platform_driver.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Nicolas Pitre <nico@marvell.com> Cc: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Marcin Slusarz [Sat, 28 Mar 2009 17:44:24 +0000 (18:44 +0100)]
[MTD] fix use after free in register_mtd_blktrans
Reported-by: Dan Carpenter <error27@gmail.com> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Chris Zankel [Thu, 2 Apr 2009 23:58:53 +0000 (16:58 -0700)]
xtensa: only build platform or variant if they contain a Makefile
We only add the platform or variant directory to core-y if it
contains a Makefile. Consequently, we can remove the Makefiles
for the dc232b and fsf processor variants.
Johannes Weiner [Wed, 4 Mar 2009 20:39:12 +0000 (21:39 +0100)]
xtensa: remove platform rtc hooks
platform_get/set_rtc_time() is not implemented by any of the supported
xtensa platforms. Remove the facility completely.
The initial seconds for xtime come from read_persistent_clock() which
returns just 0 in the generic implementation. Platforms that sport a
persistent clock can implement this function.
This is needed to implement the ccount as a clock source.
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Chris Zankel <chris@zankel.net>
Johannes Weiner [Wed, 4 Mar 2009 20:39:12 +0000 (21:39 +0100)]
xtensa: use generic sched_clock()
Current xtensa implementation of sched_clock() is the same as the
generic one. Just remove it, the weak symbol in kernel/sched_clock.c
will be used instead.
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Chris Zankel <chris@zankel.net>
The memory map contains pages starting from pfn ARCH_PFN_OFFSET up to
max_low_pfn. The only zone used right now will span exactly the same
region.
Usually, ARCH_PFN_OFFSET and min_low_pfn are the same value. Handle
them separately for robustness. Gapping pages will be in the memory
map but marked as reserved and won't be touched.
Signed-off-by: Johannes Weiner <jw@emlix.com> Signed-off-by: Chris Zankel <chris@zankel.net>
Johannes Weiner [Wed, 4 Mar 2009 15:21:29 +0000 (16:21 +0100)]
xtensa: don't make bootmem bitmap larger than required
If min_low_pfn is non-zero, the bitmap reserved for bootmem is bigger
than needed. The number of pages bootmem has to maintain is the range
from min_low_pfn to max_low_pfn.
For now it has only been a theoretical mistake, min_low_pfn was always
zero.
Signed-off-by: Johannes Weiner <jw@emlix.com> Signed-off-by: Chris Zankel <chris@zankel.net>
Johannes Weiner [Wed, 4 Mar 2009 15:21:29 +0000 (16:21 +0100)]
xtensa: use correct stack pointer for stack traces
Right now, the xtensa stacktrace code reads the _current_ kernel stack
pointer if nothing is supplied. With debugging facilities like sysrq
this means that the backtrace of the sysrq-handler is printed instead
of a trace of the given task's stack.
When no stack pointer is specified in show_trace() and show_stack(),
use the stack pointer that comes with the handed in task descriptor to
make stack traces more useful.
Signed-off-by: Johannes Weiner <jw@emlix.com> Signed-off-by: Chris Zankel <chris@zankel.net>
Johannes Weiner [Wed, 4 Mar 2009 15:21:28 +0000 (16:21 +0100)]
xtensa: remove redefinition of XCHAL_MMU_ASID_BITS
This constant is defined in all core headers. Remove the redundant
definition which might error out if other includes lead to inclusion
of <variant/core.h>.
Signed-off-by: Johannes Weiner <jw@emlix.com> Signed-off-by: Chris Zankel <chris@zankel.net>
ext3: Add replace-on-rename hueristics for data=writeback mode
In data=writeback mode, start an asynchronous flush when renaming a
file on top of an already-existing file. This lowers the probability
of data loss in the case of applications that attempt to replace a
file via using rename().
ext3: Add replace-on-truncate hueristics for data=writeback mode
In data=writeback mode, start an asynchronous flush when closing a
file which had been previously truncated down to zero. This lowers
the probability of data loss in the case of applications that attempt
to replace a file using truncate.
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
Remove two unneeded exports and make two symbols static in fs/mpage.c
Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225
Trim includes of fdtable.h
Don't crap into descriptor table in binfmt_som
Trim includes in binfmt_elf
Don't mess with descriptor table in load_elf_binary()
Get rid of indirect include of fs_struct.h
New helper - current_umask()
check_unsafe_exec() doesn't care about signal handlers sharing
New locking/refcounting for fs_struct
Take fs_struct handling to new file (fs/fs_struct.c)
Get rid of bumping fs_struct refcount in pivot_root(2)
Kill unsharing fs_struct in __set_personality()
Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (21 commits)
drm/radeon: load the right microcode on rs780
drm: remove unused "can_grow" parameter from drm_crtc_helper_initial_config
drm: fix EDID backward compat check
drm: sync the mode validation for INTERLACE/DBLSCAN
drm: fix typo in edid vendor parsing.
DRM: drm_crtc_helper.h doesn't actually need i2c.h
drm: fix missing inline function on 32-bit powerpc.
drm: Use pgprot_writecombine in GEM GTT mapping to get the right bits for !PAT.
drm/i915: Add a spinlock to protect the active_list
drm/i915: Fix SDVO TV support
drm/i915: Fix SDVO CREATE_PREFERRED_INPUT_TIMING command
drm/i915: Fix error in SDVO DTD and modeline convert
drm/i915: Fix SDVO command debug function
drm/i915: fix TV mode setting in property change
drm/i915: only set TV mode when any property changed
drm/i915: clean up udelay usage
drm/i915: add VGA hotplug support for 945+
drm/i915: correctly set IGD device's gtt size for KMS.
drm/i915: avoid hanging on to a stale pointer to raw_edid.
drm/i915: check for -EINVAL from vm_insert_pfn
...
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (54 commits)
glge: remove unused #include <version.h>
dnet: remove unused #include <version.h>
tcp: miscounts due to tcp_fragment pcount reset
tcp: add helper for counter tweaking due mid-wq change
hso: fix for the 'invalid frame length' messages
hso: fix for crash when unplugging the device
fsl_pq_mdio: Fix compile failure
fsl_pq_mdio: Revive UCC MDIO support
ucc_geth: Pass proper device to DMA routines, otherwise oops happens
i.MX31: Fixing cs89x0 network building to i.MX31ADS
tc35815: Fix build error if NAPI enabled
hso: add Vendor/Product ID's for new devices
ucc_geth: Remove unused header
gianfar: Remove unused header
kaweth: Fix locking to be SMP-safe
net: allow multiple dev per napi with GRO
r8169: reset IntrStatus after chip reset
ixgbe: Fix potential memory leak/driver panic issue while setting up Tx & Rx ring parameters
ixgbe: fix ethtool -A|a behavior
ixgbe: Patch to fix driver panic while freeing up tx & rx resources
...
Jack Steiner [Thu, 2 Apr 2009 23:59:48 +0000 (16:59 -0700)]
cpumask: fix slab corruption caused by alloc_cpumask_var_node()
Fix slab corruption caused by alloc_cpumask_var_node() overwriting the
tail end of an off-stack cpumask.
The function zeros out cpumask bits beyond the last possible cpu. The
starting point for zeroing should be the beginning of the mask offset by a
byte count derived from the number of possible cpus. The offset was
calculated in bits instead of bytes. This resulted in overwriting the end
of the cpumask.
Signed-off-by: Jack Steiner <steiner@sgi.com> Acked-by: Mike Travis <travis.sgi.com> Acked-by: Ingo Molnar <mingo@elte.hu> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Cc: <stable@kernel.org> [2.6.29.x] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Robin Holt [Thu, 2 Apr 2009 23:59:45 +0000 (16:59 -0700)]
Factor out #ifdefs from kernel/spinlock.c to LOCK_CONTENDED_FLAGS
SGI has observed that on large systems, interrupts are not serviced for a
long period of time when waiting for a rwlock. The following patch series
re-enables irqs while waiting for the lock, resembling the code which is
already there for spinlocks.
I only made the ia64 version, because the patch adds some overhead to the
fast path. I assume there is currently no demand to have this for other
architectures, because the systems are not so large. Of course, the
possibility to implement raw_{read|write}_lock_flags for any architecture
is still there.
This patch:
The new macro LOCK_CONTENDED_FLAGS expands to the correct implementation
depending on the config options, so that IRQ's are re-enabled when
possible, but they remain disabled if CONFIG_LOCKDEP is set.
Signed-off-by: Petr Tesarik <ptesarik@suse.cz> Signed-off-by: Robin Holt <holt@sgi.com> Cc: <linux-arch@vger.kernel.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Coly Li [Thu, 2 Apr 2009 23:59:41 +0000 (16:59 -0700)]
fs/reiserfs: return f_fsid for statfs(2)
Make reiserfs3 return f_fsid info for statfs(2). By Andreas' suggestion,
this patch populates a persistent f_fsid between boots/mounts with help of
on-disk uuid record.
Randy Dunlap reported a compiling error from v2 patch like:
fs/built-in.o: In function `reiserfs_statfs':
super.c:(.text+0x7332b): undefined reference to `crc32_le'
super.c:(.text+0x7333f): undefined reference to `crc32_le'
Also he provided helpful solution to fix this error. The modification of v3
patch is based on Randy's suggestion, add 'select CRC32' in fs/reiserfs/Kconfig.
Signed-off-by: Coly Li <coly.li@suse.de> Cc: Randy Dunlap <randy.dunlap@oracle.com> Cc: Jeff Mahoney <jeffm@suse.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Coly Li [Thu, 2 Apr 2009 23:59:38 +0000 (16:59 -0700)]
fs/isofs: return f_fsid for statfs(2)
Make isofs return f_fsid info for statfs(2).
Signed-off-by: Coly Li <coly.li@suse.de> Cc: Jan Kara <jack@ucw.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Coly Li [Thu, 2 Apr 2009 23:59:27 +0000 (16:59 -0700)]
fs/adfs: return f_fsid for statfs(2)
Currently many file systems in Linux kernel do not return f_fsid in statfs
info, the value is set as 0 in vfs layer. Anyway, in some conditions,
f_fsid from statfs(2) is useful, especially being used as (f_fsid, ino)
pair to uniquely identify a file.
Basic idea of the patches is generating a unique fs ID by
huge_encode_dev(sb->s_bdev->bd_dev) during file system mounting life time
(no endian consistent issue). sb is a point of struct super_block of
current mounted file system being accessed by statfs(2).
This patch:
Make adfs return f_fsid info for statfs(2), and do a little variable
renaming in adfs_statfs().
Signed-off-by: Coly Li <coly.li@suse.de> Cc: Roman Zippel <zippel@linux-m68k.org> Cc: "Sergey S. Kostyliov" <rathamahata@php4.ru> Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Cc: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> Cc: Dave Kleikamp <shaggy@austin.ibm.com> Cc: Bob Copeland <me@bobcopeland.com> Cc: Anders Larsen <al@alarsen.net> Cc: Phillip Lougher <phillip@lougher.demon.co.uk> Cc: Christoph Hellwig <hch@infradead.org> Cc: Evgeniy Dushistov <dushistov@mail.ru> Cc: Jan Kara <jack@suse.cz> Cc: Andreas Dilger <adilger@sun.com> Cc: Jamie Lokier <jamie@shareable.org> Cc: Theodore Ts'o <tytso@mit.edu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
preadv/pwritev: Add preadv and pwritev system calls.
This patch adds preadv and pwritev system calls. These syscalls are a
pretty straightforward combination of pread and readv (same for write).
They are quite useful for doing vectored I/O in threaded applications.
Using lseek+readv instead opens race windows you'll have to plug with
locking.
Other systems have such system calls too, for example NetBSD, check
here: http://www.daemon-systems.org/man/preadv.2.html
The application-visible interface provided by glibc should look like
this to be compatible to the existing implementations in the *BSD family:
This prototype has one problem though: On 32bit archs is the (64bit)
offset argument unaligned, which the syscall ABI of several archs doesn't
allow to do. At least s390 needs a wrapper in glibc to handle this. As
we'll need a wrappers in glibc anyway I've decided to push problem to
glibc entriely and use a syscall prototype which works without
arch-specific wrappers inside the kernel: The offset argument is
explicitly splitted into two 32bit values.
The patch sports the actual system call implementation and the windup in
the x86 system call tables. Other archs follow as separate patches.
David VomLehn [Thu, 2 Apr 2009 23:59:15 +0000 (16:59 -0700)]
cramfs: propagate uncompression errors
Decompression errors can arise due to corruption of compressed blocks on
flash or in memory. This patch propagates errors detected during
decompression back to the block layer.
Signed-off-by: David VomLehn <dvomlehn@cisco.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Robin Holt [Thu, 2 Apr 2009 23:59:14 +0000 (16:59 -0700)]
xpc_sn2: fix max() warning about pointers of different types
Fix a minor compile warning when building on ia64.
drivers/misc/sgi-xp/xpc_sn2.c: In function `xpc_clear_remote_msgqueue_flags_sn2':
drivers/misc/sgi-xp/xpc_sn2.c:1746: warning: comparison of distinct pointer types lacks a cast
Signed-off-by: Robin Holt <holt@sgi.com> Cc: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Robin Holt [Thu, 2 Apr 2009 23:59:13 +0000 (16:59 -0700)]
sgi-gru: remove SGI_GRU as a valid config option for ia64 configs with SGI_UV
Some current configs turn on GRU for ia64. The GRU code does not
correctly load on boot on ia64 (GRU does continue to work for x86-64), so
changing the IA64 Kconfig to not select GRU on ia64 configs for now until
we have time to fix.
Signed-off-by: Robin Holt <holt@sgi.com> Acked-by: Jack Steiner <steiner@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>