Linus Torvalds [Mon, 27 Apr 2009 18:16:33 +0000 (11:16 -0700)]
Merge git://git./linux/kernel/git/mason/btrfs-unstable
* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
Btrfs: look for acls during btrfs_read_locked_inode
Btrfs: fix acl caching
Btrfs: Fix a bunch of printk() warnings.
Btrfs: Fix a trivial warning using max() of u64 vs ULL.
Btrfs: remove unused btrfs_bit_radix slab
Btrfs: ratelimit IO error printks
Btrfs: remove #if 0 code
Btrfs: When shrinking, only update disk size on success
Btrfs: fix deadlocks and stalls on dead root removal
Btrfs: fix fallocate deadlock on inode extent lock
Btrfs: kill btrfs_cache_create
Btrfs: don't export symbols
Btrfs: simplify makefile
Btrfs: try to keep a healthy ratio of metadata vs data block groups
Chris Mason [Mon, 27 Apr 2009 15:47:50 +0000 (11:47 -0400)]
Btrfs: look for acls during btrfs_read_locked_inode
This changes btrfs_read_locked_inode() to peek ahead in the btree for acl items.
If it is certain a given inode has no acls, it will set the in memory acl
fields to null to avoid acl lookups completely.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 27 Apr 2009 14:49:53 +0000 (10:49 -0400)]
Btrfs: fix acl caching
Linus noticed the btrfs code to cache acls wasn't properly caching
a NULL acl when the inode didn't have any acls. This meant the common
case of no acls resulted in expensive btree searches every time the
kernel checked permissions (which is quite often).
This is a modified version of Linus' original patch:
Properly set initial acl fields to BTRFS_ACL_NOT_CACHED in the inode.
This forces an acl lookup when permission checks are done.
Fix btrfs_get_acl to avoid lookups and locking when the inode acls fields
are set to null.
Fix btrfs_get_acl to use the right return value from __btrfs_getxattr
when deciding to cache a NULL acl. It was storing a NULL acl when
__btrfs_getxattr return -ENOENT, but __btrfs_getxattr was actually returning
-ENODATA for this case.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Linus Torvalds [Mon, 27 Apr 2009 15:54:43 +0000 (08:54 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ALSA: Fix Trivial Warnining in sound/pci/cmipci.c
ALSA: snd-usb-caiaq: fix reported elapsed periods
ASoC: s3c-i2s-v2 needs to declare a license for modular builds
ALSA: hda - Fix init verbs of
AD1884A mobile model
ASoC: remove non-existing referece to CONFIG_SND_SOC_CODEC_WM8991
ASoC: Fix WM8580 volume update handling for large register changes
ASoC: Fix offset of freqmode in WM8580 PLL configuration
Linus Torvalds [Mon, 27 Apr 2009 15:40:00 +0000 (08:40 -0700)]
Merge branch 'for_linus' of git://git./linux/kernel/git/jack/linux-quota-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-quota-2.6:
ext2: missing unlock in ext2_quota_write()
quota: remove obsolete comments in fs/quota/Makefile
Linus Torvalds [Mon, 27 Apr 2009 15:39:02 +0000 (08:39 -0700)]
Merge branch 'for_linus' of git://git./linux/kernel/git/tytso/ext4
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
ext4: Do not try to validate extents on special files
ext4: Ignore i_file_acl_high unless EXT4_FEATURE_INCOMPAT_64BIT is present
ext4: Fix softlockup caused by illegal i_file_acl value in on-disk inode
Linus Torvalds [Mon, 27 Apr 2009 15:38:51 +0000 (08:38 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/jmorris/security-testing-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:
ptrace: ptrace_attach: fix the usage of ->cred_exec_mutex
Linus Torvalds [Mon, 27 Apr 2009 15:38:15 +0000 (08:38 -0700)]
Merge branch 'sh/for-2.6.30' of git://git./linux/kernel/git/lethal/sh-2.6
* 'sh/for-2.6.30' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
sh: Fix up unsigned syscall_nr in SH-5 pt_regs.
maple: input: fix up maple mouse driver
sh: sh7785lcr: fix defconfig for 29-bit mode
Takashi Iwai [Mon, 27 Apr 2009 15:15:44 +0000 (17:15 +0200)]
Merge branch 'fix/misc' into for-linus
* fix/misc:
ALSA: Fix Trivial Warnining in sound/pci/cmipci.c
Takashi Iwai [Mon, 27 Apr 2009 15:15:41 +0000 (17:15 +0200)]
Merge branch 'fix/caiaq' into for-linus
* fix/caiaq:
ALSA: snd-usb-caiaq: fix reported elapsed periods
Takashi Iwai [Mon, 27 Apr 2009 15:15:35 +0000 (17:15 +0200)]
Merge branch 'fix/hda' into for-linus
* fix/hda:
ALSA: hda - Fix init verbs of
AD1884A mobile model
Takashi Iwai [Mon, 27 Apr 2009 15:15:32 +0000 (17:15 +0200)]
Merge branch 'fix/asoc' into for-linus
* fix/asoc:
ASoC: s3c-i2s-v2 needs to declare a license for modular builds
ASoC: remove non-existing referece to CONFIG_SND_SOC_CODEC_WM8991
ASoC: Fix WM8580 volume update handling for large register changes
ASoC: Fix offset of freqmode in WM8580 PLL configuration
David Howells [Mon, 27 Apr 2009 10:55:23 +0000 (11:55 +0100)]
FRV: Stop gcc from generating uninitialised variable warnings after BUG()
Stop gcc from generating uninitialised variable warnings after BUG().
The problem is that FRV's call into its gdbstub appears to return (if
the function is marked noreturn, then the compiler is under no
obligation to pass it a return address, and so GDB won't know where the
bug happened).
To get around this, we make the do...while wrapper in _debug_bug_trap()
an endless loop from which there's no escape.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
David Howells [Mon, 27 Apr 2009 10:55:17 +0000 (11:55 +0100)]
FRV: Wire up new syscalls
Wire up new system calls for the FRV arch (preadv and pwritev).
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Dan Carpenter [Thu, 9 Apr 2009 16:07:10 +0000 (18:07 +0200)]
ext2: missing unlock in ext2_quota_write()
The inode->i_mutex should be unlocked.
Found by smatch (http://repo.or.cz/w/smatch.git). Compile tested.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Christoph Hellwig [Tue, 7 Apr 2009 16:10:06 +0000 (18:10 +0200)]
quota: remove obsolete comments in fs/quota/Makefile
Get rid of useless comments and the equally useless obj-y
initialization.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Joel Becker [Tue, 21 Apr 2009 19:38:29 +0000 (12:38 -0700)]
Btrfs: Fix a bunch of printk() warnings.
Just happened to notice a bunch of %llu vs u64 warnings. Here's a patch
to cast them all.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Joel Becker [Tue, 21 Apr 2009 19:38:30 +0000 (12:38 -0700)]
Btrfs: Fix a trivial warning using max() of u64 vs ULL.
A small warning popped up on ia64 because inode-map.c was comparing a
u64 object id with the ULL FIRST_FREE_OBJECTID. My first thought was
that all the OBJECTID constants should contain the u64 cast because
btrfs code deals entirely in u64s. But then I saw how large that was,
and figured I'd just fix the max() call.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 27 Apr 2009 11:49:10 +0000 (07:49 -0400)]
Btrfs: remove unused btrfs_bit_radix slab
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Subrata Modak [Mon, 27 Apr 2009 11:12:37 +0000 (16:42 +0530)]
ALSA: Fix Trivial Warnining in sound/pci/cmipci.c
Fixed the compile warning below by initializatin iomidi variable properly.
sound/pci/cmipci.c: In function ‘snd_cmipci_probe’:
sound/pci/cmipci.c:3017: warning: ‘iomidi’ may be used uninitialized in this function
Signed-off-by: Subrata Modak <subrata@linux.vnet.ibm.com>
Cc: linux-pci <linux-pci@atrey.karlin.mff.cuni.cz>
Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
Cc: Sachin P Sant <sachinp@linux.vnet.ibm.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Chris Mason [Mon, 27 Apr 2009 11:29:05 +0000 (07:29 -0400)]
Btrfs: ratelimit IO error printks
Btrfs has printks for various IO errors, including bad checksums and
mismatches between what we expect the block headers to contain and what
we actually find on the disk.
Longer term we need a real reporting mechanism for this, but for now
printk is going to have to do.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Mon, 27 Apr 2009 11:29:04 +0000 (07:29 -0400)]
Btrfs: remove #if 0 code
Btrfs had some old code sitting around under #if 0, this drops it.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Ball [Mon, 27 Apr 2009 11:29:03 +0000 (07:29 -0400)]
Btrfs: When shrinking, only update disk size on success
Previously, we updated a device's size prior to attempting a shrink
operation. This patch moves the device resizing logic to only happen if
the shrink completes successfully. In the process, it introduces a new
field to btrfs_device -- disk_total_bytes -- to track the on-disk size.
Signed-off-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Daniel Mack [Mon, 27 Apr 2009 10:18:05 +0000 (12:18 +0200)]
ALSA: snd-usb-caiaq: fix reported elapsed periods
Reset the internal period position counter upon stream startup. This
fixes initial aplay underruns and problems related to latency picky
applications such as pulseaudio.
Bumped the version number to 1.3.14.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Oleg Nesterov [Sun, 26 Apr 2009 23:41:34 +0000 (01:41 +0200)]
ptrace: ptrace_attach: fix the usage of ->cred_exec_mutex
ptrace_attach() needs task->cred_exec_mutex, not current->cred_exec_mutex.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Roland McGrath <roland@redhat.com>
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <jmorris@namei.org>
Paul Mundt [Mon, 27 Apr 2009 08:05:38 +0000 (17:05 +0900)]
sh: Fix up unsigned syscall_nr in SH-5 pt_regs.
syscall_nr is presently defined as unsigned in the SH-5 pt_regs,
while the syscall restarting code wants it to be signed. Fix this
up, and bring it in line with the other SH parts.
Reported-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Adrian McMenamin [Sat, 25 Apr 2009 20:43:18 +0000 (20:43 +0000)]
maple: input: fix up maple mouse driver
The maple mouse driver currently in mainline is broken:
bash-3.1# modprobe maplemouse
[ 56.886378] input: Dreamcast Mouse as /devices/virtual/input/input3
[ 56.918379] Unable to handle kernel NULL pointer dereference at virtual address
00000004
[ 56.930543] pc =
c003304e
[ 56.934973] *pde =
00000000
[ 56.944948] Oops: 0000 [#1]
[ 56.947867] Modules linked in: maplemouse(+)
[ 56.952353]
[ 56.953921] Pid : 1157, Comm: \0x09\0x09modprobe
[ 56.958021] CPU : 0 \0x09\0x09Not tainted (
2.6.30-rc2-00130-g3e98f9f #1)
[ 56.958052]
[ 56.966567] PC is at dc_mouse_open+0xe/0x40 [maplemouse]
[ 56.972125] PR is at input_open_device+0x8a/0xc0
[ 56.976944] PC :
c003304e SP :
8c88bdcc SR :
40008100 TEA :
c0033834
[ 56.983854] R0 :
000006c4 R1 :
00000000 R2 :
40008101 R3 :
00000000
[ 56.990744] R4 :
8c8db800 R5 :
c0033080 R6 :
00000005 R7 :
00000200
[ 56.997635] R8 :
8c8db800 R9 :
8c8dbe3c R10 :
00000000 R11 :
8c98881c
[ 57.004525] R12 :
8c8dbe64 R13 :
8ca50140 R14 :
8c88bdd4
[ 57.010063] MACH:
00000497 MACL:
00000348 GBR :
29674440 PR :
8c1b4d0a
[ 57.016939]
...
Here is a fix for this, keeping an open and close, so reducing
the load on the system when the mouse is not in use, and also properly
referencing the maple device buffer following the recent update.
Signed-off-by: Adrian McMenamin <adrian@mcmen.demon.co.uk>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Yoshihiro Shimoda [Wed, 22 Apr 2009 10:50:19 +0000 (10:50 +0000)]
sh: sh7785lcr: fix defconfig for 29-bit mode
Fix the problem that cannot work 29-bit mode when use sh7785lcr_defconfig.
Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Linus Torvalds [Sun, 26 Apr 2009 17:29:38 +0000 (10:29 -0700)]
Merge branch 'x86-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
x86, hpet: Stop soliciting hpet=force users on ICH4M
x86: check boundary in setup_node_bootmem()
uv_time: add parameter to uv_read_rtc()
x86: hpet: fix periodic mode programming on AMD 81xx
x86: more than 8 32-bit CPUs requires X86_BIGSMP
x86: avoid theoretical spurious NMI backtraces with CONFIG_CPUMASK_OFFSTACK=y
x86: fix boot crash in NMI watchdog with CONFIG_CPUMASK_OFFSTACK=y and flat APIC
x86-64: fix FPU corruption with signals and preemption
x86/uv: fix for no memory at paddr 0
docs, x86: add nox2apic back to kernel-parameters.txt
x86: mm/numa_32.c calculate_numa_remap_pages should use __init
x86, kbuild: make "make install" not depend on vmlinux
x86/uv: fix init of cpu-less nodes
x86/uv: fix init of memory-less nodes
Linus Torvalds [Sun, 26 Apr 2009 17:29:18 +0000 (10:29 -0700)]
Merge branch 'irq-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip
* 'irq-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
x86/irq: mark NUMA_MIGRATE_IRQ_DESC broken
x86, irq: Remove IRQ_DISABLED check in process context IRQ move
Linus Torvalds [Sun, 26 Apr 2009 17:29:01 +0000 (10:29 -0700)]
Merge branch 'core-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip
* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
locking: clarify kernel-taint warning message
lockdep, x86: account for irqs enabled in paranoid_exit
lockdep: more robust lockdep_map init sequence
Tim Abbott [Sun, 26 Apr 2009 02:11:08 +0000 (22:11 -0400)]
sparc: convert to use __HEAD and HEAD_TEXT macros.
This has the consequence of changing the section name use for head
code from ".text.head" to ".head.text". Since this commit changes all
users in the architecture, this change should be harmless.
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Cc: David S. Miller <davem@davemloft.net>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Tim Abbott [Sun, 26 Apr 2009 02:11:07 +0000 (22:11 -0400)]
sh: convert to use __HEAD and HEAD_TEXT macros.
This has the consequence of changing the section name use for head
code from ".text.head" to ".head.text". Since this commit changes all
users in the architecture, this change should be harmless.
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Cc: Paul Mundt <lethal@linux-sh.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Tim Abbott [Sun, 26 Apr 2009 02:11:06 +0000 (22:11 -0400)]
s390: convert to use __HEAD and HEAD_TEXT macros.
This has the consequence of changing the section name use for head
code from ".text.head" to ".head.text". Since this commit changes all
users in the architecture, this change should be harmless.
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Tim Abbott [Sun, 26 Apr 2009 02:11:05 +0000 (22:11 -0400)]
powerpc: convert to use __HEAD and HEAD_TEXT macros.
This has the consequence of changing the section name use for head
code from ".text.head" to ".head.text". Since this commit changes all
users in the architecture, this change should be harmless.
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Tim Abbott [Sun, 26 Apr 2009 02:11:04 +0000 (22:11 -0400)]
mn10300: convert to use __HEAD and HEAD_TEXT macros.
This has the consequence of changing the section name use for head
code from ".text.head" to ".head.text". Since this commit changes all
users in the architecture, this change should be harmless.
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Cc: David Howells <dhowells@redhat.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Tim Abbott [Sun, 26 Apr 2009 02:11:03 +0000 (22:11 -0400)]
m68k: convert to use __HEAD and HEAD_TEXT macros.
This has the consequence of changing the section name use for head
code from ".text.head" to ".head.text". Since this commit changes all
users in the architecture, this change should be harmless.
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Tim Abbott [Sun, 26 Apr 2009 02:11:02 +0000 (22:11 -0400)]
m32r: convert to use __HEAD and HEAD_TEXT macros.
This has the consequence of changing the section name use for head
code from ".text.head" to ".head.text". Since this commit changes all
users in the architecture, this change should be harmless.
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Tim Abbott [Sun, 26 Apr 2009 02:10:59 +0000 (22:10 -0400)]
frv: convert frv to use __HEAD and HEAD_TEXT macros.
This has the consequence of changing the section name use for head
code from ".text.head" to ".head.text". Since this commit changes all
users in the architecture, this change should be harmless.
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Cc: David Howells <dhowells@redhat.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Tim Abbott [Sun, 26 Apr 2009 02:10:58 +0000 (22:10 -0400)]
alpha: convert to use __HEAD and HEAD_TEXT macros.
This has the consequence of changing the section name use for head
code from ".text.head" to ".head.text". Since this commit changes all
users in the architecture, this change should be harmless.
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Cc: Richard Henderson <rth@twiddle.net>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Tim Abbott [Sun, 26 Apr 2009 02:10:57 +0000 (22:10 -0400)]
xtensa: convert to use __HEAD and HEAD_TEXT macros.
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Cc: Chris Zankel <chris@zankel.net>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Tim Abbott [Sun, 26 Apr 2009 02:10:56 +0000 (22:10 -0400)]
Add new HEAD_TEXT_SECTION macro.
This patch is preparation for replacing all uses of ".head.text" or
".text.head" in the kernel with macros, so that the section name can
later be changed without having to touch a lot of the kernel.
Since some linker scripts do more complex things than referencing
HEAD_TEXT, we add a HEAD_TEXT_SECTION macro that just contains the
actual name.
I've defined HEAD_TEXT_SECTION in a new header,
include/linux/section-names.h, so that this section name only needs to
appear in one place. I anticipate creating similar macro structures
for a number of other section names.
The long-term goal here is to be able to change the kernel's magic
section names to those that are compatible with -ffunction-sections
-fdata-sections. This requires renaming all magic sections with names
of the form ".text.foo".
Signed-off-by: Tim Abbott <tabbott@mit.edu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Theodore Ts'o [Fri, 24 Apr 2009 22:45:35 +0000 (18:45 -0400)]
ext4: Do not try to validate extents on special files
The EXTENTS_FL flag should never be set on special files, but if it
is, don't bother trying to validate that the extents tree is valid,
since only files, directories, and non-fast symlinks will ever have an
extent data structure. We perhaps should flag the filesystem as being
corrupted if we see a special file (named pipes, device nodes, Unix
domain sockets, etc.) with the EXTENTS_FL flag, but e2fsck doesn't
currently check this case, so we'll just ignore this for now, since
it's harmless.
Without this fix, a special device with the extents flag is flagged as
an error by the kernel, so it is impossible to access or delete the
inode, but e2fsck doesn't see it as a problem, leading to
confused/frustrated users.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Rafael J. Wysocki [Fri, 24 Apr 2009 22:16:06 +0000 (00:16 +0200)]
PM/Hibernate: Fix waiting for image device to appear on resume
Commit
c751085943362143f84346d274e0011419c84202 ("PM/Hibernate: Wait for
SCSI devices scan to complete during resume") added a call to
scsi_complete_async_scans() to software_resume(), so that it waited for
the SCSI scanning to complete, but the call was added at a wrong place.
Namely, it should have been added after wait_for_device_probe(), which
is called only if the image partition hasn't been specified yet. Also,
it's reasonable to check if the image partition is present and only wait
for the device probing and SCSI scanning to complete if it is not the
case.
Additionally, since noresume is checked right at the beginning of
software_resume() and the function returns immediately if it's set, it
doesn't make sense to check it once again later.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
David Howells [Thu, 23 Apr 2009 15:41:18 +0000 (16:41 +0100)]
ROMFS: Advance destination buffer pointer when reading from a blockdev
RomFS should advance the destination buffer pointer when reading data from a
blockdev source (the data may be split over multiple blocks, each requiring its
own sb_read() call). Without this, all the data is copied to the beginning of
the output buffer.
Signed-off-by: David Howells <dhowells@redhat.com>
Tested-by: Michal Simek <monstr@monstr.eu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
David Howells [Thu, 23 Apr 2009 15:41:13 +0000 (16:41 +0100)]
ROMFS: romfs_lookup() shouldn't be doing a partial name comparison
romfs_lookup() should be using a routine akin to strcmp() on the backing store,
rather than one akin to strncmp(). If it uses the latter, it's liable to match
/bin/shutdown when looking up /bin/sh.
Signed-off-by: David Howells <dhowells@redhat.com>
Tested-by: Michal Simek <monstr@monstr.eu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Fred Isaman [Thu, 23 Apr 2009 13:40:32 +0000 (16:40 +0300)]
lib: find_last_bit.o needed by a module only, move it from lib to obj
Currently, although find_last_bit is EXPORTed, it is statically linked
with the kernel and is referenced only under CONFIG_SMP.
When CONFIG_SMP is undefined and find_last_bit is referenced only by
modules, linking fails with:
ERROR: "find_last_bit" [fs/nfs/nfs.ko] undefined!
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Fred Isaman <iisaman@citi.umich.edu>
Signed-off-by: Benny Halevy <bhalevy@panasas.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Marc Dionne [Thu, 23 Apr 2009 10:21:55 +0000 (11:21 +0100)]
CacheFiles: Fix the documentation to use the correct credential pointer names
Adjust the CacheFiles documentation to use the correct names of the credential
pointers in task_struct.
The documentation was using names from the old versions of the credentials
patches.
Signed-off-by: Marc Dionne <marc.c.dionne@gmail.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Christian Borntraeger [Thu, 23 Apr 2009 07:12:59 +0000 (16:42 +0930)]
virtio-rng: Remove false BUG for spurious callbacks
The virtio-rng drivers checks for spurious callbacks. Since
callbacks can be implemented via shared interrupts (e.g. PCI) this
could lead to guest kernel oopses with lots of virtio devices.
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Theodore Ts'o [Fri, 24 Apr 2009 20:11:18 +0000 (16:11 -0400)]
ext4: Ignore i_file_acl_high unless EXT4_FEATURE_INCOMPAT_64BIT is present
Don't try to look at i_file_acl_high unless the INCOMPAT_64BIT feature
bit is set. The field is normally zero, but older versions of e2fsck
didn't automatically check to make sure of this, so in the spirit of
"be liberal in what you accept", don't look at i_file_acl_high unless
we are using a 64-bit filesystem.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Chris Mason [Fri, 24 Apr 2009 18:39:25 +0000 (14:39 -0400)]
Btrfs: fix deadlocks and stalls on dead root removal
After a transaction commit, the old root of the subvol btrees are sent through
snapshot removal. This is what actually frees up any blocks replaced by
COW, and anything the old blocks pointed to.
Snapshot deletion will pause when a transaction commit has started, which
helps to avoid a huge amount of delayed reference count updates piling up
as the transaction is trying to close.
But, this pause happens after the snapshot deletion process has asked other
procs on the system to throttle back a bit so that it can make progress.
We don't want to throttle everyone while we're waiting for the transaction
commit, it leads to deadlocks in the user transaction ioctls used by Ceph
and makes things slower in general.
This patch changes things to avoid the throttling while we sleep.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Chris Mason [Fri, 24 Apr 2009 18:39:24 +0000 (14:39 -0400)]
Btrfs: fix fallocate deadlock on inode extent lock
The btrfs fallocate call takes an extent lock on the entire range
being fallocated, and then runs through insert_reserved_extent on each
extent as they are allocated.
The problem with this is that btrfs_drop_extents may decide to try
and take the same extent lock fallocate was already holding. The solution
used here is to push down knowledge of the range that is already locked
going into btrfs_drop_extents.
It turns out that at least one other caller had the same bug.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Christoph Hellwig [Mon, 13 Apr 2009 13:33:09 +0000 (15:33 +0200)]
Btrfs: kill btrfs_cache_create
Just use kmem_cache_create directly.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Christoph Hellwig [Mon, 13 Apr 2009 13:33:56 +0000 (15:33 +0200)]
Btrfs: don't export symbols
Currently the extent_map code is only for btrfs so don't export it's
symbols.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Christoph Hellwig [Mon, 13 Apr 2009 13:32:28 +0000 (15:32 +0200)]
Btrfs: simplify makefile
Get rid of the hacks for building out of tree, and always use += for
assigning to the object lists.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Josef Bacik [Tue, 21 Apr 2009 21:40:57 +0000 (17:40 -0400)]
Btrfs: try to keep a healthy ratio of metadata vs data block groups
This patch makes the chunk allocator keep a good ratio of metadata vs data
block groups. By default for every 8 data block groups, we'll allocate 1
metadata chunk, or about 12% of the disk will be allocated for metadata. This
can be changed by specifying the metadata_ratio mount option.
This is simply the number of data block groups that have to be allocated to
force a metadata chunk allocation. By making sure we allocate metadata chunks
more often, we are less likely to get into situations where the whole disk
has been allocated as data block groups.
Signed-off-by: Josef Bacik <jbacik@redhat.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Theodore Ts'o [Fri, 24 Apr 2009 17:43:20 +0000 (13:43 -0400)]
ext4: Fix softlockup caused by illegal i_file_acl value in on-disk inode
If the block containing external extended attributes (which is stored
in i_file_acl and i_file_acl_high) is larger than the on-disk
filesystem, the process which tried to access the extended attributes
will endlessly issue kernel printks complaining that
"__find_get_block_slow() failed", locking up that CPU until the system
is forcibly rebooted.
So when we read in the inode, make sure the i_file_acl value is legal,
and if not, flag the filesystem as being corrupted.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Linus Torvalds [Fri, 24 Apr 2009 15:54:30 +0000 (08:54 -0700)]
Merge branch 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze
* 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze:
microblaze: add parameter to microblaze_read()
microblaze: Use CFLAGS_KERNEL instead of CFLAGS
microblaze: Add STATE_SAVE_ARG_SPACE for noMMU kernel too
microblaze: Do not check use_dcache
microblaze: Do not use PVR configuration for broken MB version
microblaze: Fix USR1/2 pvr printing message
microblaze: iowrite upon timeout
microblaze: Correspond CONFIG...PCMP in Makefile/Kconfig
microblaze: Remove redundant variable
microblaze: Move start_thread to process.c
microblaze: Add missing preadv and pwritev syscalls
microblaze: Add missing declaration for die and _exception func
microblaze: Remove sparse error in traps.c
microblaze: Move task_pt_regs up
microblaze: Rename kernel_mode to pt_mode in pt_regs
microblaze: Remove uncache shadow condition
microblaze: Remove while(1) loop from show_regs function
microblaze: Remove unneded per cpu SYSCALL_SAVE variable
Linus Torvalds [Fri, 24 Apr 2009 15:48:17 +0000 (08:48 -0700)]
Merge branch 'release' of git://git./linux/kernel/git/lenb/linux-acpi-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (34 commits)
ACPI, i915: Register ACPI video even when not modesetting
Revert "ACPICA: delete check for AML access to port 0x81-83"
I/O port protection: update for windows compatibility.
sony-laptop: always try to unblock rfkill on load
sony-laptop: fix bogus error message display on resume
ACPI: EC: Fix ACPI EC resume non-query interrupt message
sony-laptop: SNC input event 38 fix
sony-laptop: SNC 127 Initialization Fix
sony-laptop: Duplicate SNC 127 Event Fix
ACPI: prevent processor.max_cstate=0 boot crash
ACPI/hpet: prevent boot hang when hpet=force used on ICH-4M
ACPI: delete obsolete "bus master activity" proc field
ACPI: idle: mark_tsc_unstable() at init-time, not run-time
ACPI: add /sys/firmware/acpi/interrupts/sci_not counter
ACPI video: fix an error when the brightness levels on AC and on Battery are same
acpi-cpufreq: Do not let get_measured perf depend on internal variable
acpi-cpufreq: style-only: add parens to math expression
acpi-cpufreq: Cleanup: Use printk_once
x86, acpi_cpufreq: Fix the NULL pointer dereference in get_measured_perf
thinkpad-acpi: bump up version to 0.23
...
Linus Torvalds [Fri, 24 Apr 2009 15:45:53 +0000 (08:45 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/gerg/m68knommu
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
m68knommu: update the default config for the ColdFire 5407C3 board
m68knommu: update the default config for the ColdFire 5307C3 board
m68knommu: update the default config for the ColdFire 5257EVB board
m68knommu: update the default config for the ColdFire 5249EVB.
m68knommu: add a defconfig for the ColdFire M5272C3 board
m68knommu: update the defconfig for the ColdFire 5208evb board
m68knommu: fix DMA support for ColdFire
m68knommu: remove unused kernel stats offsets
m68knommu: fix missing .data.cacheline_aligned section
m68knommu: Fixed GPIO pin initialization for CONFIG_M5271 FEC.
Linus Torvalds [Fri, 24 Apr 2009 15:37:40 +0000 (08:37 -0700)]
Merge branch 'for_linus' of git://git./linux/kernel/git/tytso/ext4
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
ext4: Fix potential inode allocation soft lockup in Orlov allocator
ext4: Make the extent validity check more paranoid
jbd: use SWRITE_SYNC_PLUG when writing synchronous revoke records
jbd2: use SWRITE_SYNC_PLUG when writing synchronous revoke records
ext4: really print the find_group_flex fallback warning only once
Linus Torvalds [Fri, 24 Apr 2009 15:36:41 +0000 (08:36 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] 5460/1: Orion: reduce namespace pollution
[ARM] 5458/1: pcmcia: pxa2xx-sharpsl: check if we do have Scoop config
[ARM] 5457/1: mach-imx gpio buildfix
[ARM] 5456/1: add sys_preadv and sys_pwritev
[ARM] pxa/pcm990: start external GPIOs immediately after built-in ones
[ARM] pxa/palm27x: General fix for Palm27x aSoC driver
[ARM] pxa/mioa701: use GPIO95 as AC97 reset line
[ARM] pxa: merge AC97 platform data structures
[ARM] pxa/magician: remove un-necessary #include of pxa-regs.h and hardware.h
Linus Torvalds [Fri, 24 Apr 2009 15:36:06 +0000 (08:36 -0700)]
Merge git://git./linux/kernel/git/gregkh/usb-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
USB: pwc : do not pass stack allocated buffers to USB core.
USB: otg: Fix bug on remove path without transceiver
USB: correct error handling in cdc-wdm
USB: removal of tty->low_latency hack dating back to the old serial code
USB: serial: sierra driver bug fix for composite interface
USB: gadget: omap_udc uses platform_driver_probe()
USB: ci13xxx_udc: fix build error
USB: musb: Prevent multiple includes of musb.h
USB: pass mem_flags to dma_alloc_coherent
USB: g_file_storage: fix use-after-free bug when closing files
USB: ehci-sched.c: EHCI SITD scheduling bugfix
USB: fix mos7840 problem with minor numbers
USB: mos7840: add new device id
USB: musb: fix build when !CONFIG_PM
USB: musb: Remove my email address from few musb related drivers
USB: Gadget: MIPS CI13xxx UDC bugfixes
USB: Unusual Device support for Gold MP3 Player Energy
USB: serial: fix lifetime and locking problems
Linus Torvalds [Fri, 24 Apr 2009 15:32:44 +0000 (08:32 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/ecryptfs/ecryptfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:
eCryptfs: Larger buffer for encrypted symlink targets
eCryptfs: Lock lower directory inode mutex during lookup
eCryptfs: Remove ecryptfs_unlink_sigs warnings
eCryptfs: Fix data corruption when using ecryptfs_passthrough
eCryptfs: Print FNEK sig properly in /proc/mounts
eCryptfs: NULL pointer dereference in ecryptfs_send_miscdev()
eCryptfs: Copy lower inode attrs before dentry instantiation
Linus Torvalds [Fri, 24 Apr 2009 15:32:23 +0000 (08:32 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/geert/linux-m68k
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
m68k: Update defconfigs for 2.6.30-rc3
m68k,m68knommu: Wire up preadv and pwritev
scsi: a4000 - Correct driver unregistration in case of failure
Linus Torvalds [Fri, 24 Apr 2009 15:28:27 +0000 (08:28 -0700)]
Merge branch 'for-linus' of git://git390.marist.edu/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
[S390] update default configuration.
[S390] omit frame pointers on s390 when possible
[S390] Use tape_generic_offline directly.
[S390] /proc/stat idle field for idle cpus
[S390] appldata: avoid deadlock with appldata_mem
[S390] ipl: fix compile breakage
Linus Torvalds [Fri, 24 Apr 2009 15:27:02 +0000 (08:27 -0700)]
Merge git://git./linux/kernel/git/steve/gfs2-2.6-fixes
* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:
GFS2: Ensure that the inode goal block settings are updated
GFS2: Fix bug in block allocation
bitops: Add __ffs64 bitop
Linus Torvalds [Fri, 24 Apr 2009 15:26:01 +0000 (08:26 -0700)]
Merge branch 'kvm-updates/2.6.30' of git://git./virt/kvm/kvm
* 'kvm-updates/2.6.30' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
KVM: Unregister cpufreq notifier on unload
KVM: x86: release time_page on vcpu destruction
KVM: Fix overlapping check for memory slots
KVM: MMU: disable global page optimization
KVM: ia64: fix locking order entering guest
KVM: MMU: Fix off-by-one calculating large page count
Linus Torvalds [Fri, 24 Apr 2009 15:16:05 +0000 (08:16 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/bart/ide-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
MAINTAINERS: update IDE entry
palm_bk3710: palm_bk3710_udmatimings[] CodingStyle fixup
palm_bk3710: those registers/bitfields don't exist
mediabay: fix build for CONFIG_BLOCK=n
ide: Stop disks on reboot for laptop which cuts power
ide-cd: fix kernel crash on hppa regression
palm_bk3710: UDMA performance fix
Linus Torvalds [Fri, 24 Apr 2009 15:15:25 +0000 (08:15 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ALSA: hda - Add quirk for Packard Bell RS65
[ALSA] intel8x0: another attempt to fix ac97_clock measure routine
[ALSA] ac97_codec: increase timeout for analog subsections
ALSA: hda - Add quirks for Realtek codecs
ALSA: hda - Fix alc662_init_verbs
ALSA: keywest: Convert to new-style i2c driver
ALSA: AOA: Convert onyx and tas codecs to new-style i2c drivers
ALSA: Atiixp: Add SSID for mute_led quirk (unknown HP model)
ALSA: us122l: add snd_us122l_free()
ASoC: Fix warning in wm9705
ASoC: OMAP: Update contact addresses
ASoC: pxa-ssp: Don't use SSCR0_SerClkDiv and SSCR0_SCR
ALSA: us122l: Fix signedness in comparisions
Alan Cox [Wed, 22 Apr 2009 14:03:15 +0000 (15:03 +0100)]
radio_si470x: Fix free memory corruption
The release path for a disconnected device frees the object then unlocks
the mutex in the freed object...
Found by Dan Carpenter using Smatch
Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Niels de Vos [Wed, 22 Apr 2009 14:02:44 +0000 (15:02 +0100)]
serial: remove contact data
Remove my name and emailaddress from note in the source. Wincor Nixdorf
only has some ITE-chips on their mainboards, other chips are not
available for me for testing.
Signed-off-by: Niels de Vos <niels.devos@wincor-nixdorf.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Alan Cox [Wed, 22 Apr 2009 14:02:23 +0000 (15:02 +0100)]
cafe_nand: Fix warning
Wrong types on IRQ handler
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Linus Torvalds [Fri, 24 Apr 2009 14:48:24 +0000 (07:48 -0700)]
Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
* 'for-linus' of git://git.kernel.dk/linux-2.6-block:
cfq-iosched: cache prio_tree root in cfqq->p_root
cfq-iosched: fix bug with aliased request and cooperation detection
cfq-iosched: clear ->prio_trees[] on cfqd alloc
block: fix intermittent dm timeout based oops
umem: fix request_queue lock warning
block: simplify I/O stat accounting
pktcdvd.h should include mempool.h
cfq-iosched: use the default seek distance when there aren't enough seek samples
cfq-iosched: make seek_mean converge more quickly
block: make blk_abort_queue() ignore non-request based devices
block: include empty disks in /proc/diskstats
bio: use bio_kmalloc() in copy/map functions
bio: fix bio_kmalloc()
block: fix queue bounce limit setting
block: fix SG_IO vector request data length handling
scatterlist: make sure sg_miter_next() doesn't return 0 sized mappings
David Howells [Wed, 22 Apr 2009 11:10:07 +0000 (12:10 +0100)]
MN10300: Update the ASB2303 defconfig
Update the defconfig for the ASB2303 evaluation board.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Jonathan Corbet [Wed, 22 Apr 2009 11:01:49 +0000 (12:01 +0100)]
Delete slow-work timers properly
Slow-work appears to delete its timer as soon as the first user
unregisters, even though other users could be active. At the same time, it
never seems to delete slow_work_oom_timer. Arrange for both to happen in
the shutdown path.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Linus Torvalds [Fri, 24 Apr 2009 14:46:51 +0000 (07:46 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (94 commits)
netfilter: ctnetlink: fix gcc warning during compilation
net/netrom: Fix socket locking
netlabel: Always remove the correct address selector
ucc_geth.c: Fix upsmr setting in RMII mode
8139too: fix HW initial flow
af_iucv: Fix race when queuing incoming iucv messages
af_iucv: Test additional sk states in iucv_sock_shutdown
af_iucv: Reject incoming msgs if RECV_SHUTDOWN is set
af_iucv: fix oops in iucv_sock_recvmsg() for MSG_PEEK flag
af_iucv: consider state IUCV_CLOSING when closing a socket
iwlwifi: DMA fixes
iwlwifi: add debugging for TX path
mwl8: fix build warning.
mac80211: fix alignment calculation bug
mac80211: do not print WARN if config interface
iwl3945: use cancel_delayed_work_sync to cancel rfkill_poll
iwlwifi: fix EEPROM validation mask to include OTP only devices
atmel: fix netdev ops conversion
pcnet_cs: add cis(firmware) of the Allied Telesis LA-PCM
mlx4_en: Fix cleanup if workqueue create in mlx4_en_add() fails
...
Linus Torvalds [Fri, 24 Apr 2009 14:45:52 +0000 (07:45 -0700)]
Merge git://git./linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
sparc: Fix bus type probing for ESP and LE devices.
sparc32: Update defconfig.
sparc64: Update defconfig.
Linus Torvalds [Fri, 24 Apr 2009 14:44:58 +0000 (07:44 -0700)]
Merge branch 'merge' of git://git./linux/kernel/git/paulus/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
powerpc: Fix modular build of ide-pmac when mediabay is built in
powerpc/pasemi: Fix build error on UP
powerpc: Make macintosh/mediabay driver depend on CONFIG_BLOCK
maintainers: Fix PS3 patterns
powerpc/ps3: Fix CONFIG_PS3_FLASH=n build warning
powerpc/32: Don't clobber personality flags on exec
powerpc: Fix crash on CPU hotplug
powerpc/85xx: Remove defconfigs that mpc85xx_{smp_}defconfig cover
powerpc/85xx: Added SMP defconfig
powerpc/85xx: Enabled a bunch of FSL specific drivers/options
powerpc/85xx: Updated generic mpc85xx_defconfig
powerpc: don't disable SATA interrupts on Freescale MPC8610 HPCD
fsl_rio: Pass the proper device to dma mapping routines
powerpc: Fix of_node_put() exit path in of_irq_map_one()
powerpc/5200: defconfig updates
powerpc/5200: Add FLASH nodes to lite5200 device tree
powerpc/device-tree: Document MTD nodes with multiple "reg" tuples
powerpc/of-device-tree: Factor MTD physmap bindings out of booting-without-of
powerpc/5200: Bring the legacy fsl_spi_platform_data hooks back
Len Brown [Fri, 24 Apr 2009 14:42:29 +0000 (10:42 -0400)]
Merge branch 'bjorn.button' into release
Len Brown [Fri, 24 Apr 2009 14:42:21 +0000 (10:42 -0400)]
Merge branch 'bugzilla-13036' into release
Len Brown [Fri, 24 Apr 2009 14:42:11 +0000 (10:42 -0400)]
Merge branch 'bugzilla-13048' into release
Len Brown [Fri, 24 Apr 2009 14:42:03 +0000 (10:42 -0400)]
Merge branch 'bugzilla-13142' into release
Len Brown [Fri, 24 Apr 2009 14:41:31 +0000 (10:41 -0400)]
Merge branch 'hpet' into release
Oleg Nesterov [Thu, 23 Apr 2009 23:02:45 +0000 (01:02 +0200)]
check_unsafe_exec: s/lock_task_sighand/rcu_read_lock/
write_lock(¤t->fs->lock) guarantees we can't wrongly miss
LSM_UNSAFE_SHARE, this is what we care about. Use rcu_read_lock()
instead of ->siglock to iterate over the sub-threads. We must see
all CLONE_THREAD|CLONE_FS threads which didn't pass exit_fs(), it
takes fs->lock too.
With or without this patch we can miss the freshly cloned thread
and set LSM_UNSAFE_SHARE, we don't care.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Roland McGrath <roland@redhat.com>
[ Fixed lock/unlock typo - Hugh ]
Acked-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Oleg Nesterov [Thu, 23 Apr 2009 23:01:56 +0000 (01:01 +0200)]
do_execve() must not clear fs->in_exec if it was set by another thread
If do_execve() fails after check_unsafe_exec(), it clears fs->in_exec
unconditionally. This is wrong if we race with our sub-thread which
also does do_execve:
Two threads T1 and T2 and another process P, all share the same
->fs.
T1 starts do_execve(BAD_FILE). It calls check_unsafe_exec(), since
->fs is shared, we set LSM_UNSAFE but not ->in_exec.
P exits and decrements fs->users.
T2 starts do_execve(), calls check_unsafe_exec(), now ->fs is not
shared, we set fs->in_exec.
T1 continues, open_exec(BAD_FILE) fails, we clear ->in_exec and
return to the user-space.
T1 does clone(CLONE_FS /* without CLONE_THREAD */).
T2 continues without LSM_UNSAFE_SHARE while ->fs is shared with
another process.
Change check_unsafe_exec() to return res = 1 if we set ->in_exec, and change
do_execve() to clear ->in_exec depending on res.
When do_execve() suceeds, it is safe to clear ->in_exec unconditionally.
It can be set only if we don't share ->fs with another process, and since
we already killed all sub-threads either ->in_exec == 0 or we are the
only user of this ->fs.
Also, we do not need fs->lock to clear fs->in_exec.
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Roland McGrath <roland@redhat.com>
Acked-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Jens Axboe [Thu, 23 Apr 2009 10:19:38 +0000 (12:19 +0200)]
cfq-iosched: cache prio_tree root in cfqq->p_root
Currently we look it up from ->ioprio, but ->ioprio can change if
either the process gets its IO priority changed explicitly, or if
cfq decides to temporarily boost it. So if we are unlucky, we can
end up attempting to remove a node from a different rbtree root than
where it was added.
Fix this by using ->org_ioprio as the prio_tree index, since that
will only change for explicit IO priority settings (not for a boost).
Additionally cache the rbtree root inside the cfqq, then we don't have
to add code to reinsert the cfqq in the prio_tree if IO priority changes.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 23 Apr 2009 10:14:56 +0000 (12:14 +0200)]
cfq-iosched: fix bug with aliased request and cooperation detection
cfq_prio_tree_lookup() should return the direct match, yet it always
returns zero. Fix that.
cfq_prio_tree_add() assumes that we don't get a direct match, while
it is very possible that we do. Using O_DIRECT, you can have different
cfqq with matching requests, since you don't have the page cache
to serialize things for you. Fix this bug by only adding the cfqq if
there isn't an existing match.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jens Axboe [Thu, 23 Apr 2009 10:13:27 +0000 (12:13 +0200)]
cfq-iosched: clear ->prio_trees[] on cfqd alloc
Not strictly needed, but we should make it clear that we init the
rbtree roots here.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Hannes Reinecke [Thu, 23 Apr 2009 08:32:59 +0000 (10:32 +0200)]
block: fix intermittent dm timeout based oops
Very rarely under stress testing of dm, oopses are occuring as
something tampers with an old stack frame. This has been traced back
to blk_abort_queue() leaving a timeout_list pointing to the stack.
The reason is that sometimes blk_abort_request() won't delete the
timer (if the request is marked as complete but before the timer has
been removed, a small race window). Fix this by splicing back from
the ususally empty list to the q->timeout_list.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Sage Weil [Thu, 23 Apr 2009 06:37:58 +0000 (08:37 +0200)]
umem: fix request_queue lock warning
The umem driver issues two warnings on boot, due to blk_plug_device() and
blk_remove_plug() being called without q->queue_lock held. Starting with
e48ec690 (block: extend queue_flag bitops), the queue_flag_* functions
warn if q->queue_lock doesn't appear to be locked. In fact, q->queue_lock
is NULL (though that apparently isn't otherwise a problem as the driver is
using card->lock for everything).
Although blk_init_queue() with take a request_fn_proc and spinlock_t*,
there isn't a corresponding init helper that takes a make_request_fn.
Setting queue_lock to &card->lock explicitly seems to work fine for me.
The warning goes away and the device appears to behave.
[ 1.531881] v2.3 : Micro Memory(tm) PCI memory board block driver
[ 1.538136] umem 0000:02:01.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
[ 1.545018] umem 0000:02:01.0: Micro Memory(tm) controller found (PCI Mem Module (Battery Backup))
[ 1.554176] umem 0000:02:01.0: CSR 0xfc9ffc00 -> 0xffffc200013d0c00 (0x100)
[ 1.561279] umem 0000:02:01.0: Size
1048576 KB, Battery 1 Disabled (FAILURE), Battery 2 Disabled (FAILURE)
[ 1.571114] umem 0000:02:01.0: Window size
16777216 bytes, IRQ 20
[ 1.577304] umem 0000:02:01.0: memory NOT initialized. Consider over-writing whole device.
[ 1.585989] umema:<4>------------[ cut here ]------------
[ 1.591775] WARNING: at include/linux/blkdev.h:492 blk_plug_device+0x6d/0x106()
[ 1.592025] Hardware name: H8SSL
[ 1.592025] Modules linked in:
[ 1.592025] Pid: 1, comm: swapper Not tainted 2.6.29 #8
[ 1.592025] Call Trace:
[ 1.592025] [<
ffffffff8023c994>] warn_slowpath+0xd3/0xf2
[ 1.592025] [<
ffffffff8025a5b5>] ? save_trace+0x3f/0x9b
[ 1.592025] [<
ffffffff8025a68b>] ? add_lock_to_list+0x7a/0xba
[ 1.592025] [<
ffffffff8025e609>] ? validate_chain+0xb3b/0xce8
[ 1.592025] [<
ffffffff80441556>] ? mm_make_request+0x27/0x59
[ 1.592025] [<
ffffffff80441556>] ? mm_make_request+0x27/0x59
[ 1.592025] [<
ffffffff8025ef04>] ? __lock_acquire+0x74e/0x7b9
[ 1.592025] [<
ffffffff8025a70e>] ? get_lock_stats+0x34/0x5e
[ 1.592025] [<
ffffffff8025a746>] ? put_lock_stats+0xe/0x27
[ 1.592025] [<
ffffffff80441556>] ? mm_make_request+0x27/0x59
[ 1.592025] [<
ffffffff803ad165>] blk_plug_device+0x6d/0x106
[ 1.592025] [<
ffffffff80441575>] mm_make_request+0x46/0x59
[ 1.592025] [<
ffffffff803ac2d9>] generic_make_request+0x335/0x3cf
[ 1.592025] [<
ffffffff8027fcc7>] ? mempool_alloc_slab+0x11/0x13
[ 1.592025] [<
ffffffff8027fdce>] ? mempool_alloc+0x45/0x101
[ 1.592025] [<
ffffffff8025a746>] ? put_lock_stats+0xe/0x27
[ 1.592025] [<
ffffffff803adda5>] submit_bio+0x10a/0x119
[ 1.592025] [<
ffffffff802c8d00>] submit_bh+0xe5/0x109
[ 1.592025] [<
ffffffff802cbf43>] block_read_full_page+0x2aa/0x2cb
[ 1.592025] [<
ffffffff802cf4c4>] ? blkdev_get_block+0x0/0x4c
[ 1.592025] [<
ffffffff805c90a8>] ? _spin_unlock_irq+0x36/0x51
[ 1.592025] [<
ffffffff80286836>] ? __lru_cache_add+0x92/0xb2
[ 1.592025] [<
ffffffff802cf008>] blkdev_readpage+0x13/0x15
[ 1.592025] [<
ffffffff8027de06>] read_cache_page_async+0x90/0x134
[ 1.592025] [<
ffffffff802ceff5>] ? blkdev_readpage+0x0/0x15
[ 1.592025] [<
ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
[ 1.592025] [<
ffffffff8027deb8>] read_cache_page+0xe/0x45
[ 1.592025] [<
ffffffff802f5170>] read_dev_sector+0x2e/0x93
[ 1.592025] [<
ffffffff802f5f44>] adfspart_check_ICS+0x28/0x16c
[ 1.592025] [<
ffffffff8025d427>] ? trace_hardirqs_on+0xd/0xf
[ 1.592025] [<
ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
[ 1.592025] [<
ffffffff802f59c5>] rescan_partitions+0x168/0x2fb
[ 1.592025] [<
ffffffff802ceae9>] __blkdev_get+0x259/0x336
[ 1.592025] [<
ffffffff803ca1e2>] ? kobject_put+0x47/0x4b
[ 1.592025] [<
ffffffff802cebd1>] blkdev_get+0xb/0xd
[ 1.592025] [<
ffffffff802f5773>] register_disk+0xc4/0x12b
[ 1.592025] [<
ffffffff803b2a7b>] add_disk+0xc3/0x12d
[ 1.592025] [<
ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
[ 1.592025] [<
ffffffff808a1e73>] mm_init+0x129/0x1a5
[ 1.592025] [<
ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
[ 1.592025] [<
ffffffff80209056>] _stext+0x56/0x130
[ 1.592025] [<
ffffffff80274932>] ? register_irq_proc+0xae/0xca
[ 1.592025] [<
ffffffff802f0000>] ? proc_pid_lookup+0xb4/0x18b
[ 1.592025] [<
ffffffff8087f975>] kernel_init+0x132/0x18b
[ 1.592025] [<
ffffffff8020d17a>] child_rip+0xa/0x20
[ 1.592025] [<
ffffffff8020cb40>] ? restore_args+0x0/0x30
[ 1.592025] [<
ffffffff8087f843>] ? kernel_init+0x0/0x18b
[ 1.592025] [<
ffffffff8020d170>] ? child_rip+0x0/0x20
[ 1.592025] ---[ end trace
7150b3b86da74e1e ]---
[ 1.889858] ------------[ cut here ]------------[ve_plug+0x5f/0x91()
[ 1.893848] Hardware name: H8SSL
[ 1.893848] Modules linked in:
[ 1.893848] Pid: 1, comm: swapper Tainted: G W 2.6.29 #8
[ 1.893848] Call Trace:
[ 1.893848] [<
ffffffff8023c994>] warn_slowpath+0xd3/0xf2
[ 1.893848] [<
ffffffff805c8411>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[ 1.893848] [<
ffffffff8020cb40>] ? restore_args+0x0/0x30
[ 1.893848] [<
ffffffff80254245>] ? __atomic_notifier_call_chain+0x0/0xb2
[ 1.893848] [<
ffffffff805c90a3>] ? _spin_unlock_irq+0x31/0x51
[ 1.893848] [<
ffffffff805c90bf>] ? _spin_unlock_irq+0x4d/0x51
[ 1.893848] [<
ffffffff8044157d>] ? mm_make_request+0x4e/0x59
[ 1.893848] [<
ffffffff8025a70e>] ? get_lock_stats+0x34/0x5e
[ 1.893848] [<
ffffffff8025a75d>] ? put_lock_stats+0x25/0x27
[ 1.893848] [<
ffffffff80441504>] ? mm_unplug_device+0x25/0x50
[ 1.893848] [<
ffffffff803acf23>] blk_remove_plug+0x5f/0x91
[ 1.893848] [<
ffffffff8044150f>] mm_unplug_device+0x30/0x50
[ 1.893848] [<
ffffffff803ab74a>] blk_unplug+0x78/0x7d
[ 1.893848] [<
ffffffff803ab75c>] blk_backing_dev_unplug+0xd/0xf
[ 1.893848] [<
ffffffff802c853c>] block_sync_page+0x4a/0x4c
[ 1.893848] [<
ffffffff8027da1c>] sync_page+0x44/0x4d
[ 1.893848] [<
ffffffff805c66fd>] __wait_on_bit_lock+0x42/0x8a
[ 1.893848] [<
ffffffff8027d9d8>] ? sync_page+0x0/0x4d
[ 1.893848] [<
ffffffff8027d9c4>] __lock_page+0x64/0x6b
[ 1.893848] [<
ffffffff802508db>] ? wake_bit_function+0x0/0x2a
[ 1.893848] [<
ffffffff8027de4a>] read_cache_page_async+0xd4/0x134
[ 1.893848] [<
ffffffff802ceff5>] ? blkdev_readpage+0x0/0x15
[ 1.893848] [<
ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
[ 1.893848] [<
ffffffff8027deb8>] read_cache_page+0xe/0x45
[ 1.893848] [<
ffffffff802f5170>] read_dev_sector+0x2e/0x93
[ 1.893848] [<
ffffffff802f5f44>] adfspart_check_ICS+0x28/0x16c
[ 1.893848] [<
ffffffff8025d427>] ? trace_hardirqs_on+0xd/0xf
[ 1.893848] [<
ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
[ 1.893848] [<
ffffffff802f59c5>] rescan_partitions+0x168/0x2fb
[ 1.893848] [<
ffffffff802ceae9>] __blkdev_get+0x259/0x336
[ 1.893848] [<
ffffffff803ca1e2>] ? kobject_put+0x47/0x4b
[ 1.893848] [<
ffffffff802cebd1>] blkdev_get+0xb/0xd
[ 1.893848] [<
ffffffff802f5773>] register_disk+0xc4/0x12b
[ 1.893848] [<
ffffffff803b2a7b>] add_disk+0xc3/0x12d
[ 1.893848] [<
ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
[ 1.893848] [<
ffffffff808a1e73>] mm_init+0x129/0x1a5
[ 1.893848] [<
ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
[ 1.893848] [<
ffffffff80209056>] _stext+0x56/0x130
[ 1.893848] [<
ffffffff80274932>] ? register_irq_proc+0xae/0xca
[ 1.893848] [<
ffffffff802f0000>] ? proc_pid_lookup+0xb4/0x18b
[ 1.893848] [<
ffffffff8087f975>] kernel_init+0x132/0x18b
[ 1.893848] [<
ffffffff8020d17a>] child_rip+0xa/0x20
[ 1.893848] [<
ffffffff8020cb40>] ? restore_args+0x0/0x30
[ 1.893848] [<
ffffffff8087f843>] ? kernel_init+0x0/0x18b
[ 1.893848] [<
ffffffff8020d170>] ? child_rip+0x0/0x20
[ 1.893848] ---[ end trace
7150b3b86da74e1f ]---
Signed-off-by: Sage Weil <sage@newdream.net>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Jerome Marchand [Wed, 22 Apr 2009 12:01:49 +0000 (14:01 +0200)]
block: simplify I/O stat accounting
This simplifies I/O stat accounting switching code and separates it
completely from I/O scheduler switch code.
Requests are accounted according to the state of their request queue
at the time of the request allocation. There is no need anymore to
flush the request queue when switching I/O accounting state.
Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Alexander Beregalov [Tue, 21 Apr 2009 07:33:14 +0000 (09:33 +0200)]
pktcdvd.h should include mempool.h
Fix this build error:
In file included from fs/compat_ioctl.c:104:
include/linux/pktcdvd.h:285: error: expected specifier-qualifier-list before 'mempool_t'
Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Len Brown [Thu, 23 Apr 2009 23:19:42 +0000 (19:19 -0400)]
x86, hpet: Stop soliciting hpet=force users on ICH4M
The HPET in the ICH4M is not documented in the data sheet
because it was not officially validated.
While it is fine for hackers to continue to use "hpet=force"
to enable the hardware that they have, it is not prudent to
solicit additional "hpet=force" users on this hardware.
[ Impact: remove hpet=force syslog message on old-ICH systems ]
Signed-off-by: Len Brown <len.brown@intel.com>
Acked-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
LKML-Reference: <alpine.LFD.2.00.
0904231918510.15843@localhost.localdomain>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Len Brown [Fri, 24 Apr 2009 05:35:46 +0000 (01:35 -0400)]
Merge branch 'bugzilla-12249' into release
Len Brown [Fri, 24 Apr 2009 05:35:33 +0000 (01:35 -0400)]
Merge branch 'bugzilla-12270' into release
Len Brown [Fri, 24 Apr 2009 05:35:24 +0000 (01:35 -0400)]
Merge branch 'bugzilla-13041' into release
Len Brown [Fri, 24 Apr 2009 05:35:15 +0000 (01:35 -0400)]
Merge branch 'cpufreq' into release
Len Brown [Fri, 24 Apr 2009 05:35:08 +0000 (01:35 -0400)]
Merge branch 'idle' into release
Len Brown [Fri, 24 Apr 2009 05:34:59 +0000 (01:34 -0400)]
Merge branch 'irq' into release