firefly-linux-kernel-4.4.55.git
18 years ago[ARM] nommu: defines CPU_CP15, CPU_CP15_MMU and CPU_CP15_MPU
Hyok S. Choi [Tue, 26 Sep 2006 08:36:37 +0000 (17:36 +0900)]
[ARM] nommu: defines CPU_CP15, CPU_CP15_MMU and CPU_CP15_MPU

By merging of uClinux/ARM, we need to treat various CPU cores which have
MMU, MPU or even none for memory management. The memory management
coprocessors are controlled by CP15 register set and the ARM core family
can be categorized by 5 groups by the register ;
  G-a. CP15 is MMU : 610, 710, 720, 920, 922, 925, 926, 1020, 1020e, 1022,
v6 and the derivations sa1100, sa110, xscale, xsc3.
  G-b. CP15 is MPU : 740, 940, 946, 996, 1156.
  G-c. CP15 is MPU or MMU : 1026 (selectable by schematic design)
  G-d. CP15 is exist, but nothing for memory managemnt : 966, 968.
  G-e. no-CP15 : 7tdmi, 9tdmi, 9e, 9ej

This patch defines CPU_CP15, CPU_CP15_MMU and CPU_CP15_MPU. Thus the
family can be defined as :
  - CPU_CP15 only : G-d
  - CPU_CP15_MMU(implies CPU_CP15) : G-a, G-c(selectable)
  - CPU_CP15_MPU(implies CPU_CP15) : G-b, G-c(selectable)
  - !CPU_CP15 : G-e

Signed-off-by: Hyok S. Choi <hyok.choi@samsung.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] nommu: allows to support module in nommu
Hyok S. Choi [Tue, 26 Sep 2006 08:37:07 +0000 (17:37 +0900)]
[ARM] nommu: allows to support module in nommu

A simple patch to support module in nommu mode.
The vmalloc is used instead of __vmalloc_area which depends on CONFIG_MMU.

Signed-off-by: Hyok S. Choi <hyok.choi@samsung.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] do_bad_area() always takes current and current->active_mm
Russell King [Wed, 27 Sep 2006 15:13:48 +0000 (16:13 +0100)]
[ARM] do_bad_area() always takes current and current->active_mm

Since do_bad_area() always takes the currently active task and
(supposed to) take the currently active MM, there's no point passing
them to this function.  Instead, obtain references to them inside
do_bad_area().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Add setup_mm_for_reboot() for nommu
Russell King [Wed, 27 Sep 2006 14:43:47 +0000 (15:43 +0100)]
[ARM] Add setup_mm_for_reboot() for nommu

Add an empty setup_mm_for_reboot() function for nommu machines.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Rename mm-armv.c to pgd.c
Russell King [Wed, 27 Sep 2006 14:40:28 +0000 (15:40 +0100)]
[ARM] Rename mm-armv.c to pgd.c

mm-armv.c now only contains the pgd allocation/freeing code, so
rename it to have a more sensible filename.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Move rest of MMU setup code from mm-armv.c to mmu.c
Russell King [Wed, 27 Sep 2006 14:38:34 +0000 (15:38 +0100)]
[ARM] Move rest of MMU setup code from mm-armv.c to mmu.c

If we're going to have mmu.c for code which is specific to the MMU
machines, we might as well move the other MMU initialisation
specific code from mm-armv.c into this new file.  This also allows
us to make some functions static.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Split ARM MM initialisation for !mmu
Russell King [Wed, 27 Sep 2006 14:27:33 +0000 (15:27 +0100)]
[ARM] Split ARM MM initialisation for !mmu

Move the MMU specific code from init.c into mmu.c, and add nommu
fixups to nommu.c

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Separate page table manipulation code from bootmem initialisation
Russell King [Wed, 27 Sep 2006 09:00:54 +0000 (10:00 +0100)]
[ARM] Separate page table manipulation code from bootmem initialisation

nommu does not require the page table manipulation code in the
bootmem initialisation paths.  Move this into separate inline
functions.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3860/1: Versatile PCI config byte accesses
Paul Brook [Sun, 24 Sep 2006 15:54:40 +0000 (16:54 +0100)]
[ARM] 3860/1: Versatile PCI config byte accesses

The ARM Versatile board PCI config space read routines are broken for byte
accesses.  The access uses a byte read, so masking the bottom two bits of the
address is wrong.

I guess this is a cut/paste error from the the halfword code which uses
aligned word access+shift+mask.

Signed-off-by: Paul Brook <paul@codesourcery.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3859/1: Fix devicemaps_init() XIP_KERNEL odd 1MiB XIP_PHYS_ADDR translation...
George G. Davis [Fri, 22 Sep 2006 17:36:38 +0000 (18:36 +0100)]
[ARM] 3859/1: Fix devicemaps_init() XIP_KERNEL odd 1MiB XIP_PHYS_ADDR translation error

The ARM XIP_KERNEL map created in devicemaps_init() is wrong.
The map.pfn is rounded down to an even 1MiB section boundary
which results in va/pa translations errors when XIP_PHYS_ADDR
starts on an odd 1MiB boundary and this causes the kernel to
hang.  This patch fixes ARM XIP_KERNEL translation errors for
the odd 1MiB XIP_PHYS_ADDR boundary case.

Signed-off-by: George G. Davis <gdavis@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3858/1: S3C2412: power management code
Ben Dooks [Fri, 22 Sep 2006 14:42:18 +0000 (15:42 +0100)]
[ARM] 3858/1: S3C2412: power management code

Add S3C2412 power management code, and move the
core register saving in from s3c2412.c

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3854/2: S3C2410 - add machine type for AML M5900 series (resubmitted)
David Anders [Thu, 21 Sep 2006 21:57:12 +0000 (22:57 +0100)]
[ARM] 3854/2: S3C2410 - add machine type for AML M5900 series (resubmitted)

