]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
13 years agoMerge remote-tracking branch 'regmap/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 06:28:55 +0000 (16:28 +1000)]
Merge remote-tracking branch 'regmap/for-next'

13 years agoMerge remote-tracking branch 'namespace/master'
Stephen Rothwell [Mon, 5 Sep 2011 06:27:34 +0000 (16:27 +1000)]
Merge remote-tracking branch 'namespace/master'

13 years agoMerge remote-tracking branch 'sysctl/master'
Stephen Rothwell [Mon, 5 Sep 2011 06:26:13 +0000 (16:26 +1000)]
Merge remote-tracking branch 'sysctl/master'

13 years agoMerge remote-tracking branch 'percpu/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 06:24:42 +0000 (16:24 +1000)]
Merge remote-tracking branch 'percpu/for-next'

13 years agoMerge remote-tracking branch 'edac-amd/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 06:23:22 +0000 (16:23 +1000)]
Merge remote-tracking branch 'edac-amd/for-next'

13 years agoMerge remote-tracking branch 'xen-two/linux-next'
Stephen Rothwell [Mon, 5 Sep 2011 06:21:56 +0000 (16:21 +1000)]
Merge remote-tracking branch 'xen-two/linux-next'

13 years agoMerge remote-tracking branch 'xen/upstream/xen'
Stephen Rothwell [Mon, 5 Sep 2011 06:16:32 +0000 (16:16 +1000)]
Merge remote-tracking branch 'xen/upstream/xen'

13 years agoMerge remote-tracking branch 'ptrace/ptrace'
Stephen Rothwell [Mon, 5 Sep 2011 06:10:37 +0000 (16:10 +1000)]
Merge remote-tracking branch 'ptrace/ptrace'

13 years agoMerge remote-tracking branch 'kvm/linux-next'
Stephen Rothwell [Mon, 5 Sep 2011 06:09:11 +0000 (16:09 +1000)]
Merge remote-tracking branch 'kvm/linux-next'

13 years agoMerge remote-tracking branch 'rcu/rcu/next'
Stephen Rothwell [Mon, 5 Sep 2011 06:02:47 +0000 (16:02 +1000)]
Merge remote-tracking branch 'rcu/rcu/next'

13 years agoRevert "Merge branch 'x86/spinlocks' into auto-latest"
Stephen Rothwell [Mon, 5 Sep 2011 05:57:01 +0000 (15:57 +1000)]
Revert "Merge branch 'x86/spinlocks' into auto-latest"

This reverts commit 6f8fa39c81f12d98540598db42a1eaff65bba0ce, reversing
changes made to 4977f9bf2d9b511d36199ab3451a2592d6bc3793.

13 years agoMerge remote-tracking branch 'tip/auto-latest'
Stephen Rothwell [Mon, 5 Sep 2011 05:38:20 +0000 (15:38 +1000)]
Merge remote-tracking branch 'tip/auto-latest'

Conflicts:
arch/x86/mm/fault.c

13 years agoMerge remote-tracking branch 'devicetree/devicetree/next'
Stephen Rothwell [Mon, 5 Sep 2011 05:38:01 +0000 (15:38 +1000)]
Merge remote-tracking branch 'devicetree/devicetree/next'

Conflicts:
drivers/of/base.c

13 years agoMerge remote-tracking branch 'i7300_edac/linux_next'
Stephen Rothwell [Mon, 5 Sep 2011 05:36:40 +0000 (15:36 +1000)]
Merge remote-tracking branch 'i7300_edac/linux_next'

Conflicts:
arch/x86/kernel/cpu/mcheck/mce.c

13 years agoMerge remote-tracking branch 'i7core_edac/linux_next'
Stephen Rothwell [Mon, 5 Sep 2011 05:34:55 +0000 (15:34 +1000)]
Merge remote-tracking branch 'i7core_edac/linux_next'

13 years agoMerge remote-tracking branch 'fsnotify/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:32:11 +0000 (15:32 +1000)]
Merge remote-tracking branch 'fsnotify/for-next'

13 years agoMerge remote-tracking branch 'apm/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:30:50 +0000 (15:30 +1000)]
Merge remote-tracking branch 'apm/for-next'

13 years agoMerge remote-tracking branch 'pm/linux-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:24:33 +0000 (15:24 +1000)]
Merge remote-tracking branch 'pm/linux-next'

