]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/log
mirror_ubuntu-eoan-kernel.git
15 years ago[ARM] 5369/1: omap mmc: Add new omap hsmmc controller for 2430 and 34xx, v3
Madhusudhan Chikkature [Fri, 23 Jan 2009 00:05:23 +0000 (01:05 +0100)]
[ARM] 5369/1: omap mmc: Add new omap hsmmc controller for 2430 and 34xx, v3

Add omap hsmmc controller for 2430 and 34xx.

Note that this controller has different registers compared to
the earlier omap MMC controller, so sharing code currently is
not possible.

Various updates and fixes from linux-omap list have been
merged into this patch.

Signed-off-by: Madhusudhan Chikkature<madhu.cr@ti.com>
Acked-by: Pierre Ossman <drzeus@drzeus.cx>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] clkdev: fix clock matching
Russell King [Sat, 24 Jan 2009 10:14:37 +0000 (10:14 +0000)]
[ARM] clkdev: fix clock matching

The old matching algorithm was too fuzzy, causing false positives.
For example, when asked for device D connection C1 and we only find
device D connection C2, we return that as a valid match despite the
connection names being different.

Change the algorithm such that:
  An entry with a NULL ID is assumed to be a wildcard.
  If an entry has a device ID, it must match
  If an entry has a connection ID, it must match

However, we maintain the order of precidence while still only doing
a single pass over all entries: dev+con > dev only > con only.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] 5370/1: at91: fix rm9200 watchdog
Jean-Christop PLAGNIOL-VILLARD [Fri, 23 Jan 2009 09:06:07 +0000 (10:06 +0100)]
[ARM] 5370/1: at91: fix rm9200 watchdog

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] 5368/1: arch/arm/mach-davinci/usb.c buildfix
David Brownell [Sun, 18 Jan 2009 16:29:10 +0000 (17:29 +0100)]
[ARM] 5368/1: arch/arm/mach-davinci/usb.c buildfix

From: David Brownell <dbrownell@users.sourceforge.net>
Subject: ARM/mach-davinci/usb.c buildfix

  CC      arch/arm/mach-davinci/usb.o
arch/arm/mach-davinci/usb.c:60: error: 'IRQ_USBINT' undeclared here (not in a function)
make[1]: *** [arch/arm/mach-davinci/usb.o] Error 1

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] 5365/1: s3cmci: Use new include path of dma.h
Ramax Lo [Wed, 14 Jan 2009 01:13:47 +0000 (02:13 +0100)]
[ARM] 5365/1: s3cmci: Use new include path of dma.h

Since dma.h has been moved to arch/arm/mach-s3c2410/include/mach,
use the new include path.

Signed-off-by: Ramax Lo <ramaxlo@gmail.com>
Acked-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] fix StrongARM-11x0 page copy implementation
Russell King [Sun, 18 Jan 2009 16:24:19 +0000 (16:24 +0000)]
[ARM] fix StrongARM-11x0 page copy implementation

Which had the 'from' and 'to' pages reversed.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: ensure OMAP drivers pass a struct device to clk_get()
Russell King [Sun, 18 Jan 2009 12:52:38 +0000 (12:52 +0000)]
[ARM] omap: ensure OMAP drivers pass a struct device to clk_get()

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agoARM: OMAP: Fix compile for h3 MMC
Tony Lindgren [Thu, 15 Jan 2009 11:57:48 +0000 (13:57 +0200)]
ARM: OMAP: Fix compile for h3 MMC

Fix compile for h3 MMC

Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Remove unused platform devices, v3
Tony Lindgren [Thu, 15 Jan 2009 11:55:59 +0000 (13:55 +0200)]
ARM: OMAP: Remove unused platform devices, v3

This patch removes old platform devices. Alsa should now
be using the ASoC driver. For boards not yet using ASoC,
please see sound/soc/omap/osk5912.c.

Add dummy aic23_power_up and aic23_power_down functions for 770
to keep things compiling.

Remove references to omap_gpio_switch, and unused h2_nand_dev_ready
function.

This patch is based on an earlier patch by Arun KS.

Cc: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Arun KS <arunks@mistralsolutions.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix ASoC by enabling writes to XCCR and RCCR McBSP registers, v3
Tony Lindgren [Thu, 15 Jan 2009 11:09:54 +0000 (13:09 +0200)]
ARM: OMAP: Fix ASoC by enabling writes to XCCR and RCCR McBSP registers, v3

This patch enables writing to McBSP Transmit Configuration Control
Register (XCCR) and Receive Configuration Control Register (RCCR)
for 2430/34xx platforms. It also adds XCCR, RCCR entries in McBSP
register configuration structure and bit definitions for both
registers.

If we enable the writing to CCR registers for 2430/34xx and don't
set the default values (setting 0 as a consequence) in ASoC driver,
the Transmit/Receive DMA mode gets disabled and the the
transmission/reception doesn't happen, ending with a
"write error: Input/Output error" when playing with 'aplay'.

Also define dummy CCR registers for omap1.

Cc: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Misael Lopez Cruz <x0052729@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix OSK ASoC by registering I2C board info for tlvaic23
Arun KS [Thu, 15 Jan 2009 11:09:54 +0000 (13:09 +0200)]
ARM: OMAP: Fix OSK ASoC by registering I2C board info for tlvaic23