Add the AML M5900 series to the list of supported machines in the
arch/arm/mach-s3c2410 directory. This ensures the core peripherals
are registered, and the timer source is configured. if selected in
the kernel config the framebuffer registers and mtd partition
information are set.  This version of the patch has corrected
formatting and removed the legacy procfs directory entry.

Signed-off-by: David Anders <danders@amltd.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3838/1: ARM: DCC debug console support for ARM11
Tony Lindgren [Wed, 20 Sep 2006 12:03:34 +0000 (13:03 +0100)]
[ARM] 3838/1: ARM: DCC debug console support for ARM11

Adds support for CONFIG_DEBUG_ICEDCC for ARM11.
Tested on ARM1136 (OMAP2420).

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Cleanups for 4cc9bd2eaa1063c68341c1c00e66660adcfdf254
Russell King [Thu, 21 Sep 2006 16:00:08 +0000 (17:00 +0100)]
[ARM] Cleanups for 4cc9bd2eaa1063c68341c1c00e66660adcfdf254

- Document the meaning for OP_SCALAR, OP_SD and add OP_DD.
- Formatting cleanups
- Remove now redundant code for making compare instructions
  operate on scalar values.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3789/4: Fix VFP emulation to ignore VECITR for scalar instruction
Gen FUKATSU [Thu, 21 Sep 2006 13:08:24 +0000 (14:08 +0100)]
[ARM] 3789/4: Fix VFP emulation to ignore VECITR for scalar instruction

VECITR in Floating-Point Exception register indicates the number of
remaining short vector iterations after a potential exception was
detected.

In case of exception caused by scalar instructions, VECITR is NOT updated.
Therefore emulation for VFP must ignore VECITR field
and treat "veclen" as zero when recognizing scalar instructing.

Signed-off-by: Gen Fukatsu <fukatsu.gen@jp.panasonic.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3792/2: Fix description of ZBOOT_ROM_BSS
Dan Fandrich [Wed, 20 Sep 2006 22:28:51 +0000 (23:28 +0100)]
[ARM] 3792/2: Fix description of ZBOOT_ROM_BSS

The documentation for the ZBOOT_ROM_BSS config option describes it as
"The base address of 64KiB of read/write memory in the target for the
ROM-able zImage..." In actuality, it requires more than 100 KiB of
space in addition to enough space to hold the decompressed kernel.
This patch fixes the description in the Kconfig file.

Signed-off-by: Dan Fandrich <dfandrich@intrinsyc.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3853/1: Fix flush_ptrace_access() thinko for nonaliasing VIPT cache case
George G. Davis [Thu, 21 Sep 2006 02:57:04 +0000 (03:57 +0100)]
[ARM] 3853/1: Fix flush_ptrace_access() thinko for nonaliasing VIPT cache case

Fix thinko in the flush_ptrace_access() "if (expr)" for the ARM
VIPT non-aliasing cache case.  We only need to flush cache when
VM_EXEC is set in vma->vm_flags but "if (expr) always evaluates
to true on UP systems for the ARM VIPT non-aliasing cache case.

Signed-off-by: George G. Davis <gdavis@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3852/1: convert atomic bitops and __xchg over to raw_local_irq_{save,restore}
Lennert Buytenhek [Thu, 21 Sep 2006 02:35:20 +0000 (03:35 +0100)]
[ARM] 3852/1: convert atomic bitops and __xchg over to raw_local_irq_{save,restore}

Thomas Gleixner noticed that bitops.h should also use the raw_* irq
disable/enable variants, and __xchg needs them as well.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3851/1: iop3xx: add io-data glantank support
Lennert Buytenhek [Thu, 21 Sep 2006 01:46:03 +0000 (02:46 +0100)]
[ARM] 3851/1: iop3xx: add io-data glantank support

Add support for the IO-Data GLAN Tank, from Martin Michlmayr.

Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3850/1: iop3xx: add thecus n2100 support
Lennert Buytenhek [Thu, 21 Sep 2006 01:42:12 +0000 (02:42 +0100)]
[ARM] 3850/1: iop3xx: add thecus n2100 support

Add support for the Thecus n2100 (80219-based.)

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3849/1: fix get_unaligned() for gcc >= 4.1
Lennert Buytenhek [Thu, 21 Sep 2006 01:24:38 +0000 (02:24 +0100)]
[ARM] 3849/1: fix get_unaligned() for gcc >= 4.1

gcc 4.1's __typeof__ propagates 'const', which breaks get_unaligned().
Rewrite get_unaligned() not to use __typeof__.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3846/1: S3C24XX: Fix osiris memory map
Ben Dooks [Wed, 20 Sep 2006 20:57:06 +0000 (21:57 +0100)]
[ARM] 3846/1: S3C24XX: Fix osiris memory map

The memory mapping for the Osiris machine
are all off by one bit, and the base address
has been fixed for writing (bit25 is being
checked by the write, but not on read)

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3844/1: S3C24XX: update s3c2410_defconfig
Ben Dooks [Wed, 20 Sep 2006 20:15:29 +0000 (21:15 +0100)]
[ARM] 3844/1: S3C24XX: update s3c2410_defconfig

New s3c2410_defconfig, updated 2.6.18

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3843/1: S3C24XX: Remove modfication lines from comments
Ben Dooks [Wed, 20 Sep 2006 19:54:54 +0000 (20:54 +0100)]
[ARM] 3843/1: S3C24XX: Remove modfication lines from comments

Remove the redundant Modification lines from
the top of the files in arch/arm/mach-s3c2410

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3842/1: S3C2412: Rename LCD device
Ben Dooks [Wed, 20 Sep 2006 19:46:09 +0000 (20:46 +0100)]
[ARM] 3842/1: S3C2412: Rename LCD device

The S3C2412 LCD controller is different enough
to warrant renaming the platform device.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3841/1: S3C2412: Add new IDCODE 32412003
Ben Dooks [Wed, 20 Sep 2006 19:39:15 +0000 (20:39 +0100)]
[ARM] 3841/1: S3C2412: Add new IDCODE 32412003

