GitHub/moto-9609/android_kernel_motorola_exynos9610.git
15 years ago[ARM] 5289/1: [AT91] Convert boards to use sam9_smc_configure()
Andrew Victor [Mon, 6 Oct 2008 19:05:35 +0000 (20:05 +0100)]
[ARM] 5289/1: [AT91] Convert boards to use sam9_smc_configure()

Convert the SAM9 and CAP9 board-specific files to make use of the
sam9_smc_configure() method to configure the memory-controller for
external peripherals.

The following boards have been modified:
 cam60 : NAND
 cap9adk : NAND, NOR
 qil-a9260 : NAND
 sam9-l9260 : NAND
 sam9260ek : NAND
 sam9261ek : DM9000 Ethernet, NAND
 sam9263 : NAND
 sam9g20ek : NAND
 sam9rlek : NAND
 usb-a9260 : NAND
 usb-a9263 .: NAND

Signed-off-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] 5288/1: [AT91] Remove SMC configuration from devices.c files
Andrew Victor [Mon, 6 Oct 2008 19:01:00 +0000 (20:01 +0100)]
[ARM] 5288/1: [AT91] Remove SMC configuration from devices.c files

In at91_add_device_nand(), do not configure the Static Memory
controller with specific timing values.
The *_devices.c files are board independent, and the SMC timing values
are specific to the NAND devices that are installed on the board.
The board-specific files are now responsible for configuring the
Static Memory controller (if the don't want to leave it up to a
bootloader).

Signed-off-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] 5287/2: [AT91] Configuration of Static Memory Controller
Andrew Victor [Mon, 13 Oct 2008 19:28:13 +0000 (20:28 +0100)]
[ARM] 5287/2: [AT91] Configuration of Static Memory Controller

Add a structure 'sam9_smc_config' and function sam9_smc_configure() to
allow the board-specific files to specify the configuration of the
Static Memory Controller per chip-select.  This allows the board file
to specify timings for NAND flash, NOR flash or other external
peripherals.

This functionality can be used for all the SAM9 and CAP9 processors.
(the AT91RM9200 has a different memory-controller)
This patch is based on similar code in the AVR32 architecture.

Signed-off-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] use asm/sections.h
Russell King [Mon, 1 Dec 2008 11:53:07 +0000 (11:53 +0000)]
[ARM] use asm/sections.h

Update to use the asm/sections.h header rather than declaring these
symbols ourselves.  Change __data_start to _data to conform with the
naming found within asm/sections.h.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agoMerge branch 'clks' into devel
Russell King [Sun, 30 Nov 2008 17:46:52 +0000 (17:46 +0000)]
Merge branch 'clks' into devel

15 years ago[ARM] amba drivers: don't pass a consumer clock name for devices with unique clocks
Russell King [Sun, 30 Nov 2008 17:38:14 +0000 (17:38 +0000)]
[ARM] amba drivers: don't pass a consumer clock name for devices with unique clocks

Where devices only have one consumer, passing a consumer clock ID
has no real benefit, and it only encourages wrong implementations of
the clk API.  Remove it.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] lh7a40x: convert to simple clk API
Russell King [Sun, 30 Nov 2008 17:34:32 +0000 (17:34 +0000)]
[ARM] lh7a40x: convert to simple clk API

lh7a40x only uses the clk API for the framebuffer, so there's
no point having a complicated implementation.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] lh7a40x: clocks - cleanup
Russell King [Sun, 30 Nov 2008 17:30:05 +0000 (17:30 +0000)]
[ARM] lh7a40x: clocks - cleanup

Remove commented out code, and unnecessary declarations.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] aaec2000: convert to simple clk API
Russell King [Sun, 30 Nov 2008 17:27:20 +0000 (17:27 +0000)]
[ARM] aaec2000: convert to simple clk API

aaec2000 only uses the clk API for the framebuffer, so there's
no point having a complicated implementation.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] netx: fix simple clk API
Russell King [Sun, 30 Nov 2008 17:17:25 +0000 (17:17 +0000)]
[ARM] netx: fix simple clk API

... to only return the framebuffer clock for the framebuffer device.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] ep93xx: convert to clkdev and match clocks by struct device where possible
Russell King [Sun, 30 Nov 2008 17:11:49 +0000 (17:11 +0000)]
[ARM] ep93xx: convert to clkdev and match clocks by struct device where possible

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] Update mach-types
Russell King [Sun, 30 Nov 2008 16:39:42 +0000 (16:39 +0000)]
[ARM] Update mach-types

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] davinci: asm/memory.h is not required for mach/vmalloc.h
Russell King [Sun, 30 Nov 2008 14:42:43 +0000 (14:42 +0000)]
[ARM] davinci: asm/memory.h is not required for mach/vmalloc.h

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] amba-clcd: don't use SZ_ constants in drivers
Russell King [Sun, 30 Nov 2008 13:46:10 +0000 (13:46 +0000)]
[ARM] amba-clcd: don't use SZ_ constants in drivers

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] Ensure that both MAX_DMA_ADDRESS and ISA_DMA_THRESHOLD are defined
Russell King [Sun, 30 Nov 2008 13:26:47 +0000 (13:26 +0000)]
[ARM] Ensure that both MAX_DMA_ADDRESS and ISA_DMA_THRESHOLD are defined

