9 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Wed, 28 Apr 2010 14:56:05 +0000 (07:56 -0700)]
Merge branch 'for-linus' of git://

* 'for-linus' of git://
  coda: move backing-dev.h kernel include inside __KERNEL__
  mtd: ensure that bdi entries are properly initialized and registered
  Move mtd_bdi_*mappable to mtdcore.c
  btrfs: convert to using bdi_setup_and_register()
  Catch filesystems lacking s_bdi
  drbd: Terminate a connection early if sending the protocol fails
  drbd: fix memory leak
  Fix JFFS2 sync silent failure
  smbfs: add bdi backing to mount session
  ncpfs: add bdi backing to mount session
  exofs: add bdi backing to mount session
  ecryptfs: add bdi backing to mount session
  coda: add bdi backing to mount session
  cifs: add bdi backing to mount session
  afs: add bdi backing to mount session.
  9p: add bdi backing to mount session
  bdi: add helper function for doing init and register of a bdi for a file system
  block: ensure jiffies wrap is handled correctly in blk_rq_timed_out_timer

9 years agoMerge git://
Linus Torvalds [Wed, 28 Apr 2010 14:55:35 +0000 (07:55 -0700)]
Merge git://git./linux/kernel/git/wim/linux-2.6-watchdog

* git://
  watchdog: booke_wdt: fix build - unconstify watchdog_info
  watchdog: sbc_fitpc2_wdt: fixed "scheduling while atomic" bug.
  watchdog: sbc_fitpc2_wdt: fixed I/O operations order
  Watchdog: sb_wdog.c: Fix sibyte watchdog initialization

9 years agocoda: move backing-dev.h kernel include inside __KERNEL__
Jens Axboe [Wed, 28 Apr 2010 07:20:33 +0000 (09:20 +0200)]
coda: move backing-dev.h kernel include inside __KERNEL__

Otherwise we must export backing-dev.h as well, which doesn't make
any sense.