Add new code for the S3C2412

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3840/1: S3C2412: Add machine VSTMS
Ben Dooks [Wed, 20 Sep 2006 19:32:33 +0000 (20:32 +0100)]
[ARM] 3840/1: S3C2412: Add machine VSTMS

Add new machine VSTMS

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Thomas Gleixner <tglx@linuxtronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Update mach-types
Russell King [Sat, 23 Sep 2006 19:48:24 +0000 (20:48 +0100)]
[ARM] Update mach-types

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3834/1: iop3xx: remove per-board defconfigs
Lennert Buytenhek [Mon, 18 Sep 2006 22:32:04 +0000 (23:32 +0100)]
[ARM] 3834/1: iop3xx: remove per-board defconfigs

Remove the old per-board defconfigs.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3833/1: iop3xx: add per-mach defconfigs
Lennert Buytenhek [Mon, 18 Sep 2006 22:31:31 +0000 (23:31 +0100)]
[ARM] 3833/1: iop3xx: add per-mach defconfigs

Add one defconfig for all iop32x boards and one defconfig for all
iop33x boards.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3832/1: iop3xx: coding style cleanup
Lennert Buytenhek [Mon, 18 Sep 2006 22:26:25 +0000 (23:26 +0100)]
[ARM] 3832/1: iop3xx: coding style cleanup

Since the iop32x code isn't iop321-specific, and the iop33x code isn't
iop331-specfic, do a s/iop321/iop32x/ and s/iop331/iop33x/, and tidy up
the code to conform to the coding style guidelines somewhat better.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3831/1: iop3xx: factor out common register defines
Lennert Buytenhek [Mon, 18 Sep 2006 22:25:33 +0000 (23:25 +0100)]
[ARM] 3831/1: iop3xx: factor out common register defines

Factor out the register defines for a number of other peripherals
common to the iop32x and iop33x.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3830/1: iop3xx: board support file cleanup
Lennert Buytenhek [Mon, 18 Sep 2006 22:24:52 +0000 (23:24 +0100)]
[ARM] 3830/1: iop3xx: board support file cleanup

Revamp the iop3xx board support: move the support code for each iop
board type into its own file, start using platform serial and platform
physmap flash devices, switch to a per-board time tick rate, and get
rid of the ARCH_EP80219 and STEPD config options by doing the relevant
checks at run time.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3829/1: iop3xx: optimise irq entry macros
Lennert Buytenhek [Mon, 18 Sep 2006 22:24:10 +0000 (23:24 +0100)]
[ARM] 3829/1: iop3xx: optimise irq entry macros

Squeeze three instructions out of the iop32x irq demuxer, and nine
out of the iop33x irq demuxer by using the hardware vector generator.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3828/1: iop3xx: remove useless loadsp macro
Lennert Buytenhek [Mon, 18 Sep 2006 22:23:38 +0000 (23:23 +0100)]
[ARM] 3828/1: iop3xx: remove useless loadsp macro

The iop33x loadsp hunk in arch/arm/boot/compressed/head.S serves
no purpose -- remove it.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3827/1: iop3xx: add common gpio module
Lennert Buytenhek [Mon, 18 Sep 2006 22:23:07 +0000 (23:23 +0100)]
[ARM] 3827/1: iop3xx: add common gpio module

Implement the gpio_line_{config,get,set} API for iop3xx.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3826/1: iop3xx: remove IOP3??_IRQ_OFS irq offset
Lennert Buytenhek [Mon, 18 Sep 2006 22:22:24 +0000 (23:22 +0100)]
[ARM] 3826/1: iop3xx: remove IOP3??_IRQ_OFS irq offset

Get rid of the unused IOP3??_IRQ_OFS irq offset define, start IRQ
numbering from zero.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3825/1: iop3xx: use cp6 enable/disable macros
Lennert Buytenhek [Mon, 18 Sep 2006 22:21:38 +0000 (23:21 +0100)]
[ARM] 3825/1: iop3xx: use cp6 enable/disable macros

Add CP6 enable/disable sequences to the timekeeping code and the IRQ
code.  As a result, we can't depend on CP6 access being enabled when
we enter get_irqnr_and_base anymore, so switch the latter over to
using memory-mapped accesses for now.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3824/1: iop3xx: add cp6 enable/disable macros
Lennert Buytenhek [Mon, 18 Sep 2006 22:20:55 +0000 (23:20 +0100)]
[ARM] 3824/1: iop3xx: add cp6 enable/disable macros

Add macros to enable and disable access to CP6.  On the iop3xx, enabling
CP6 access unfortunately also enables access to that coprocessor from
unprivileged code, so we need these macros to enable and disable access
to the coprocessor whenever we need to access it.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3823/1: iop3xx: switch iop32x/iop33x over to shared time code
Lennert Buytenhek [Mon, 18 Sep 2006 22:19:02 +0000 (23:19 +0100)]
[ARM] 3823/1: iop3xx: switch iop32x/iop33x over to shared time code

Switch the iop32x and iop33x code over to the common time implementation,
and remove the (nearly identical) iop32x and iop33x time implementations.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3822/1: iop3xx: rewrite time handling
Lennert Buytenhek [Mon, 18 Sep 2006 22:18:16 +0000 (23:18 +0100)]
[ARM] 3822/1: iop3xx: rewrite time handling

Merge and rewrite the iop32x/iop33x time code to do lost jiffy
tracking properly, and put the result in plat-iop/time.c.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3821/1: iop3xx: switch iop32x/iop33x over to shared pci code
Lennert Buytenhek [Mon, 18 Sep 2006 22:17:36 +0000 (23:17 +0100)]
[ARM] 3821/1: iop3xx: switch iop32x/iop33x over to shared pci code