Both of these symbols should be defined by a platform, or neither
should be defined.  Ensure that all platforms conform.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] Add a common typesafe __io implementation
Russell King [Sun, 30 Nov 2008 11:45:54 +0000 (11:45 +0000)]
[ARM] Add a common typesafe __io implementation

As Al did for Versatile in 2ad4f86b60b649fd7428265c08d73a3bd360c81b,
add a typesafe __io implementation for platforms to use.  Convert
platforms to use this new simple typesafe implementation.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] integrator: parenthesize __virt_to_bus/__bus_to_virt argument
Russell King [Sun, 30 Nov 2008 11:44:11 +0000 (11:44 +0000)]
[ARM] integrator: parenthesize __virt_to_bus/__bus_to_virt argument

Macro arguments should be parenthesized to avoid unexpected side
effects.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] pnx4008: fix definition of PHYS_OFFSET
Russell King [Sun, 30 Nov 2008 11:43:34 +0000 (11:43 +0000)]
[ARM] pnx4008: fix definition of PHYS_OFFSET

PHYS_OFFSET constants should be defined using UL().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agoMerge branch 's3c-moves2' of git://aeryn.fluff.org.uk/bjdooks/linux into devel
Russell King [Sat, 29 Nov 2008 19:35:07 +0000 (19:35 +0000)]
Merge branch 's3c-moves2' of git://aeryn.fluff.org.uk/bjdooks/linux into devel

15 years ago[ARM] give RiscPC a NR_IRQS definition and remove default
Russell King [Sat, 29 Nov 2008 19:14:31 +0000 (19:14 +0000)]
[ARM] give RiscPC a NR_IRQS definition and remove default

RiscPC is the only platform using the default setting for NR_IRQS,
so the default NR_IRQS doesn't really make sense; remove it and
make RiscPC provide such a definition.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] Remove linux/sched.h from asm/cacheflush.h and asm/uaccess.h
Russell King [Sat, 29 Nov 2008 17:35:51 +0000 (17:35 +0000)]
[ARM] Remove linux/sched.h from asm/cacheflush.h and asm/uaccess.h

... and fix those drivers that were incorrectly relying upon
that include.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] Rename ISA mach/dma.h header to mach/isa-dma.h
Russell King [Sat, 29 Nov 2008 18:48:07 +0000 (18:48 +0000)]
[ARM] Rename ISA mach/dma.h header to mach/isa-dma.h

This avoids confusion with platform specific DMA implementations in
mach/dma.h

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] Hide ISA DMA API when ISA_DMA_API is unset
Russell King [Sat, 29 Nov 2008 11:40:28 +0000 (11:40 +0000)]
[ARM] Hide ISA DMA API when ISA_DMA_API is unset

When ISA_DMA_API is unset, we're not implementing the ISA DMA API,
so there's no point in publishing the prototypes via asm/dma.h, nor
including the machine dependent parts of that API.

This allows us to remove a lot of mach/dma.h files which don't contain
any useful code.  Unfortunately though, some platforms put their own
private non-ISA definitions into mach/dma.h, so we leave these behind
and fix the appropriate #include statments.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] fix constant values of MAX_DMA_ADDRESS
Russell King [Sat, 29 Nov 2008 10:56:33 +0000 (10:56 +0000)]
[ARM] fix constant values of MAX_DMA_ADDRESS

Since 8d5796d2ec6b5a4e7a52861144e63af438d6f8f7, we have allowed
PAGE_OFFSET to be configurable, so a constant virtual address
for MAX_DMA_ADDRESS is buggy.  It should be defined in terms of
PAGE_OFFSET rather than a constant virtual address.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] move MAX_DMA_ADDRESS to mach/memory.h
Russell King [Sat, 29 Nov 2008 10:50:22 +0000 (10:50 +0000)]
[ARM] move MAX_DMA_ADDRESS to mach/memory.h

Move the definition of MAX_DMA_ADDRESS from mach/dma.h to mach/memory.h,
thereby placing it along side its relative, ISA_DMA_THRESHOLD.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] Remove unnecessary mach/hardware.h includes in arch/arm/mm
Russell King [Fri, 28 Nov 2008 22:48:33 +0000 (22:48 +0000)]
[ARM] Remove unnecessary mach/hardware.h includes in arch/arm/mm

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] asm/system.h does not require asm/memory.h
Russell King [Fri, 28 Nov 2008 22:37:15 +0000 (22:37 +0000)]
[ARM] asm/system.h does not require asm/memory.h

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] ns9xxx: mach/hardware.h doesn't need asm/memory.h
Russell King [Fri, 28 Nov 2008 21:13:08 +0000 (21:13 +0000)]
[ARM] ns9xxx: mach/hardware.h doesn't need asm/memory.h

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] ixp4xx: clean up includes
Russell King [Fri, 28 Nov 2008 21:12:40 +0000 (21:12 +0000)]
[ARM] ixp4xx: clean up includes

mach/io.h doesn't need linux/mm.h.
mach/dma.h doesn't need linux/device.h, asm/page.h or mach/hardware.h

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] ixp23xx: mach/io.h doesn't need BUG() anymore
Russell King [Fri, 28 Nov 2008 21:10:06 +0000 (21:10 +0000)]
[ARM] ixp23xx: mach/io.h doesn't need BUG() anymore

ixp23xx's mach/io.h claims to need linux/kernel.h for BUG().
However, this header doesn't make use of BUG().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] iop13xx: avoid polluting the kernel's namespace
Russell King [Fri, 28 Nov 2008 16:13:44 +0000 (16:13 +0000)]
[ARM] iop13xx: avoid polluting the kernel's namespace