Conflicts:
arch/arm/mach-shmobile/board-ap4evb.c
arch/s390/include/asm/thread_info.h
drivers/mfd/twl4030-irq.c

13 years agoMerge remote-tracking branch 'trivial/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:23:09 +0000 (15:23 +1000)]
Merge remote-tracking branch 'trivial/for-next'

13 years agoMerge remote-tracking branch 'osd/linux-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:21:47 +0000 (15:21 +1000)]
Merge remote-tracking branch 'osd/linux-next'

13 years agoMerge remote-tracking branch 'iommu/next'
Stephen Rothwell [Mon, 5 Sep 2011 05:20:27 +0000 (15:20 +1000)]
Merge remote-tracking branch 'iommu/next'

13 years agoMerge remote-tracking branch 'watchdog/master'
Stephen Rothwell [Mon, 5 Sep 2011 05:19:01 +0000 (15:19 +1000)]
Merge remote-tracking branch 'watchdog/master'

13 years agoMerge remote-tracking branch 'agp/agp-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:18:19 +0000 (15:18 +1000)]
Merge remote-tracking branch 'agp/agp-next'

13 years agoMerge remote-tracking branch 'security/next'
Stephen Rothwell [Mon, 5 Sep 2011 05:15:44 +0000 (15:15 +1000)]
Merge remote-tracking branch 'security/next'

Conflicts:
fs/ocfs2/xattr.c

13 years agoMerge remote-tracking branch 'voltage/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:14:21 +0000 (15:14 +1000)]
Merge remote-tracking branch 'voltage/for-next'

13 years agoMerge remote-tracking branch 'viafb/viafb-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:12:57 +0000 (15:12 +1000)]
Merge remote-tracking branch 'viafb/viafb-next'

13 years agoMerge remote-tracking branch 'fbdev/fbdev-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:11:35 +0000 (15:11 +1000)]
Merge remote-tracking branch 'fbdev/fbdev-next'

13 years agoMerge remote-tracking branch 'mfd/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:10:07 +0000 (15:10 +1000)]
Merge remote-tracking branch 'mfd/for-next'

13 years agoMerge remote-tracking branch 'md/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:08:51 +0000 (15:08 +1000)]
Merge remote-tracking branch 'md/for-next'

13 years agoMerge remote-tracking branch 'slab/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:02:35 +0000 (15:02 +1000)]
Merge remote-tracking branch 'slab/for-next'

13 years agoMerge remote-tracking branch 'kgdb/kgdb-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:02:26 +0000 (15:02 +1000)]
Merge remote-tracking branch 'kgdb/kgdb-next'

13 years agoMerge remote-tracking branch 'mmc/mmc-next'
Stephen Rothwell [Mon, 5 Sep 2011 05:01:05 +0000 (15:01 +1000)]
Merge remote-tracking branch 'mmc/mmc-next'

13 years agoMerge remote-tracking branch 'leds/for-mm'
Stephen Rothwell [Mon, 5 Sep 2011 05:00:58 +0000 (15:00 +1000)]
Merge remote-tracking branch 'leds/for-mm'

Conflicts:
drivers/leds/Kconfig

13 years agoMerge remote-tracking branch 'battery/master'
Stephen Rothwell [Mon, 5 Sep 2011 04:59:14 +0000 (14:59 +1000)]
Merge remote-tracking branch 'battery/master'

13 years agoMerge branch 'quilt/device-mapper'
Stephen Rothwell [Mon, 5 Sep 2011 04:57:41 +0000 (14:57 +1000)]
Merge branch 'quilt/device-mapper'

13 years agoMerge remote-tracking branch 'block/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 04:51:50 +0000 (14:51 +1000)]
Merge remote-tracking branch 'block/for-next'

13 years agoMerge remote-tracking branch 'input/next'
Stephen Rothwell [Mon, 5 Sep 2011 04:50:07 +0000 (14:50 +1000)]
Merge remote-tracking branch 'input/next'

13 years agoMerge branch 'quilt/rr'
Stephen Rothwell [Mon, 5 Sep 2011 04:48:49 +0000 (14:48 +1000)]
Merge branch 'quilt/rr'

13 years agoMerge remote-tracking branch 'cpufreq/next'
Stephen Rothwell [Mon, 5 Sep 2011 04:47:32 +0000 (14:47 +1000)]
Merge remote-tracking branch 'cpufreq/next'