Switch the iop32x and iop33x code over to the common PCI implementation,
and remove the (nearly identical) iop32x and iop33x PCI implementations.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3820/1: iop3xx: factor out shared pci code
Lennert Buytenhek [Mon, 18 Sep 2006 22:16:23 +0000 (23:16 +0100)]
[ARM] 3820/1: iop3xx: factor out shared pci code

Merge the iop32x PCI code and iop33x PCI code into plat-iop/pci.c.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3819/1: iop3xx: factor out shared i2c code
Lennert Buytenhek [Mon, 18 Sep 2006 22:15:21 +0000 (23:15 +0100)]
[ARM] 3819/1: iop3xx: factor out shared i2c code

Move the i2c bits shared between iop32x and iop33x to plat-iop/i2c.c
and include/asm-arm/hardware/iop3xx.h.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3818/1: iop3xx: introduce arch/arm/plat-iop for shared iop32x/iop33x code
Lennert Buytenhek [Mon, 18 Sep 2006 22:12:53 +0000 (23:12 +0100)]
[ARM] 3818/1: iop3xx: introduce arch/arm/plat-iop for shared iop32x/iop33x code

Introduce the arch/arm/plat-iop directory, for code shared between the
iop32x and iop33x, and move the common memory map setup bits there.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3817/1: iop3xx: split the iop3xx mach into iop32x and iop33x
Lennert Buytenhek [Mon, 18 Sep 2006 22:10:26 +0000 (23:10 +0100)]
[ARM] 3817/1: iop3xx: split the iop3xx mach into iop32x and iop33x

Split the iop3xx mach type into iop32x and iop33x -- split the config
symbols, and move the code in the mach-iop3xx directory to the mach-iop32x
and mach-iop33x directories.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3816/1: iop3xx: rename config symbols
Lennert Buytenhek [Mon, 18 Sep 2006 22:02:25 +0000 (23:02 +0100)]
[ARM] 3816/1: iop3xx: rename config symbols

Rename CONFIG_ARCH_IOP321 to CONFIG_ARCH_IOP32X and
CONFIG_ARCH_IOP331 to CONFIG_ARCH_IOP33X.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3836/1: S3C24XX: Clear both EINT and INT status before sleep
Ben Dooks [Tue, 19 Sep 2006 09:04:18 +0000 (10:04 +0100)]
[ARM] 3836/1: S3C24XX: Clear both EINT and INT status before sleep

Clear both the EINT and INT status before
going to sleep, otherwise we may end up being
woken by something that was not set in our
wakeup map.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3806/2: S3C2412: Fix GPIO VA when only S3C2412 selected
Ben Dooks [Mon, 18 Sep 2006 09:19:06 +0000 (10:19 +0100)]
[ARM] 3806/2: S3C2412: Fix GPIO VA when only S3C2412 selected

The s3c24xx_va_gpio2 variable is only used
when the S3C2412 and another cpu-type is
being used in the kernel. This patch ensures
it is not set when it is not being used.

Fixes bug report by Thomas Gleixner.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3803/2: S3C24XX: PM split S3C2410 out of core pm
Ben Dooks [Tue, 19 Sep 2006 08:51:32 +0000 (09:51 +0100)]
[ARM] 3803/2: S3C24XX: PM split S3C2410 out of core pm

Remove the S3C2410 specific items out of the
core PM code. Add sysdev driver for all the
S3C24XX series that used the S3C2410 PM code.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3800/2: S3C2412: DMA channel mappings
Ben Dooks [Mon, 18 Sep 2006 22:52:03 +0000 (23:52 +0100)]
[ARM] 3800/2: S3C2412: DMA channel mappings

DMA channel mappings for the S3C2312

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3814/1: move 80200 dma_inv_range() erratum check out of line
Lennert Buytenhek [Sat, 16 Sep 2006 09:52:02 +0000 (10:52 +0100)]
[ARM] 3814/1: move 80200 dma_inv_range() erratum check out of line

On stepping A0/A1 of the 80200, invalidating D-cache by line doesn't
clear the dirty bits, which means that if we invalidate a dirty line,
the dirty data can still be written back to memory later on.

To work around this, dma_inv_range() on these two processors is
implemented as dma_flush_range() (i.e. do a clean D-cache line before
doing the invalidate D-cache line.)  For this, we currently have a
processor ID check in xscale_dma_inv_range(), but a better solution
is to add a separate cache_fns and proc_info for A0/A1 80200.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3813/1: prevent >= 4G /dev/mem mmap()
Lennert Buytenhek [Sat, 16 Sep 2006 09:50:22 +0000 (10:50 +0100)]
[ARM] 3813/1: prevent >= 4G /dev/mem mmap()

Prevent userland from mapping in physical address regions >= 4G by
checking for that in valid_mmap_phys_addr_range().

Unfortunately, we cannot override valid_mmap_phys_addr_range() without
also overriding valid_phys_addr_range(), so copy drivers/char/mem.c's
version of valid_phys_addr_range() over to arch/arm/mm/mmap.c as well.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3811/1: ep93xx: add cirrus logic edb9312 support
Lennert Buytenhek [Sat, 16 Sep 2006 09:48:02 +0000 (10:48 +0100)]
[ARM] 3811/1: ep93xx: add cirrus logic edb9312 support

Add Cirrus Logic EDB9312 support.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3810/1: switch atomic helpers over to raw_local_irq_{save,restore}
Lennert Buytenhek [Sat, 16 Sep 2006 09:47:18 +0000 (10:47 +0100)]
[ARM] 3810/1: switch atomic helpers over to raw_local_irq_{save,restore}

Now that we have raw_* variants of local_irq_$FOO(), switch the atomic
helpers over to use those raw_* variants.  This is necessary when using
lockdep on pre-ARMv6 hardware, as lockdep uses atomic_t counters in the
trace_hardirqs_off() path.

Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3805/1: S3C2412: LCD register update
Ben Dooks [Fri, 15 Sep 2006 23:12:53 +0000 (00:12 +0100)]
[ARM] 3805/1: S3C2412: LCD register update