Avoid unnecessarily pollution of the kernel's namespace by avoiding
mach/hardware.h in mach/timex.h.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] iop3xx: avoid polluting the kernel's namespace
Russell King [Fri, 28 Nov 2008 16:13:44 +0000 (16:13 +0000)]
[ARM] iop3xx: avoid polluting the kernel's namespace

Avoid unnecessarily pollution of the kernel's namespace by avoiding
mach/hardware.h in mach/io.h, mach/memory.h and mach/timex.h.  Include
this header file where necessary.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] shark: avoid polluting the kernel's namespace
Russell King [Fri, 28 Nov 2008 16:13:44 +0000 (16:13 +0000)]
[ARM] shark: avoid polluting the kernel's namespace

Avoid unnecessarily pollution of the kernel's namespace by avoiding
mach/hardware.h in mach/io.h.  Include this header file where necessary.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] shark: remove old unused "translated" IO macros
Russell King [Fri, 28 Nov 2008 17:04:11 +0000 (17:04 +0000)]
[ARM] shark: remove old unused "translated" IO macros

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] clps711x: avoid polluting the kernel's namespace
Russell King [Fri, 28 Nov 2008 16:13:44 +0000 (16:13 +0000)]
[ARM] clps711x: avoid polluting the kernel's namespace

Avoid unnecessarily pollution of the kernel's namespace by avoiding
mach/hardware.h in mach/io.h.  Include this header file where necessary.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] footbridge: mach/hardware.h doesn't require mach/memory.h
Russell King [Fri, 28 Nov 2008 21:09:35 +0000 (21:09 +0000)]
[ARM] footbridge: mach/hardware.h doesn't require mach/memory.h

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] footbridge: avoid polluting the kernel's namespace
Russell King [Fri, 28 Nov 2008 16:13:44 +0000 (16:13 +0000)]
[ARM] footbridge: avoid polluting the kernel's namespace

Avoid unnecessarily pollution of the kernel's namespace by avoiding
mach/hardware.h in mach/io.h.  Include this header file where necessary.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] aaec2000: avoid polluting the kernel's namespace
Russell King [Fri, 28 Nov 2008 16:13:44 +0000 (16:13 +0000)]
[ARM] aaec2000: avoid polluting the kernel's namespace

Avoid unnecessarily pollution of the kernel's namespace by avoiding
mach/hardware.h in mach/io.h.  Include this header file where necessary.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] lh7a40x: avoid polluting the kernel's namespace
Russell King [Fri, 28 Nov 2008 16:13:44 +0000 (16:13 +0000)]
[ARM] lh7a40x: avoid polluting the kernel's namespace

Avoid unnecessarily pollution of the kernel's namespace by avoiding
mach/hardware.h in mach/io.h.  Include this header file where necessary.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] l7200: avoid polluting the kernel's namespace
Russell King [Fri, 28 Nov 2008 16:13:44 +0000 (16:13 +0000)]
[ARM] l7200: avoid polluting the kernel's namespace

Avoid unnecessarily pollution of the kernel's namespace by avoiding
mach/hardware.h in mach/io.h.  Include this header file where necessary.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] h720x: avoid polluting the kernel's namespace
Russell King [Fri, 28 Nov 2008 16:13:44 +0000 (16:13 +0000)]
[ARM] h720x: avoid polluting the kernel's namespace

Avoid unnecessarily pollution of the kernel's namespace by avoiding
mach/hardware.h in mach/io.h.  Include this header file where necessary.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] imx: avoid polluting the kernel's namespace
Russell King [Fri, 28 Nov 2008 16:13:44 +0000 (16:13 +0000)]
[ARM] imx: avoid polluting the kernel's namespace

Avoid unnecessarily pollution of the kernel's namespace by avoiding
mach/hardware.h in mach/io.h.  Include this header file where necessary.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] pxa: avoid polluting the kernel's namespace
Russell King [Fri, 28 Nov 2008 16:04:54 +0000 (16:04 +0000)]
[ARM] pxa: avoid polluting the kernel's namespace

Avoid unnecessarily pollution of the kernel's namespace by avoiding
mach/hardware.h.  Include this header file where necessary.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] rpc: remove obsolete IO accessors
Russell King [Fri, 28 Nov 2008 15:49:11 +0000 (15:49 +0000)]
[ARM] rpc: remove obsolete IO accessors

Remove __arch_base_xxx() and __ioaddrc() macros; they're obsolete and
unused.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] versatile: remove IRQ mask definitions
Russell King [Fri, 28 Nov 2008 15:42:42 +0000 (15:42 +0000)]
[ARM] versatile: remove IRQ mask definitions

These definitions are unused and serve no purpose with genirq.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agoMerge branch 'highmem' into devel
Russell King [Fri, 28 Nov 2008 15:39:02 +0000 (15:39 +0000)]
Merge branch 'highmem' into devel

Conflicts:

arch/arm/mach-clps7500/include/mach/memory.h

15 years ago[ARM] remove a common set of __virt_to_bus definitions
Nicolas Pitre [Sat, 6 Sep 2008 01:53:30 +0000 (21:53 -0400)]
[ARM] remove a common set of __virt_to_bus definitions

Let's provide an overridable default instead of having every machine
class define __virt_to_bus and __bus_to_virt to the same thing.  What
most platforms are using is bus_addr == phys_addr so such is the default.