13 years agoMerge remote-tracking branch 'sound-asoc/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 04:46:15 +0000 (14:46 +1000)]
Merge remote-tracking branch 'sound-asoc/for-next'

13 years agoMerge remote-tracking branch 'sound/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 04:44:48 +0000 (14:44 +1000)]
Merge remote-tracking branch 'sound/for-next'

13 years agoMerge remote-tracking branch 'crypto/master'
Stephen Rothwell [Mon, 5 Sep 2011 04:39:31 +0000 (14:39 +1000)]
Merge remote-tracking branch 'crypto/master'

13 years agoMerge remote-tracking branch 'l2-mtd/master'
Stephen Rothwell [Mon, 5 Sep 2011 04:38:10 +0000 (14:38 +1000)]
Merge remote-tracking branch 'l2-mtd/master'

13 years agoMerge remote-tracking branch 'bluetooth/master'
Stephen Rothwell [Mon, 5 Sep 2011 04:36:48 +0000 (14:36 +1000)]
Merge remote-tracking branch 'bluetooth/master'

13 years agoMerge remote-tracking branch 'wireless/master'
Stephen Rothwell [Mon, 5 Sep 2011 04:35:16 +0000 (14:35 +1000)]
Merge remote-tracking branch 'wireless/master'

Conflicts:
drivers/net/wireless/iwlwifi/iwl-pci.c

13 years agoMerge remote-tracking branch 'net/master'
Stephen Rothwell [Mon, 5 Sep 2011 04:29:44 +0000 (14:29 +1000)]
Merge remote-tracking branch 'net/master'

Conflicts:
MAINTAINERS
arch/powerpc/configs/40x/hcu4_defconfig

13 years agoMerge remote-tracking branch 'slave-dma/next'
Stephen Rothwell [Mon, 5 Sep 2011 04:09:51 +0000 (14:09 +1000)]
Merge remote-tracking branch 'slave-dma/next'

13 years agoMerge remote-tracking branch 'scsi/master'
Stephen Rothwell [Mon, 5 Sep 2011 04:07:45 +0000 (14:07 +1000)]
Merge remote-tracking branch 'scsi/master'

13 years agoMerge remote-tracking branch 'ibft/master'
Stephen Rothwell [Mon, 5 Sep 2011 04:07:41 +0000 (14:07 +1000)]
Merge remote-tracking branch 'ibft/master'

13 years agoMerge remote-tracking branch 'swiotlb/master'
Stephen Rothwell [Mon, 5 Sep 2011 04:07:35 +0000 (14:07 +1000)]
Merge remote-tracking branch 'swiotlb/master'

13 years agoMerge remote-tracking branch 'acpi/test'
Stephen Rothwell [Mon, 5 Sep 2011 04:06:10 +0000 (14:06 +1000)]
Merge remote-tracking branch 'acpi/test'

13 years agoMerge remote-tracking branch 'libata/NEXT'
Stephen Rothwell [Mon, 5 Sep 2011 04:04:52 +0000 (14:04 +1000)]
Merge remote-tracking branch 'libata/NEXT'

13 years agoMerge remote-tracking branch 'kconfig/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 04:04:46 +0000 (14:04 +1000)]
Merge remote-tracking branch 'kconfig/for-next'

13 years agoMerge remote-tracking branch 'kbuild/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 04:03:23 +0000 (14:03 +1000)]
Merge remote-tracking branch 'kbuild/for-next'

13 years agoMerge remote-tracking branch 'docs/docs-move'
Stephen Rothwell [Mon, 5 Sep 2011 04:02:03 +0000 (14:02 +1000)]
Merge remote-tracking branch 'docs/docs-move'

13 years agoMerge branch 'quilt/kernel-doc'
Stephen Rothwell [Mon, 5 Sep 2011 04:00:50 +0000 (14:00 +1000)]
Merge branch 'quilt/kernel-doc'

13 years agoMerge remote-tracking branch 'hwmon-staging/hwmon-next'
Stephen Rothwell [Mon, 5 Sep 2011 03:59:35 +0000 (13:59 +1000)]
Merge remote-tracking branch 'hwmon-staging/hwmon-next'

13 years agoMerge branch 'quilt/jdelvare-hwmon'
Stephen Rothwell [Mon, 5 Sep 2011 03:58:21 +0000 (13:58 +1000)]
Merge branch 'quilt/jdelvare-hwmon'