Signed-off-by: Jens Axboe <>
9 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Tue, 27 Apr 2010 23:26:46 +0000 (16:26 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/jmorris/security-testing-2.6

* 'for-linus' of git://
  keys: don't need to use RCU in keyring_read() as semaphore is held

9 years agoMerge branch 'for-2.6.34' of git://
Linus Torvalds [Tue, 27 Apr 2010 23:26:21 +0000 (16:26 -0700)]
Merge branch 'for-2.6.34' of git://

* 'for-2.6.34' of git://
  nfsd4: bug in read_buf

9 years agokeys: the request_key() syscall should link an existing key to the dest keyring
David Howells [Tue, 27 Apr 2010 20:13:08 +0000 (13:13 -0700)]
keys: the request_key() syscall should link an existing key to the dest keyring

The request_key() system call and request_key_and_link() should make a
link from an existing key to the destination keyring (if supplied), not
just from a new key to the destination keyring.

This can be tested by:

ring=`keyctl newring fred @s`
keyctl request2 user debug:a a
keyctl request user debug:a $ring
keyctl list $ring

If it says:

keyring is empty

then it didn't work.  If it shows something like:

1 key in keyring:
1070462727: --alswrv     0     0 user: debug:a

then it did.

request_key() system call is meant to recursively search all your keyrings for
the key you desire, and, optionally, if it doesn't exist, call out to userspace
to create one for you.

If request_key() finds or creates a key, it should, optionally, create a link
to that key from the destination keyring specified.

Therefore, if, after a successful call to request_key() with a desination
keyring specified, you see the destination keyring empty, the code didn't work

If you see the found key in the keyring, then it did - which is what the patch
is required for.

Signed-off-by: David Howells <>
Cc: James Morris <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agogpio: fix pca953x set_type 'scheduling while atomic' bug
Marc Zyngier [Tue, 27 Apr 2010 20:13:07 +0000 (13:13 -0700)]
gpio: fix pca953x set_type 'scheduling while atomic' bug

Bill Gatliff reported the following bug when using the irq_chip facility
of the pca953x driver on a PPC platform:

BUG: scheduling while atomic: insmod/1530/0x00000002

He traced it back to an i2c transaction in pca953x_irq_set_type(), which
can be called with interrupt disabled (from __setup_irq()).  As the i2c
controller can sleep while sending a message, this qualifies as a bad

This patch moves the i2c transaction to pca953x_irq_bus_sync_unlock(),
where it is actually safe to send an i2c message.

[ coding-style fixes]
Signed-off-by: Marc Zyngier <>
Reported-by: Bill Gatliff <>
Cc: Eric Miao <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agoprocfs: fix tid fdinfo
Jerome Marchand [Tue, 27 Apr 2010 20:13:06 +0000 (13:13 -0700)]
procfs: fix tid fdinfo

Correct the file_operations struct in fdinfo entry of tid_base_stuff[].

Presently /proc/*/task/*/fdinfo contains symlinks to opened files like

Signed-off-by: Jerome Marchand <>
Cc: Alexander Viro <>
Cc: Miklos Szeredi <>
Cc: Alexey Dobriyan <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agoarch/avr32: fix build failure caused by wrong prototype
Peter Huewe [Tue, 27 Apr 2010 20:13:04 +0000 (13:13 -0700)]
arch/avr32: fix build failure caused by wrong prototype

This patch fixes a build failure introduced by 1d8393171 ("avr32: use
generic ptrace_resume code") which had the static keyword as a leftover.

  arch/avr32/kernel/ptrace.c:32: error: static declaration of `user_enable_single_step' follows non-static declaration
  include/linux/ptrace.h:268: error: previous declaration of `user_enable_single_step' was here


Signed-off-by: Peter Huewe <>
Cc: Haavard Skinnemoen <>
Cc: Christoph Hellwig <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agokeys: don't need to use RCU in keyring_read() as semaphore is held
David Howells [Tue, 27 Apr 2010 21:05:11 +0000 (14:05 -0700)]
keys: don't need to use RCU in keyring_read() as semaphore is held

keyring_read() doesn't need to use rcu_dereference() to access the keyring
payload as the caller holds the key semaphore to prevent modifications
from happening whilst the data is read out.

This should solve the following warning:

[ INFO: suspicious rcu_dereference_check() usage. ]
security/keys/keyring.c:204 invoked rcu_dereference_check() without protection!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 0
1 lock held by keyctl/2144:
 #0:  (&key->sem){+++++.}, at: [<ffffffff81177f7c>] keyctl_read_key+0x9c/0xcf

stack backtrace:
Pid: 2144, comm: keyctl Not tainted 2.6.34-rc2-cachefs #113
Call Trace:
 [<ffffffff8105121f>] lockdep_rcu_dereference+0xaa/0xb2
 [<ffffffff811762d5>] keyring_read+0x4d/0xe7
 [<ffffffff81177f8c>] keyctl_read_key+0xac/0xcf
 [<ffffffff811788d4>] sys_keyctl+0x75/0xb9
 [<ffffffff81001eeb>] system_call_fastpath+0x16/0x1b

Signed-off-by: David Howells <>
Cc: Herbert Xu <>
Signed-off-by: Andrew Morton <>
Signed-off-by: James Morris <>
9 years agoRemove redundant check for CONFIG_MMU
Christoph Egger [Mon, 26 Apr 2010 14:56:36 +0000 (15:56 +0100)]
Remove redundant check for CONFIG_MMU

The checks for CONFIG_MMU at this location are duplicated as all the code is
located inside a #ifndef CONFIG_MMU block. So the first conditional block will
always be included while the second never will.

Signed-off-by: Christoph Egger <>
Signed-off-by: David Howells <>
Signed-off-by: Linus Torvalds <>
9 years agoMerge git://
Linus Torvalds [Tue, 27 Apr 2010 15:59:38 +0000 (08:59 -0700)]
Merge git://git./linux/kernel/git/pkl/squashfs-linus

* git://
  squashfs: fix potential buffer over-run on 4K block file systems
  squashfs: add missing buffer free
  squashfs: fix warn_on when root inode is corrupted
  squashfs: fix locking bug in zlib wrapper

9 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Tue, 27 Apr 2010 15:32:21 +0000 (08:32 -0700)]
Merge branch 'for-linus' of git://

* 'for-linus' of git://
  xfs: more swap extent fixes for dynamic fork offsets

9 years agoMerge branch 'omap-fixes-for-linus' of git://
Linus Torvalds [Tue, 27 Apr 2010 15:27:26 +0000 (08:27 -0700)]
Merge branch 'omap-fixes-for-linus' of git://git./linux/kernel/git/tmlind/linux-omap-2.6

* 'omap-fixes-for-linus' of git:// (39 commits)
  omap: delete unused bootloader tag variables
  omap: Devkit8000: Remove unused pins
  omap: Devkit8000: Change position of init calls
  omap: Devkit8000: Remove unnecessary include file
  omap: Devkit8000: Fix typo in pin name
  omap: Devkit8000: Add missing package selection
  omap: Devkit8000: Fix typo in supplies
  n8x0_defconfig: remove CONFIG_NILFS2_FS override
  omap: board-sdp-flash.c: Fix typos in debug output
  omap4: Fix McBSP4 base address
  omap: rx51_defconfig: Remove CONFIG_SYSFS_DEPRECATED*=y options
  omap: rx51_defconfig: Remove duplicate phonet
  omap: fix a gpmc nand problem
  AM3517: initialize i2c subsystem after mux subsystem
  omap: remove one of the define of INT_34XX_BENCH_MPU_EMUL
  omap: fix the compile error if CONFIG_MTD_NAND_OMAP2 is notenabled
  OMAP4: Clocks: Change SPI Instance Names
  omap: Devkit8000: Fix wrong usb port on Devkit8000
  OMAP4: Fix for CONTROL register Base
  OMAP4-HSMMC: FIX for MMC5 Controller IRQ Base

9 years agommap: check ->vm_ops before dereferencing
Rik van Riel [Mon, 26 Apr 2010 16:33:03 +0000 (12:33 -0400)]
mmap: check ->vm_ops before dereferencing

Check whether the VMA has a vm_ops before calling close, just
like we check vm_ops before calling open a few dozen lines
higher up in the function.

Signed-off-by: Rik van Riel <>
Reported-by: Dan Carpenter <>
Signed-off-by: Linus Torvalds <>
9 years agoMerge git://
Linus Torvalds [Tue, 27 Apr 2010 15:26:09 +0000 (08:26 -0700)]
Merge git://git./linux/kernel/git/herbert/crypto-2.6

* git://
  crypto: authenc - Add EINPROGRESS check

9 years agoMerge branch 'drm-linus' of git://
Linus Torvalds [Tue, 27 Apr 2010 15:22:50 +0000 (08:22 -0700)]
Merge branch 'drm-linus' of git://git./linux/kernel/git/airlied/drm-2.6

* 'drm-linus' of git://
  drm/radeon: Fix sparc regression in r300_scratch()
  drm: make sure vblank interrupts are disabled at DPMS time
  drm/radeon/kms/evergreen: No EnableYUV table
  drm/radeon: 9800 SE has only one quadpipe
  drm/radeon/kms: don't print error for legal crtcs.
  drm/radeon/kms/evergreen: fix LUT setup

9 years agowatchdog: booke_wdt: fix build - unconstify watchdog_info
Anton Vorontsov [Mon, 26 Apr 2010 22:59:53 +0000 (15:59 -0700)]
watchdog: booke_wdt: fix build - unconstify watchdog_info

commit 42747d712de56cf2087b702d2ad90af114c53138 ("[WATCHDOG] watchdog_info
constify") introduced the following build failure:

   CC      booke_wdt.o
 booke_wdt.c: In function 'booke_wdt_init':
 booke_wdt.c:220: error: assignment of read-only variable 'ident'

Fix this by removing 'const' qualifier from watchdog_info struct.

Signed-off-by: Anton Vorontsov <>
Signed-off-by: Wim Van Sebroeck <>
Cc: Kumar Gala <>
Signed-off-by: Andrew Morton <>
9 years agomtd: ensure that bdi entries are properly initialized and registered
Jens Axboe [Tue, 27 Apr 2010 07:49:47 +0000 (09:49 +0200)]
mtd: ensure that bdi entries are properly initialized and registered

They will be holding dirty inodes and be responsible for flushing
them out, so they need to be setup properly.

Signed-off-by: Jens Axboe <>
9 years agoMove mtd_bdi_*mappable to mtdcore.c
Jörn Engel [Tue, 27 Apr 2010 07:40:52 +0000 (09:40 +0200)]
Move mtd_bdi_*mappable to mtdcore.c

Removes one .h and one .c file that are never used outside of

Signed-off-by: Joern Engel <>
Edited to remove on leftover debug define.
Signed-off-by: Jens Axboe <>
9 years agodrm/radeon: Fix sparc regression in r300_scratch()
David Miller [Mon, 26 Apr 2010 09:55:42 +0000 (02:55 -0700)]
drm/radeon: Fix sparc regression in r300_scratch()

Commit b4fe945405e477cded91772b4fec854705443dd5 ("drm/radeon: Fix
memory allocation failures in the preKMS command stream checking.")
added a regression in that it completely tossed the get_unaligned()
done by r300_scratch() which we added in commit
958a6f8ccb1964adc3eec84cf401c5baeb4fbca0 ("drm: radeon: Fix unaligned
access in r300_scratch().").

Put it back.

Signed-off-by: David S. Miller <>
Acked-by: Matt Turner <>
Signed-off-by: Dave Airlie <>
9 years agodrm: make sure vblank interrupts are disabled at DPMS time
Jesse Barnes [Fri, 26 Mar 2010 18:07:15 +0000 (18:07 +0000)]
drm: make sure vblank interrupts are disabled at DPMS time

When we call drm_vblank_off() at DPMS off time (to wake any clients so
they don't hang) we need to make sure interrupts are actually disabled.
If drm_vblank_off() gets called before the vblank usage timer expires,
it'll prevent the timer from disabling interrupts since it also clears
the vblank_enabled flag for the pipe.

Signed-off-by: Jesse Barnes <>
Signed-off-by: Dave Airlie <>
9 years agonfsd4: bug in read_buf
Neil Brown [Tue, 20 Apr 2010 02:16:52 +0000 (12:16 +1000)]
nfsd4: bug in read_buf

When read_buf is called to move over to the next page in the pagelist
of an NFSv4 request, it sets argp->end to essentially a random
number, certainly not an address within the page which argp->p now
points to.  So subsequent calls to READ_BUF will think there is much
more than a page of spare space (the cast to u32 ensures an unsigned
comparison) so we can expect to fall off the end of the second

We never encountered thsi in testing because typically the only
operations which use more than two pages are write-like operations,
which have their own decoding logic.  Something like a getattr after a
write may cross a page boundary, but it would be very unusual for it to
cross another boundary after that.

Signed-off-by: J. Bruce Fields <>
9 years agowatchdog: sbc_fitpc2_wdt: fixed "scheduling while atomic" bug.
Denis Turischev [Thu, 22 Apr 2010 16:54:20 +0000 (19:54 +0300)]
watchdog: sbc_fitpc2_wdt: fixed "scheduling while atomic" bug.

spinlock need to be replaced by mutex because of sleep functions
inside wdt_send_data.

Signed-off-by: Denis Turischev <>
Signed-off-by: Wim Van Sebroeck <>
9 years agowatchdog: sbc_fitpc2_wdt: fixed I/O operations order
Denis Turischev [Thu, 22 Apr 2010 16:50:03 +0000 (19:50 +0300)]
watchdog: sbc_fitpc2_wdt: fixed I/O operations order

There are fitpc2 compatible boards that hang with existent i/o
operations order. Solution is to switch between writing to data
and command ports.

Signed-off-by: Denis Turischev <>
Signed-off-by: Wim Van Sebroeck <>
9 years agoWatchdog: sb_wdog.c: Fix sibyte watchdog initialization
Guenter Roeck [Mon, 19 Apr 2010 15:37:11 +0000 (08:37 -0700)]
Watchdog: sb_wdog.c: Fix sibyte watchdog initialization

Watchdog configuration register and timer count register were interchanged,
causing wrong values to be written into both registers.
This caused watchdog triggered resets even if the watchdog was reset in time.

Signed-off-by: Guenter Roeck <>
Acked-by: Ralf Baechle <>
Signed-off-by: Wim Van Sebroeck <>
9 years agoxfs: more swap extent fixes for dynamic fork offsets
Dave Chinner [Tue, 20 Apr 2010 07:00:37 +0000 (17:00 +1000)]
xfs: more swap extent fixes for dynamic fork offsets

A new xfsqa test (226) with a prototype xfs_fsr change to try to
handle dynamic fork offsets better triggers an assertion failure
where the inode data fork is in btree format, yet there is room in
the inode for it to be in extent format. The two inodes look like:

before: ino 0x101 (target), num_extents 11, Max in-fork extents 6, broot size 40, fork offset 96
before: ino 0x115 (temp),  num_extents 5, Max in-fork extents 3, broot size 40, fork offset 56
after: ino 0x101 (target), num_extents 5, Max in-fork extents 6, broot size 40, fork offset 96
after: ino 0x115 (temp), num_extents 11, Max in-fork extents 3, broot size 40, fork offset 56

Basically the target inode ends up with 5 extents in btree format,
but it had space for 6 extents in extent format, so ends up
incorrect. Notably here the broot size is the same, and that is
where the kernel code is going wrong - the btree root will fit, so
it lets the swap go ahead.

The check should not allow the swap to take place if the number of
extents while in btree format is less than the number of extents
that can fit in the inode in extent format. Adding that check will
prevent this swap and corruption from occurring.

Signed-off-by: Dave Chinner <>
Reviewed-by: Christoph Hellwig <>
9 years agobtrfs: convert to using bdi_setup_and_register()
Jens Axboe [Mon, 26 Apr 2010 08:27:54 +0000 (10:27 +0200)]
btrfs: convert to using bdi_setup_and_register()

It's now a provided helper, so get rid of the internal setup
and btrfs atomic_t bdi enumerator.

Signed-off-by: Jens Axboe <>
9 years agocrypto: authenc - Add EINPROGRESS check
Herbert Xu [Mon, 26 Apr 2010 01:14:05 +0000 (09:14 +0800)]
crypto: authenc - Add EINPROGRESS check

When Steffen originally wrote the authenc async hash patch, he
correctly had EINPROGRESS checks in place so that we did not invoke
the original completion handler with it.

Unfortuantely I told him to remove it before the patch was applied.

As only MAY_BACKLOG request completion handlers are required to
handle EINPROGRESS completions, those checks are really needed.

This patch restores them.

Reported-by: Sebastian Andrzej Siewior <>
Signed-off-by: Herbert Xu <>
9 years agoMerge git://
Linus Torvalds [Sun, 25 Apr 2010 23:28:56 +0000 (16:28 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://
  ipv6: Fix inet6_csk_bind_conflict()
  e100: Fix the TX workqueue race

9 years agoipv6: Fix inet6_csk_bind_conflict()
Eric Dumazet [Sun, 25 Apr 2010 22:09:42 +0000 (15:09 -0700)]
ipv6: Fix inet6_csk_bind_conflict()

Commit fda48a0d7a84 (tcp: bind() fix when many ports are bound)
introduced a bug on IPV6 part.
We should not call ipv6_addr_any(inet6_rcv_saddr(sk2)) but
ipv6_addr_any(inet6_rcv_saddr(sk)) because sk2 can be IPV4, while sk is

Reported-by: Michael S. Tsirkin <>
Signed-off-by: Eric Dumazet <>
Tested-by: Michael S. Tsirkin <>
Signed-off-by: David S. Miller <>
9 years agoMerge branch 'for_linus' of git://
Linus Torvalds [Sun, 25 Apr 2010 17:01:51 +0000 (10:01 -0700)]
Merge branch 'for_linus' of git://git./linux/kernel/git/tytso/ext4

* 'for_linus' of git://
  ext4: Issue the discard operation *before* releasing the blocks to be reused
  ext4: Fix buffer head leaks after calls to ext4_get_inode_loc()
  ext4: Fix possible lost inode write in no journal mode

9 years agoCatch filesystems lacking s_bdi
Jörn Engel [Sun, 25 Apr 2010 06:54:42 +0000 (08:54 +0200)]
Catch filesystems lacking s_bdi

noop_backing_dev_info is used only as a flag to mark filesystems that
don't have any backing store, like tmpfs, procfs, spufs, etc.

Signed-off-by: Joern Engel <>
Changed the BUG_ON() to a WARN_ON(). Note that adding dirty inodes
to the noop_backing_dev_info is not legal and will not result in
them being flushed, but we already catch this condition in
__mark_inode_dirty() when checking for a registered bdi.

Signed-off-by: Jens Axboe <>
9 years agoe100: Fix the TX workqueue race
Alan Cox [Sun, 25 Apr 2010 04:09:29 +0000 (21:09 -0700)]
e100: Fix the TX workqueue race

Nothing stops the workqueue being left to run in parallel with close or a
few other operations. This causes double unmaps and the like.

See #1041230 for an example

Signed-off-by: Alan Cox <>
Signed-off-by: David S. Miller <>
9 years agosquashfs: fix potential buffer over-run on 4K block file systems
Phillip Lougher [Fri, 23 Apr 2010 01:32:02 +0000 (02:32 +0100)]
squashfs: fix potential buffer over-run on 4K block file systems

Sizing the buffer based on block size is incorrect, leading
to a potential buffer over-run on 4K block size file systems
(because the metadata block size is always 8K).  This bug
doesn't seem have triggered because 4K block size file systems
are not default, and also because metadata blocks after
compression tend to be less than 4K.

Signed-off-by: Phillip Lougher <>
9 years agosquashfs: add missing buffer free
Phillip Lougher [Thu, 22 Apr 2010 23:24:22 +0000 (00:24 +0100)]
squashfs: add missing buffer free

Signed-off-by: Phillip Lougher <>
9 years agosquashfs: fix warn_on when root inode is corrupted
Phillip Lougher [Fri, 16 Apr 2010 00:01:36 +0000 (01:01 +0100)]
squashfs: fix warn_on when root inode is corrupted

Fix warn_on triggered by mounting a fsfuzzer corrupted file system, where
the root inode has been corrupted.

Signed-off-by: Phillip Lougher <>
Reported-by: Steve Grubb <>
9 years agoMerge branch 'fixes' of git://
Linus Torvalds [Sat, 24 Apr 2010 18:35:21 +0000 (11:35 -0700)]
Merge branch 'fixes' of git://git./linux/kernel/git/davej/cpufreq

* 'fixes' of git://
  [CPUFREQ] use max load in conservative governor
  [CPUFREQ] fix a lockdep warning

9 years agoMerge git://
Linus Torvalds [Sat, 24 Apr 2010 18:34:17 +0000 (11:34 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git:// (22 commits)
  gianfar: Fix potential oops during OF address translation
  fsl_pq_mdio: Fix kernel oops during OF address translation
  tcp: bind() fix when many ports are bound
  rdma: potential ERR_PTR dereference
  rtnetlink: potential ERR_PTR dereference
  net: ipv6 bind to device issue
  ipv6: allow to send packet after receiving ICMPv6 Too Big message with MTU field less than IPV6_MIN_MTU
  drivers/net/usb: Add new driver ipheth
  cxgb3: fix linkup issue
  X25 fix dead unaccepted sockets
  KS8851: NULL pointer dereference if list is empty
  net: 3c574_cs fix stats.tx_bytes counter
  xfrm6: ensure to use the same dev when building a bundle
  can: Fix possible NULL pointer dereference in ems_usb.c
  net: Fix an RCU warning in dev_pick_tx()
  ipv6: Fix tcp_v6_send_response transport header setting.
  bridge: add a missing ntohs()
  8139too: Fix a typo in the function name.
  mac80211: pass HT changes to driver when off channel
  mac80211: remove bogus TX agg state assignment

9 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Sat, 24 Apr 2010 18:32:12 +0000 (11:32 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/jbarnes/pci-2.6

* 'for-linus' of git://
  PCI: Ensure we re-enable devices on resume
  x86/PCI: parse additional host bridge window resource types
  PCI: revert broken device warning
  PCI aerdrv: use correct bit defines and add 2ms delay to aer_root_reset
  x86/PCI: ignore Consumer/Producer bit in ACPI window descriptions

9 years agoMerge branch 'for_linus' of git://
Linus Torvalds [Sat, 24 Apr 2010 18:31:57 +0000 (11:31 -0700)]
Merge branch 'for_linus' of git://git./linux/kernel/git/mjg59/platform-drivers-x86

* 'for_linus' of git://
  eeepc-laptop: add missing sparse_keymap_free
  eeepc-wmi: Build fix
  asus: don't modify bluetooth/wlan on boot
  dell-wmi: Fix memory leak
  eeepc-wmi: add backlight support
  eeepc-wmi: use a platform device as parent device of all sub-devices
  eeepc-wmi: add an eeepc_wmi context structure

9 years agoinitramfs: handle unrecognised decompressor when unpacking
Phillip Lougher [Fri, 23 Apr 2010 17:18:11 +0000 (13:18 -0400)]
initramfs: handle unrecognised decompressor when unpacking

The unpack routine fails to handle the decompress_method() returning
unrecognised decompressor (compress_name == NULL).  This results in the
routine looping eventually oopsing on an out of bounds memory access.

Note this bug is usually hidden, only triggering on trailing junk after
one or more correct compressed blocks.  The case of the compressed archive
being complete junk is (by accident?) caught by the if (state != Reset)
check because state is initialised to Start, but not updated due to the
decompressor not having been called.  Obviously if the junk is trailing a
correctly decompressed buffer, state == Reset from the previous call to
the decompressor.

Signed-off-by: Phillip Lougher <>
Reported-by: Aaro Koskinen <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agoksm: check for ERR_PTR from follow_page()
Dan Carpenter [Fri, 23 Apr 2010 17:18:10 +0000 (13:18 -0400)]
ksm: check for ERR_PTR from follow_page()

The follow_page() function can potentially return -EFAULT so I added
checks for this.

Also I silenced an uninitialized variable warning on my version of gcc
(version 4.3.2).

Signed-off-by: Dan Carpenter <>
Acked-by: Rik van Riel <>
Acked-by: Izik Eidus <>
Cc: Andrea Arcangeli <>
Cc: Johannes Weiner <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agoVMware Balloon driver
Dmitry Torokhov [Fri, 23 Apr 2010 17:18:08 +0000 (13:18 -0400)]
VMware Balloon driver

This is a standalone version of VMware Balloon driver.  Ballooning is a
technique that allows hypervisor dynamically limit the amount of memory
available to the guest (with guest cooperation).  In the overcommit
scenario, when hypervisor set detects that it needs to shuffle some
memory, it instructs the driver to allocate certain number of pages, and
the underlying memory gets returned to the hypervisor.  Later hypervisor
may return memory to the guest by reattaching memory to the pageframes and
instructing the driver to "deflate" balloon.

We are submitting a standalone driver because KVM maintainer (Avi Kivity)
expressed opinion (rightly) that our transport does not fit well into
virtqueue paradigm and thus it does not make much sense to integrate with

There were also some concerns whether current ballooning technique is the
right thing.  If there appears a better framework to achieve this we are
prepared to evaluate and switch to using it, but in the meantime we'd like
to get this driver upstream.

We want to get the driver accepted in distributions so that users do not
have to deal with an out-of-tree module and many distributions have
"upstream first" requirement.

The driver has been shipping for a number of years and users running on
VMware platform will have it installed as part of VMware Tools even if it
will not come from a distribution, thus there should not be additional
risk in pulling the driver into mainline.  The driver will only activate
if host is VMware so everyone else should not be affected at all.

Signed-off-by: Dmitry Torokhov <>
Cc: Avi Kivity <>
Cc: Jeremy Fitzhardinge <>
Cc: Ingo Molnar <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agofs/block_dev.c: fix performance regression in O_DIRECT|O_SYNC writes to block devices
Anton Blanchard [Fri, 23 Apr 2010 17:18:06 +0000 (13:18 -0400)]
fs/block_dev.c: fix performance regression in O_DIRECT|O_SYNC writes to block devices

We are seeing a large regression in database performance on recent
kernels.  The database opens a block device with O_DIRECT|O_SYNC and a
number of threads write to different regions of the file at the same time.

A simple test case is below.  I haven't defined DEVICE since getting it
wrong will destroy your data :) On an 3 disk LVM with a 64k chunk size we
see about 17MB/sec and only a few threads in IO wait:

procs  -----io---- -system-- -----cpu------
 r  b     bi    bo   in   cs us sy id wa st
 0  3      0 16170  656 2259  0  0 86 14  0
 0  2      0 16704  695 2408  0  0 92  8  0
 0  2      0 17308  744 2653  0  0 86 14  0
 0  2      0 17933  759 2777  0  0 89 10  0

Most threads are blocking in vfs_fsync_range, which has:

        err = fop->fsync(file, dentry, datasync);
        if (!ret)
                ret = err;

commit 148f948ba877f4d3cdef036b1ff6d9f68986706a (vfs: Introduce new
helpers for syncing after writing to O_SYNC file or IS_SYNC inode) offers
some explanation of what is going on:

    Use these new helpers for syncing from generic VFS functions. This makes
    O_SYNC writes to block devices acquire i_mutex for syncing. If we really
    care about this, we can make block_fsync() drop the i_mutex and reacquire
    it before it returns.

Thanks Jan for such a good commit message!  As well as dropping i_mutex,
Christoph suggests we should remove the call to sync_blockdev():

> sync_blockdev is an overcomplicated alias for filemap_write_and_wait on
> the block device inode, which is exactly what we did just before calling
> into ->fsync

The patch below incorporates both suggestions. With it the testcase improves
from 17MB/s to 68M/sec:

procs  -----io---- -system-- -----cpu------
 r  b     bi    bo   in   cs us sy id wa st
 0  7      0 65536 1000 3878  0  0 70 30  0
 0 34      0 69632 1016 3921  0  1 46 53  0
 0 57      0 69632 1000 3921  0  0 55 45  0
 0 53      0 69640  754 4111  0  0 81 19  0


#define _GNU_SOURCE
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#define NR_THREADS 64
#define BUFSIZE (64 * 1024)

#define DEVICE "/dev/mapper/XXXXXX"

#define ALIGN(VAL, SIZE) (((VAL)+(SIZE)-1) & ~((SIZE)-1))

static int fd;

static void *doit(void *arg)
unsigned long offset = (long)arg;
char *b, *buf;

b = malloc(BUFSIZE + 1024);
buf = (char *)ALIGN((unsigned long)b, 1024);
memset(buf, 0, BUFSIZE);

while (1)
pwrite(fd, buf, BUFSIZE, offset);

int main(int argc, char *argv[])
int flags = O_RDWR|O_DIRECT;
int i;
unsigned long offset = 0;

if (argc > 1 && !strcmp(argv[1], "O_SYNC"))
flags |= O_SYNC;

fd = open(DEVICE, flags);
if (fd == -1) {

for (i = 0; i < NR_THREADS-1; i++) {
pthread_t tid;
pthread_create(&tid, NULL, doit, (void *)offset);
offset += BUFSIZE;
doit((void *)offset);

return 0;

Signed-off-by: Anton Blanchard <>
Acked-by: Jan Kara <>
Cc: Christoph Hellwig <>
Cc: Alexander Viro <>
Cc: Jens Axboe <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agolib/vsprintf.c: add missing EXPORT_SYMBOL(simple_strtoll)
Hans Verkuil [Fri, 23 Apr 2010 17:18:04 +0000 (13:18 -0400)]
lib/vsprintf.c: add missing EXPORT_SYMBOL(simple_strtoll)

Add a missing EXPORT_SYMBOL.

I must be the first person that wants to use this function :-)

Signed-off-by: Hans Verkuil <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agow1: fix omap 1-wire driver compilation
Amit Kucheria [Fri, 23 Apr 2010 17:18:03 +0000 (13:18 -0400)]
w1: fix omap 1-wire driver compilation

Fixes the following error:

  drivers/w1/masters/omap_hdq.c: In function 'hdq_wait_for_flag':
  drivers/w1/masters/omap_hdq.c:137: error: implicit declaration of function 'schedule_timeout_uninterruptible'
  drivers/w1/masters/omap_hdq.c: In function 'hdq_write_byte':
  drivers/w1/masters/omap_hdq.c:177: error: 'TASK_UNINTERRUPTIBLE' undeclared (first use in this function)
  drivers/w1/masters/omap_hdq.c:177: error: (Each undeclared identifier is reported only once
  drivers/w1/masters/omap_hdq.c:177: error: for each function it appears in.)
  drivers/w1/masters/omap_hdq.c:177: error: implicit declaration of function 'schedule_timeout'
  drivers/w1/masters/omap_hdq.c: In function 'hdq_isr':
  drivers/w1/masters/omap_hdq.c:221: error: 'TASK_NORMAL' undeclared (first use in this function)
  drivers/w1/masters/omap_hdq.c: In function 'omap_hdq_break':
  drivers/w1/masters/omap_hdq.c:316: error: 'TASK_UNINTERRUPTIBLE' undeclared (first use in this function)

Signed-off-by: Amit Kucheria <>
Acked-by: Tony Lindgren <>
Cc: Evgeniy Polyakov <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agormap: anon_vma_prepare() can leak anon_vma_chain
Oleg Nesterov [Fri, 23 Apr 2010 17:18:01 +0000 (13:18 -0400)]
rmap: anon_vma_prepare() can leak anon_vma_chain

If find_mergeable_anon_vma() succeeds but another thread installs
->anon_vma before we take ptl, then allocated == NULL but avc should be
freed.  Change the code to check avc != NULL to detect this case.

Also, a couple of whitespace changes to make the critical section more

Signed-off-by: Oleg Nesterov <>
Reviewed-by: Rik van Riel <>
Cc: Hugh Dickins <>
Cc: Pete Zaitcev <>
Cc: Borislav Petkov <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agokeys: fix an RCU warning
David Howells [Fri, 23 Apr 2010 17:18:00 +0000 (13:18 -0400)]
keys: fix an RCU warning

Fix the following RCU warning:

  [ INFO: suspicious rcu_dereference_check() usage. ]
  security/keys/request_key.c:116 invoked rcu_dereference_check() without protection!

This was caused by doing:

[root@andromeda ~]# keyctl newring fred @s
[root@andromeda ~]# keyctl request2 user a a 539196288
request_key: Required key not available

Signed-off-by: David Howells <>
Acked-by: Eric Dumazet <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agolib: fix the use of LZO to decompress initramfs images
Albin Tonnerre [Fri, 23 Apr 2010 17:17:58 +0000 (13:17 -0400)]
lib: fix the use of LZO to decompress initramfs images

This patch fixes 2 issues with the LZO decompressor:

- It doesn't handle the case where a block isn't compressed at all.  In
  this case, calling lzo1x_decompress_safe will fail, so we need to just
  use memcpy() instead (the upstream LZO code does something similar)

- Since commit 54291362d2a5738e1b0495df2abcb9e6b0563a3f ("initramfs: add
  missing decompressor error check") , the decompressor return code is
  checked in the init/initramfs.c The LZO decompressor didn't return the
  expected value, causing the initramfs code to falsely believe a
  decompression error occured

Signed-off-by: Albin Tonnerre <>
Tested-by: bert schulze <>
Cc: "H. Peter Anvin" <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agohugetlb: fix infinite loop in get_futex_key() when backed by huge pages
Mel Gorman [Fri, 23 Apr 2010 17:17:56 +0000 (13:17 -0400)]
hugetlb: fix infinite loop in get_futex_key() when backed by huge pages

If a futex key happens to be located within a huge page mapped
MAP_PRIVATE, get_futex_key() can go into an infinite loop waiting for a
page->mapping that will never exist.

See for more details
about the problem.

This patch makes page->mapping a poisoned value that includes
PAGE_MAPPING_ANON mapped MAP_PRIVATE.  This is enough for futex to
continue but because of PAGE_MAPPING_ANON, the poisoned value is not
dereferenced or used by futex.  No other part of the VM should be
dereferencing the page->mapping of a hugetlbfs page as its page cache is
not on the LRU.

This patch fixes the problem with the test case described in the bugzilla.

[ mel cant spel]
Signed-off-by: Mel Gorman <>
Acked-by: Peter Zijlstra <>
Acked-by: Darren Hart <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agow1: w1 temp: fix negative termperature calculation
Ian Dall [Fri, 23 Apr 2010 17:17:53 +0000 (13:17 -0400)]
w1: w1 temp: fix negative termperature calculation

Fix regression caused by commit 507e2fbaaacb6f164b4125b87c5002f95143174b
("w1: w1 temp calculation overflow fix") whereby negative temperatures for
the DS18B20 are not converted properly.

When the temperature exceeds 32767 milli-degrees the temperature overflows
to -32768 millidegrees.  These are both well within the -55 - +125 degree
range for the sensor.


Signed-of-by: Ian Dall <>
Cc: Evgeniy Polyakov <>
Tested-by: Karsten Elfenbein <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agocgroups: fix procs documentation
KAMEZAWA Hiroyuki [Fri, 23 Apr 2010 17:17:51 +0000 (13:17 -0400)]
cgroups: fix procs documentation

Writing to cgroup.procs is not supported now.

Signed-off-by: KAMEZAWA Hiroyuki <>
Acked-by: Li Zefan <>
Cc: Ben Blum <>
Cc: Paul Menage <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agodrivers/video/efifb.c: support framebuffer for NVIDIA 9400M in MacBook Pro 5,1
Thomas Gerlach [Fri, 23 Apr 2010 17:17:50 +0000 (13:17 -0400)]
drivers/video/efifb.c: support framebuffer for NVIDIA 9400M in MacBook Pro 5,1

Description of patch:

This is a patch for the EFI framebuffer driver to enable the framebuffer
of the NVIDIA 9400M as found in MacBook Pro (MBP) 5,1 and up.  The
framebuffer of the NVIDIA graphic cards are located at the following
addresses in memory:

9400M:    0xC0010000
9600M GT: 0xB0030000

The patch delivered right here only provides the memory location of the
framebuffer of the 9400M device.  The 9600M GT is not covered.  It is
assumed that the 9400M is used when powered up the MBP.

The information which device is currently powered and in use is stored in
the 64 bytes large EFI variable "gpu-power-prefs".  More specifically,
byte 0x3B indicates whether 9600M GT (0x00) or 9400M (0x01) is online.

The PCI bus IDs are the following:
9400M:    PCI 03:00:00
9600M GT: PCI 02:00:00

The EFI variables can be easily read-out and manipulated with "rEFIt", an
MBP specific bootloader tool.  For more information on how handle rEFIt
and EFI variables please consult "" and

IMPORTANT NOTE: The information on how to activate the 9400M device given
at "" is not correct, since it states

gpu-power-prefs[0x3B] = 0x00 -> 9400M (PCI 02:00:00)
gpu-power-prefs[0x3B] = 0x01 -> 9600M GT (PCI 03:00:00)

Actually, the assignment of the values and the PCI bus IDs are swapped.


To cover framebuffers of both 9400M and 9600M GT, I would suggest to
implement a conditional on "gpu-power-prefs".  Depending on the value of
byte 0x3B, the according framebuffer is selected.  However, this requires
kernel access to the EFI variables.

[ rename optname, per Peter Jones]
Signed-off-by: Thomas Gerlach <>
Acked-by: Peter Jones <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agolis3: add support for HP ProBook 432x/442x/452x/522x
Takashi Iwai [Fri, 23 Apr 2010 17:17:48 +0000 (13:17 -0400)]
lis3: add support for HP ProBook 432x/442x/452x/522x

Correct axis-mappings for new HP ProBook laptops.

Signed-off-by: Takashi Iwai <>
Acked-by: Eric Piel <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agomtd: fix Orion NAND driver compilation with ARM OABI
Paulius Zaleckas [Fri, 23 Apr 2010 17:17:47 +0000 (13:17 -0400)]
mtd: fix Orion NAND driver compilation with ARM OABI

We must tell GCC to use even register for variable passed to ldrd
instruction.  Without this patch GCC 4.2.1 puts this variable to r2/r3 on
EABI and r3/r4 on OABI, so force it to r2/r3.  This does not change
anything when EABI and OABI compilation works OK.

Without this patch and with OABI I get:

    CC      drivers/mtd/nand/orion_nand.o
  /tmp/ccMkwOCs.s: Assembler messages:
  /tmp/ccMkwOCs.s:63: Error: first destination register must be even -- `ldrd r3,[ip]'
  make[5]: *** [drivers/mtd/nand/orion_nand.o] Error 1

Signed-off-by: Paulius Zaleckas <>
Acked-by: Nicolas Pitre <>
Acked-by: Artem Bityutskiy <>
Cc: David Woodhouse <>
Cc: Jamie Lokier <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agoflex_array: fix the panic when calling flex_array_alloc() without __GFP_ZERO
Changli Gao [Fri, 23 Apr 2010 17:17:45 +0000 (13:17 -0400)]
flex_array: fix the panic when calling flex_array_alloc() without __GFP_ZERO

memset() is called with the wrong address and the kernel panics.

Signed-off-by: Changli Gao <>
Cc: Patrick McHardy <>
Acked-by: David Rientjes <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agokernel/sys.c: fix compat uname machine
Andreas Schwab [Fri, 23 Apr 2010 17:17:44 +0000 (13:17 -0400)]
kernel/sys.c: fix compat uname machine

On ppc64 you get this error:

  $ setarch ppc -R true
  setarch: ppc: Unrecognized architecture

because uname still reports ppc64 as the machine.

So mask off the personality flags when checking for PER_LINUX32.

Signed-off-by: Andreas Schwab <>
Reviewed-by: Christoph Hellwig <>
Acked-by: David S. Miller <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agoreiserfs: fix corruption during shrinking of xattrs
Jeff Mahoney [Fri, 23 Apr 2010 17:17:41 +0000 (13:17 -0400)]
reiserfs: fix corruption during shrinking of xattrs

Commit 48b32a3553a54740d236b79a90f20147a25875e3 ("reiserfs: use generic
xattr handlers") introduced a problem that causes corruption when extended
attributes are replaced with a smaller value.

The issue is that the reiserfs_setattr to shrink the xattr file was moved
from before the write to after the write.

The root issue has always been in the reiserfs xattr code, but was papered
over by the fact that in the shrink case, the file would just be expanded
again while the xattr was written.

The end result is that the last 8 bytes of xattr data are lost.

This patch fixes it to use new_size.


Signed-off-by: Jeff Mahoney <>
Reported-by: Christian Kujau <>
Tested-by: Christian Kujau <>
Cc: Edward Shishkin <>
Cc: Jethro Beekman <>
Cc: Greg Surbey <>
Cc: Marco Gatti <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agomemcg: fix prepare migration
Andrea Arcangeli [Fri, 23 Apr 2010 17:17:39 +0000 (13:17 -0400)]
memcg: fix prepare migration

If a signal is pending (task being killed by sigkill)
__mem_cgroup_try_charge will write NULL into &mem, and css_put will oops
on null pointer dereference.

  BUG: unable to handle kernel NULL pointer dereference at 0000000000000010
  IP: [<ffffffff810fc6cc>] mem_cgroup_prepare_migration+0x7c/0xc0
  PGD a5d89067 PUD a5d8a067 PMD 0
  Oops: 0000 [#1] SMP
  last sysfs file: /sys/devices/platform/microcode/firmware/microcode/loading
  CPU 0
  Modules linked in: nfs lockd nfs_acl auth_rpcgss sunrpc acpi_cpufreq pcspkr sg [last unloaded: microcode]

  Pid: 5299, comm: largepages Tainted: G        W  2.6.34-rc3 #3 Penryn1600SLI-110dB/To Be Filled By O.E.M.
  RIP: 0010:[<ffffffff810fc6cc>]  [<ffffffff810fc6cc>] mem_cgroup_prepare_migration+0x7c/0xc0

[ fix merge issues]
Signed-off-by: Andrea Arcangeli <>
Acked-by: KAMEZAWA Hiroyuki <>
Cc: Balbir Singh <>
Signed-off-by: Daisuke Nishimura <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agoreiserfs: fix permissions on .reiserfs_priv
Jeff Mahoney [Fri, 23 Apr 2010 17:17:37 +0000 (13:17 -0400)]
reiserfs: fix permissions on .reiserfs_priv

Commit 677c9b2e393a0cd203bd54e9c18b012b2c73305a ("reiserfs: remove
privroot hiding in lookup") removed the magic from the lookup code to hide
the .reiserfs_priv directory since it was getting loaded at mount-time
instead.  The intent was that the entry would be hidden from the user via
a poisoned d_compare, but this was faulty.

This introduced a security issue where unprivileged users could access and
modify extended attributes or ACLs belonging to other users, including

This patch resolves the issue by properly hiding .reiserfs_priv.  This was
the intent of the xattr poisoning code, but it appears to have never
worked as expected.  This is fixed by using d_revalidate instead of

This patch makes -oexpose_privroot a no-op.  I'm fine leaving it this way.
The effort involved in working out the corner cases wrt permissions and
caching outweigh the benefit of the feature.

Signed-off-by: Jeff Mahoney <>
Acked-by: Edward Shishkin <>
Reported-by: Matt McCutchen <>
Tested-by: Matt McCutchen <>
Cc: Frederic Weisbecker <>
Cc: Al Viro <>
Cc: <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
9 years agogianfar: Fix potential oops during OF address translation
Anton Vorontsov [Fri, 23 Apr 2010 07:12:44 +0000 (07:12 +0000)]
gianfar: Fix potential oops during OF address translation

gianfar driver may pass NULL pointer to the of_translate_address(),
which may lead to a kernel oops. Fix this by using of_iomap(), which
is also much simpler and shorter.

Signed-off-by: Anton Vorontsov <>
Signed-off-by: David S. Miller <>
9 years agofsl_pq_mdio: Fix kernel oops during OF address translation
Anton Vorontsov [Fri, 23 Apr 2010 07:12:35 +0000 (07:12 +0000)]
fsl_pq_mdio: Fix kernel oops during OF address translation

Old P1020RDB device trees were not specifing tbipa address for
MDIO nodes, which is now causing this kernel oops:

 eth2: TX BD ring size for Q[6]: 256
 eth2: TX BD ring size for Q[7]: 256
 Unable to handle kernel paging request for data at address 0x00000000
 Faulting instruction address: 0xc0015504
 Oops: Kernel access of bad area, sig: 11 [#1]
 NIP [c0015504] memcpy+0x3c/0x9c
 LR [c000a9f8] __of_translate_address+0xfc/0x21c
 Call Trace:
 [df839e00] [c000a94c] __of_translate_address+0x50/0x21c (unreliable)
 [df839e50] [c01a33e8] get_gfar_tbipa+0xb0/0xe0

The old device trees are buggy, though having a dead ethernet is
better than a dead kernel, so fix the issue by using of_iomap().

Also, a somewhat similar issue exist in the probe() routine, though
there the oops is only a possibility. Nonetheless, fix it too.

Signed-off-by: Anton Vorontsov <>
Signed-off-by: David S. Miller <>
9 years agoomap: delete unused bootloader tag variables
Aaro Koskinen [Mon, 22 Mar 2010 17:28:19 +0000 (17:28 +0000)]
omap: delete unused bootloader tag variables

They are not needed and add over 512 bytes to kernel data.

Signed-off-by: Aaro Koskinen <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: Devkit8000: Remove unused pins
Thomas Weber [Wed, 24 Mar 2010 12:52:15 +0000 (12:52 +0000)]
omap: Devkit8000: Remove unused pins

Old code from original patch contains beagle board pins that are
not available on the Devkit8000.

Signed-off-by: Thomas Weber <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: Devkit8000: Change position of init calls
Thomas Weber [Wed, 24 Mar 2010 12:52:14 +0000 (12:52 +0000)]
omap: Devkit8000: Change position of init calls

Change position of calling serial and ethernet initialization.

Signed-off-by: Thomas Weber <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: Devkit8000: Remove unnecessary include file
Thomas Weber [Wed, 24 Mar 2010 12:52:13 +0000 (12:52 +0000)]
omap: Devkit8000: Remove unnecessary include file

Remove include otg.h.

Signed-off-by: Thomas Weber <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: Devkit8000: Fix typo in pin name
Thomas Weber [Wed, 24 Mar 2010 12:52:12 +0000 (12:52 +0000)]
omap: Devkit8000: Fix typo in pin name

Replace wrong sdr_cke[01] with sdrc_cke[01].

Signed-off-by: Thomas Weber <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: Devkit8000: Add missing package selection
Thomas Weber [Wed, 24 Mar 2010 12:52:11 +0000 (12:52 +0000)]
omap: Devkit8000: Add missing package selection

Devkit8000 uses the CUS package for OMAP3530.

This patch adds missing package selection for CUS and enables

Replace whitespace with tab in Kconfig.

Signed-off-by: Thomas Weber <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: Devkit8000: Fix typo in supplies
Thomas Weber [Wed, 24 Mar 2010 12:52:10 +0000 (12:52 +0000)]
omap: Devkit8000: Fix typo in supplies

Replace wrong vdss_dsi with vdds_dsi.

Signed-off-by: Thomas Weber <>
Signed-off-by: Tony Lindgren <>
9 years agon8x0_defconfig: remove CONFIG_NILFS2_FS override
Francisco Alecrim [Wed, 17 Mar 2010 19:46:42 +0000 (19:46 +0000)]
n8x0_defconfig: remove CONFIG_NILFS2_FS override

arch/arm/configs/n8x0_defconfig:1061:warning: override: reassigning to
symbol NILFS2_FS

Signed-off-by: Francisco Alecrim <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: board-sdp-flash.c: Fix typos in debug output
Thomas Weber [Thu, 25 Mar 2010 20:21:54 +0000 (20:21 +0000)]
omap: board-sdp-flash.c: Fix typos in debug output

Corrected type of flash in output (OneNAND => NOR).
Removed whitespace after newline in output.
Removed double whitespace in output.

Signed-off-by: Thomas Weber <>
Signed-off-by: Tony Lindgren <>
9 years agoomap4: Fix McBSP4 base address
Santosh Shilimkar [Wed, 7 Apr 2010 07:47:23 +0000 (07:47 +0000)]
omap4: Fix McBSP4 base address

This patch fixes the McBSP4 base address for OMAP4

Signed-off-by: Balaji T K <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: rx51_defconfig: Remove CONFIG_SYSFS_DEPRECATED*=y options
Jarkko Nikula [Mon, 19 Apr 2010 13:52:10 +0000 (13:52 +0000)]
omap: rx51_defconfig: Remove CONFIG_SYSFS_DEPRECATED*=y options

Modern udev will not work with the CONFIG_SYSFS_DEPRECATED*=y options and
it seems also that the Maemo release works without when testing with the
Maemo 2.6.28 kernel.

Signed-off-by: Jarkko Nikula <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: rx51_defconfig: Remove duplicate phonet
Jarkko Nikula [Mon, 19 Apr 2010 13:52:09 +0000 (13:52 +0000)]
omap: rx51_defconfig: Remove duplicate phonet

Phonet is enabled by the commit bce54fed941e03695ab557100a4bd1e457abca42
and this duplicate gives a warning when doing make rx51_defconfig.

Signed-off-by: Jarkko Nikula <>
Acked-by: Felipe Balbi <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: fix a gpmc nand problem
stanley.miao [Tue, 20 Apr 2010 06:33:30 +0000 (06:33 +0000)]
omap: fix a gpmc nand problem

If gpmc_t isn't given, we don't need to set timing for gpmc, or it will cause
a Oops.

Signed-off-by: Stanley.Miao <>
Signed-off-by: Tony Lindgren <>
9 years agoAM3517: initialize i2c subsystem after mux subsystem
stanley.miao [Tue, 20 Apr 2010 06:33:29 +0000 (06:33 +0000)]
AM3517: initialize i2c subsystem after mux subsystem

The initialize of i2c subsystem will set pinmux, so it should be done
after the initialize of mux subsystem initialization.

Signed-off-by: Stanley.Miao <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: remove one of the define of INT_34XX_BENCH_MPU_EMUL
stanley.miao [Tue, 20 Apr 2010 06:33:27 +0000 (06:33 +0000)]
omap: remove one of the define of INT_34XX_BENCH_MPU_EMUL

INT_34XX_BENCH_MPU_EMUL was defined twice, another is at Line 312.

Signed-off-by: Stanley.Miao <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: fix the compile error if CONFIG_MTD_NAND_OMAP2 is notenabled
stanley.miao [Tue, 20 Apr 2010 06:33:26 +0000 (06:33 +0000)]
omap: fix the compile error if CONFIG_MTD_NAND_OMAP2 is notenabled

If CONFIG_MTD_NAND_OMAP2 is not enabled, there will be a compile error,
"gpmc_nand_init() is not defined". Add a inline noop function to fix it.

Signed-off-by: Stanley.Miao <>
Signed-off-by: Tony Lindgren <>
9 years agoOMAP4: Clocks: Change SPI Instance Names
Abraham Arce [Thu, 22 Apr 2010 14:42:15 +0000 (14:42 +0000)]
OMAP4: Clocks: Change SPI Instance Names

Change the name for the spi instances on omap44xx_clks to match
the names omap2 spi driver gives:

omap-mcspi.1 -> omap2_mcspi.1
omap-mcspi.2 -> omap2_mcspi.2
omap-mcspi.3 -> omap2_mcspi.3
omap-mcspi.4 -> omap2_mcspi.4

Signed-off-by: Abraham Arce <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: Devkit8000: Fix wrong usb port on Devkit8000
Thomas Weber [Wed, 24 Mar 2010 12:52:16 +0000 (12:52 +0000)]
omap: Devkit8000: Fix wrong usb port on Devkit8000

Disable the nonexistent ehci port on Devkit8000.

Signed-off-by: Thomas Weber <>
Acked-by: Anand Gadiyar <>
Signed-off-by: Tony Lindgren <>
9 years agoOMAP4: Fix for CONTROL register Base
Santosh Shilimkar [Wed, 21 Apr 2010 18:21:04 +0000 (18:21 +0000)]
OMAP4: Fix for CONTROL register Base

This patch fixes the base address of CONTROL register on OMAP4430SDP.
The control base is used by peripherals like MMC1 for PBIAS configuration.

Signed-off-by: Santosh Shilimkar <>
Signed-off-by: Kishore Kadiyala <>
Signed-off-by: Tony Lindgren <>
9 years agoOMAP4-HSMMC: FIX for MMC5 Controller IRQ Base
kishore kadiyala [Wed, 21 Apr 2010 18:19:37 +0000 (18:19 +0000)]
OMAP4-HSMMC: FIX for MMC5 Controller IRQ Base

This patch fixes HSMMC Controller5 IRQ Base.

Signed-off-by: Kishore Kadiyala <>
Signed-off-by: Tony Lindgren <>
9 years agoomap3: Fix EHCI port for IGEP v2 board
Enric Balletbo i Serra [Mon, 1 Mar 2010 15:02:36 +0000 (15:02 +0000)]
omap3: Fix EHCI port for IGEP v2 board

IGEP v2 uses EHCI port 1 instead of EHCI port 2.

Signed-off-by: Enric Balletbo i Serra <>
Acked-by: Felipe Balbi <>
Signed-off-by: Tony Lindgren <>
9 years agoomap: Fix n8x0 mmc_mmc_init compile warnings and typos
Tony Lindgren [Wed, 21 Apr 2010 22:27:24 +0000 (15:27 -0700)]
omap: Fix n8x0 mmc_mmc_init compile warnings and typos

Fix warning: 'return' with a value, in function returning void
in n8x0_mmc_init. Also fix a search and replace typo.

Signed-off-by: Tony Lindgren <>
9 years agoomap2: Fix ARM processor check for 24xx
Tony Lindgren [Wed, 21 Apr 2010 22:27:25 +0000 (15:27 -0700)]
omap2: Fix ARM processor check for 24xx

The value to check is 7 for V6 instead. The code has been
working as it falls through to 24xx code if the other checks

Signed-off-by: Tony Lindgren <>
9 years agoomap4: Fix build break when used with gcc-4.4.1 (2009-q3)
Richard Woodruff [Wed, 7 Apr 2010 07:47:21 +0000 (07:47 +0000)]
omap4: Fix build break when used with gcc-4.4.1 (2009-q3)

This patch adds  argument to smc calls as gcc-4.4.1 requires it
otherwise the build breaks with 2009-q3 toolchanin.

arch/arm/mach-omap2/omap-headsmp.S: Assembler messages:
arch/arm/mach-omap2/omap-headsmp.S:36: Error: missing expression -- `smc'
arch/arm/mach-omap2/omap-headsmp.S:55: Error: missing expression -- `smc'
arch/arm/mach-omap2/omap-headsmp.S:63: Error: missing expression -- `smc'
make[1]: *** [arch/arm/mach-omap2/omap-headsmp.o] Error 1

Signed-off-by: Richard Woodruff <>
Signed-off-by: Santosh Shilimkar <>
Signed-off-by: Tony Lindgren <>
9 years agoeeepc-laptop: add missing sparse_keymap_free
Corentin Chary [Sat, 10 Apr 2010 09:02:51 +0000 (11:02 +0200)]
eeepc-laptop: add missing sparse_keymap_free

Also remove legacy keymap which was not used since
we use sparse_keymap.

Signed-off-by: Corentin Chary <>
9 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Fri, 23 Apr 2010 17:40:36 +0000 (10:40 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://
  ALSA: hda: Use STAC_DELL_M6_BOTH quirk for Dell Studio 1558
  ALSA: hda: Use LPIB quirk for DG965OT board version AAD63733-203
  ALSA: snd-meastro3: Ignore spurious HV interrupts during suspend / resume
  ALSA: snd-meastro3: Add amp_gpio quirk for Compaq EVO N600C
  ALSA: hda: Use ALC880_F1734 quirk for Fujitsu Siemens AMILO Xi 1526
  ALSA: hda: Use STAC_DELL_M6_BOTH quirk for Dell Studio XPS 1645
  ALSA: hda - Fix resume from StR of HP 2510p with docking-station

9 years agoCleanup generic block based fiemap
Josef Bacik [Fri, 23 Apr 2010 16:17:17 +0000 (12:17 -0400)]
Cleanup generic block based fiemap

This cleans up a few of the complaints of __generic_block_fiemap.  I've
fixed all the typing stuff, used inline functions instead of macros,
gotten rid of a couple of variables, and made sure the size and block
requests are all block aligned.  It also fixes a problem where sometimes
FIEMAP_EXTENT_LAST wasn't being set properly.

Signed-off-by: Josef Bacik <>
Signed-off-by: Linus Torvalds <>
9 years agodrm/i915: fix non-Ironlake 965 class crashes
Jesse Barnes [Fri, 23 Apr 2010 16:32:23 +0000 (09:32 -0700)]
drm/i915: fix non-Ironlake 965 class crashes

My PIPE_CONTROL fix (just sent via Eric's tree) was buggy; I was
testing a whole set of patches together and missed a conversion to the
new HAS_PIPE_CONTROL macro, which will cause breakage on non-Ironlake
965 class chips.  Fortunately, the fix is trivial and has been tested.

Be sure to use the HAS_PIPE_CONTROL macro in i915_get_gem_seqno, or
we'll end up reading the wrong graphics memory, likely causing hangs,
crashes, or worse.

Reported-by: Zdenek Kabelac <>
Reported-by: Toralf Förster <>
Tested-by: Toralf Förster <>
Signed-off-by: Jesse Barnes <>
Signed-off-by: Linus Torvalds <>
9 years agoMerge branch 'fix/misc' into for-linus
Takashi Iwai [Fri, 23 Apr 2010 15:10:48 +0000 (17:10 +0200)]
Merge branch 'fix/misc' into for-linus

9 years agoMerge branch 'fix/hda' into for-linus
Takashi Iwai [Fri, 23 Apr 2010 15:10:44 +0000 (17:10 +0200)]
Merge branch 'fix/hda' into for-linus

9 years agodrm/radeon/kms/evergreen: No EnableYUV table
Alex Deucher [Fri, 23 Apr 2010 06:26:55 +0000 (02:26 -0400)]
drm/radeon/kms/evergreen: No EnableYUV table

DCE4 cards don't have an EnableYUV table.

Signed-off-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
9 years agoALSA: hda: Use STAC_DELL_M6_BOTH quirk for Dell Studio 1558
Daniel T Chen [Thu, 22 Apr 2010 21:54:45 +0000 (17:54 -0400)]
ALSA: hda: Use STAC_DELL_M6_BOTH quirk for Dell Studio 1558

The OR has verified that the dell-m6 model quirk is necessary for audio
to be audible by default on the Dell Studio XPS 1645.

This change is necessary for and alike.

Reported-by: Andy Ross <>
Tested-by: Andy Ross <>
Cc: <>
Signed-off-by: Daniel T Chen <>
Signed-off-by: Takashi Iwai <>
9 years agoALSA: hda: Use LPIB quirk for DG965OT board version AAD63733-203
Daniel T Chen [Wed, 21 Apr 2010 23:55:43 +0000 (19:55 -0400)]
ALSA: hda: Use LPIB quirk for DG965OT board version AAD63733-203

The OR has verified with and the latest alsa-driver stable
daily snapshot that position_fix=1 is necessary for the external mic
to work and for PulseAudio not to crash constantly.

This patch is necessary also for and

Reported-by: <>
Tested-by: <>
Cc: <>
Signed-off-by: Daniel T Chen <>
Signed-off-by: Takashi Iwai <>
9 years agodrm/radeon: 9800 SE has only one quadpipe
Tormod Volden [Thu, 22 Apr 2010 20:57:32 +0000 (16:57 -0400)]
drm/radeon: 9800 SE has only one quadpipe

Although these cards have 2 pipelines on the silicon only
the first passed the QA and the other should be disabled.

agd5f: add some other SE cards as well; fix up kms

Signed-off-by: Tormod Volden <>
Signed-off-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
9 years agodrm/radeon/kms: don't print error for legal crtcs.
Dave Airlie [Fri, 23 Apr 2010 03:21:58 +0000 (13:21 +1000)]
drm/radeon/kms: don't print error for legal crtcs.

With evergreen this is bounded by num_crtc not by 0,1.

Signed-off-by: Dave Airlie <>
9 years agodrm/radeon/kms/evergreen: fix LUT setup
Alex Deucher [Fri, 23 Apr 2010 02:58:50 +0000 (22:58 -0400)]
drm/radeon/kms/evergreen: fix LUT setup

Must have gotten broken during an earlier rebase.

Signed-off-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
9 years agoMerge branch 'upstream-linus' of git://
Linus Torvalds [Fri, 23 Apr 2010 02:46:29 +0000 (19:46 -0700)]
Merge branch 'upstream-linus' of git://git./linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of git://
  libata: ensure NCQ error result taskfile is fully initialized before returning it via qc->result_tf.
  libata: fix docs, RE port and device of libata.force ID separated by point
  pata_pcmcia/ide-cs: add IDs for transcend and kingston cards
  libata: fix locking around blk_abort_request()