Adding I2C board info is required for tlvaic23 i2c chip driver.

Cc: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Arun KS <arunks@mistralsolutions.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: remove duplicated #include's
Huang Weiyi [Thu, 15 Jan 2009 11:09:54 +0000 (13:09 +0200)]
ARM: OMAP: remove duplicated #include's

Removed duplicated #include's in arch/arm/mach-omap1/board-voiceblue.c

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix DMA CCR programming for request line > 63, v3
Anand Gadiyar [Thu, 15 Jan 2009 11:09:53 +0000 (13:09 +0200)]
ARM: OMAP: Fix DMA CCR programming for request line > 63, v3

Bug in existing code causes synchro control to be set +32 if request
line greater than 63 is used.

Also clean up the function a bit by removing extra parens and
clearing the bits at before write.

Reported by Wenbiao Wang.

Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix gpio.c compile on 15xx with CONFIG_DEBUGFS
Tony Lindgren [Thu, 15 Jan 2009 11:09:53 +0000 (13:09 +0200)]
ARM: OMAP: Fix gpio.c compile on 15xx with CONFIG_DEBUGFS

There are no wakeup registers on 15xx, and suspend_wakeup
does not exist in the struct gpio_bank.

Without this fix we'll get "arch/arm/plat-omap/gpio.c:1792:
error: 'struct gpio_bank' has no member named 'suspend_wakeup'"
as noted by Russell King.

Note that the ifdefs will be cleaned up once the omap gpio
code gets split into omap1 and omap2 specific parts.

Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix compile for beagle
Tony Lindgren [Thu, 15 Jan 2009 11:09:53 +0000 (13:09 +0200)]
ARM: OMAP: Fix compile for beagle

Move twl4030 gpio init code to where it should be.
Also include twl4030.h.

Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix gpio by switching to generic gpio calls, v2
Jarkko Nikula [Thu, 15 Jan 2009 11:09:52 +0000 (13:09 +0200)]
ARM: OMAP: Fix gpio by switching to generic gpio calls, v2

Fix compile by removing remaining omap specific gpio
calls. Based on earlier patches by Jarkko Nikula.

Also remove old GPIO key code, there is already a patch
to do this with gpio_keys.

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix compile for palmte
Tony Lindgren [Thu, 15 Jan 2009 11:09:52 +0000 (13:09 +0200)]
ARM: OMAP: Fix compile for palmte

Remove old MMC platform init code accidentally
left behind.

Patches are welcome to the new style MMC init code.

Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix compile for various McBSP
Tony Lindgren [Thu, 15 Jan 2009 11:09:51 +0000 (13:09 +0200)]
ARM: OMAP: Fix compile for various McBSP

Include irqs.h or cpu.h directly as needed to fix
omap builds.

Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoMerge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
Linus Torvalds [Thu, 15 Jan 2009 04:00:28 +0000 (20:00 -0800)]
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (29 commits)
  powerpc/83xx: Move mcu_mpc8349emitx driver out of drivers/i2c/chips/
  powerpc/83xx: Make serial ports work on MPC8315E-RDB w/ FSL U-Boots
  powerpc/e500mc: Doorbells need to be taken w/exceptions disabled
  powerpc: Enable PS3 options and QPACE in ppc64_defconfig
  powerpc/powermac: Fix occasional SMP boot failure
  powerpc/cacheinfo: Rename cache_dir per-cpu variable
  hvc_console: Use kzalloc() instead of kmalloc() + memset()
  hvc_console: Do not set low_latency when using interrupts
  hvc_console: Call free_irq() only if request_irq() was successful
  hvc_console: Change an mb() to smp_mb() and add some comments
  powerpc: Cleanup from l64 to ll64 change: drivers/net
  powerpc: Cleanup from l64 to ll64 change: drivers/char
  powerpc: Cleanup from l64 to ll64 change: arch code
  powerpc: Change u64/s64 to a long long integer type
  powerpc/kexec: Check crash_base for relocatable kernel
  powerpc: Make dummy section a valid note header
  Xilinx: SPI: updated driver for device tree
  drivers/of: Add the of_find_i2c_device_by_node function.
  powerpc/xsysace: add compatible string for non-ipcore instance
  powerpc/mpc52xx: remove dead code from GPIO driver
  ...

15 years agoMerge branch 'syscalls' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
Linus Torvalds [Thu, 15 Jan 2009 03:58:40 +0000 (19:58 -0800)]
Merge branch 'syscalls' of git://git390.osdl.marist.edu/pub/scm/linux-2.6

* 'syscalls' of git://git390.osdl.marist.edu/pub/scm/linux-2.6: (44 commits)
  [CVE-2009-0029] s390 specific system call wrappers
  [CVE-2009-0029] System call wrappers part 33
  [CVE-2009-0029] System call wrappers part 32
  [CVE-2009-0029] System call wrappers part 31
  [CVE-2009-0029] System call wrappers part 30
  [CVE-2009-0029] System call wrappers part 29
  [CVE-2009-0029] System call wrappers part 28
  [CVE-2009-0029] System call wrappers part 27
  [CVE-2009-0029] System call wrappers part 26
  [CVE-2009-0029] System call wrappers part 25
  [CVE-2009-0029] System call wrappers part 24
  [CVE-2009-0029] System call wrappers part 23
  [CVE-2009-0029] System call wrappers part 22
  [CVE-2009-0029] System call wrappers part 21
  [CVE-2009-0029] System call wrappers part 20
  [CVE-2009-0029] System call wrappers part 19
  [CVE-2009-0029] System call wrappers part 18
  [CVE-2009-0029] System call wrappers part 17
  [CVE-2009-0029] System call wrappers part 16
  [CVE-2009-0029] System call wrappers part 15
  ...