13 years agoMerge remote-tracking branch 'bjdooks-i2c/next-i2c'
Stephen Rothwell [Mon, 5 Sep 2011 03:57:03 +0000 (13:57 +1000)]
Merge remote-tracking branch 'bjdooks-i2c/next-i2c'

13 years agoMerge branch 'quilt/i2c'
Stephen Rothwell [Mon, 5 Sep 2011 03:55:53 +0000 (13:55 +1000)]
Merge branch 'quilt/i2c'

13 years agoMerge remote-tracking branch 'hid/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 03:54:36 +0000 (13:54 +1000)]
Merge remote-tracking branch 'hid/for-next'

Conflicts:
drivers/hid/hid-core.c
drivers/hid/hid-ids.h

13 years agoMerge remote-tracking branch 'xfs/master'
Stephen Rothwell [Mon, 5 Sep 2011 03:53:14 +0000 (13:53 +1000)]
Merge remote-tracking branch 'xfs/master'

Conflicts:
fs/xfs/xfs_super.c

13 years agoMerge remote-tracking branch 'ubifs/linux-next'
Stephen Rothwell [Mon, 5 Sep 2011 03:32:35 +0000 (13:32 +1000)]
Merge remote-tracking branch 'ubifs/linux-next'

13 years agoMerge remote-tracking branch 'v9fs/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 03:31:24 +0000 (13:31 +1000)]
Merge remote-tracking branch 'v9fs/for-next'

13 years agoMerge remote-tracking branch 'ocfs2/linux-next'
Stephen Rothwell [Mon, 5 Sep 2011 03:29:58 +0000 (13:29 +1000)]
Merge remote-tracking branch 'ocfs2/linux-next'

13 years agoMerge remote-tracking branch 'nfsd/nfsd-next'
Stephen Rothwell [Mon, 5 Sep 2011 03:24:03 +0000 (13:24 +1000)]
Merge remote-tracking branch 'nfsd/nfsd-next'

13 years agoMerge remote-tracking branch 'nfs/linux-next'
Stephen Rothwell [Mon, 5 Sep 2011 03:22:50 +0000 (13:22 +1000)]
Merge remote-tracking branch 'nfs/linux-next'

13 years agoMerge remote-tracking branch 'logfs/master'
Stephen Rothwell [Mon, 5 Sep 2011 03:21:36 +0000 (13:21 +1000)]
Merge remote-tracking branch 'logfs/master'

13 years agoMerge remote-tracking branch 'gfs2/master'
Stephen Rothwell [Mon, 5 Sep 2011 03:20:22 +0000 (13:20 +1000)]
Merge remote-tracking branch 'gfs2/master'

13 years agoMerge remote-tracking branch 'ext4/dev'
Stephen Rothwell [Mon, 5 Sep 2011 03:19:03 +0000 (13:19 +1000)]
Merge remote-tracking branch 'ext4/dev'

13 years agoMerge remote-tracking branch 'cifs/master'
Stephen Rothwell [Mon, 5 Sep 2011 03:17:48 +0000 (13:17 +1000)]
Merge remote-tracking branch 'cifs/master'

13 years agoMerge remote-tracking branch 'ceph/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 03:16:35 +0000 (13:16 +1000)]
Merge remote-tracking branch 'ceph/for-next'

13 years agoMerge remote-tracking branch 'xtensa/master'
Stephen Rothwell [Mon, 5 Sep 2011 03:15:24 +0000 (13:15 +1000)]
Merge remote-tracking branch 'xtensa/master'

13 years agoMerge remote-tracking branch 'unicore32/unicore32'
Stephen Rothwell [Mon, 5 Sep 2011 03:14:09 +0000 (13:14 +1000)]
Merge remote-tracking branch 'unicore32/unicore32'

13 years agoMerge remote-tracking branch 'tile/master'
Stephen Rothwell [Mon, 5 Sep 2011 03:12:56 +0000 (13:12 +1000)]
Merge remote-tracking branch 'tile/master'

13 years agoMerge remote-tracking branch 'rmobile/rmobile-latest'
Stephen Rothwell [Mon, 5 Sep 2011 03:11:43 +0000 (13:11 +1000)]
Merge remote-tracking branch 'rmobile/rmobile-latest'

13 years agoMerge remote-tracking branch 'sh/sh-latest'
Stephen Rothwell [Mon, 5 Sep 2011 03:10:30 +0000 (13:10 +1000)]
Merge remote-tracking branch 'sh/sh-latest'