Add LCD register definitions for the S3C2412.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3804/1: S3C2442: LCD register update
Ben Dooks [Fri, 15 Sep 2006 23:11:32 +0000 (00:11 +0100)]
[ARM] 3804/1: S3C2442: LCD register update

Add LCD register definitions for the S3C2442.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3802/1: S3C24XX: PM tidy up cache flushing
Ben Dooks [Fri, 15 Sep 2006 23:04:23 +0000 (00:04 +0100)]
[ARM] 3802/1: S3C24XX: PM tidy up cache flushing

Change to using flush_cache_all() in pm.c and
also remove the need to flush the cache in the
PM code.

This changes the sleep.S code to have an entry
to store the registers for resume, and then a
second entry (after the caches are cleaned)
to do the suspend and resume.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3801/1: S3C24XX: Move IRQ PM out of pm.c
Ben Dooks [Fri, 15 Sep 2006 23:01:39 +0000 (00:01 +0100)]
[ARM] 3801/1: S3C24XX: Move IRQ PM out of pm.c

Seperate the IRQ power management code out of
the pm.c file, and add it to the relevant
system class devices.

Also make the suspend and resume code take
notice of the fact these registers can be
moved by compile time code.

Add fix from Ilya Yanok to also save the
INTSUBMSK over sleep.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3799/1: S3C2442: DMA channel mappings
Ben Dooks [Fri, 15 Sep 2006 22:46:20 +0000 (23:46 +0100)]
[ARM] 3799/1: S3C2442: DMA channel mappings

DMA channel mappings for the S3C2442

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3798/1: S3C2440: DMA channel mappings
Ben Dooks [Fri, 15 Sep 2006 22:45:17 +0000 (23:45 +0100)]
[ARM] 3798/1: S3C2440: DMA channel mappings

S3C2440 DMA channel mappings

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3797/1: S3C2410: DMA channel mappings
Ben Dooks [Fri, 15 Sep 2006 22:44:00 +0000 (23:44 +0100)]
[ARM] 3797/1: S3C2410: DMA channel mappings

DMA channel mappings for the S3C2410

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3796/1: S3C24XX: Add per-cpu DMA channel mapper
Ben Dooks [Fri, 15 Sep 2006 22:42:24 +0000 (23:42 +0100)]
[ARM] 3796/1: S3C24XX: Add per-cpu DMA channel mapper

Allow each CPU type in the S3C24XX range to
select the DMA channel mapping it supports.

We change the DMA registration to use an
virtual channel number that the DMA system
will allocate to a hardware channel at
request time.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3795/1: S3C24XX: add base AC97 registers
Ben Dooks [Fri, 15 Sep 2006 22:34:34 +0000 (23:34 +0100)]
[ARM] 3795/1: S3C24XX: add base AC97 registers

Add base definitions for the AC97 register
definitions.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] nommu: create flat.h to support uClinux flat binaries
Greg Ungerer [Wed, 13 Sep 2006 14:28:26 +0000 (00:28 +1000)]
[ARM] nommu: create flat.h to support uClinux flat binaries

Create header with uClinux flat format binary support macros for ARM
platforms. Derived from the m68knommu flat.h.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3759/2: Remove uses of %?
Daniel Jacobowitz [Wed, 30 Aug 2006 14:02:08 +0000 (15:02 +0100)]
[ARM] 3759/2: Remove uses of %?

Patch from Daniel Jacobowitz

The ARM kernel has several uses of asm("foo%?").  %? is a GCC internal
modifier used to output conditional execution predicates.  However, no
version of GCC supports conditionalizing asm statements.  GCC 4.2 will
correctly expand %? to the empty string in user asms.  Earlier versions may
reuse the condition from the previous instruction.  In 'if (foo) asm
("bar%?");' this is somewhat likely to be right... but not reliable.

So, the only safe thing to do is to remove the uses of %?.  I believe
the tlbflush.h occurances were supposed to be removed before, based
on the comment about %? not working at the top of that file.

Old versions of GCC could omit branches around user asms if the asm didn't
mark the condition codes as clobbered.  This problem hasn't been seen on any
recent (3.x or 4.x) GCC, but it could theoretically happen.  So, where
%? was removed a cc clobber was added.

Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Optimise VFP thread notify function a little
Russell King [Sun, 27 Aug 2006 11:38:34 +0000 (12:38 +0100)]
[ARM] Optimise VFP thread notify function a little

The common case for the thread notifier is a context switch.  Tell
gcc that this is the most likely condition so it can optimise the
function for this case.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Fix kernel/fork.c for lockdep on ARM
Russell King [Sun, 27 Aug 2006 11:26:34 +0000 (12:26 +0100)]
[ARM] Fix kernel/fork.c for lockdep on ARM

ARM has interrupts enabled over context switches (iow, has
__ARCH_WANT_INTERRUPTS_ON_CTXSW defined.)  The lockdep code in fork.c
 assumes that interrupts are always disabled.  Fix this wrong
assumption by making the initialisation of 'p->hardirqs_enabled'
depend on __ARCH_WANT_INTERRUPTS_ON_CTXSW.

Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Add ARM irqtrace support
Russell King [Sun, 27 Aug 2006 11:07:02 +0000 (12:07 +0100)]
[ARM] Add ARM irqtrace support

This adds support for irqtrace for lockdep on ARM.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Move mmu.c out of the way
Russell King [Mon, 21 Aug 2006 18:23:38 +0000 (19:23 +0100)]
[ARM] Move mmu.c out of the way

Rename mmu.c to context.c - it's the ARMv6 ASID context handling
code rather than generic "mmu" handling code.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] Cleanup arch/arm/mm a little
Russell King [Mon, 21 Aug 2006 16:06:38 +0000 (17:06 +0100)]
[ARM] Cleanup arch/arm/mm a little