15 years agobyteorder: make swab.h include asm/swab.h like a regular header
Harvey Harrison [Wed, 14 Jan 2009 03:27:09 +0000 (19:27 -0800)]
byteorder: make swab.h include asm/swab.h like a regular header

Add swab.h to kbuild.asm and remove the individual entries from
each arch, mark as unifdef as some arches have some kernel-only
bits inside.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agocris: introduce asm/swab.h
Harvey Harrison [Wed, 14 Jan 2009 03:31:29 +0000 (19:31 -0800)]
cris: introduce asm/swab.h

Adjust the arch overrides to the new names as well.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoMerge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
Linus Torvalds [Thu, 15 Jan 2009 03:55:25 +0000 (19:55 -0800)]
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs

* 'for-linus' of git://oss.sgi.com/xfs/xfs:
  [XFS] Update maintainers
  [XFS] use scalable vmap API
  [XFS] remove old vmap cache
  [XFS] make xfs_ino_t an unsigned long long
  [XFS] truncate readdir offsets to signed 32 bit values
  [XFS] fix compile of xfs_btree_readahead_lblock on m68k
  [XFS] Remove macro-to-function indirections in the mask code
  [XFS] Remove macro-to-function indirections in attr code
  [XFS] Remove several unused typedefs.
  [XFS] pass XFS_IGET_BULKSTAT to xfs_iget for handle operations

15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
Linus Torvalds [Thu, 15 Jan 2009 03:51:26 +0000 (19:51 -0800)]
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
  IDE: fix sparse signed-ness errors with host->host_busy
  ide: fix suspend regression
  tx4938ide: Fix build error due to read_sff_dma_status moving
  ide: remove unused CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ
  sl82c105: remove dead code
  via82cxxx: fix cable warning message
  ide: can't use SSD/non-rotational queue flag for all CFA devices
  it821x.c: use dev->revision instead of pci_read_config_byte
  it821x: Add ultra_mask quirk for Vortex86SX
  ide: fix accidental LOCKDEP breakage caused by local_irq_set() removal

15 years agoIDE: fix sparse signed-ness errors with host->host_busy
Ben Dooks [Wed, 14 Jan 2009 18:19:04 +0000 (19:19 +0100)]
IDE: fix sparse signed-ness errors with host->host_busy

The host_busy field in struct ide_host defaults to a
signed-long, where most arch's test_and_set_bit_*
macros use an unsigned long.

Change to using an unsigned long, which on ARM removes
the following sparse errors:

drivers/ide/ide-io.c:681:8: warning: incorrect type in argument 2 (different signedness)
drivers/ide/ide-io.c:681:8:    expected unsigned long volatile *p
drivers/ide/ide-io.c:681:8:    got long volatile *<noident>
drivers/ide/ide-io.c:681:8: warning: incorrect type in argument 2 (different signedness)
drivers/ide/ide-io.c:681:8:    expected unsigned long volatile *p
drivers/ide/ide-io.c:681:8:    got long volatile *<noident>
drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
drivers/ide/ide-io.c:695:3:    got long volatile *<noident>
drivers/ide/ide-io.c:695:3: warning: incorrect type in argument 2 (different signedness)
drivers/ide/ide-io.c:695:3:    expected unsigned long volatile *p
drivers/ide/ide-io.c:695:3:    got long volatile *<noident>

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
15 years agoide: fix suspend regression
Bartlomiej Zolnierkiewicz [Wed, 14 Jan 2009 18:19:04 +0000 (19:19 +0100)]
ide: fix suspend regression