13 years agoMerge remote-tracking branch 's390/features'
Stephen Rothwell [Mon, 5 Sep 2011 03:09:19 +0000 (13:09 +1000)]
Merge remote-tracking branch 's390/features'

13 years agoMerge remote-tracking branch '52xx-and-virtex/powerpc/next'
Stephen Rothwell [Mon, 5 Sep 2011 03:08:03 +0000 (13:08 +1000)]
Merge remote-tracking branch '52xx-and-virtex/powerpc/next'

13 years agoMerge remote-tracking branch 'powerpc/next'
Stephen Rothwell [Mon, 5 Sep 2011 03:06:50 +0000 (13:06 +1000)]
Merge remote-tracking branch 'powerpc/next'

13 years agoMerge remote-tracking branch 'openrisc/for-upstream'
Stephen Rothwell [Mon, 5 Sep 2011 03:05:38 +0000 (13:05 +1000)]
Merge remote-tracking branch 'openrisc/for-upstream'

13 years agoMerge remote-tracking branch 'm68knommu/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 03:04:20 +0000 (13:04 +1000)]
Merge remote-tracking branch 'm68knommu/for-next'

13 years agoMerge remote-tracking branch 'm68k/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 03:03:08 +0000 (13:03 +1000)]
Merge remote-tracking branch 'm68k/for-next'

13 years agoMerge remote-tracking branch 'ia64/test'
Stephen Rothwell [Mon, 5 Sep 2011 03:01:53 +0000 (13:01 +1000)]
Merge remote-tracking branch 'ia64/test'

13 years agoMerge remote-tracking branch 'cris/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 03:00:37 +0000 (13:00 +1000)]
Merge remote-tracking branch 'cris/for-next'

13 years agoMerge remote-tracking branch 'blackfin/for-linus'
Stephen Rothwell [Mon, 5 Sep 2011 02:59:26 +0000 (12:59 +1000)]
Merge remote-tracking branch 'blackfin/for-linus'

13 years agoMerge remote-tracking branch 'ux500-core/ux500-core'
Stephen Rothwell [Mon, 5 Sep 2011 02:58:14 +0000 (12:58 +1000)]
Merge remote-tracking branch 'ux500-core/ux500-core'

13 years agoMerge remote-tracking branch 's5p/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 02:57:00 +0000 (12:57 +1000)]
Merge remote-tracking branch 's5p/for-next'

Conflicts:
arch/arm/mach-exynos4/mach-smdkc210.c

13 years agoMerge remote-tracking branch 'arm-soc/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 02:06:25 +0000 (12:06 +1000)]
Merge remote-tracking branch 'arm-soc/for-next'

Conflicts:
arch/arm/mach-u300/Makefile.boot

13 years agoMerge remote-tracking branch 'arm-lpae/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 02:05:08 +0000 (12:05 +1000)]
Merge remote-tracking branch 'arm-lpae/for-next'

Conflicts:
arch/arm/include/asm/pgalloc.h
arch/arm/include/asm/pgtable.h
arch/arm/include/asm/tlb.h
arch/arm/kernel/head.S
arch/arm/mm/dma-mapping.c
arch/arm/mm/mmu.c

13 years agoMerge remote-tracking branch 'arm/for-next'
Stephen Rothwell [Mon, 5 Sep 2011 02:03:52 +0000 (12:03 +1000)]
Merge remote-tracking branch 'arm/for-next'

13 years agoMerge remote-tracking branch 'input-current/for-linus'
Stephen Rothwell [Mon, 5 Sep 2011 02:02:26 +0000 (12:02 +1000)]
Merge remote-tracking branch 'input-current/for-linus'

13 years agoMerge remote-tracking branch 'wireless-current/master'
Stephen Rothwell [Mon, 5 Sep 2011 02:02:23 +0000 (12:02 +1000)]
Merge remote-tracking branch 'wireless-current/master'

13 years agoMerge remote-tracking branch 'pci-current/for-linus'
Stephen Rothwell [Mon, 5 Sep 2011 02:02:22 +0000 (12:02 +1000)]
Merge remote-tracking branch 'pci-current/for-linus'

13 years agoMerge remote-tracking branch 'net-current/master'
Stephen Rothwell [Mon, 5 Sep 2011 02:02:21 +0000 (12:02 +1000)]
Merge remote-tracking branch 'net-current/master'