Move top_pmd into arch/arm/mm/mm.h - nothing outside arch/arm/mm
references it.

Move the repeated definition of TOP_PTE into mm/mm.h, as well as
a few function prototypes.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years agoLinux v2.6.18. Arrr!
Linus Torvalds [Wed, 20 Sep 2006 03:42:06 +0000 (20:42 -0700)]
Linux v2.6.18. Arrr!

Ahoy, all land-lubbers, test me out right smartly!

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Wed, 20 Sep 2006 03:36:22 +0000 (20:36 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [IPV4] fib_trie: missing ntohl() when calling fib_semantic_match()
  [NETFILTER]: xt_quota: add missing module aliases
  [ATM]: [he] don't hold the device lock when upcalling

18 years ago[IPV4] fib_trie: missing ntohl() when calling fib_semantic_match()
Al Viro [Tue, 19 Sep 2006 20:42:46 +0000 (13:42 -0700)]
[IPV4] fib_trie: missing ntohl() when calling fib_semantic_match()

fib_trie.c::check_leaf() passes host-endian where fib_semantic_match()
expects (and stores into) net-endian.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NETFILTER]: xt_quota: add missing module aliases
Patrick McHardy [Tue, 19 Sep 2006 20:00:57 +0000 (13:00 -0700)]
[NETFILTER]: xt_quota: add missing module aliases

Add missing aliases for ipt_quota and ip6t_quota to make autoload
work.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[ATM]: [he] don't hold the device lock when upcalling
Chas Williams [Tue, 19 Sep 2006 19:59:11 +0000 (12:59 -0700)]
[ATM]: [he] don't hold the device lock when upcalling

This can create a deadlock/lock ordering problem with other layers
that want to use the transmit (or other) path of the card at that
time.

Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years agoMerge branch 'fixes' of git://git.linux-nfs.org/pub/linux/nfs-2.6
Linus Torvalds [Tue, 19 Sep 2006 16:46:53 +0000 (09:46 -0700)]
Merge branch 'fixes' of git://git.linux-nfs.org/pub/linux/nfs-2.6

* 'fixes' of git://git.linux-nfs.org/pub/linux/nfs-2.6:
  NFS: Fix nfs_page use after free issues in fs/nfs/write.c
  NFSv4: Fix incorrect semaphore release in _nfs4_do_open()
  NFS: Fix Oopsable condition in nfs_readpage_sync()

18 years agoNFS: Fix nfs_page use after free issues in fs/nfs/write.c
Trond Myklebust [Tue, 19 Sep 2006 03:20:35 +0000 (23:20 -0400)]
NFS: Fix nfs_page use after free issues in fs/nfs/write.c

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
18 years agoNFSv4: Fix incorrect semaphore release in _nfs4_do_open()
Trond Myklebust [Fri, 15 Sep 2006 12:11:51 +0000 (08:11 -0400)]
NFSv4: Fix incorrect semaphore release in _nfs4_do_open()

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
18 years agoNFS: Fix Oopsable condition in nfs_readpage_sync()
Trond Myklebust [Fri, 15 Sep 2006 20:03:45 +0000 (16:03 -0400)]
NFS: Fix Oopsable condition in nfs_readpage_sync()

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
18 years agoRevert mmiocfg heuristics and blacklist changes
Linus Torvalds [Tue, 19 Sep 2006 15:15:22 +0000 (08:15 -0700)]
Revert mmiocfg heuristics and blacklist changes

This reverts commits 11012d419cfc0e0f78ca356aca03674217910124 and
40dd2d20f220eda1cd0da8ea3f0f9db8971ba237, which allowed us to use the
MMIO accesses for PCI config cycles even without the area being marked
reserved in the e820 memory tables.

Those changes were needed for EFI-environment Intel macs, but broke some
newer Intel 965 boards, so for now it's better to revert to our old
2.6.17 behaviour and at least avoid introducing any new breakage.

Andi Kleen has a set of patches that work with both EFI and the broken
Intel 965 boards, which will be applied once they get wider testing.

Cc: Arjan van de Ven <arjan@infradead.org>
Cc: Edgar Hucek <hostmaster@ed-soft.at>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge git://git.infradead.org/mtd-2.6
Linus Torvalds [Tue, 19 Sep 2006 15:01:58 +0000 (08:01 -0700)]
Merge git://git.infradead.org/mtd-2.6

* git://git.infradead.org/mtd-2.6:
  [MTD] Use SEEK_{SET,CUR,END} instead of hardcoded values in mtdchar lseek()
  MTD: Fix bug in fixup_convert_atmel_pri
  [JFFS2][SUMMARY] Fix a summary collecting bug.
  [PATCH] [MTD] DEVICES: Fill more device IDs in the structure of m25p80
  MTD: Add lock/unlock operations for Atmel AT49BV6416
  MTD: Convert Atmel PRI information to AMD format
  fs/jffs2/xattr.c: remove dead code
  [PATCH] [MTD] Maps: Add dependency on alternate probe methods to physmap
  [PATCH] MTD: Add Macronix MX29F040 to JEDEC
  [MTD] Fixes of performance and stability issues in CFI driver.
  block2mtd.c: Make kernel boot command line arguments work (try 4)
  [MTD NAND] Fix lookup error in nand_get_flash_type()
  remove #error on !PCI from pmc551.c
  MTD: [NAND] Fix the sharpsl driver after breakage from a core conversion
  [MTD] NAND: OOB buffer offset fixups
  make fs/jffs2/nodelist.c:jffs2_obsolete_node_frag() static
  [PATCH] [MTD] NAND: fix dead URL in Kconfig

18 years ago[PATCH] EXT2: Remove superblock lock contention in ext2_statfs
Dave Kleikamp [Tue, 19 Sep 2006 03:12:33 +0000 (20:12 -0700)]
[PATCH] EXT2: Remove superblock lock contention in ext2_statfs