On Monday 12 January 2009, Simon Holm Thøgersen wrote:
> commit 295f000 ("ide: don't execute the next queued command from the
> hard-IRQ context (v2)") breaks suspend to disk for me. On
> 'echo disk > /sys/power/state' the systems hangs, letting me switch
> virtual consoles, but not responding to Alt+SysRq

Restart the request queue early for REQ_TYPE_PM_RESUME requests
(though there is only one resume request for the whole resume
sequence it stays in the queue until is fully completed and now
depends on kblockd for processing consequential resume states).

Reported-and-bisected-by: Simon Holm Thøgersen <odie@cs.aau.dk>
Tested-by: Simon Holm Thøgersen <odie@cs.aau.dk>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
15 years agotx4938ide: Fix build error due to read_sff_dma_status moving
Atsushi Nemoto [Wed, 14 Jan 2009 18:19:04 +0000 (19:19 +0100)]
tx4938ide: Fix build error due to read_sff_dma_status moving

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
15 years agoide: remove unused CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ
Bartlomiej Zolnierkiewicz [Wed, 14 Jan 2009 18:19:03 +0000 (19:19 +0100)]
ide: remove unused CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
15 years agosl82c105: remove dead code
Bartlomiej Zolnierkiewicz [Wed, 14 Jan 2009 18:19:03 +0000 (19:19 +0100)]
sl82c105: remove dead code

CONFIG_LOPEC and CONFIG_SANDPOINT config options are gone.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
15 years agovia82cxxx: fix cable warning message
Bartlomiej Zolnierkiewicz [Wed, 14 Jan 2009 18:19:03 +0000 (19:19 +0100)]
via82cxxx: fix cable warning message

Remove reference to the removed old-style kernel parameter.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
15 years agoide: can't use SSD/non-rotational queue flag for all CFA devices
Bartlomiej Zolnierkiewicz [Wed, 14 Jan 2009 18:19:03 +0000 (19:19 +0100)]
ide: can't use SSD/non-rotational queue flag for all CFA devices

Some rotating disks also present themselves as CFA devices.

Reported-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
15 years agoit821x.c: use dev->revision instead of pci_read_config_byte
Brandon Philips [Wed, 14 Jan 2009 18:19:03 +0000 (19:19 +0100)]
it821x.c: use dev->revision instead of pci_read_config_byte

Minor cleanup.

Signed-off-by: Brandon Philips <bphilips@suse.de>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Shawn Lin <shawn@dmp.com.tw>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
15 years agoit821x: Add ultra_mask quirk for Vortex86SX
Brandon Philips [Wed, 14 Jan 2009 18:19:02 +0000 (19:19 +0100)]
it821x: Add ultra_mask quirk for Vortex86SX

On Vortex86SX with IDE controller revision 0x11 ultra DMA must be
disabled. This patch was tested by DMP and seems to work.

It is a cleaned up version of their older Kernel patch:
 http://www.dmp.com.tw/tech/vortex86sx/patch-2.6.24-DMP.gz

Tested-by: Shawn Lin <shawn@dmp.com.tw>
Signed-off-by: Brandon Philips <bphilips@suse.de>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
15 years agoide: fix accidental LOCKDEP breakage caused by local_irq_set() removal
Bartlomiej Zolnierkiewicz [Wed, 14 Jan 2009 18:19:02 +0000 (19:19 +0100)]
ide: fix accidental LOCKDEP breakage caused by local_irq_set() removal

commit 54cc1428cfa619e16d75baae8cb041a2eff015f0 ("ide: remove
local_irq_set() macro") accidentally replaced local_save_flags()
by local_irq_set() in ide_probe_port() and __ide_wait_stat()
which resulted in LOCKDEP breakage.

Reported-by: Larry Finger <Larry.Finger@lwfinger.net>
Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
15 years agokernel/up.c: omit it if SMP=y, USE_GENERIC_SMP_HELPERS=n
Andrew Morton [Wed, 14 Jan 2009 17:35:44 +0000 (09:35 -0800)]
kernel/up.c: omit it if SMP=y, USE_GENERIC_SMP_HELPERS=n

Fix the sparc build - we were including `up.o' on SMP builds, when
CONFIG_USE_GENERIC_SMP_HELPERS=n.

Tested-by: Robert Reif <reif@earthlink.net>
Fixed-by: Robert Reif <reif@earthlink.net>
Cc: David Miller <davem@davemloft.net>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agomm: fix assertion
Nick Piggin [Wed, 14 Jan 2009 06:28:16 +0000 (07:28 +0100)]
mm: fix assertion

This assertion is incorrect for lockless pagecache.  By definition if we
have an unpinned page that we are trying to take a speculative reference
to, it may become the tail of a compound page at any time (if it is
freed, then reallocated as a compound page).

It was still a valid assertion for the vmscan.c LRU isolation case, but
it doesn't seem incredibly helpful...  if somebody wants it, they can
put it back directly where it applies in the vmscan code.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years ago[CVE-2009-0029] s390 specific system call wrappers
Heiko Carstens [Wed, 14 Jan 2009 13:14:36 +0000 (14:14 +0100)]
[CVE-2009-0029] s390 specific system call wrappers

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 33
Heiko Carstens [Wed, 14 Jan 2009 13:14:35 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 33

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 32
Heiko Carstens [Wed, 14 Jan 2009 13:14:34 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 32

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 31
Heiko Carstens [Wed, 14 Jan 2009 13:14:33 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 31

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 30
Heiko Carstens [Wed, 14 Jan 2009 13:14:32 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 30

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 29
Heiko Carstens [Wed, 14 Jan 2009 13:14:31 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 29

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 28
Heiko Carstens [Wed, 14 Jan 2009 13:14:30 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 28

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 27
Heiko Carstens [Wed, 14 Jan 2009 13:14:29 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 27

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 26
Heiko Carstens [Wed, 14 Jan 2009 13:14:28 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 26

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 25
Heiko Carstens [Wed, 14 Jan 2009 13:14:27 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 25

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 24
Heiko Carstens [Wed, 14 Jan 2009 13:14:26 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 24

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 23
Heiko Carstens [Wed, 14 Jan 2009 13:14:25 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 23

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 22
Heiko Carstens [Wed, 14 Jan 2009 13:14:24 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 22

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 21
Heiko Carstens [Wed, 14 Jan 2009 13:14:23 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 21

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 20
Heiko Carstens [Wed, 14 Jan 2009 13:14:22 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 20

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 19
Heiko Carstens [Wed, 14 Jan 2009 13:14:21 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 19

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 18
Heiko Carstens [Wed, 14 Jan 2009 13:14:20 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 18

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 17
Heiko Carstens [Wed, 14 Jan 2009 13:14:19 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 17

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 16
Heiko Carstens [Wed, 14 Jan 2009 13:14:18 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 16

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 15
Heiko Carstens [Wed, 14 Jan 2009 13:14:17 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 15

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 14
Heiko Carstens [Wed, 14 Jan 2009 13:14:16 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 14

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 13
Heiko Carstens [Wed, 14 Jan 2009 13:14:15 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 13

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 12
Heiko Carstens [Wed, 14 Jan 2009 13:14:14 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 12

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 11
Heiko Carstens [Wed, 14 Jan 2009 13:14:13 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 11

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 10
Heiko Carstens [Wed, 14 Jan 2009 13:14:12 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 10

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 09
Heiko Carstens [Wed, 14 Jan 2009 13:14:11 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 09

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 08
Heiko Carstens [Wed, 14 Jan 2009 13:14:10 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 08

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 07
Heiko Carstens [Wed, 14 Jan 2009 13:14:09 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 07

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 06
Heiko Carstens [Wed, 14 Jan 2009 13:14:08 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 06

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 05
Heiko Carstens [Wed, 14 Jan 2009 13:14:07 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 05

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 04
Heiko Carstens [Wed, 14 Jan 2009 13:14:06 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 04

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 03
Heiko Carstens [Wed, 14 Jan 2009 13:14:05 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 03

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 02
Heiko Carstens [Wed, 14 Jan 2009 13:14:04 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 02

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrappers part 01
Heiko Carstens [Wed, 14 Jan 2009 13:14:03 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrappers part 01

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrapper special cases
Heiko Carstens [Wed, 14 Jan 2009 13:14:02 +0000 (14:14 +0100)]
[CVE-2009-0029] System call wrapper special cases

System calls with an unsigned long long argument can't be converted with
the standard wrappers since that would include a cast to long, which in
turn means that we would lose the upper 32 bit on 32 bit architectures.
Also semctl can't use the standard wrapper since it has a 'union'
parameter.

So we handle them as special case and add some extra wrappers instead.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] s390: enable system call wrappers
Heiko Carstens [Wed, 14 Jan 2009 13:14:01 +0000 (14:14 +0100)]
[CVE-2009-0029] s390: enable system call wrappers

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] powerpc: Enable syscall wrappers for 64-bit
Benjamin Herrenschmidt [Wed, 14 Jan 2009 13:14:00 +0000 (14:14 +0100)]
[CVE-2009-0029] powerpc: Enable syscall wrappers for 64-bit

This enables the use of syscall wrappers to do proper sign extension
for 64-bit programs.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] System call wrapper infrastructure
Heiko Carstens [Wed, 14 Jan 2009 13:13:59 +0000 (14:13 +0100)]
[CVE-2009-0029] System call wrapper infrastructure

From: Martin Schwidefsky <schwidefsky@de.ibm.com>

By selecting HAVE_SYSCALL_WRAPPERS architectures can activate
system call wrappers in order to sign extend system call arguments.

All architectures where the ABI defines that the caller of a function
has to perform sign extension probably need this.

Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] Make sys_syslog a conditional system call
Heiko Carstens [Wed, 14 Jan 2009 13:13:58 +0000 (14:13 +0100)]
[CVE-2009-0029] Make sys_syslog a conditional system call

Remove the -ENOSYS implementation for !CONFIG_PRINTK and use
the cond_syscall infrastructure instead.

Acked-by: Kyle McMartin <kyle@redhat.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] Make sys_pselect7 static
Heiko Carstens [Wed, 14 Jan 2009 13:13:57 +0000 (14:13 +0100)]
[CVE-2009-0029] Make sys_pselect7 static

Not a single architecture has wired up sys_pselect7 plus it is the
only system call with seven parameters. Just make it static and
rename it to do_pselect which will do the work for sys_pselect6.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] Remove __attribute__((weak)) from sys_pipe/sys_pipe2
Heiko Carstens [Wed, 14 Jan 2009 13:13:56 +0000 (14:13 +0100)]
[CVE-2009-0029] Remove __attribute__((weak)) from sys_pipe/sys_pipe2

Remove __attribute__((weak)) from common code sys_pipe implemantation.
IA64, ALPHA, SUPERH (32bit) and SPARC (32bit) have own implemantations
with the same name. Just rename them.
For sys_pipe2 there is no architecture specific implementation.

Cc: Richard Henderson <rth@twiddle.net>
Cc: David S. Miller <davem@davemloft.net>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Tony Luck <tony.luck@intel.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] Rename old_readdir to sys_old_readdir
Heiko Carstens [Wed, 14 Jan 2009 13:13:55 +0000 (14:13 +0100)]
[CVE-2009-0029] Rename old_readdir to sys_old_readdir

This way it matches the generic system call name convention.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] Convert all system calls to return a long
Heiko Carstens [Wed, 14 Jan 2009 13:13:54 +0000 (14:13 +0100)]
[CVE-2009-0029] Convert all system calls to return a long

Convert all system calls to return a long. This should be a NOP since all
converted types should have the same size anyway.
With the exception of sys_exit_group which returned void. But that doesn't
matter since the system call doesn't return.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years ago[CVE-2009-0029] Move compat system call declarations to compat header file
Heiko Carstens [Wed, 14 Jan 2009 13:13:53 +0000 (14:13 +0100)]
[CVE-2009-0029] Move compat system call declarations to compat header file

Move declarations to correct header file.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus
Lachlan McIlroy [Wed, 14 Jan 2009 05:29:51 +0000 (16:29 +1100)]
Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus

15 years agopowerpc/83xx: Move mcu_mpc8349emitx driver out of drivers/i2c/chips/
Anton Vorontsov [Sun, 11 Jan 2009 16:55:39 +0000 (19:55 +0300)]
powerpc/83xx: Move mcu_mpc8349emitx driver out of drivers/i2c/chips/

This patch is used to help Jean Delvare to get rid of drivers/i2c/chips/
directory. The new location suggested by Kumar Gala: as the driver is
83xx specific it's placed into arch/powerpc/platforms/83xx/.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
15 years agopowerpc/83xx: Make serial ports work on MPC8315E-RDB w/ FSL U-Boots
Anton Vorontsov [Sun, 11 Jan 2009 15:30:13 +0000 (18:30 +0300)]
powerpc/83xx: Make serial ports work on MPC8315E-RDB w/ FSL U-Boots

FSL U-Boots use /soc8315@e0000000 node to search and fixup serial
nodes' clock-frequency properties. Though in upstream kernels we use
new naming convention -- for IMMR address space dts files specify
/immr@e0000000 nodes.

This makes FSL U-Boots fail to fixup the clock frequencies, and that
leads to serial ports misbehaviour. We can workaround the issue by
filling the clock frequency values manually.

p.s. For the same reason FSL U-Boots fail to fixup MAC addresses for
ethernet nodes, so users should either change the .dts file locally
or set MAC address via `ifconfig hw ether' command.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
15 years agopowerpc/e500mc: Doorbells need to be taken w/exceptions disabled
Kumar Gala [Fri, 9 Jan 2009 00:11:56 +0000 (18:11 -0600)]
powerpc/e500mc: Doorbells need to be taken w/exceptions disabled

We use Doorbell interrupts for IPIs and thus we need to make sure we aren't
interrupted in the process of processing the IPI.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Dave Liu <daveliu@freescale.com>
15 years agoMerge branch 'x86-pat-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Tue, 13 Jan 2009 22:53:16 +0000 (14:53 -0800)]
Merge branch 'x86-pat-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'x86-pat-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86 PAT: remove CPA WARN_ON for zero pte
  x86 PAT: return compatible mapping to remap_pfn_range callers
  x86 PAT: change track_pfn_vma_new to take pgprot_t pointer param
  x86 PAT: consolidate old memtype new memtype check into a function
  x86 PAT: remove PFNMAP type on track_pfn_vma_new() error

15 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Tue, 13 Jan 2009 22:52:35 +0000 (14:52 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  TWL4030: fix clk API usage
  [ARM] 5364/1: allow flush_ioremap_region() to be used from modules
  [ARM] w90x900: fix build errors and warnings
  [ARM] i.MX add missing include
  [ARM] i.MX: fix breakage from commit 278892736e99330195c8ae5861bcd9d791bbf19e
  [ARM] i.MX: remove LCDC controller register definitions from imx-regs.h

15 years agoFix timeouts in sys_pselect7
Bernd Schmidt [Tue, 13 Jan 2009 21:14:48 +0000 (22:14 +0100)]
Fix timeouts in sys_pselect7

Since we (Analog Devices) updated our Blackfin kernel to 2.6.28, we've
seen occasional 5-second hangs from telnet.  telnetd calls select with a
NULL timeout, but with the new kernel, the system call occasionally
returns 0, which causes telnet to call sleep (5).  This did not happen
with earlier kernels.

The code in sys_pselect7 looks a bit strange, in particular the variable
"to" is initialized to NULL, then changed if a non-null timeout was
passed in, but not used further.  It needs to be passed to
core_sys_select instead of &end_time.

This bug was introduced by 8ff3e8e85fa6c312051134b3953e397feb639f51
("select: switch select() and poll() over to hrtimers").

Signed-off-by: Bernd Schmidt <bernd.schmidt@analog.com>
Reviewed-by: Ulrich Drepper <drepper@redhat.com>
Tested-by: Robin Getz <rgetz@blackfin.uclinux.org>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agofix early_serial_setup() regression
Helge Deller [Tue, 13 Jan 2009 21:51:07 +0000 (22:51 +0100)]
fix early_serial_setup() regression

Commit b430428a188e8a434325e251d0704af4b88b4711 ("8250: Don't clobber
spinlocks.") introduced a regression on the parisc architecture, which
broke the handover to the serial port at boottime.

early_serial_setup() was changed to only copy a subset of the uart_port
fields, and sadly the "type" and "line" fields were forgotten and thus
the serial port was not initialized and could not be used for a
handover.  This patch fixes this by copying the missing fields.

As this change to early_serial_setup() doesn't need an initialized
spinlock in the uart_port struct any longer, we can drop the spinlock
initialization in the superio driver.

Cc: David Daney <ddaney@caviumnetworks.com>
Cc: Tomaso Paoletti <tpaoletti@caviumnetworks.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Acked-by: Kyle McMartin <kyle@mcmartin.ca>
Cc: linux-parisc@vger.kernel.org
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoTWL4030: fix clk API usage
Russell King [Sat, 10 Jan 2009 10:40:42 +0000 (10:40 +0000)]
TWL4030: fix clk API usage

Always pass a struct device if one is available; and there's really
no reason for the processor specific stuff in this file if only
people would follow the API usage properly by using the struct device.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agox86 PAT: remove CPA WARN_ON for zero pte
venkatesh.pallipadi@intel.com [Sat, 10 Jan 2009 00:13:14 +0000 (16:13 -0800)]
x86 PAT: remove CPA WARN_ON for zero pte

Impact: reduce scope of debug check - avoid warnings

The logic to find whether identity map exists or not using
high_memory or max_low_pfn_mapped/max_pfn_mapped are not complete
as the memory withing the range may not be mapped if there is a
unusable hole in e820.

Specifically, on my test system I started seeing these warnings with
tools like hwinfo, acpidump trying to map ACPI region.

[   27.400018] ------------[ cut here ]------------
[   27.400344] WARNING: at /home/venkip/src/linus/linux-2.6/arch/x86/mm/pageattr.c:560 __change_page_attr_set_clr+0xf3/0x8b8()
[   27.400821] Hardware name: X7DB8
[   27.401070] CPA: called for zero pte. vaddr = ffff8800cff6a000 cpa->vaddr = ffff8800cff6a000
[   27.401569] Modules linked in:
[   27.401882] Pid: 4913, comm: dmidecode Not tainted 2.6.28-05716-gfe0bdec #586
[   27.402141] Call Trace:
[   27.402488]  [<ffffffff80237c21>] warn_slowpath+0xd3/0x10f
[   27.402749]  [<ffffffff80274ade>] ? find_get_page+0xb3/0xc9
[   27.403028]  [<ffffffff80274a2b>] ? find_get_page+0x0/0xc9
[   27.403333]  [<ffffffff80226425>] __change_page_attr_set_clr+0xf3/0x8b8
[   27.403628]  [<ffffffff8028ec99>] ? __purge_vmap_area_lazy+0x192/0x1a1
[   27.403883]  [<ffffffff8028eb52>] ? __purge_vmap_area_lazy+0x4b/0x1a1
[   27.404172]  [<ffffffff80290268>] ? vm_unmap_aliases+0x1ab/0x1bb
[   27.404512]  [<ffffffff80290105>] ? vm_unmap_aliases+0x48/0x1bb
[   27.404766]  [<ffffffff80226d28>] change_page_attr_set_clr+0x13e/0x2e6
[   27.405026]  [<ffffffff80698fa7>] ? _spin_unlock+0x26/0x2a
[   27.405292]  [<ffffffff80227e6a>] ? reserve_memtype+0x19b/0x4e3
[   27.405590]  [<ffffffff80226ffd>] _set_memory_wb+0x22/0x24
[   27.405844]  [<ffffffff80225d28>] ioremap_change_attr+0x26/0x28
[   27.406097]  [<ffffffff80228355>] reserve_pfn_range+0x1a3/0x235
[   27.406427]  [<ffffffff80228430>] track_pfn_vma_new+0x49/0xb3
[   27.406686]  [<ffffffff80286c46>] remap_pfn_range+0x94/0x32c
[   27.406940]  [<ffffffff8022878d>] ? phys_mem_access_prot_allowed+0xb5/0x1a8
[   27.407209]  [<ffffffff803e9bf4>] mmap_mem+0x75/0x9d
[   27.407523]  [<ffffffff8028b3b4>] mmap_region+0x2cf/0x53e
[   27.407776]  [<ffffffff8028b8cc>] do_mmap_pgoff+0x2a9/0x30d
[   27.408034]  [<ffffffff8020f4a4>] sys_mmap+0x92/0xce
[   27.408339]  [<ffffffff8020b65b>] system_call_fastpath+0x16/0x1b
[   27.408614] ---[ end trace 4b16ad70c09a602d ]---
[   27.408871] dmidecode:4913 reserve_pfn_range ioremap_change_attr failed write-back for cff6a000-cff6b000

This is wih track_pfn_vma_new trying to keep identity map in sync.
The address cff6a000 is the ACPI region according to e820.

[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009c000 (usable)
[    0.000000]  BIOS-e820: 000000000009c000 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000cc000 - 00000000000d0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 00000000cff60000 (usable)
[    0.000000]  BIOS-e820: 00000000cff60000 - 00000000cff69000 (ACPI data)
[    0.000000]  BIOS-e820: 00000000cff69000 - 00000000cff80000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000cff80000 - 00000000d0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
[    0.000000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
[    0.000000]  BIOS-e820: 0000000100000000 - 0000000230000000 (usable)

And is not mapped as per init_memory_mapping.

[    0.000000] init_memory_mapping: 0000000000000000-00000000cff60000
[    0.000000] init_memory_mapping: 0000000100000000-0000000230000000

We can add logic to check for this. But, there can also be other holes in
identity map when we have 1GB of aligned reserved space in e820.

This patch handles it by removing the WARN_ON and returning a specific
error value (EFAULT) to indicate that the address does not have any
identity mapping.

The code that tries to keep identity map in sync can ignore
this error, with other callers of cpa still getting error here.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86 PAT: return compatible mapping to remap_pfn_range callers
venkatesh.pallipadi@intel.com [Sat, 10 Jan 2009 00:13:12 +0000 (16:13 -0800)]
x86 PAT: return compatible mapping to remap_pfn_range callers

Impact: avoid warning message, potentially solve 3D performance regression

Change x86 PAT code to return compatible memtype if the exact memtype that
was requested in remap_pfn_rage and friends is not available due to some
conflict.

This is done by returning the compatible type in pgprot parameter of
track_pfn_vma_new(), and the caller uses that memtype for page table.

Note that track_pfn_vma_copy() which is basically called during fork gets the
prot from existing page table and should not have any conflict. Hence we use
strict memtype check there and do not allow compatible memtypes.

This patch fixes the bug reported here:

  http://marc.info/?l=linux-kernel&m=123108883716357&w=2

Specifically the error message:

  X:5010 map pfn expected mapping type write-back for d0000000-d0101000,
  got write-combining

Should go away.

Reported-and-bisected-by: Kevin Winchester <kjwinchester@gmail.com>
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86 PAT: change track_pfn_vma_new to take pgprot_t pointer param
venkatesh.pallipadi@intel.com [Sat, 10 Jan 2009 00:13:11 +0000 (16:13 -0800)]
x86 PAT: change track_pfn_vma_new to take pgprot_t pointer param

Impact: cleanup

Change the protection parameter for track_pfn_vma_new() into a pgprot_t pointer.
Subsequent patch changes the x86 PAT handling to return a compatible
memtype in pgprot_t, if what was requested cannot be allowed due to conflicts.
No fuctionality change in this patch.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86 PAT: consolidate old memtype new memtype check into a function
venkatesh.pallipadi@intel.com [Sat, 10 Jan 2009 00:13:10 +0000 (16:13 -0800)]
x86 PAT: consolidate old memtype new memtype check into a function

Impact: cleanup

Move the new memtype old memtype allowed check to header so that is can be
shared by other users. Subsequent patch uses this in pat.c in remap_pfn_range()
code path. No functionality change in this patch.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agox86 PAT: remove PFNMAP type on track_pfn_vma_new() error
venkatesh.pallipadi@intel.com [Sat, 10 Jan 2009 00:13:09 +0000 (16:13 -0800)]
x86 PAT: remove PFNMAP type on track_pfn_vma_new() error

Impact: fix (harmless) double-free of memtype entries and avoid warning

On track_pfn_vma_new() failure, reset the vm_flags so that there will be
no second cleanup happening when upper level routines call unmap_vmas().

This patch fixes part of the bug reported here:

  http://marc.info/?l=linux-kernel&m=123108883716357&w=2

Specifically the error message:

  X:5010 freeing invalid memtype d0000000-d0101000

Is due to multiple frees on error path, will not happen with the patch below.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
15 years agoMerge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Tue, 13 Jan 2009 17:03:02 +0000 (09:03 -0800)]
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/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:
  Revert "i386: add TRACE_IRQS_OFF for the nmi"

15 years agoMerge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Tue, 13 Jan 2009 17:02:21 +0000 (09:02 -0800)]
Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/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:
  smp_call_function_single(): be slightly less stupid, fix #2
  lockdep, mm: fix might_fault() annotation

15 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
Linus Torvalds [Tue, 13 Jan 2009 16:19:42 +0000 (08:19 -0800)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
  IB/iser: Add dependency on INFINIBAND_ADDR_TRANS
  IPoIB: Do not join broadcast group if interface is brought down
  RDMA/nes: Fix for NIPQUAD removal
  IPoIB: Fix loss of connectivity after bonding failover on both sides
  IB/mlx4: Don't register IB device for adapters with no IB ports
  mlx4_core: Fix warning from min()
  IB/ehca: spin_lock_irqsave() takes an unsigned long

15 years agoMerge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzi...
Linus Torvalds [Tue, 13 Jan 2009 16:17:41 +0000 (08:17 -0800)]
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  pata_it821x: Update RDC UDMA handling
  ata: fix wrong WARN_ON_ONCE

15 years agoPrevent oops at boot with VT-d
Dirk Hohndel [Sun, 11 Jan 2009 15:33:51 +0000 (15:33 +0000)]
Prevent oops at boot with VT-d

With some broken BIOSs when VT-d is enabled, the data structures are
filled incorrectly. This can cause a NULL pointer dereference in very
early boot.

Signed-off-by: Dirk Hohndel <hohndel@linux.intel.com>
Acked-by: Yu Zhao <yu.zhao@intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agopata_it821x: Update RDC UDMA handling
Alan Cox [Sun, 11 Jan 2009 19:51:08 +0000 (19:51 +0000)]
pata_it821x: Update RDC UDMA handling

The UDMA affliction is apparently specific to revision 0x11. Keeps us in sync
with drivers/ide current.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>