13 years agoMerge remote-tracking branch 'scsi-rc-fixes/master'
Stephen Rothwell [Mon, 5 Sep 2011 02:02:20 +0000 (12:02 +1000)]
Merge remote-tracking branch 'scsi-rc-fixes/master'

13 years agoLinux 3.1-rc5 v3.1-rc5
Linus Torvalds [Sun, 4 Sep 2011 22:45:10 +0000 (15:45 -0700)]
Linux 3.1-rc5

13 years agofb: sh-mobile: Fix deadlock risk between lock_fb_info() and console_lock()
Bruno Prémont [Fri, 2 Sep 2011 17:24:03 +0000 (19:24 +0200)]
fb: sh-mobile: Fix deadlock risk between lock_fb_info() and console_lock()

Following on Herton's patch "fb: avoid possible deadlock caused by
fb_set_suspend" which moves lock_fb_info() out of fb_set_suspend()
to its callers, correct sh-mobile's locking around call to
fb_set_suspend() and the same sort of deaklocks with console_lock()
due to order of taking the lock.

console_lock() must be taken while fb_info is already locked and fb_info
must be locked while calling fb_set_suspend().

Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: stable@kernel.org
13 years agofb: avoid possible deadlock caused by fb_set_suspend
Herton Ronaldo Krzesinski [Fri, 17 Jun 2011 19:02:39 +0000 (19:02 +0000)]
fb: avoid possible deadlock caused by fb_set_suspend

A lock ordering issue can cause deadlocks: in framebuffer/console code,
all needed struct fb_info locks are taken before acquire_console_sem(),
in places which need to take console semaphore.

But fb_set_suspend is always called with console semaphore held, and
inside it we call lock_fb_info which gets the fb_info lock, inverse
locking order of what the rest of the code does. This causes a real
deadlock issue, when we write to state fb sysfs attribute (which calls
fb_set_suspend) while a framebuffer is being unregistered by
remove_conflicting_framebuffers, as can be shown by following show
blocked state trace on a test program which loads i915 and runs another
forked processes writing to state attribute:

Test process with semaphore held and trying to get fb_info lock:
..
fb-test2      D 0000000000000000     0   237    228 0x00000000
 ffff8800774f3d68 0000000000000082 00000000000135c0 00000000000135c0
 ffff880000000000 ffff8800774f3fd8 ffff8800774f3fd8 ffff880076ee4530
 00000000000135c0 ffff8800774f3fd8 ffff8800774f2000 00000000000135c0
Call Trace:
 [<ffffffff8141287a>] __mutex_lock_slowpath+0x11a/0x1e0
 [<ffffffff814142f2>] ? _raw_spin_lock_irq+0x22/0x40
 [<ffffffff814123d3>] mutex_lock+0x23/0x50
 [<ffffffff8125dfc5>] lock_fb_info+0x25/0x60
 [<ffffffff8125e3f0>] fb_set_suspend+0x20/0x80
 [<ffffffff81263e2f>] store_fbstate+0x4f/0x70
 [<ffffffff812e7f70>] dev_attr_store+0x20/0x30
 [<ffffffff811c46b4>] sysfs_write_file+0xd4/0x160
 [<ffffffff81155a26>] vfs_write+0xc6/0x190
 [<ffffffff81155d51>] sys_write+0x51/0x90
 [<ffffffff8100c012>] system_call_fastpath+0x16/0x1b
..
modprobe process stalled because has the fb_info lock (got inside
unregister_framebuffer) but waiting for the semaphore held by the
test process which is waiting to get the fb_info lock:
..
modprobe      D 0000000000000000     0   230    218 0x00000000
 ffff880077a4d618 0000000000000082 0000000000000001 0000000000000001
 ffff880000000000 ffff880077a4dfd8 ffff880077a4dfd8 ffff8800775a2e20
 00000000000135c0 ffff880077a4dfd8 ffff880077a4c000 00000000000135c0
