Massimiliano Ghilardi [Tue, 4 Sep 2007 20:53:43 +0000 (22:53 +0200)]
USB Mass Storage: limit "Rockchip ROCK MP3" device (071b:3203) max I/O to 64 sectors per command
The MP3/MP4/AVI player "Rockchip ROCK MP3" is seen as a USB disk, but fails
if more than 128 sectors (64kB) are sent or requested in a single read or write
command, and disconnects from the USB bus.
Typical kernel log showing the problem is:
usb 3-1: reset high speed USB device using ehci_hcd and address 6
usb 3-1: reset high speed USB device using ehci_hcd and address 6
sd 14:0:0:0: [sdb] Result: hostbyte=0x07 driverbyte=0x00
end_request: I/O error, dev sdb, sector 32
sd 14:0:0:0: [sdb] Result: hostbyte=0x07 driverbyte=0x00
end_request: I/O error, dev sdb, sector 32
usb 3-1: USB disconnect, address 6
This patch works around the device limitation by adding "Rockchip ROCK MP3"
to unusual USB devices list and limiting data transfers to 64 sectors (32kB)
per command.
Tested on 2.6.23-rc5 (amd64).
Signed-off-by: Massimiliano Ghilardi <massimiliano.ghilardi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Ortwin Glück [Wed, 5 Sep 2007 22:06:26 +0000 (00:06 +0200)]
USB: Nikon D40 Quirks
The D40 needs the same quirks as the other (semi-)professional Nikon cameras.
The patch is against 2.6.23-rc5.
Details:
http://bugs.gentoo.org/show_bug.cgi?id=191431
From: Ortwin Glück <odi@odi.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Ricardo Barberis [Thu, 6 Sep 2007 05:37:19 +0000 (22:37 -0700)]
USB: Add Sony Ericsson P1i to unusual_devs.h
Signed-off-by: Phil Dibowitz <phil@ipom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Greg Kroah-Hartman [Thu, 30 Aug 2007 17:02:10 +0000 (19:02 +0200)]
USB: option: Add Dell HSDPA 5520 to driver
This is based on information sent in by Christian Gothe.
Cc: Christian Gothe <christian.gothe@kapelan.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Jaime Velasco Juan [Fri, 7 Sep 2007 18:06:39 +0000 (19:06 +0100)]
USB: option: Add a new device ID for the HUAWEI E220 HSDPA modem.
Signed-off-by: Jaime Velasco Juan <jaime@singular.local>
CC: Matthias Urlichs <smurf@smurf.noris.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Nathael Pajani [Tue, 4 Sep 2007 09:46:23 +0000 (11:46 +0200)]
USB: fix linked list insertion bugfix for usb core
This patch fixes the order of list_add_tail() arguments in
usb_store_new_id() so the list can have more than one single element.
Signed-off-by: Nathael Pajani <nathael.pajani@cpe.fr>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Oliver Neukum [Tue, 4 Sep 2007 14:11:41 +0000 (16:11 +0200)]
USB: quirky flash drive
That drive is quite odd. It has 2K sectors, times out getting string
descriptors and needs a quirk.
Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Alan Stern [Tue, 4 Sep 2007 14:12:44 +0000 (10:12 -0400)]
USB: prevent Genesys USB-IDE from autosuspending
This patch (as986) prevents the troublesome Genesys USB-IDE adapter
from autosuspending. It may not be necessary for all such devices,
but the one in Bugzilla #8892 sometimes fails to resume.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Alan Stern [Tue, 4 Sep 2007 14:11:56 +0000 (10:11 -0400)]
USB: prevent Thomson card reader from autosuspending
This patch (as985) prevents the SGS THomson Microelectronics 4in1 card
reader from autosuspending. This resolves Bugzilla #8885.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Matt Colyer [Wed, 29 Aug 2007 06:33:52 +0000 (23:33 -0700)]
USB: Add iPhone device id to the quirk list.
Pierre Castella [Thu, 6 Sep 2007 20:34:39 +0000 (22:34 +0200)]
USB: ftdi_sio: add of a new product/manufacturer, TML
I have added to a new product based on the FTDI 232R USB/Serial
transceiver, which is commercialized by The Mobility Lab. Here is a
trivial patch enclosed, against 2.6.22.6 kernel.
Signed-off-by: Pierre Castella <pp.castella@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
samson yeung [Fri, 31 Aug 2007 20:40:40 +0000 (16:40 -0400)]
usb/misc/sisusbvga: add product ID of TARGUS/MCT device
Device is Targus ACP50US which includes a Magic Control Technologies
usb vga device using the SiS315(E) or compatible.
Signed-off-by: Samson Yeung <fragmede@onepatchdown.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Alan Cox [Wed, 22 Aug 2007 22:11:06 +0000 (23:11 +0100)]
USB: oti6858: Remove broken ioctl code in -mm tree and also the broken fixes
This stuff is simply not needed.
Signed-off-by: Alan Cox <alan@redhat.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Linus Torvalds [Tue, 11 Sep 2007 02:49:55 +0000 (19:49 -0700)]
Linux 2.6.23-rc6
Linus Torvalds [Tue, 11 Sep 2007 02:22:59 +0000 (19:22 -0700)]
Merge branch 'upstream-linus' of /linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
libata clear horkage on ata_dev_init()
[libata, IDE] add new VIA bridge to VIA PATA drivers
pata_it821x: fix lost interrupt with atapi devices
Fix broken pata_via cable detection
Tejun Heo [Mon, 3 Sep 2007 03:20:11 +0000 (12:20 +0900)]
libata clear horkage on ata_dev_init()
dev->horkage should be cleared over device hotunplug/plug. Clear it
in ata_dev_init().
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Joseph Chan [Tue, 11 Sep 2007 02:06:01 +0000 (22:06 -0400)]
[libata, IDE] add new VIA bridge to VIA PATA drivers
Signed-off-by: Joseph Chan <josephchan@via.com.tw>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Jeff Dike [Mon, 10 Sep 2007 15:55:46 +0000 (11:55 -0400)]
UML: Fix ELF_CORE_COPY_REGS build botch
The earlier crash dump fix on x86_64 depended on patches in -mm which
are intended for post-2.6.23. Without those, it broke the build when
it went into 2.6.23-rc5.
This changes the field references in ELF_CORE_COPY_REGS back to those
still used in mainline.
Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Daniel Walker [Thu, 6 Sep 2007 14:59:54 +0000 (16:59 +0200)]
i386: fix a hang on stuck nmi watchdog
In the case when an nmi gets stucks the endflag stays equal to zero.
This causes the busy looping on other cpus to continue, even though the
nmi test is done.
On my machine with out the change below the system would hang right
after check_nmi_watchdog(). The change below just sets endflag prior to
checking if the test was successful or not.
Signed-off-by: Daniel Walker <dwalker@mvista.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Andi Kleen [Thu, 6 Sep 2007 14:59:52 +0000 (16:59 +0200)]
x86_64: Remove CLFLUSH in text_poke()
The CLFLUSH for the modified code line in text_poke was supposed
to speed up CPU recovery. Unfortunately it seems to cause hangs
on some VIA C3s (at least on VIA Esther Model 10 Stepping 9)
Remove it.
Thanks to Stefan Becker for reporting/testing.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Stephane Eranian [Thu, 6 Sep 2007 14:59:51 +0000 (16:59 +0200)]
i386: Fix perfctr watchdog on core duo
Fix the NMI watchdog on Intel CoreDuo processor where the kernel would
get stuck during boot. The issue is related to errata AE49, where the
PERFEVTSEL1 counter does not have a working enable bit. Thus it is not
possible to use it for NMI.
The patch creates a dedicated wd_ops for CoreDuo which falls back to
using PERFEVTSEL0. The other Intel processors supporting the
architectural PMU will keep on using PERFEVTSEL1 as this allows other
subsystems, such as perfmon, to use PERFEVTSEL0 for PEBS monitoring in
particular. Bug initially reported by Daniel Walker.
AK: Added comments
Signed-off-by: Stephane Eranian <eranian@hpl.hp.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Neil Brown [Wed, 5 Sep 2007 21:22:13 +0000 (17:22 -0400)]
knfsd: Validate filehandle type in fsid_source
fsid_source decided where to get the 'fsid' number to
return for a GETATTR based on the type of filehandle.
It can be from the device, from the fsid, or from the
UUID.
It is possible for the filehandle to be inconsistent
with the export information, so make sure the export information
actually has the info implied by the value returned by
fsid_source.
Signed-off-by: Neil Brown <neilb@suse.de>
Cc: "Luiz Fernando N. Capitulino" <lcapitulino@gmail.com>
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Neil Brown [Wed, 5 Sep 2007 21:22:12 +0000 (17:22 -0400)]
knfsd: Fixed problem with NFS exporting directories which are mounted on.
Recent changes in NFSd cause a directory which is mounted-on
to not appear properly when the filesystem containing it is exported.
*exp_get* now returns -ENOENT rather than NULL and when
commit
5d3dbbeaf56d0365ac6b5c0a0da0bd31cc4781e1
removed the NULL checks, it didn't add a check for -ENOENT.
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Roland McGrath [Wed, 5 Sep 2007 10:05:56 +0000 (03:05 -0700)]
Fix spurious syscall tracing after PTRACE_DETACH + PTRACE_ATTACH
When PTRACE_SYSCALL was used and then PTRACE_DETACH is used, the
TIF_SYSCALL_TRACE flag is left set on the formerly-traced task. This
means that when a new tracer comes along and does PTRACE_ATTACH, it's
possible he gets a syscall tracing stop even though he's never used
PTRACE_SYSCALL. This happens if the task was in the middle of a system
call when the second PTRACE_ATTACH was done. The symptom is an
unexpected SIGTRAP when the tracer thinks that only SIGSTOP should have
been provoked by his ptrace calls so far.
A few machines already fixed this in ptrace_disable (i386, ia64, m68k).
But all other machines do not, and still have this bug. On x86_64, this
constitutes a regression in IA32 compatibility support.
Since all machines now use TIF_SYSCALL_TRACE for this, I put the
clearing of TIF_SYSCALL_TRACE in the generic ptrace_detach code rather
than adding it to every other machine's ptrace_disable.
Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Jeff Norden [Tue, 4 Sep 2007 16:07:20 +0000 (11:07 -0500)]
pata_it821x: fix lost interrupt with atapi devices
Fix "lost" interrupt problem when using dma with CD/DVD drives in some
configurations. This problem can make installing linux from media
impossible for distro's that have switched to libata-only configurations.
The simple fix is to eliminate the use of dma for reading drive status, etc,
by checking the number of bytes to transferred.
This change will only affect the behavior of atapi devices, not disks.
There is more info at http://bugzilla.redhat.com/show_bug.cgi?id=242229
This patch is for 2.6.22.1
Signed-off-by: Jeff Norden <jnorden@math.tntech.edu>
Reviewed-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Laurent Riffard [Sun, 2 Sep 2007 19:01:32 +0000 (21:01 +0200)]
Fix broken pata_via cable detection
via_do_set_mode overwrites 80-wire cable detection bits. Let's
preserve them.
Signed-off-by: Laurent Riffard <laurent.riffard@free.fr>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Linus Torvalds [Mon, 10 Sep 2007 21:43:37 +0000 (14:43 -0700)]
Merge branch 'upstream' of git://ftp.linux-mips.org/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
[MIPS] Ocelot: remove remaining bits
[MIPS] TLB: Fix instruction bitmasks
[MIPS] R10000: Fix wrong test in dma-default.c
[MIPS] Provide empty irq_enable_hazard definition for legacy and R1 cores.
[MIPS] Sibyte: Remove broken dependency on EXPERIMENTAL from SIBYTE_SB1xxx_SOC.
[MIPS] Kconfig: whitespace cleanup.
[MIPS] PCI: Set need_domain_info if controller domain index is non-zero.
[MIPS] BCM1480: Fix computation of interrupt mask address register.
[MIPS] i8259: Add disable method.
[MIPS] tty: add the new ioctls and definitions.
Linus Torvalds [Mon, 10 Sep 2007 21:42:39 +0000 (14:42 -0700)]
Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6
* 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
i2c-algo-bit: Read block data bugfix
i2c-pxa: Fix adapter number
i2c-gpio: Fix adapter number
Linus Torvalds [Mon, 10 Sep 2007 21:41:25 +0000 (14:41 -0700)]
Merge branch 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6
* 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6:
hwmon: End of I/O region off-by-one
Linus Torvalds [Mon, 10 Sep 2007 21:40:29 +0000 (14:40 -0700)]
Merge git://git./linux/kernel/git/herbert/crypto-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
[CRYPTO] blkcipher: Fix inverted test in blkcipher_get_spot
[CRYPTO] blkcipher: Fix handling of kmalloc page straddling
Linus Torvalds [Mon, 10 Sep 2007 21:38:15 +0000 (14:38 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/ieee1394/linux1394-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
firewire: fw-ohci: ignore failure of pci_set_power_state (fix suspend regression)
Linus Torvalds [Mon, 10 Sep 2007 21:37:20 +0000 (14:37 -0700)]
Merge branch 'for-linus' of git://linux-m32r.org/git/takata/linux-2.6_dev
* 'for-linus' of git://www.linux-m32r.org/git/takata/linux-2.6_dev:
m32r: Rename STI/CLI macros
m32r: build fix of entry.S
m32r: Separate syscall table from entry.S
m32r: Cosmetic updates of arch/m32r/kernel/entry.S
m32r: Exit ei_handler directly for no IRQ case or IPI operations
m32r: Simplify ei_handler code
m32r: Define symbols to unify platform-dependent ICU checks
m32r: Move dot.gdbinit files
m32r: Rearrange platform-dependent codes
m32r: Add defconfig file for the usrv platform.
m32r: Update defconfig files for 2.6.23-rc1
m32r: Move defconfig files to arch/m32r/configs/
Linus Torvalds [Mon, 10 Sep 2007 21:36:49 +0000 (14:36 -0700)]
Merge git://git./linux/kernel/git/mingo/linux-2.6-sched
* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:
sched: fix ideal_runtime calculations for reniced tasks
sched: improve prev_sum_exec_runtime setting
sched: simplify __check_preempt_curr_fair()
sched: fix xtensa build warning
sched: debug: fix sum_exec_runtime clearing
sched: debug: fix cfs_rq->wait_runtime accounting
sched: fix niced_granularity() shift
sched: fix MC/HT scheduler optimization, without breaking the FUZZ logic.
Linus Torvalds [Mon, 10 Sep 2007 21:36:37 +0000 (14:36 -0700)]
Merge branch 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6
* 'for-linus' of git://oss.sgi.com:8090/xfs/xfs-2.6:
[XFS] fix nasty quota hashtable allocation bug
[XFS] fix sparse shadowed variable warnings
[XFS] fix ASSERT and ASSERT_ALWAYS
[XFS] Fix sparse warning in kmem_shake_allow
[XFS] Fix sparse NULL vs 0 warnings
[XFS] Set filestreams object timeout to something sane.
Linus Torvalds [Mon, 10 Sep 2007 21:35:55 +0000 (14:35 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/hpa/linux-2.6-x86setup
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hpa/linux-2.6-x86setup:
[x86 setup] Work around bug in Xen HVM
Yoichi Yuasa [Thu, 6 Sep 2007 12:32:57 +0000 (21:32 +0900)]
[MIPS] Ocelot: remove remaining bits
Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Thiemo Seufer [Wed, 5 Sep 2007 11:11:22 +0000 (12:11 +0100)]
[MIPS] TLB: Fix instruction bitmasks
Signed-Off-By: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Maxime Bizon [Fri, 31 Aug 2007 09:03:14 +0000 (11:03 +0200)]
[MIPS] R10000: Fix wrong test in dma-default.c
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle [Mon, 3 Sep 2007 14:22:26 +0000 (16:22 +0200)]
[MIPS] Provide empty irq_enable_hazard definition for legacy and R1 cores.
Following a strict interpretation the empty definition of irq_enable_hazard
has always been a bug - but an intentional one because it didn't bite.
This has now changed, for uniprocessor kernels mm/slab.c:do_drain()
[...]
on_each_cpu(do_drain, cachep, 1, 1);
check_irq_on();
[...]
may be compiled into a mtc0 c0_status; mfc0 c0_status sequence resulting
in a back-to-back hazard.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle [Wed, 29 Aug 2007 23:58:53 +0000 (00:58 +0100)]
[MIPS] Sibyte: Remove broken dependency on EXPERIMENTAL from SIBYTE_SB1xxx_SOC.
Otherwise Kconfig will produce a nonsenical .config for a kernel that is
neither 32-bit nor 64-bit.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle [Wed, 29 Aug 2007 13:21:45 +0000 (14:21 +0100)]
[MIPS] Kconfig: whitespace cleanup.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle [Wed, 29 Aug 2007 07:34:39 +0000 (08:34 +0100)]
[MIPS] PCI: Set need_domain_info if controller domain index is non-zero.
This fixes this little funny:
bigsur:/proc/bus/pci# ls -l
total 0
dr-xr-xr-x 2 root root 0 Aug 28 19:31 00
dr-xr-xr-x 2 root root 0 Aug 28 19:31 00
dr-xr-xr-x 2 root root 0 Aug 28 19:31 01
dr-xr-xr-x 2 root root 0 Aug 28 19:31 03
-r--r--r-- 1 root root 0 Aug 28 19:31 devices
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle [Tue, 28 Aug 2007 23:38:13 +0000 (00:38 +0100)]
[MIPS] BCM1480: Fix computation of interrupt mask address register.
CC arch/mips/sibyte/bcm1480/irq.o
arch/mips/sibyte/bcm1480/irq.c: In function 'bcm1480_mask_irq':
arch/mips/sibyte/bcm1480/irq.c:112: warning: cast to pointer from integer of different size
arch/mips/sibyte/bcm1480/irq.c:114: warning: cast to pointer from integer of different size
arch/mips/sibyte/bcm1480/irq.c: In function 'bcm1480_unmask_irq':
arch/mips/sibyte/bcm1480/irq.c:130: warning: cast to pointer from integer of different size
arch/mips/sibyte/bcm1480/irq.c:132: warning: cast to pointer from integer of different size
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Kyungmin Park [Fri, 10 Aug 2007 21:00:21 +0000 (14:00 -0700)]
[MIPS] i8259: Add disable method.
After
76d2160147f43f982dfe881404cfde9fd0a9da21, the qemu NE2000 was
frequently producing WATCHDOG timeouts.
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Alan Cox [Fri, 10 Aug 2007 21:00:20 +0000 (14:00 -0700)]
[MIPS] tty: add the new ioctls and definitions.
Same as all the others, just put in the constants for the existing kernel
code and termios2 structure
Signed-off-by: Alan Cox <alan@redhat.com>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Joachim Fenkes [Wed, 29 Aug 2007 16:15:17 +0000 (18:15 +0200)]
[POWERPC] ibmebus: Prevent bus_id collisions
Previously, ibmebus derived a device's bus_id from its location code.
The location code is not guaranteed to be unique, so we might get bus_id
collisions if two devices share the same location code. The OFDT
full_name, however, is unique, so we use that instead (truncating it
on the left if it is too long).
Signed-off-by: Joachim Fenkes <fenkes@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Geert Uytterhoeven [Thu, 6 Sep 2007 16:14:57 +0000 (18:14 +0200)]
[POWERPC] cell/PS3: Ignore storage devices that are still being probed
On PS3, A storage device may show up in the repository before the hypervisor
has finished probing:
- If its type is not yet known, it shows up as PS3_DEV_TYPE_STOR_DUMMY,
- If its regions are being probed, it shows up as having zero regions.
If any of these happen, consider the device not yet present. The storage
probe thread will retry later.
This fixes the timing-dependent problem where a kernel booted from FLASH ROM
sometimes cannot find the hard disk.
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Acked-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Jeremy Kerr [Fri, 7 Sep 2007 08:28:27 +0000 (18:28 +1000)]
[POWERPC] cell/PS3: Always set master run control bit in mfc_sr1_set
At present, running any SPE program on the ps3 will trigger a BUG_ON
when spufs_run_spu tries to clear the master run control bit, as lv1
does not make the master run control available to Linux.
This change makes SPE apps work again by disabling changes to the
master run control on PS3. Although we don't have the facility to
disable a SPE with supervisor-level privileges, it's better than
hitting the BUG_ON unconditionally.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Acked-by: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Masato Noguchi [Fri, 7 Sep 2007 08:28:27 +0000 (18:28 +1000)]
[POWERPC] cell/PS3: Fix a bug that causes the PS3 to hang on the SPU Class 0 interrupt.
The Cell BE Architecture spec states that the SPU MFC Class 0 interrupt
is edge-triggered. The current spu interrupt handler assumes this
behavior and does not clear the interrupt status.
The PS3 hypervisor visualizes all SPU interrupts as level, and on return
from the interrupt handler the hypervisor will deliver a new virtual
interrupt for any unmasked interrupts which for which the status has not
been cleared. This fix clears the interrupt status in the interrupt
handler.
Signed-off-by: Masato Noguchi <Masato.Noguchi@jp.sony.com>
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Acked-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Herbert Xu [Mon, 10 Sep 2007 07:51:11 +0000 (15:51 +0800)]
[CRYPTO] blkcipher: Fix inverted test in blkcipher_get_spot
The previous patch had the conditional inverted. This patch fixes it
so that we return the original position if it does not straddle a page.
Thanks to Bob Gilligan for spotting this.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
David Brownell [Sun, 9 Sep 2007 20:29:14 +0000 (22:29 +0200)]
i2c-algo-bit: Read block data bugfix
This fixes a bug in the way i2c-algo-bit handles I2C_M_RECV_LEN,
used to implement i2c_smbus_read_block_data(). Previously, in the
absence of PEC (rarely used!) it would NAK the "length" byte:
S addr Rd [A] [length] NA
That prevents the subsequent data bytes from being read:
S addr Rd [A] [length] { A [data] }* NA
The primary fix just reorders two code blocks, so the length used
in the "should I NAK now?" check incorporates the data which it
just read from the slave device.
However, that move also highlighted other fault handling glitches.
This fixes those by abstracting the RX path ack/nak logic, so it
can be used in more than one location. Also, a few CodingStyle
issues were also resolved.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Jean Delvare [Sun, 9 Sep 2007 20:29:13 +0000 (22:29 +0200)]
i2c-pxa: Fix adapter number
It turns out that platform_device.id is a "u32" so testing it for being
nonnegative is useless when setting up an i2c adapte. Instead,
do what the platform_bus code does and test it against the value "-1".
Signed-off-by: Jean Delvare <khali@linux-fr.org>
David Brownell [Sun, 9 Sep 2007 20:29:13 +0000 (22:29 +0200)]
i2c-gpio: Fix adapter number
It turns out that platform_device.id is a "u32" so testing it for being
nonnegative is useless when setting up an i2c bitbang device. Instead,
do what the platform_bus code does and test it against the value "-1".
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Acked-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Jean Delvare [Wed, 29 Aug 2007 08:39:57 +0000 (10:39 +0200)]
hwmon: End of I/O region off-by-one
Fix an off-by-one error in the I/O region declaration of two
hardware monitoring drivers (lm78 and w83781d.) We were requesting
one extra port at the end of the region.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
Herbert Xu [Sun, 9 Sep 2007 07:45:21 +0000 (08:45 +0100)]
[CRYPTO] blkcipher: Fix handling of kmalloc page straddling
The function blkcipher_get_spot tries to return a buffer of
the specified length that does not straddle a page. It has
an off-by-one bug so it may advance a page unnecessarily.
What's worse, one of its callers doesn't provide a buffer
that's sufficiently long for this operation.
This patch fixes both problems. Thanks to Bob Gilligan for
diagnosing this problem and providing a fix.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Stefan Richter [Thu, 6 Sep 2007 07:50:30 +0000 (09:50 +0200)]
firewire: fw-ohci: ignore failure of pci_set_power_state (fix suspend regression)
Fixes (papers over) "Sleep problems with kernels >= 2.6.21 on powerpc",
http://lkml.org/lkml/2007/8/25/155. The issue is that the FireWire
controller's pci_dev.current_state of iBook G3 and presumably older
PowerBooks is still in PCI_UNKNOWN instead of PCI_D0 when the firewire
driver's .suspend method is called.
Like it was suggested earlier in http://lkml.org/lkml/2006/10/24/13, we
do not fail .suspend anymore if pci_set_power_state failed.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Hirokazu Takata [Mon, 20 Aug 2007 11:53:50 +0000 (20:53 +0900)]
m32r: Rename STI/CLI macros
The names of STI and CLI macros were derived from i386 arch historically,
but their name are incomprehensible.
So, for easy to understand, rename these macros to ENABLE_INTERRUPTS
and DISABLE_INTERRUPTS, respectively.
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Hirokazu Takata [Tue, 21 Aug 2007 03:04:29 +0000 (12:04 +0900)]
m32r: build fix of entry.S
This patch fixes the following compile error:
<-- snip -->
...
AS arch/m32r/kernel/entry.o
/home/bunk/linux/kernel-2.6/linux-2.6.23-rc3-mm1/arch/m32r/kernel/entry.S: Assembler messages:
/home/bunk/linux/kernel-2.6/linux-2.6.23-rc3-mm1/arch/m32r/kernel/entry.S:358: Error: bad instruction `addi r0,#(((((0)+(64))+(32))+(32)))'
make[2]: *** [arch/m32r/kernel/entry.o] Error 1
<-- snip -->
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Cc: Adrian Bunk <bunk@kernel.org>
Peter Zijlstra [Wed, 5 Sep 2007 12:32:49 +0000 (14:32 +0200)]
sched: fix ideal_runtime calculations for reniced tasks
fix ideal_runtime:
- do not scale it using niced_granularity()
it is against sum_exec_delta, so its wall-time, not fair-time.
- move the whole check into __check_preempt_curr_fair()
so that wakeup preemption can also benefit from the new logic.
this also results in code size reduction:
text data bss dec hex filename
13391 228 1204 14823 39e7 sched.o.before
13369 228 1204 14801 39d1 sched.o.after
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Peter Zijlstra [Wed, 5 Sep 2007 12:32:49 +0000 (14:32 +0200)]
sched: improve prev_sum_exec_runtime setting
Second preparatory patch for fix-ideal runtime:
Mark prev_sum_exec_runtime at the beginning of our run, the same spot
that adds our wait period to wait_runtime. This seems a more natural
location to do this, and it also reduces the code a bit:
text data bss dec hex filename
13397 228 1204 14829 39ed sched.o.before
13391 228 1204 14823 39e7 sched.o.after
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Peter Zijlstra [Wed, 5 Sep 2007 12:32:49 +0000 (14:32 +0200)]
sched: simplify __check_preempt_curr_fair()
Preparatory patch for fix-ideal-runtime:
simplify __check_preempt_curr_fair(): get rid of the integer return.
text data bss dec hex filename
13404 228 1204 14836 39f4 sched.o.before
13393 228 1204 14825 39e9 sched.o.after
functionality is unchanged.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Wed, 5 Sep 2007 12:32:49 +0000 (14:32 +0200)]
sched: fix xtensa build warning
rename RSR to SRR - 'RSR' is already defined on xtensa.
found by Adrian Bunk.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Wed, 5 Sep 2007 12:32:49 +0000 (14:32 +0200)]
sched: debug: fix sum_exec_runtime clearing
when cleaning sched-stats also clear prev_sum_exec_runtime.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Ingo Molnar [Wed, 5 Sep 2007 12:32:49 +0000 (14:32 +0200)]
sched: debug: fix cfs_rq->wait_runtime accounting
the cfs_rq->wait_runtime debug/statistics counter was not maintained
properly - fix this.
this also removes some code:
text data bss dec hex filename
13420 228 1204 14852 3a04 sched.o.before
13404 228 1204 14836 39f4 sched.o.after
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Ingo Molnar [Wed, 5 Sep 2007 12:32:49 +0000 (14:32 +0200)]
sched: fix niced_granularity() shift
fix niced_granularity(). This resulted in under-scheduling for
CPU-bound negative nice level tasks (and this in turn caused
higher than necessary latencies in nice-0 tasks).
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Suresh Siddha [Wed, 5 Sep 2007 12:32:48 +0000 (14:32 +0200)]
sched: fix MC/HT scheduler optimization, without breaking the FUZZ logic.
First fix the check
if (*imbalance + SCHED_LOAD_SCALE_FUZZ < busiest_load_per_task)
with this
if (*imbalance < busiest_load_per_task)
As the current check is always false for nice 0 tasks (as
SCHED_LOAD_SCALE_FUZZ is same as busiest_load_per_task for nice 0
tasks).
With the above change, imbalance was getting reset to 0 in the corner
case condition, making the FUZZ logic fail. Fix it by not corrupting the
imbalance and change the imbalance, only when it finds that the HT/MC
optimization is needed.
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Eric Sandeen [Thu, 16 Aug 2007 06:49:11 +0000 (16:49 +1000)]
[XFS] fix nasty quota hashtable allocation bug
This git mod:
77e4635ae191774526ed695482a151ac986f3806
converted to a "greedy" allocation interface, but for the quota hashtables
it switched from allocating XFS_QM_HASHSIZE (nr of elements)
xfs_dqhash_t's to allocating only XFS_QM_HASHSIZE *bytes* - quite a lot
smaller! Then when we converted hsize "back" to nr of elements (the
division line) hsize went to 0. This was leading to oopses when running
any quota tests on the Fedora 8 test kernel, but the problem has been
there for almost a year.
SGI-PV: 968837
SGI-Modid: xfs-linux-melb:xfs-kern:29354a
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Christoph Hellwig [Thu, 16 Aug 2007 05:38:19 +0000 (15:38 +1000)]
[XFS] fix sparse shadowed variable warnings
- in xfs_probe_cluster rename the inner len to pg_len. There's no harm
here because the outer len isn't used after the inner len comes into
existence but it keeps the code clean.
- in xfs_da_do_buf remove the inner i because they don't overlap
and they are both the same type.
SGI-PV: 968555
SGI-Modid: xfs-linux-melb:xfs-kern:29311a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Christoph Hellwig [Thu, 16 Aug 2007 05:38:08 +0000 (15:38 +1000)]
[XFS] fix ASSERT and ASSERT_ALWAYS
- remove the != 0 inside the unlikely in ASSERT_ALWAYS because sparse now
complains about comparisons between pointers and 0
- add a standalone ASSERT implementation because defining it to
ASSERT_ALWAYS means the string is expanded before the token passing
stringification. This way we get the actual content of the
assertion in the assfail message and don't overflow sparse's
stringification buffer leading to sparse error messages.
SGI-PV: 968555
SGI-Modid: xfs-linux-melb:xfs-kern:29310a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Christoph Hellwig [Thu, 16 Aug 2007 05:37:57 +0000 (15:37 +1000)]
[XFS] Fix sparse warning in kmem_shake_allow
We can't return a masked result of a __bitwise type. Compare it to 0 first
to keep the behaviour without the warning.
SGI-PV: 968555
SGI-Modid: xfs-linux-melb:xfs-kern:29309a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Christoph Hellwig [Thu, 16 Aug 2007 05:37:36 +0000 (15:37 +1000)]
[XFS] Fix sparse NULL vs 0 warnings
Sparse now warns about comparing pointers to 0, so change all instance
where that happens to NULL instead.
SGI-PV: 968555
SGI-Modid: xfs-linux-melb:xfs-kern:29308a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
David Chinner [Thu, 16 Aug 2007 05:20:56 +0000 (15:20 +1000)]
[XFS] Set filestreams object timeout to something sane.
SGI-PV: 968554
SGI-Modid: xfs-linux-melb:xfs-kern:29303a
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Christian Ehrhardt [Mon, 3 Sep 2007 18:32:38 +0000 (20:32 +0200)]
[x86 setup] Work around bug in Xen HVM
Apparently XEN does not keep the contents of the 48-bit gdt_48 data
structure that is passed to lgdt in the XEN machine state. Instead it
appears to save the _address_ of the 48-bit descriptor
somewhere. Unfortunately this data happens to reside on the stack and
is probably no longer availiable at the time of the actual protected
mode jump.
This is Xen bug but given that there is a one-line patch to work
around this problem, the linux kernel should probably do this. My fix
is to make the gdt_48 description in setup_gdt static (in setup_idt
this is already the case). This allows the kernel to boot under
Xen HVM again.
Signed-off-by: Christian Ehrhardt <lk@c--e.de>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Linus Torvalds [Tue, 4 Sep 2007 08:04:43 +0000 (01:04 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Tue, 4 Sep 2007 07:45:54 +0000 (00:45 -0700)]
Merge branch 'for_linus' of git://git.linux-nfs.org/pub/linux/nfs-2.6
Linus Torvalds [Tue, 4 Sep 2007 07:43:57 +0000 (00:43 -0700)]
Merge branch 'release' of git://git./linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Tue, 4 Sep 2007 07:42:41 +0000 (00:42 -0700)]
Merge git://git./linux/kernel/git/sam/kbuild-fix
Linus Torvalds [Tue, 4 Sep 2007 07:39:50 +0000 (00:39 -0700)]
Merge git://git.infradead.org/~dwmw2/mtd-2.6.23
Hirokazu Takata [Mon, 20 Aug 2007 00:12:46 +0000 (09:12 +0900)]
m32r: Separate syscall table from entry.S
- Separate sys_call_table from arch/m32r/kernel/entry.S and
move it to arch/m32r/kernel/system_call.S.
- Change sys_call_table section from .data to .rodata.
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Hirokazu Takata [Fri, 17 Aug 2007 15:10:18 +0000 (00:10 +0900)]
m32r: Cosmetic updates of arch/m32r/kernel/entry.S
- Remove unused symbols *_MASK
- Change indentation of comments, etc.
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Hirokazu Takata [Fri, 17 Aug 2007 14:40:37 +0000 (23:40 +0900)]
m32r: Exit ei_handler directly for no IRQ case or IPI operations
If no IRQ request is found in the IRQ check of ei_handler,
we can exit directly by jumping "restore_all", instead of via
"ret_from_intr".
This modification is also likely effective for IPI operations,
because scheduler call never happen at the exit of IPIs.
Signed-off-by: Hitoshi Yamamoto <hitoshiy@linux-m32r.org>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Hirokazu Takata [Fri, 17 Aug 2007 09:11:37 +0000 (18:11 +0900)]
m32r: Simplify ei_handler code
Simplify and clean up messy ei_handler code in arch/m32r/kernel/entry.S.
- Remove ifdef's for CONFIG_CHIP_* configulations.
- Rearrange the M32700 workaround code.
- Remove the messy platform-dependent interrupt check routines and
consolidate them to common INT0/INT1/INT2 check routines for all
platforms with cascaded interrupt controllers.
Signed-off-by: Hitoshi Yamamoto <hitoshiy@linux-m32r.org>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Hirokazu Takata [Fri, 17 Aug 2007 08:22:15 +0000 (17:22 +0900)]
m32r: Define symbols to unify platform-dependent ICU checks
On some m32r platforms, cascaded ICUs are used.
This patch is required to simplify ei_handler and consolidate platform-
dependent ICU check routines.
platform ICU/INT1 ICU/INT0 ICU/INT2
-------------- -------- -------- --------
m32104ut o - -
m32700ut o o o
opsput o o o
usrv o - -
(others) - - -
Signed-off-by: Hitoshi Yamamoto <hitoshiy@linux-m32r.org>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Hirokazu Takata [Wed, 1 Aug 2007 12:10:11 +0000 (21:10 +0900)]
m32r: Move dot.gdbinit files
Move dot.gdbinit files from arch/m32r/{platforms}/dot.gdbinit*
to arch/m32r/platforms/{platform}/.
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Hirokazu Takata [Wed, 1 Aug 2007 12:09:31 +0000 (21:09 +0900)]
m32r: Rearrange platform-dependent codes
Rearrange platform-dependent codes from arch/m32r/kernel/*.c
to arch/m32r/platforms/{platform}/.
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Hirokazu Takata [Wed, 1 Aug 2007 12:00:46 +0000 (21:00 +0900)]
m32r: Add defconfig file for the usrv platform.
Add usrv_defcofig file for the usrv (M32R MicroServer) platform.
platform defconfig Note
---------- ---------------------- ---------------------------
usrv usrv_defconfig SMP
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Hirokazu Takata [Wed, 1 Aug 2007 11:59:20 +0000 (20:59 +0900)]
m32r: Update defconfig files for 2.6.23-rc1
Update defconfig files for 2.6.23-rc1 in arch/m32r/configs/.
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
Hirokazu Takata [Wed, 1 Aug 2007 11:54:38 +0000 (20:54 +0900)]
m32r: Move defconfig files to arch/m32r/configs/
Change defconfig file's location from arch/m32r/{platform}/defconfig*
to arch/m32r/configs/{platform}_defconfig.
Applying this patch, we can use defconfig file for each m32r platform
easily, like other architectures.
ex. Setup defconfig for cross-building
$ make ARCH=m32r CROSS_COMPILE=m32r-linux-gnu- {platform}_defconfig.
platform defconfig Note
---------- ---------------------- ---------------------------
m32104ut m32104ut_defconfig MMU-less
m32700ut m32700ut.smp_defconfig SMP
m32700ut m32700ut.up_defconfig UP
mappi mappi.smp_defconfig SMP
mappi mappi.up_defconfig UP
mappi mappi.nommu_defconfig MMU-less
mappi2 mappi2.opsp_defconfig FPGA env. (CPU Core: OPSP)
mappi2 mappi2.vdec2_defconfig FPGA env. (CPU Core: VDEC2)
mappi3 imappi3.smp_defconfig SMP
oaks32r oaks32r_defconfig MMU-less
opsput opsput_defconfig UP
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
David Howells [Thu, 30 Aug 2007 16:21:19 +0000 (17:21 +0100)]
[MTD] Initialise s_flags in get_sb_mtd_aux()
Initialise s_flags in get_sb_mtd_aux() from the flags parameter.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Jason Lunz [Sat, 1 Sep 2007 19:06:03 +0000 (12:06 -0700)]
[JFFS2] fix write deadlock regression
I've bisected the deadlock when many small appends are done on jffs2 down to
this commit:
commit
6fe6900e1e5b6fa9e5c59aa5061f244fe3f467e2
Author: Nick Piggin <npiggin@suse.de>
Date: Sun May 6 14:49:04 2007 -0700
mm: make read_cache_page synchronous
Ensure pages are uptodate after returning from read_cache_page, which allows
us to cut out most of the filesystem-internal PageUptodate calls.
I didn't have a great look down the call chains, but this appears to fixes 7
possible use-before uptodate in hfs, 2 in hfsplus, 1 in jfs, a few in
ecryptfs, 1 in jffs2, and a possible cleared data overwritten with readpage in
block2mtd. All depending on whether the filler is async and/or can return
with a !uptodate page.
It introduced a wait to read_cache_page, as well as a
read_cache_page_async function equivalent to the old read_cache_page
without any callers.
Switching jffs2_gc_fetch_page to read_cache_page_async for the old
behavior makes the deadlocks go away, but maybe reintroduces the
use-before-uptodate problem? I don't understand the mm/fs interaction
well enough to say.
[It's fine. dwmw2.]
Signed-off-by: Jason Lunz <lunz@falooley.org>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Trond Myklebust [Tue, 28 Aug 2007 14:29:36 +0000 (10:29 -0400)]
NFS: Fix a write request leak in nfs_invalidate_page()
Ryusuke Konishi says:
The recent truncate_complete_page() clears the dirty flag from a page
before calling a_ops->invalidatepage(),
^^^^^^
static void
truncate_complete_page(struct address_space *mapping, struct page *page)
{
...
cancel_dirty_page(page, PAGE_CACHE_SIZE); <--- Inserted here at
kernel 2.6.20
if (PagePrivate(page))
do_invalidatepage(page, 0); ---> will call
a_ops->invalidatepage()
...
}
and this is disturbing nfs_wb_page_priority() from calling
nfs_writepage_locked() that is expected to handle the pending
request (=nfs_page) associated with the page.
int nfs_wb_page_priority(struct inode *inode, struct page *page, int how)
{
...
if (clear_page_dirty_for_io(page)) {
ret = nfs_writepage_locked(page, &wbc);
if (ret < 0)
goto out;
}
...
}
Since truncate_complete_page() will get rid of the page after
a_ops->invalidatepage() returns, the request (=nfs_page) associated
with the page becomes a garbage in nfs_inode->nfs_page_tree.
------------------------
Fix this by ensuring that nfs_wb_page_priority() recognises that it may
also need to clear out non-dirty pages that have an nfs_page associated
with them.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Chuck Lever [Wed, 29 Aug 2007 21:59:03 +0000 (17:59 -0400)]
NFS: change NFS mount error return when hostname/pathname too long
According to the mount(2) man page, the proper error return code for the
mount(2) system call when the special device name or the mounted-on
directory name is too long is ENAMETOOLONG.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Chuck Lever [Wed, 29 Aug 2007 21:59:01 +0000 (17:59 -0400)]
NFS: Off-by-one length error in string handling
The hostname was getting truncated in the new text-based NFS mount API.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Chuck Lever [Wed, 29 Aug 2007 21:58:59 +0000 (17:58 -0400)]
NFS: Return a real error code from mount(2)
Don't filter the return code from the in-kernel rpcbind or NFS mount
clients. Return the real error code so that callers of the new NFS
text-based mount API can apply a useful retry strategy.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Chuck Lever [Wed, 29 Aug 2007 21:58:57 +0000 (17:58 -0400)]
NFS: mount option parser chokes on proto=
The new text-based NFS mount option parsing logic doesn't recognize any
valid transport protocols due to a silly mistake in the protocol token
matching logic. This prevents basic mount requests such as:
mount.nfs server:/export /mnt -o proto=tcp
from working with the new text-based NFS mount API.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Trond Myklebust [Mon, 27 Aug 2007 15:33:00 +0000 (11:33 -0400)]
NFSv4: Ensure that we pass the correct dentry to nfs4_intent_set_file
This patch fixes an Oops that was reported by Gabriel Barazer.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Trond Myklebust [Mon, 27 Aug 2007 13:57:46 +0000 (09:57 -0400)]
NFSv4: Fix a typo in _nfs4_do_open_reclaim
This should fix the following Oops reported by Jeff Garzik:
kernel BUG at fs/nfs/nfs4xdr.c:1040!
invalid opcode: 0000 [1] SMP
CPU 0
Modules linked in: nfs lockd sunrpc af_packet
ipv6 cpufreq_ondemand acpi_cpufreq battery floppy nvram sg snd_hda_intel
ata_generic snd_pcm_oss snd_mixer_oss snd_pcm i2c_i801 snd_page_alloc e1000
firewire_ohci ata_piix i2c_core sr_mod cdrom sata_sil ahci libata sd_mod
scsi_mod ext3 jbd ehci_hcd uhci_hcd
Pid: 16353, comm: 10.10.10.1-recl Not tainted 2.6.23-rc3 #1
RIP: 0010:[<
ffffffff88240980>] [<
ffffffff88240980>] :nfs:encode_open+0x1c0/0x330
RSP: 0018:
ffff8100467c5c60 EFLAGS:
00010202
RAX:
ffff81000f89b8b8 RBX:
00000000697a6f6d RCX:
ffff81000f89b8b8
RDX:
0000000000000004 RSI:
0000000000000004 RDI:
ffff8100467c5c80
RBP:
ffff8100467c5c80 R08:
ffff81000f89bc30 R09:
ffff81000f89b83f
R10:
0000000000000001 R11:
ffffffff881e79e0 R12:
ffff81003cbd1808
R13:
ffff81000f89b860 R14:
ffff81005fc984e0 R15:
ffffffff88240af0
FS:
0000000000000000(0000) GS:
ffffffff8052a000(0000) knlGS:
0000000000000000
CS: 0010 DS: 0018 ES: 0018 CR0:
000000008005003b
CR2:
00002adb9e51a030 CR3:
000000007ea7e000 CR4:
00000000000006e0
DR0:
0000000000000000 DR1:
0000000000000000 DR2:
0000000000000000
DR3:
0000000000000000 DR6:
00000000ffff0ff0 DR7:
0000000000000400
Process 10.10.10.1-recl (pid: 16353, threadinfo
ffff8100467c4000, task
ffff8100038ce780)
Stack:
ffff81004aeb6a40 ffff81003cbd1808 ffff81003cbd1808 ffffffff88240b5d
ffff81000f89b8bc ffff81005fc984e8 ffff81000f89bc30 ffff81005fc984e8
0000000300000000 0000000000000000 0000000000000000 ffff81003cbd1800
Call Trace:
[<
ffffffff88240b5d>] :nfs:nfs4_xdr_enc_open_noattr+0x6d/0x90
[<
ffffffff881e74b7>] :sunrpc:rpcauth_wrap_req+0x97/0xf0
[<
ffffffff88240af0>] :nfs:nfs4_xdr_enc_open_noattr+0x0/0x90
[<
ffffffff881df57a>] :sunrpc:call_transmit+0x18a/0x290
[<
ffffffff881e5e7b>] :sunrpc:__rpc_execute+0x6b/0x290
[<
ffffffff881dff76>] :sunrpc:rpc_do_run_task+0x76/0xd0
[<
ffffffff882373f6>] :nfs:_nfs4_proc_open+0x76/0x230
[<
ffffffff88237a2e>] :nfs:nfs4_open_recover_helper+0x5e/0xc0
[<
ffffffff88237b74>] :nfs:nfs4_open_recover+0xe4/0x120
[<
ffffffff88238e14>] :nfs:nfs4_open_reclaim+0xa4/0xf0
[<
ffffffff882413c5>] :nfs:nfs4_reclaim_open_state+0x55/0x1b0
[<
ffffffff882417ea>] :nfs:reclaimer+0x2ca/0x390
[<
ffffffff88241520>] :nfs:reclaimer+0x0/0x390
[<
ffffffff8024e59b>] kthread+0x4b/0x80
[<
ffffffff8020cad8>] child_rip+0xa/0x12
[<
ffffffff8024e550>] kthread+0x0/0x80
[<
ffffffff8020cace>] child_rip+0x0/0x12
Code: 0f 0b eb fe 48 89 ef c7 00 00 00 00 02 be 08 00 00 00 e8 79
RIP [<
ffffffff88240980>] :nfs:encode_open+0x1c0/0x330
RSP <
ffff8100467c5c60>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Trond Myklebust [Mon, 27 Aug 2007 13:14:56 +0000 (09:14 -0400)]
NFS: Fix use of cancel_delayed_work_sync in nfs_release_automount_timer
Doh! We can't use cancel_delayed_work_sync because we may have been called
from an unmount that was being performed by nfs_automount_task.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Ondrej Zary [Fri, 31 Aug 2007 22:55:21 +0000 (00:55 +0200)]
Fix sata_via write errors on PATA drive connected to VT6421
I think that I've found and fixed the problem. There is a copy/paste bug in
vt6421_set_dma_mode() function which causes wrong values to be written to
PATA_UDMA_TIMING register.
This patch fixes a copy/paste bug that breaks DMA modes on VT6421 PATA port.
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Jeff Garzik [Sat, 1 Sep 2007 10:48:52 +0000 (06:48 -0400)]
[libata] ata_piix: properly terminate DMI system list
If you don't terminate a list, bad things happen...
Signed-off-by: Jeff Garzik <jeff@garzik.org>