One exception is ebsa110 which has no DMA what so ever, so the actual
definition is not important except only for proper compilation.  Also
added a comment about the special footbridge bus translation.

Let's also remove comments alluding to set_dma_addr which is not
(and should not) be commonly used.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] unconditionally define __virt_to_phys and __phys_to_virt
Nicolas Pitre [Fri, 5 Sep 2008 20:05:14 +0000 (16:05 -0400)]
[ARM] unconditionally define __virt_to_phys and __phys_to_virt

There is no machine class overriding this.  If non linear translations
are implemented again for some machines then this could be restored at
that time.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] remove bogus #ifdef CONFIG_HIGHMEM in show_pte()
Nicolas Pitre [Thu, 11 Sep 2008 15:52:02 +0000 (11:52 -0400)]
[ARM] remove bogus #ifdef CONFIG_HIGHMEM in show_pte()

The restriction on !CONFIG_HIGHMEM is unneeded since page tables are
currently never allocated with highmem pages, and actually disable PTE
dump whenever highmem is configured.  Let's have a dynamic test to better
describe the current limitation instead.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] prevent the vmalloc cmdline argument from eating all memory
Nicolas Pitre [Fri, 19 Sep 2008 14:43:06 +0000 (10:43 -0400)]
[ARM] prevent the vmalloc cmdline argument from eating all memory

Commit 8d5796d2ec6b5a4e7a52861144e63af438d6f8f7 allows for the vmalloc
area to be resized from the kernel cmdline.  Make sure it cannot overlap
with RAM entirely.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] mem_init() cleanups
Nicolas Pitre [Wed, 17 Sep 2008 18:50:42 +0000 (14:50 -0400)]
[ARM] mem_init() cleanups

Make free_area() arguments pfn based, and return number of freed pages.
This will simplify highmem initialization later.

Also, codepages, datapages and initpages are actually codesize, datasize
and initsize.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] split highmem into its own memory bank
Nicolas Pitre [Tue, 2 Sep 2008 15:44:21 +0000 (11:44 -0400)]
[ARM] split highmem into its own memory bank

Doing so will greatly simplify the bootmem initialization code as each
bank is therefore entirely lowmem or highmem with no crossing between
those zones.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] rationalize memory configuration code some more
Nicolas Pitre [Mon, 6 Oct 2008 17:24:40 +0000 (13:24 -0400)]
[ARM] rationalize memory configuration code some more

Currently there are two instances of struct meminfo: one in
kernel/setup.c marked __initdata, and another in mm/init.c with
permanent storage.  Let's keep only the later to directly populate
the permanent version from arm_add_memory().

Also move common validation tests between the MMU and non-MMU cases
into arm_add_memory() to remove some duplication.  Protection against
overflowing the membank array is also moved in there in order to cover
the kernel cmdline parsing path as well.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] fix a couple clear_user_highpage assembly constraints
Nicolas Pitre [Tue, 4 Nov 2008 07:42:27 +0000 (02:42 -0500)]
[ARM] fix a couple clear_user_highpage assembly constraints

In all cases the kaddr is assigned an input register even though it is
modified in the assembly code.  Let's assign a new variable to the
modified value and mark those inline asm with volatile otherwise they
get optimized away because the output variable is otherwise not used.

Also fix a few conversion errors in copypage-feroceon.c and
copypage-v4mc.c.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] clearpage: provide our own clear_user_highpage()
Russell King [Fri, 31 Oct 2008 16:32:19 +0000 (16:32 +0000)]
[ARM] clearpage: provide our own clear_user_highpage()

For similar reasons as copy_user_page(), we want to avoid the
additional kmap_atomic if it's unnecessary.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] copypage: provide our own copy_user_highpage()
Russell King [Fri, 31 Oct 2008 15:08:35 +0000 (15:08 +0000)]
[ARM] copypage: provide our own copy_user_highpage()

We used to override the copy_user_page() function.  However, this
is not only inefficient, it also causes additional complexity for
highmem support, since we convert from a struct page to a kernel
direct mapped address and back to a struct page again.

Moreover, with highmem support, we end up pointlessly setting up
kmap entries for pages which we're going to remap.  So, push the
kmapping down into the copypage implementation files where it's
required.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] copypage: convert assembly files to C
Russell King [Fri, 31 Oct 2008 13:08:02 +0000 (13:08 +0000)]
[ARM] copypage: convert assembly files to C

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agoAllow architectures to override copy_user_highpage()
Russell King [Thu, 27 Nov 2008 11:13:58 +0000 (11:13 +0000)]
Allow architectures to override copy_user_highpage()

With aliasing VIPT cache support, the ARM implementation of
clear_user_page() and copy_user_page() sets up a temporary kernel space
mapping such that we have the same cache colour as the userspace page.
This avoids having to consider any userspace aliases from this operation.

However, when highmem is enabled, kmap_atomic() have to setup mappings.
The copy_user_highpage() and clear_user_highpage() call these functions
before delegating the copies to copy_user_page() and clear_user_page().

The effect of this is that each of the *_user_highpage() functions setup
their own kmap mapping, followed by the *_user_page() functions setting
up another mapping.  This is rather wasteful.

Thankfully, copy_user_highpage() can be overriden by architectures by
defining __HAVE_ARCH_COPY_USER_HIGHPAGE.  However, replacement of
clear_user_highpage() is more difficult because its inline definition
is not conditional.  It seems that you're expected to define
__HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE and provide a replacement
__alloc_zeroed_user_highpage() implementation instead.