Call Trace:
 [<ffffffff81411fe5>] schedule_timeout+0x215/0x310
 [<ffffffff81058051>] ? get_parent_ip+0x11/0x50
 [<ffffffff814130dd>] __down+0x6d/0xb0
 [<ffffffff81089f71>] down+0x41/0x50
 [<ffffffff810629ac>] acquire_console_sem+0x2c/0x50
 [<ffffffff812ca53d>] unbind_con_driver+0xad/0x2d0
 [<ffffffff8126f5f7>] fbcon_event_notify+0x457/0x890
 [<ffffffff814144ff>] ? _raw_spin_unlock_irqrestore+0x1f/0x50
 [<ffffffff81058051>] ? get_parent_ip+0x11/0x50
 [<ffffffff8141836d>] notifier_call_chain+0x4d/0x70
 [<ffffffff8108a3b8>] __blocking_notifier_call_chain+0x58/0x80
 [<ffffffff8108a3f6>] blocking_notifier_call_chain+0x16/0x20
 [<ffffffff8125dabb>] fb_notifier_call_chain+0x1b/0x20
 [<ffffffff8125e6ac>] unregister_framebuffer+0x7c/0x130
 [<ffffffff8125e8b3>] remove_conflicting_framebuffers+0x153/0x180
 [<ffffffff8125eef3>] register_framebuffer+0x93/0x2c0
 [<ffffffffa0331112>] drm_fb_helper_single_fb_probe+0x252/0x2f0 [drm_kms_helper]
 [<ffffffffa03314a3>] drm_fb_helper_initial_config+0x2f3/0x6d0 [drm_kms_helper]
 [<ffffffffa03318dd>] ? drm_fb_helper_single_add_all_connectors+0x5d/0x1c0 [drm_kms_helper]
 [<ffffffffa037b588>] intel_fbdev_init+0xa8/0x160 [i915]
 [<ffffffffa0343d74>] i915_driver_load+0x854/0x12b0 [i915]
 [<ffffffffa02f0e7e>] drm_get_pci_dev+0x19e/0x360 [drm]
 [<ffffffff8141821d>] ? sub_preempt_count+0x9d/0xd0
 [<ffffffffa0386f91>] i915_pci_probe+0x15/0x17 [i915]
 [<ffffffff8124481f>] local_pci_probe+0x5f/0xd0
 [<ffffffff81244f89>] pci_device_probe+0x119/0x120
 [<ffffffff812eccaa>] ? driver_sysfs_add+0x7a/0xb0
 [<ffffffff812ed003>] driver_probe_device+0xa3/0x290
 [<ffffffff812ed1f0>] ? __driver_attach+0x0/0xb0
 [<ffffffff812ed29b>] __driver_attach+0xab/0xb0
 [<ffffffff812ed1f0>] ? __driver_attach+0x0/0xb0
 [<ffffffff812ebd3e>] bus_for_each_dev+0x5e/0x90
 [<ffffffff812ecc2e>] driver_attach+0x1e/0x20
 [<ffffffff812ec6f2>] bus_add_driver+0xe2/0x320
 [<ffffffffa03aa000>] ? i915_init+0x0/0x96 [i915]
 [<ffffffff812ed536>] driver_register+0x76/0x140
 [<ffffffffa03aa000>] ? i915_init+0x0/0x96 [i915]
 [<ffffffff81245216>] __pci_register_driver+0x56/0xd0
 [<ffffffffa02f1264>] drm_pci_init+0xe4/0xf0 [drm]
 [<ffffffffa03aa000>] ? i915_init+0x0/0x96 [i915]
 [<ffffffffa02e84a8>] drm_init+0x58/0x70 [drm]
 [<ffffffffa03aa094>] i915_init+0x94/0x96 [i915]
 [<ffffffff81002194>] do_one_initcall+0x44/0x190
 [<ffffffff810a066b>] sys_init_module+0xcb/0x210
 [<ffffffff8100c012>] system_call_fastpath+0x16/0x1b
..

fb-test2 which reproduces above is available on kernel.org bug #26232.
To solve this issue, avoid calling lock_fb_info inside fb_set_suspend,
and move it out to where needed (callers of fb_set_suspend must call
lock_fb_info before if needed). So far, the only place which needs to
call lock_fb_info is store_fbstate, all other places which calls
fb_set_suspend are suspend/resume hooks that should not need the lock as
they should be run only when processes are already frozen in
suspend/resume.

References: https://bugzilla.kernel.org/show_bug.cgi?id=26232
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: stable@kernel.org
13 years agofbdev: au1200fb: silence debug output
Manuel Lauss [Fri, 2 Sep 2011 14:40:51 +0000 (16:40 +0200)]
fbdev: au1200fb: silence debug output

it's annoying and takes up way too much space in dmesg.

Signed-off-by: Manuel Lauss <manuel.lauss@googlemail.com>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>