Fix a performance degradation introduced in 2.6.17.  (30% degradation
running dbench with 16 threads)

Commit 21730eed11de42f22afcbd43f450a1872a0b5ea1, which claims to make
EXT2_DEBUG work again, moves the taking of the kernel lock out of
debug-only code in ext2_count_free_inodes and ext2_count_free_blocks and
into ext2_statfs.

The same problem was fixed in ext3 by removing the lock completely (commit
5b11687924e40790deb0d5f959247ade82196665)

Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] headers_check: Clean up asm-parisc/page.h for user headers
Matthew Wilcox [Tue, 19 Sep 2006 03:12:27 +0000 (20:12 -0700)]
[PATCH] headers_check: Clean up asm-parisc/page.h for user headers

Remove definitions of PAGE_* from the user view
Delete unnecessary comments referring to the size of pages
Only include <asm-generic> if we're in __KERNEL__

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Fix 'make headers_check' on ia64
Geert Uytterhoeven [Tue, 19 Sep 2006 03:12:23 +0000 (20:12 -0700)]
[PATCH] Fix 'make headers_check' on ia64

Fix 'make headers_check' on m68k

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] Add headers_check' target to output of 'make help'
David Woodhouse [Tue, 19 Sep 2006 03:12:19 +0000 (20:12 -0700)]
[PATCH] Add headers_check' target to output of 'make help'

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago[PATCH] genirq core: fix handle_level_irq()
Ingo Molnar [Tue, 19 Sep 2006 09:14:34 +0000 (11:14 +0200)]
[PATCH] genirq core: fix handle_level_irq()

while porting the -rt tree to 2.6.18-rc7 i noticed the following
screaming-IRQ scenario on an SMP system:

 2274  0Dn.:1 0.001ms: do_IRQ+0xc/0x103  <= (ret_from_intr+0x0/0xf)
 2274  0Dn.:1 0.010ms: do_IRQ+0xc/0x103  <= (ret_from_intr+0x0/0xf)
 2274  0Dn.:1 0.020ms: do_IRQ+0xc/0x103  <= (ret_from_intr+0x0/0xf)
 2274  0Dn.:1 0.029ms: do_IRQ+0xc/0x103  <= (ret_from_intr+0x0/0xf)
 2274  0Dn.:1 0.039ms: do_IRQ+0xc/0x103  <= (ret_from_intr+0x0/0xf)
 2274  0Dn.:1 0.048ms: do_IRQ+0xc/0x103  <= (ret_from_intr+0x0/0xf)
 2274  0Dn.:1 0.058ms: do_IRQ+0xc/0x103  <= (ret_from_intr+0x0/0xf)
 2274  0Dn.:1 0.068ms: do_IRQ+0xc/0x103  <= (ret_from_intr+0x0/0xf)
 2274  0Dn.:1 0.077ms: do_IRQ+0xc/0x103  <= (ret_from_intr+0x0/0xf)
 2274  0Dn.:1 0.087ms: do_IRQ+0xc/0x103  <= (ret_from_intr+0x0/0xf)
 2274  0Dn.:1 0.097ms: do_IRQ+0xc/0x103  <= (ret_from_intr+0x0/0xf)

as it turns out, the bug is caused by handle_level_irq(), which if it
races with another CPU already handling this IRQ, it _unmasks_ the IRQ
line on the way out. This is not how 2.6.17 works, and we introduced
this bug in one of the early genirq cleanups right before it went into
-mm. (the bug was not in the genirq patchset for a long time, and we
didnt notice the bug due to the lack of -rt rebase to the new genirq
code. -rt, and hardirq-preemption in particular opens up such races much
wider than anything else.)

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agox86: save/restore eflags in context switch
Linus Torvalds [Mon, 18 Sep 2006 23:20:40 +0000 (16:20 -0700)]
x86: save/restore eflags in context switch

(And reset it on new thread creation)

It turns out that eflags is important to save and restore not just
because of iopl, but due to the magic bits like the NT bit, which we
don't want leaking between different threads.

Tested-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Mon, 18 Sep 2006 23:16:05 +0000 (16:16 -0700)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [ATM] CLIP: Do not refer freed skbuff in clip_mkip().
  [NET]: Drop tx lock in dev_watchdog_up
  [PACKET]: Don't truncate non-linear skbs with mmaped IO
  [NET]: Mark frame diverter for future removal.
  [NETFILTER]: Add secmark headers to header-y
  [ATM]: linux-atm-general mailing list is subscribers only
  [ATM]: [he] when transmit fails, unmap the dma regions
  [TCP] tcp-lp: update information to MAINTAINERS
  [TCP] tcp-lp: bug fix for oops in 2.6.18-rc6
  [BRIDGE]: random extra bytes on STP TCN packet
  [IPV6]: Accept -1 for IPV6_TCLASS
  [IPV6]: Fix tclass setting for raw sockets.
  [IPVS]: remove the debug option go ip_vs_ftp
  [IPVS]: Make sure ip_vs_ftp ports are valid
  [IPVS]: auto-help for ip_vs_ftp
  [IPVS]: Document the ports option to ip_vs_ftp in kernel-parameters.txt
  [TCP]: Turn ABC off.
  [NEIGH]: neigh_table_clear() doesn't free stats

18 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Mon, 18 Sep 2006 23:15:40 +0000 (16:15 -0700)]
Merge /pub/scm/linux/kernel/git/davem/sparc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SPARC]: Fix regression in sys_getdomainname()
  [OPENPROMIO]: Handle current_node being NULL correctly.