The allocation itself is fine, so we don't want to override that.  What
we really want to do is to override clear_user_highpage() with our own
version which doesn't kmap_atomic() unnecessarily.

Other VIPT architectures (PARISC and SH) would also like to override
this function as well.

Acked-by: Hugh Dickins <hugh@veritas.com>
Acked-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agoMerge branch 'for-rmk' of git://linux-arm.org/linux-2.6 into devel
Russell King [Thu, 27 Nov 2008 12:42:48 +0000 (12:42 +0000)]
Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6 into devel

15 years agoMerge branch 'clps7500' into devel
Russell King [Thu, 27 Nov 2008 12:39:43 +0000 (12:39 +0000)]
Merge branch 'clps7500' into devel

Conflicts:

arch/arm/Kconfig

15 years agoMerge branches 'core' and 'clks' into devel
Russell King [Thu, 27 Nov 2008 12:39:14 +0000 (12:39 +0000)]
Merge branches 'core' and 'clks' into devel

15 years ago[ARM] sa1100: match clock by dev_name(dev)
Russell King [Sat, 8 Nov 2008 20:48:27 +0000 (20:48 +0000)]
[ARM] sa1100: match clock by dev_name(dev)

Continuing the move away from implementations which give an excuse
for other bad implementations, convert SA1100 to lookup its singular
clock by dev_name(dev) rather than by id.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] pxa: don't pass a consumer clock name for devices with unique clocks
Russell King [Tue, 11 Nov 2008 17:52:32 +0000 (17:52 +0000)]
[ARM] pxa: don't pass a consumer clock name for devices with unique clocks

Where devices only have one consumer, passing a consumer clock ID
has no real benefit.  Remove it.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] pxa: convert to clkdev and match clocks by struct device where possible
Russell King [Sat, 8 Nov 2008 20:25:21 +0000 (20:25 +0000)]
[ARM] pxa: convert to clkdev and match clocks by struct device where possible

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] versatile: convert to clkdev and lookup clocks by device name
Russell King [Sat, 8 Nov 2008 20:13:53 +0000 (20:13 +0000)]
[ARM] versatile: convert to clkdev and lookup clocks by device name

People often point to the Integrator/Versatile/Realview
implementations to justify using the consumer name as the sole
selector for clocks.

Eliminate this excuse by changing the Versatile implementation, so
it provides a better example of how it should be done.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] integrator: convert to clkdev and lookup clocks by device name
Russell King [Sat, 8 Nov 2008 20:08:08 +0000 (20:08 +0000)]
[ARM] integrator: convert to clkdev and lookup clocks by device name

People often point to the Integrator/Versatile/Realview
implementations to justify using the consumer name as the sole
selector for clocks.

Eliminate this excuse by changing the Integrator implementation, so
it provides a better example of how it should be done.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] realview: convert to clkdev and lookup clocks by device name
Russell King [Sat, 8 Nov 2008 20:05:55 +0000 (20:05 +0000)]
[ARM] realview: convert to clkdev and lookup clocks by device name

People often point to the Integrator/Versatile/Realview
implementations to justify using the consumer name as the sole
selector for clocks.

Eliminate this excuse by changing the Realview implementation, so
it provides a better example of how it should be done.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] clkdev: add generic clkdev infrastructure
Russell King [Sun, 9 Nov 2008 16:32:46 +0000 (16:32 +0000)]
[ARM] clkdev: add generic clkdev infrastructure

Add some generic infrastructure to assist looking up struct clks
for the ARM architecture.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] clps7500: remove support
Russell King [Tue, 28 Oct 2008 09:43:54 +0000 (09:43 +0000)]
[ARM] clps7500: remove support

The CLPS7500 platform has not built since 2.6.22-git7 and there
seems to be no interest in fixing it.  So, remove the platform
support.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] Arrange for platforms to select appropriate CPU support
Russell King [Sun, 26 Oct 2008 10:55:14 +0000 (10:55 +0000)]
[ARM] Arrange for platforms to select appropriate CPU support

Rather than:

config CPU_BLAH
bool
depends on ARCH_FOO || MACH_BAR
default y if ARCH_FOO || MACH_BAR

arrange for ARCH_FOO and MACH_BAR to select CPU_BLAH directly.

Acked-by: Nicolas Pitre <nico@marvell.com>
Acked-by: Andrew Victor <linux@maxim.org.za>
Acked-by: Brian Swetland <swetland@google.com>
Acked-by: Eric Miao <eric.miao@marvell.com>
Acked-by: Nicolas Bellido <ml@acolin.be>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] remove memzero()
Russell King [Mon, 27 Oct 2008 11:24:09 +0000 (11:24 +0000)]
[ARM] remove memzero()

As suggested by Andrew Morton, remove memzero() - it's not supported
on other architectures so use of it is a potential build breaking bug.
Since the compiler optimizes memset(x,0,n) to __memzero() perfectly
well, we don't miss out on the underlying benefits of memzero().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agoMerge branch 'omap-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind...
Russell King [Thu, 27 Nov 2008 11:13:10 +0000 (11:13 +0000)]
Merge branch 'omap-fixes' of git://git./linux/kernel/git/tmlind/linux-omap-2.6

15 years agoARM: OMAP: Fixes for suspend / resume GPIO wake-up handling
Tero Kristo [Wed, 26 Nov 2008 22:35:16 +0000 (14:35 -0800)]
ARM: OMAP: Fixes for suspend / resume GPIO wake-up handling

Use the correct wake-up enable register, and make it
work with 34xx also.

Signed-off-by: Tero Kristo <tero.kristo@nokia.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Typo fix for clock_allow_idle
Amit Kucheria [Tue, 25 Nov 2008 23:11:12 +0000 (15:11 -0800)]
ARM: OMAP: Typo fix for clock_allow_idle

The second clk_deny_idle instance should be clk_allow_idle instead.

Signed-off-by: Amit Kucheria <amit.kucheria@verdurent.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Remove broken LCD driver for SX1
Tony Lindgren [Tue, 25 Nov 2008 02:11:16 +0000 (18:11 -0800)]
ARM: OMAP: Remove broken LCD driver for SX1

Recently the omap McBSP code was cleaned up to get rid of
direct McBSP register tinkering by the drivers. Looks like
lcd_sx1.c never got converted, and now it breaks builds.

It seems the lcd_sx1.c driver is attempting SPI mode, but
doing it in a different way compared to omap_mcbsp_set_spi_mode().

Remove the broken driver, patches welcome to add it back when
done properly by patching both mcbsp.c and lcd_sx1.c.

Cc: Vovan888@gmail.com
Cc: linux-fbdev-devel@lists.sourceforge.net
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years ago[ARM] 5335/1: pxa25x_udc: Fix is_vbus_present to return 1 or 0
Jaya Kumar [Tue, 18 Nov 2008 01:32:36 +0000 (02:32 +0100)]
[ARM] 5335/1: pxa25x_udc: Fix is_vbus_present to return 1 or 0

the use of is_blah() suggests a 1 or 0 return. This assumption is made in
pxa25x_udc code such as:
dev->vbus = is_vbus_present();
where dev->vbus is a bitfield. This fix allows pxa25x_udc_probe to correctly
detect vbus. Other changes were to make its use consistent in the rest of
the code.

Signed-off-by: Jaya Kumar <jayakumar.lkml@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] pxa/MioA701: bluetooth resume fix
Robert Jarzmik [Mon, 17 Nov 2008 19:29:04 +0000 (20:29 +0100)]
[ARM] pxa/MioA701: bluetooth resume fix

The G3IPL expects the value at RAM address 0xa020b020 to be
exactly 1 to setup the bluetooth GPIOs properly. The actual
code got a value from gpio_get_value() which was not 1, but
a "not equal to 0" integer.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
15 years ago[ARM] pxa/MioA701: fix memory corruption.
Robert Jarzmik [Mon, 17 Nov 2008 19:29:03 +0000 (20:29 +0100)]
[ARM] pxa/MioA701: fix memory corruption.