18 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Mon, 18 Sep 2006 23:15:16 +0000 (16:15 -0700)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 3815/1: headers_install support for ARM
  [ARM] 3794/1: S3C24XX: do not defined set_irq_wake when no CONFIG_PM
  [ARM] 3793/1: S3C2412: fix wrong serial info struct
  [ARM] 3780/1: Fix iop321 cpuid
  [ARM] 3786/1: pnx4008: update defconfig
  [ARM] 3785/1: S3C2412: Fix idle code as default uses wrong clocks
  [ARM] 3784/1: S3C2413: fix config for MACH_S3C2413/MACH_SMDK2413

18 years ago[ARM] 3815/1: headers_install support for ARM
Ralph Siemsen [Mon, 18 Sep 2006 15:28:50 +0000 (16:28 +0100)]
[ARM] 3815/1: headers_install support for ARM

Move kernel-only #includes into #ifdef __KERNEL__, so that
headers_install target can be used on ARM.

Signed-off-by: Ralph Siemsen <ralphs@netwinder.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[SPARC]: Fix regression in sys_getdomainname()
Andy Walker [Mon, 18 Sep 2006 14:11:36 +0000 (07:11 -0700)]
[SPARC]: Fix regression in sys_getdomainname()

This patch corrects the buffer length checking in the
sys_getdomainname() implementation for sparc/sparc64.

Signed-off-by: Andy Walker <andy@puszczka.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[ATM] CLIP: Do not refer freed skbuff in clip_mkip().
YOSHIFUJI Hideaki [Mon, 18 Sep 2006 13:37:58 +0000 (06:37 -0700)]
[ATM] CLIP: Do not refer freed skbuff in clip_mkip().

In clip_mkip(), skb->dev is dereferenced after clip_push(),
which frees up skb.

Advisory: AD_LAB-06009 (<adlab@venustech.com.cn>).

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[ARM] 3794/1: S3C24XX: do not defined set_irq_wake when no CONFIG_PM
Ben Dooks [Mon, 18 Sep 2006 12:30:20 +0000 (13:30 +0100)]
[ARM] 3794/1: S3C24XX: do not defined set_irq_wake when no CONFIG_PM

Patch from Ben Dooks

Do not define set_irq_wake as a real function if
the CONFIG_PM option is not set.

Fixes bug reported by Thomas Gleixner.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[ARM] 3793/1: S3C2412: fix wrong serial info struct
Ben Dooks [Mon, 18 Sep 2006 12:30:17 +0000 (13:30 +0100)]
[ARM] 3793/1: S3C2412: fix wrong serial info struct

Patch from Ben Dooks

The S3C2440 serial info struct is being passed
through the S3C2412 serial info struct probe
routine.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Thomas Glexiner <tglx@linutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
18 years ago[OPENPROMIO]: Handle current_node being NULL correctly.
David S. Miller [Mon, 18 Sep 2006 08:47:13 +0000 (01:47 -0700)]
[OPENPROMIO]: Handle current_node being NULL correctly.

If the user tries to traverse to the next node of the
last node, we get NULL in current_node and a zero phandle
returned.  That's fine, but if the user tries to obtain
properties in that state, we try to dereference a NULL
pointer in the downcall to the of_*() routines.

So protect against that.

Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET]: Drop tx lock in dev_watchdog_up
Herbert Xu [Mon, 18 Sep 2006 07:22:30 +0000 (00:22 -0700)]
[NET]: Drop tx lock in dev_watchdog_up

Fix lockdep warning with GRE, iptables and Speedtouch ADSL, PPP over ATM.

On Sat, Sep 02, 2006 at 08:39:28PM +0000, Krzysztof Halasa wrote:
>
> =======================================================
> [ INFO: possible circular locking dependency detected ]
> -------------------------------------------------------
> swapper/0 is trying to acquire lock:
>  (&dev->queue_lock){-+..}, at: [<c02c8c46>] dev_queue_xmit+0x56/0x290
>
> but task is already holding lock:
>  (&dev->_xmit_lock){-+..}, at: [<c02c8e14>] dev_queue_xmit+0x224/0x290
>
> which lock already depends on the new lock.

This turns out to be a genuine bug.  The queue lock and xmit lock are
intentionally taken out of order.  Two things are supposed to prevent
dead-locks from occuring:

1) When we hold the queue_lock we're supposed to only do try_lock on the
tx_lock.

2) We always drop the queue_lock after taking the tx_lock and before doing
anything else.

>
> the existing dependency chain (in reverse order) is:
>
> -> #1 (&dev->_xmit_lock){-+..}:
>        [<c012e7b6>] lock_acquire+0x76/0xa0
>        [<c0336241>] _spin_lock_bh+0x31/0x40
>        [<c02d25a9>] dev_activate+0x69/0x120

This path obviously breaks assumption 1) and therefore can lead to ABBA
dead-locks.

I've looked at the history and there seems to be no reason for the lock
to be held at all in dev_watchdog_up.  The lock appeared in day one and
even there it was unnecessary.  In fact, people added __dev_watchdog_up
precisely in order to get around the tx lock there.

The function dev_watchdog_up is already serialised by rtnl_lock since
its only caller dev_activate is always called under it.

So here is a simple patch to remove the tx lock from dev_watchdog_up.
In 2.6.19 we can eliminate the unnecessary __dev_watchdog_up and
replace it with dev_watchdog_up.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[PACKET]: Don't truncate non-linear skbs with mmaped IO
Patrick McHardy [Mon, 18 Sep 2006 06:59:57 +0000 (23:59 -0700)]
[PACKET]: Don't truncate non-linear skbs with mmaped IO

Non-linear skbs are truncated to their linear part with mmaped IO.
Fix by using skb_copy_bits instead of memcpy.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Acked-by: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 years ago[NET]: Mark frame diverter for future removal.
Stephen Hemminger [Thu, 14 Sep 2006 04:13:54 +0000 (21:13 -0700)]
[NET]: Mark frame diverter for future removal.

The code for frame diverter is unmaintained and has bitrotted.
The number of users is very small and the code has lots of problems.
If anyone is using it, they maybe exposing themselves to bad packet attacks.

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>