In the resume bootstrap, the early disable address is wrong.
Fix it to RAM address 0xa020b000 instead of 0xa0200000, and
make it consistent with RESUME_ENABLE_ADDR in mioa701.c.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
15 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Fri, 21 Nov 2008 02:08:09 +0000 (18:08 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 5330/1: mach-pxa: Fixup reset for systems using reboot=cold or other strings
  [ARM] pxa: fix incorrect PCMCIA PSKTSEL pin configuration for spitz
  [ARM] pxa: fix I2C controller device being registered twice on Akita
  pxafb: only initialize the smart panel thread when dealing with a smartpanel
  pxafb: introduce LCD_TYPE_MASK and use it.

15 years agoLinux 2.6.28-rc6
Linus Torvalds [Thu, 20 Nov 2008 23:19:22 +0000 (15:19 -0800)]
Linux 2.6.28-rc6

15 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
Linus Torvalds [Thu, 20 Nov 2008 23:07:40 +0000 (15:07 -0800)]
Merge branch 'release' of git://git./linux/kernel/git/aegl/linux-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] xen: fix xen_get_eflags.
  [IA64] ia64/pv_ops/pv_cpu_ops: fix _IA64_REG_IP case.
  [IA64] remove duplicate include iommu.h
  [IA64] use mprintk instead of printk, in ia64_mca_modify_original_stack
  [IA64] Rationalize kernel mode alignment checking

15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
Linus Torvalds [Thu, 20 Nov 2008 21:53:21 +0000 (13:53 -0800)]
Merge git://git./linux/kernel/git/gregkh/usb-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
  USB: ACE1001 patch for cp2101.c
  USB: usbmon: fix read(2)
  USB: gadget rndis: send notifications
  USB: gadget rndis: stop windows self-immolation
  USB: storage: update unusual_devs entries for Nokia 5300 and 5310
  USB: storage: updates unusual_devs entry for the Nokia 6300
  usb: musb: fix bug in musb_schedule
  USB: fix SB700 usb subsystem hang bug

15 years ago[IA64] xen: fix xen_get_eflags.
Isaku Yamahata [Tue, 18 Nov 2008 10:20:51 +0000 (19:20 +0900)]
[IA64] xen: fix xen_get_eflags.

fix xen_get_eflags. It doesn't take any argument.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Tony Luck <tony.luck@intel.com>
15 years ago[IA64] ia64/pv_ops/pv_cpu_ops: fix _IA64_REG_IP case.
Isaku Yamahata [Tue, 18 Nov 2008 10:19:50 +0000 (19:19 +0900)]
[IA64] ia64/pv_ops/pv_cpu_ops: fix _IA64_REG_IP case.

pv_cpu_ops.getreg(_IA64_REG_IP) returned constant.
But the returned ip valued should be the one in the caller, not of the callee.
This patch fixes that.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Tony Luck <tony.luck@intel.com>
15 years ago[IA64] remove duplicate include iommu.h
Huang Weiyi [Thu, 20 Nov 2008 21:38:16 +0000 (13:38 -0800)]
[IA64] remove duplicate include iommu.h

arch/ia64/kernel/pci-dma.c only needs to include iommu once.

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
15 years ago[IA64] use mprintk instead of printk, in ia64_mca_modify_original_stack
Hidetoshi Seto [Mon, 17 Nov 2008 01:18:08 +0000 (10:18 +0900)]
[IA64] use mprintk instead of printk, in ia64_mca_modify_original_stack

Using printk from MCA/INIT context is unsafe since it can cause deadlock.
The ia64_mca_modify_original_stack is called from both of mca handler and
init handler, so it should use mprintk instead of printk.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
15 years ago[IA64] Rationalize kernel mode alignment checking
Tony Luck [Thu, 20 Nov 2008 21:27:12 +0000 (13:27 -0800)]
[IA64] Rationalize kernel mode alignment checking

Itanium processors can handle some misaligned data accesses. They
also provide a mode where all such accesses are forced to trap. The
kernel was schizophrenic about use of this mode:

* Base kernel code ran in permissive mode where the only traps
  generated were from those cases that the h/w could not handle.
* Interrupt, syscall and trap code ran in strict mode where all
  unaligned accesses caused traps to the 0x5a00 unaligned reference
  vector.

Use strict alignment checking throughout the kernel, but make
sure that we continue to let user mode use more relaxed mode
as the default.

Signed-off-by: Tony Luck <tony.luck@intel.com>
15 years agox86: Fix interrupt leak due to migration
Matthew Wilcox [Thu, 20 Nov 2008 21:09:33 +0000 (14:09 -0700)]
x86: Fix interrupt leak due to migration

When we migrate an interrupt from one CPU to another, we set the
move_in_progress flag and clean up the vectors later once they're not
being used.  If you're unlucky and call destroy_irq() before the vectors
become un-used, the move_in_progress flag is never cleared, which causes
the interrupt to become unusable.

This was discovered by Jesse Brandeburg for whom it manifested as an
MSI-X device refusing to use MSI-X mode when the driver was unloaded
and reloaded repeatedly.

Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoSUNRPC: Fix a performance regression in the RPC authentication code
Trond Myklebust [Thu, 20 Nov 2008 21:06:21 +0000 (16:06 -0500)]
SUNRPC: Fix a performance regression in the RPC authentication code

Fix a regression reported by Max Kellermann whereby kernel profiling
showed that his clients were spending 45% of their time in
rpcauth_lookup_credcache.

It turns out that although his processes had identical uid/gid/groups,
generic_match() was failing to detect this, because the task->group_info
pointers were not shared. This again lead to the creation of a huge number
of identical credentials at the RPC layer.

The regression is fixed by comparing the contents of task->group_info
if the actual pointers are not identical.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
Linus Torvalds [Thu, 20 Nov 2008 21:14:16 +0000 (13:14 -0800)]
Merge git://git./linux/kernel/git/sfrench/cifs-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
  [CIFS] Do not attempt to close invalidated file handles
  [CIFS] fix check for dead tcon in smb_init

15 years agoMerge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
Linus Torvalds [Thu, 20 Nov 2008 21:13:48 +0000 (13:13 -0800)]
Merge branch 'upstream' of git://ftp.linux-mips.org/upstream-linus

* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
  MIPS: csrc-r4k: Fix declaration depending on the wrong CONFIG_ symbol.
  MIPS: csrc-r4k: Fix spelling mistake.
  MIPS: RB532: Provide functions for gpio configuration
  MIPS: IP22: Make indy_sc_ops variable static
  MIPS: RB532: GPIO register offsets are relative to GPIOBASE
  MIPS: Malta: Fix include paths in malta-amon.c

15 years agoMerge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Thu, 20 Nov 2008 21:13:03 +0000 (13:13 -0800)]
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:
  intel-iommu: fix compile warnings

15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Thu, 20 Nov 2008 21:12:14 +0000 (13:12 -0800)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (23 commits)
  net: fix tiny output corruption of /proc/net/snmp6
  atl2: don't request irq on resume if netif running
  ipv6: use seq_release_private for ip6mr.c /proc entries
  pkt_sched: fix missing check for packet overrun in qdisc_dump_stab()
  smc911x: Fix printf format typo in smc911x driver.
  asix: Fix asix-based cards connecting to 10/100Mbs LAN.
  mv643xx_eth: fix recycle check bound
  mv643xx_eth: fix the order of mdiobus_{unregister, free}() calls
  sh: sh_eth: Update to change of mii_bus
  TPROXY: supply a struct flowi->flags argument in inet_sk_rebuild_header()
  TPROXY: fill struct flowi->flags in udp_sendmsg()
  net: ipg.c fix bracing on endian swapping
  phylib: Fix auto-negotiation restart avoidance
  net: jme.c rxdesc.flags is __le16, other missing endian swaps
  phylib: fix phy name example in documentation
  net: Do not fire linkwatch events until the device is registered.
  phonet: fix compilation with gcc-3.4
  ixgbe: fix compilation with gcc-3.4
  pktgen: fix multiple queue warning
  net: fix ip_mr_init() error path
  ...

15 years agoMerge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Thu, 20 Nov 2008 21:11:21 +0000 (13:11 -0800)]
Merge branch 'tracing-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  ftrace: fix dyn ftrace filter selection
  ftrace: make filtered functions effective on setting
  ftrace: fix set_ftrace_filter
  trace: introduce missing mutex_unlock()
  tracing: kernel/trace/trace.c: introduce missing kfree()

15 years agoMerge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Thu, 20 Nov 2008 21:09:32 +0000 (13:09 -0800)]
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: uaccess_64: fix return value in __copy_from_user()
  x86: quirk for reboot stalls on a Dell Optiplex 330

15 years agoparisc: fix bug in compat_arch_ptrace
Helge Deller [Thu, 20 Nov 2008 09:54:09 +0000 (10:54 +0100)]
parisc: fix bug in compat_arch_ptrace

Commit 81e192d6ce303b6792aa38ff35f41a1a7357f23a ("parisc: convert to
generic compat_sys_ptrace") introduced a bug which segfaults the parisc
64bit kernel when stracing 32bit applications:

  Kernel Fault: Code=15 regs=00000000bafa42b0 (Addr=00000001baf5ab57)
       YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
  PSW: 00001000000001101111111100001011 Tainted: G        W
  r00-03  000000ff0806ff0b 000000004068edc0 00000000401203f8 00000000fb3e2508
  r04-07  0000000040686dc0 00000000baf5a800 fffffffffffffffc fffffffffb3e2508
  r08-11  00000000baf5a800 000000000004b068 00000000000402b0 0000000000040d68
  r12-15  0000000000042a9c 0000000000040a9c 0000000000040d60 0000000000042e9c
  r16-19  000000000004b060 000000000004b058 0000000000042d9c ffffffffffffffff
  r20-23  000000000800000b 0000000000000000 000000000800000b fffffffffb3e2508
  r24-27  00000000fffffffc 0000000000000003 00000000fffffffc 0000000040686dc0
  r28-31  00000001baf5a7ff 00000000bafa4280 00000000bafa42b0 00000000000001d7
  sr00-03  0000000000fca000 0000000000000000 0000000000000000 0000000000fca000
  sr04-07  0000000000000000 0000000000000000 0000000000000000 0000000000000000

  IASQ: 0000000000000000 0000000000000000 IAOQ: 0000000040120400 0000000040120404
   IIR: 4b9a06b0    ISR: 0000000000000000  IOR: 00000001baf5ab57
   CPU:        0   CR30: 00000000bafa4000 CR31: 00000000d22344e0
   ORIG_R28: 00000000fb3e2248
   IAOQ[0]: compat_arch_ptrace+0xb8/0x160
   IAOQ[1]: compat_arch_ptrace+0xbc/0x160
   RP(r2): compat_arch_ptrace+0xb0/0x160
  Backtrace:
   [<00000000401612ac>] compat_sys_ptrace+0x15c/0x180
   [<0000000040104ef8>] syscall_exit+0x0/0x14

The problem is that compat_arch_ptrace() enters with an addr value of
type compat_ulong_t and calls translate_usr_offset() to translate the
address offset into a struct pt_regs offset like this:

addr = translate_usr_offset(addr)

this means that any return value of translate_usr_offset() is stored
back as compat_ulong_t type into the addr variable.

But since translate_usr_offset() returns -1 for invalid offsets, addr
can now get the value 0xffffffff which then fails the next return-value
sanity check and thus the kernel tries to access invalid memory:

if (addr < 0)
break;

Fix this bug by modifying translate_usr_offset() to take and return
values of type compat_ulong_t, and by returning the value
"sizeof(struct pt_regs)" as an error indicator.

Additionally change the sanity check to check for return values
for >= sizeof(struct pt_regs).

This patch survived my compile and run-tests.

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years ago[CIFS] Do not attempt to close invalidated file handles
Steve French [Thu, 20 Nov 2008 20:00:44 +0000 (20:00 +0000)]
[CIFS] Do not attempt to close invalidated file handles

If a connection with open file handles has gone down
and come back up and reconnected without reopening
the file handle yet, do not attempt to send an SMB close
request for this handle in cifs_close.  We were
checking for the connection being invalid in cifs_close
but since the connection may have been reconnected
we also need to check whether the file handle
was marked invalid (otherwise we could close the
wrong file handle by accident).

Acked-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
15 years agoMIPS: csrc-r4k: Fix declaration depending on the wrong CONFIG_ symbol.
Ralf Baechle [Mon, 3 Nov 2008 11:32:34 +0000 (11:32 +0000)]
MIPS: csrc-r4k: Fix declaration depending on the wrong CONFIG_ symbol.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
15 years agoMIPS: csrc-r4k: Fix spelling mistake.
Ralf Baechle [Mon, 3 Nov 2008 11:31:54 +0000 (11:31 +0000)]
MIPS: csrc-r4k: Fix spelling mistake.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
15 years agoMIPS: RB532: Provide functions for gpio configuration
Phil Sutter [Sat, 1 Nov 2008 14:13:21 +0000 (15:13 +0100)]
MIPS: RB532: Provide functions for gpio configuration

As gpiolib doesn't support pin multiplexing, it provides no way to
access the GPIOFUNC register. Also there is no support for setting
interrupt status and level. These functions provide access to them and
are needed by the CompactFlash driver.

Signed-off-by: Phil Sutter <n0-1@freewrt.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>