]> git.karo-electronics.de Git - karo-tx-linux.git/log
karo-tx-linux.git
13 years agoMerge remote-tracking branch 'moduleh/module.h-split'
Stephen Rothwell [Tue, 9 Aug 2011 02:52:13 +0000 (12:52 +1000)]
Merge remote-tracking branch 'moduleh/module.h-split'

Conflicts:
drivers/dma/ste_dma40.c
drivers/staging/dt3155v4l/dt3155v4l.c
include/linux/dmaengine.h

13 years agoMerge remote-tracking branch 'tmem/linux-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:24:06 +0000 (12:24 +1000)]
Merge remote-tracking branch 'tmem/linux-next'

13 years agoMerge remote-tracking branch 'regmap/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:22:33 +0000 (12:22 +1000)]
Merge remote-tracking branch 'regmap/for-next'

13 years agoMerge remote-tracking branch 'namespace/master'
Stephen Rothwell [Tue, 9 Aug 2011 02:21:14 +0000 (12:21 +1000)]
Merge remote-tracking branch 'namespace/master'

13 years agoMerge remote-tracking branch 'sysctl/master'
Stephen Rothwell [Tue, 9 Aug 2011 02:19:55 +0000 (12:19 +1000)]
Merge remote-tracking branch 'sysctl/master'

13 years agoMerge remote-tracking branch 'percpu/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:18:28 +0000 (12:18 +1000)]
Merge remote-tracking branch 'percpu/for-next'

13 years agoMerge remote-tracking branch 'xen-two/linux-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:18:21 +0000 (12:18 +1000)]
Merge remote-tracking branch 'xen-two/linux-next'

13 years agoMerge remote-tracking branch 'kvm/linux-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:16:58 +0000 (12:16 +1000)]
Merge remote-tracking branch 'kvm/linux-next'

13 years agoMerge remote-tracking branch 'devicetree/devicetree/next'
Stephen Rothwell [Tue, 9 Aug 2011 02:16:46 +0000 (12:16 +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 [Tue, 9 Aug 2011 02:15:23 +0000 (12:15 +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 [Tue, 9 Aug 2011 02:13:52 +0000 (12:13 +1000)]
Merge remote-tracking branch 'i7core_edac/linux_next'

13 years agoMerge remote-tracking branch 'fsnotify/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:11:12 +0000 (12:11 +1000)]
Merge remote-tracking branch 'fsnotify/for-next'

13 years agoMerge remote-tracking branch 'suspend/linux-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:09:50 +0000 (12:09 +1000)]
Merge remote-tracking branch 'suspend/linux-next'

13 years agoMerge remote-tracking branch 'trivial/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:08:28 +0000 (12:08 +1000)]
Merge remote-tracking branch 'trivial/for-next'

13 years agoMerge remote-tracking branch 'agp/agp-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:07:44 +0000 (12:07 +1000)]
Merge remote-tracking branch 'agp/agp-next'

13 years agoMerge remote-tracking branch 'security-testing/next'
Stephen Rothwell [Tue, 9 Aug 2011 02:07:37 +0000 (12:07 +1000)]
Merge remote-tracking branch 'security-testing/next'

13 years agoMerge remote-tracking branch 'voltage/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:06:19 +0000 (12:06 +1000)]
Merge remote-tracking branch 'voltage/for-next'

13 years agoMerge remote-tracking branch 'viafb/viafb-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:04:46 +0000 (12:04 +1000)]
Merge remote-tracking branch 'viafb/viafb-next'

13 years agoMerge remote-tracking branch 'fbdev/master'
Stephen Rothwell [Tue, 9 Aug 2011 02:03:21 +0000 (12:03 +1000)]
Merge remote-tracking branch 'fbdev/master'

13 years agoMerge remote-tracking branch 'md/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:01:49 +0000 (12:01 +1000)]
Merge remote-tracking branch 'md/for-next'

13 years agoMerge remote-tracking branch 'slab/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:01:42 +0000 (12:01 +1000)]
Merge remote-tracking branch 'slab/for-next'

13 years agoMerge remote-tracking branch 'kgdb/kgdb-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:01:38 +0000 (12:01 +1000)]
Merge remote-tracking branch 'kgdb/kgdb-next'

13 years agoMerge remote-tracking branch 'mmc/mmc-next'
Stephen Rothwell [Tue, 9 Aug 2011 02:00:16 +0000 (12:00 +1000)]
Merge remote-tracking branch 'mmc/mmc-next'

Conflicts:
drivers/mmc/host/sdhci-esdhc-imx.c

13 years agoMerge remote-tracking branch 'leds/for-mm'
Stephen Rothwell [Tue, 9 Aug 2011 02:00:07 +0000 (12:00 +1000)]
Merge remote-tracking branch 'leds/for-mm'

Conflicts:
drivers/leds/Kconfig

13 years agoMerge branch 'quilt/device-mapper'
Stephen Rothwell [Tue, 9 Aug 2011 01:58:18 +0000 (11:58 +1000)]
Merge branch 'quilt/device-mapper'

13 years agoMerge remote-tracking branch 'block/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:54:03 +0000 (11:54 +1000)]
Merge remote-tracking branch 'block/for-next'

13 years agoMerge remote-tracking branch 'input/next'
Stephen Rothwell [Tue, 9 Aug 2011 01:52:38 +0000 (11:52 +1000)]
Merge remote-tracking branch 'input/next'

13 years agoMerge branch 'quilt/rr'
Stephen Rothwell [Tue, 9 Aug 2011 01:51:19 +0000 (11:51 +1000)]
Merge branch 'quilt/rr'

13 years agoMerge remote-tracking branch 'sound-asoc/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:49:47 +0000 (11:49 +1000)]
Merge remote-tracking branch 'sound-asoc/for-next'

13 years agoMerge remote-tracking branch 'sound/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:49:38 +0000 (11:49 +1000)]
Merge remote-tracking branch 'sound/for-next'

13 years agoMerge remote-tracking branch 'l2-mtd/master'
Stephen Rothwell [Tue, 9 Aug 2011 01:48:09 +0000 (11:48 +1000)]
Merge remote-tracking branch 'l2-mtd/master'

Conflicts:
drivers/mtd/maps/lantiq-flash.c
drivers/mtd/maps/pxa2xx-flash.c

13 years agoMerge remote-tracking branch 'bluetooth/master'
Stephen Rothwell [Tue, 9 Aug 2011 01:46:35 +0000 (11:46 +1000)]
Merge remote-tracking branch 'bluetooth/master'

13 years agoMerge remote-tracking branch 'wireless/master'
Stephen Rothwell [Tue, 9 Aug 2011 01:44:53 +0000 (11:44 +1000)]
Merge remote-tracking branch 'wireless/master'

13 years agoMerge remote-tracking branch 'net/master'
Stephen Rothwell [Tue, 9 Aug 2011 01:42:48 +0000 (11:42 +1000)]
Merge remote-tracking branch 'net/master'

13 years agoMerge remote-tracking branch 'slave-dma/next'
Stephen Rothwell [Tue, 9 Aug 2011 01:39:20 +0000 (11:39 +1000)]
Merge remote-tracking branch 'slave-dma/next'

13 years agoMerge remote-tracking branch 'ibft/master'
Stephen Rothwell [Tue, 9 Aug 2011 01:39:13 +0000 (11:39 +1000)]
Merge remote-tracking branch 'ibft/master'

13 years agoMerge remote-tracking branch 'swiotlb/master'
Stephen Rothwell [Tue, 9 Aug 2011 01:39:07 +0000 (11:39 +1000)]
Merge remote-tracking branch 'swiotlb/master'

13 years agoMerge remote-tracking branch 'kconfig/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:38:47 +0000 (11:38 +1000)]
Merge remote-tracking branch 'kconfig/for-next'

13 years agoMerge remote-tracking branch 'kbuild/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:37:17 +0000 (11:37 +1000)]
Merge remote-tracking branch 'kbuild/for-next'

13 years agoMerge remote-tracking branch 'docs/docs-move'
Stephen Rothwell [Tue, 9 Aug 2011 01:36:01 +0000 (11:36 +1000)]
Merge remote-tracking branch 'docs/docs-move'

13 years agoMerge branch 'quilt/kernel-doc'
Stephen Rothwell [Tue, 9 Aug 2011 01:34:40 +0000 (11:34 +1000)]
Merge branch 'quilt/kernel-doc'

13 years agoMerge remote-tracking branch 'hwmon-staging/hwmon-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:33:23 +0000 (11:33 +1000)]
Merge remote-tracking branch 'hwmon-staging/hwmon-next'

13 years agoMerge remote-tracking branch 'hid/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:31:52 +0000 (11:31 +1000)]
Merge remote-tracking branch 'hid/for-next'

13 years agoMerge remote-tracking branch 'xfs/master'
Stephen Rothwell [Tue, 9 Aug 2011 01:30:11 +0000 (11:30 +1000)]
Merge remote-tracking branch 'xfs/master'

13 years agoMerge remote-tracking branch 'v9fs/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:28:54 +0000 (11:28 +1000)]
Merge remote-tracking branch 'v9fs/for-next'

13 years agoMerge remote-tracking branch 'ocfs2/linux-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:27:27 +0000 (11:27 +1000)]
Merge remote-tracking branch 'ocfs2/linux-next'

13 years agoMerge remote-tracking branch 'nfs/linux-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:26:09 +0000 (11:26 +1000)]
Merge remote-tracking branch 'nfs/linux-next'

13 years agoMerge remote-tracking branch 'logfs/master'
Stephen Rothwell [Tue, 9 Aug 2011 01:24:54 +0000 (11:24 +1000)]
Merge remote-tracking branch 'logfs/master'

13 years agoMerge remote-tracking branch 'jfs/next'
Stephen Rothwell [Tue, 9 Aug 2011 01:23:37 +0000 (11:23 +1000)]
Merge remote-tracking branch 'jfs/next'

13 years agoMerge remote-tracking branch 'gfs2/master'
Stephen Rothwell [Tue, 9 Aug 2011 01:22:21 +0000 (11:22 +1000)]
Merge remote-tracking branch 'gfs2/master'

13 years agoMerge remote-tracking branch 'fuse/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:21:04 +0000 (11:21 +1000)]
Merge remote-tracking branch 'fuse/for-next'

13 years agoMerge remote-tracking branch 'cifs/master'
Stephen Rothwell [Tue, 9 Aug 2011 01:20:57 +0000 (11:20 +1000)]
Merge remote-tracking branch 'cifs/master'

13 years agoMerge remote-tracking branch 'ceph/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:20:55 +0000 (11:20 +1000)]
Merge remote-tracking branch 'ceph/for-next'

Conflicts:
fs/ceph/export.c

13 years agoMerge remote-tracking branch 'unicore32/unicore32'
Stephen Rothwell [Tue, 9 Aug 2011 01:19:34 +0000 (11:19 +1000)]
Merge remote-tracking branch 'unicore32/unicore32'

13 years agoMerge remote-tracking branch 'sh/sh-latest'
Stephen Rothwell [Tue, 9 Aug 2011 01:18:18 +0000 (11:18 +1000)]
Merge remote-tracking branch 'sh/sh-latest'

13 years agoMerge remote-tracking branch 's390/features'
Stephen Rothwell [Tue, 9 Aug 2011 01:17:05 +0000 (11:17 +1000)]
Merge remote-tracking branch 's390/features'

13 years agoMerge remote-tracking branch '52xx-and-virtex/powerpc/next'
Stephen Rothwell [Tue, 9 Aug 2011 01:15:46 +0000 (11:15 +1000)]
Merge remote-tracking branch '52xx-and-virtex/powerpc/next'

13 years agoMerge remote-tracking branch 'mips/mips-for-linux-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:14:23 +0000 (11:14 +1000)]
Merge remote-tracking branch 'mips/mips-for-linux-next'

13 years agoMerge remote-tracking branch 'm68knommu/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:14:20 +0000 (11:14 +1000)]
Merge remote-tracking branch 'm68knommu/for-next'

13 years agoMerge remote-tracking branch 'cris/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:12:55 +0000 (11:12 +1000)]
Merge remote-tracking branch 'cris/for-next'

13 years agoMerge remote-tracking branch 'blackfin/for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 01:11:43 +0000 (11:11 +1000)]
Merge remote-tracking branch 'blackfin/for-linus'

13 years agoMerge remote-tracking branch 'ux500-core/ux500-core'
Stephen Rothwell [Tue, 9 Aug 2011 01:11:40 +0000 (11:11 +1000)]
Merge remote-tracking branch 'ux500-core/ux500-core'

13 years agoMerge remote-tracking branch 's5p/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:10:25 +0000 (11:10 +1000)]
Merge remote-tracking branch 's5p/for-next'

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

13 years agoMerge remote-tracking branch 'msm/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:09:00 +0000 (11:09 +1000)]
Merge remote-tracking branch 'msm/for-next'

Conflicts:
arch/arm/mach-msm/io.c

13 years agoMerge remote-tracking branch 'arm-soc/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:08:49 +0000 (11:08 +1000)]
Merge remote-tracking branch 'arm-soc/for-next'

Conflicts:
arch/arm/mach-exynos4/pm.c
arch/arm/mach-imx/mm-imx25.c
arch/arm/mach-imx/mm-imx31.c
arch/arm/mach-imx/mm-imx35.c
arch/arm/mach-mx5/mm.c
arch/arm/mach-omap2/cm-regbits-44xx.h

13 years agoMerge remote-tracking branch 'arm-lpae/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:07:16 +0000 (11:07 +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/proc-fns.h
arch/arm/include/asm/tlb.h
arch/arm/mm/context.c
arch/arm/mm/proc-v7.S

13 years agoMerge remote-tracking branch 'arm/for-next'
Stephen Rothwell [Tue, 9 Aug 2011 01:05:56 +0000 (11:05 +1000)]
Merge remote-tracking branch 'arm/for-next'

13 years agoMerge remote-tracking branch 'fbdev-current/fbdev-fixes-for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:58 +0000 (10:59 +1000)]
Merge remote-tracking branch 'fbdev-current/fbdev-fixes-for-linus'

13 years agoMerge remote-tracking branch 'rmobile-current/rmobile-fixes-for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:56 +0000 (10:59 +1000)]
Merge remote-tracking branch 'rmobile-current/rmobile-fixes-for-linus'

13 years agoMerge remote-tracking branch 'sh-current/sh-fixes-for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:55 +0000 (10:59 +1000)]
Merge remote-tracking branch 'sh-current/sh-fixes-for-linus'

13 years agoMerge remote-tracking branch 'input-current/for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:44 +0000 (10:59 +1000)]
Merge remote-tracking branch 'input-current/for-linus'

13 years agoMerge remote-tracking branch 'staging.current/staging-linus'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:42 +0000 (10:59 +1000)]
Merge remote-tracking branch 'staging.current/staging-linus'

13 years agoMerge remote-tracking branch 'usb.current/usb-linus'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:41 +0000 (10:59 +1000)]
Merge remote-tracking branch 'usb.current/usb-linus'

13 years agoMerge remote-tracking branch 'tty.current/tty-linus'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:41 +0000 (10:59 +1000)]
Merge remote-tracking branch 'tty.current/tty-linus'

13 years agoMerge remote-tracking branch 'driver-core.current/driver-core-linus'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:40 +0000 (10:59 +1000)]
Merge remote-tracking branch 'driver-core.current/driver-core-linus'

13 years agoMerge remote-tracking branch 'pci-current/for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:38 +0000 (10:59 +1000)]
Merge remote-tracking branch 'pci-current/for-linus'

13 years agoMerge remote-tracking branch 'sound-current/for-linus'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:38 +0000 (10:59 +1000)]
Merge remote-tracking branch 'sound-current/for-linus'

13 years agoMerge remote-tracking branch 'net-current/master'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:37 +0000 (10:59 +1000)]
Merge remote-tracking branch 'net-current/master'

13 years agoMerge remote-tracking branch 'powerpc-merge/merge'
Stephen Rothwell [Tue, 9 Aug 2011 00:59:35 +0000 (10:59 +1000)]
Merge remote-tracking branch 'powerpc-merge/merge'

13 years agoAdd a documentation file describing the usage of Ramoops
Sergiu Iordache [Tue, 9 Aug 2011 00:49:52 +0000 (10:49 +1000)]
Add a documentation file describing the usage of Ramoops

Signed-off-by: Sergiu Iordache <sergiu@chromium.org>
Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
13 years agoInitial EXPERIMENTAL implementation of device-mapper thin provisioning
Joe Thornber [Tue, 9 Aug 2011 00:50:00 +0000 (10:50 +1000)]
Initial EXPERIMENTAL implementation of device-mapper thin provisioning
with snapshot support.  The 'thin' target is used to create instances of
the virtual devices that are hosted in the 'thin-pool' target.  The
thin-pool target provides data sharing among devices.  This sharing is
made possible using the persistent-data library in the previous patch.

The main highlight of this implementation, compared to the previous
implementation of snapshots, is that it allows many virtual devices to
be stored on the same data volume, simplifying administration and
allowing sharing of data between volumes (thus reducing disk usage).

Another big feature is support for arbitrary depth of recursive
snapshots (snapshots of snapshots of snapshots ...).  The previous
implementation of snapshots did this by chaining together lookup tables,
and so performance was O(depth).  This new implementation uses a single
data structure so we don't get this degradation with depth.

For further information and examples of how to use this, please read
Documentation/device-mapper/thin-provisioning.txt

Signed-off-by: Joe Thornber <thornber@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoThe persistent-data library offers a re-usable framework for the storage
Joe Thornber [Tue, 9 Aug 2011 00:50:00 +0000 (10:50 +1000)]
The persistent-data library offers a re-usable framework for the storage
and management of on-disk metadata in device-mapper targets.

It's used by the thin-provisioning target in the next patch and in an
upcoming hierarchical storage target.

For further information, please read
Documentation/device-mapper/persistent-data.txt

Signed-off-by: Joe Thornber <thornber@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoExport dm_get_md() for the new thin provisioning target to use.
Alasdair G Kergon [Tue, 9 Aug 2011 00:49:59 +0000 (10:49 +1000)]
Export dm_get_md() for the new thin provisioning target to use.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoAdd a target feature flag to indicate that a target does not work in
Alasdair G Kergon [Tue, 9 Aug 2011 00:49:59 +0000 (10:49 +1000)]
Add a target feature flag to indicate that a target does not work in
read-only mode.

The thin provisioning target uses this.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoIntroduce the concept of a singleton table which contains exactly one target.
Alasdair G Kergon [Tue, 9 Aug 2011 00:49:58 +0000 (10:49 +1000)]
Introduce the concept of a singleton table which contains exactly one target.

If a target type sets the DM_TARGET_SINGLETON feature bit device-mapper
will ensure that any table that includes that target contains no others.

The thin provisioning pool target uses this.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoThis patch introduces dm_kcopyd_zero() to make it easy to use
Mikulas Patocka [Tue, 9 Aug 2011 00:49:58 +0000 (10:49 +1000)]
This patch introduces dm_kcopyd_zero() to make it easy to use
kcopyd to write zeros into the requested areas instead
instead of copying.  It is implemented by passing a NULL
copying source to dm_kcopyd_copy().

The forthcoming thin provisioning target uses this.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoprintk_ratelimit() shares global ratelimiting state with all
Namhyung Kim [Tue, 9 Aug 2011 00:49:58 +0000 (10:49 +1000)]
printk_ratelimit() shares global ratelimiting state with all
other subsystems, so its usage is discouraged. Instead,
define and use dm's local state.

Signed-off-by: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoAllow QUEUE_FLAG_NONROT to propagate up the device stack if all
Mandeep Singh Baines [Tue, 9 Aug 2011 00:49:58 +0000 (10:49 +1000)]
Allow QUEUE_FLAG_NONROT to propagate up the device stack if all
underlying devices are non-rotational.  Tools like ureadahead will
schedule IOs differently based on the rotational flag.

With this patch, I see boot time go from 7.75 s to 7.46 s on my device.

Suggested-by: J. Richard Barnette <jrbarnette@chromium.org>
Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Cc: Neil Brown <neilb@suse.de>
Cc: Jens Axboe <jaxboe@fusionio.com>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: dm-devel@redhat.com
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoCommit a63a5cf (dm: improve block integrity support) introduced a
Mike Snitzer [Tue, 9 Aug 2011 00:49:57 +0000 (10:49 +1000)]
Commit a63a5cf (dm: improve block integrity support) introduced a
two-phase initialization of a DM device's integrity profile.  This
patch avoids dereferencing a NULL 'template_disk' pointer in
blk_integrity_register() if there is an integrity profile mismatch in
dm_table_set_integrity().

This can occur if the integrity profiles for stacked devices in a DM
table are changed between the call to dm_table_prealloc_integrity() and
dm_table_set_integrity().

Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Cc: stable@kernel.org # 2.6.39
13 years agoIf no arguments were provided to the corrupt_bio_byte feature an error
Mike Snitzer [Tue, 9 Aug 2011 00:49:57 +0000 (10:49 +1000)]
If no arguments were provided to the corrupt_bio_byte feature an error
should be returned immediately.

Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
13 years agoMerge branch 'pm-domains' into linux-next
Rafael J. Wysocki [Mon, 8 Aug 2011 21:45:51 +0000 (23:45 +0200)]
Merge branch 'pm-domains' into linux-next

* pm-domains:
  ARM / shmobile: Make A3RV be a subdomain of A4LC on SH7372
  PM / Domains: Rename argument of pm_genpd_add_subdomain()
  PM / Domains: Rename GPD_STATE_WAIT_PARENT to GPD_STATE_WAIT_MASTER
  PM / Domains: Allow generic PM domains to have multiple masters
  PM / Domains: Add "wait for parent" status for generic PM domains
  PM / Domains: Make pm_genpd_poweron() always survive parent removal
  PM / Domains: Do not take parent locks to modify subdomain counters
  PM / Domains: Implement subdomain counters as atomic fields

13 years agoARM / shmobile: Make A3RV be a subdomain of A4LC on SH7372
Rafael J. Wysocki [Mon, 8 Aug 2011 21:44:19 +0000 (23:44 +0200)]
ARM / shmobile: Make A3RV be a subdomain of A4LC on SH7372

Instead of coding the undocumented dependencies between power domains
A3RV and A4LC on SH7372 directly into the low-level power up/down
routines, make A3RV be a subdomain of A4LC, which will cause the
same dependecies to hold.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
13 years agoPM / Domains: Rename argument of pm_genpd_add_subdomain()
Rafael J. Wysocki [Mon, 8 Aug 2011 21:43:59 +0000 (23:43 +0200)]
PM / Domains: Rename argument of pm_genpd_add_subdomain()

Change the name of the second argument of pm_genpd_add_subdomain()
so that it is (a) shorter and (b) in agreement with the name of
the second argument of pm_genpd_add_subdomain().

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
13 years agoPM / Domains: Rename GPD_STATE_WAIT_PARENT to GPD_STATE_WAIT_MASTER
Rafael J. Wysocki [Mon, 8 Aug 2011 21:43:50 +0000 (23:43 +0200)]
PM / Domains: Rename GPD_STATE_WAIT_PARENT to GPD_STATE_WAIT_MASTER

Since it is now possible for a PM domain to have multiple masters
instead of one parent, rename the "wait for parent" status to reflect
the new situation.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
13 years agoPM / Domains: Allow generic PM domains to have multiple masters
Rafael J. Wysocki [Mon, 8 Aug 2011 21:43:40 +0000 (23:43 +0200)]
PM / Domains: Allow generic PM domains to have multiple masters

Currently, for a given generic PM domain there may be only one parent
domain (i.e. a PM domain it depends on).  However, there is at least
one real-life case in which there should be two parents (masters) for
one PM domain (the A3RV domain on SH7372 turns out to depend on the
A4LC domain and it depends on the A4R domain and the same time). For
this reason, allow a PM domain to have multiple parents (masters) by
introducing objects representing links between PM domains.

The (logical) links between PM domains represent relationships in
which one domain is a master (i.e. it is depended on) and another
domain is a slave (i.e. it depends on the master) with the rule that
the slave cannot be powered on if the master is not powered on and
the master cannot be powered off if the slave is not powered off.
Each struct generic_pm_domain object representing a PM domain has
two lists of links, a list of links in which it is a master and
a list of links in which it is a slave.  The first of these lists
replaces the list of subdomains and the second one is used in place
of the parent pointer.

Each link is represented by struct gpd_link object containing
pointers to the master and the slave and two struct list_head
members allowing it to hook into two lists (the master's list
of "master" links and the slave's list of "slave" links).  This
allows the code to get to the link from each side (either from
the master or from the slave) and follow it in each direction.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
13 years agoPM / Domains: Add "wait for parent" status for generic PM domains
Rafael J. Wysocki [Mon, 8 Aug 2011 21:43:29 +0000 (23:43 +0200)]
PM / Domains: Add "wait for parent" status for generic PM domains

The next patch will make it possible for a generic PM domain to have
multiple parents (i.e. multiple PM domains it depends on).  To
prepare for that change it is necessary to change pm_genpd_poweron()
so that it doesn't jump to the start label after running itself
recursively for the parent domain.  For this purpose, introduce a new
PM domain status value GPD_STATE_WAIT_PARENT that will be set by
pm_genpd_poweron() before calling itself recursively for the parent
domain and modify the code in drivers/base/power/domain.c so that
the GPD_STATE_WAIT_PARENT status is guaranteed to be preserved during
the execution of pm_genpd_poweron() for the parent.

This change also causes pm_genpd_add_subdomain() and
pm_genpd_remove_subdomain() to wait for started pm_genpd_poweron() to
complete and allows pm_genpd_runtime_resume() to avoid dropping the
lock after powering on the PM domain.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
13 years agoPM / Domains: Make pm_genpd_poweron() always survive parent removal
Rafael J. Wysocki [Mon, 8 Aug 2011 21:43:22 +0000 (23:43 +0200)]
PM / Domains: Make pm_genpd_poweron() always survive parent removal

If pm_genpd_remove_subdomain() is called to remove a PM domain's
subdomain and pm_genpd_poweron() is called for that subdomain at
the same time, and the pm_genpd_poweron() called by it recursively
for the parent returns an error, the first pm_genpd_poweron()'s
error code path will attempt to decrement the subdomain counter of
a PM domain that it's not a subdomain of any more.

Rearrange the code in pm_genpd_poweron() to prevent this from
happening.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
13 years agoPM / Domains: Do not take parent locks to modify subdomain counters
Rafael J. Wysocki [Mon, 8 Aug 2011 21:43:14 +0000 (23:43 +0200)]
PM / Domains: Do not take parent locks to modify subdomain counters

After the subdomain counter in struct generic_pm_domain has been
changed into an atomic_t field, it is possible to modify
pm_genpd_poweron() and pm_genpd_poweroff() so that they don't take
the parents locks.  This requires pm_genpd_poweron() to increment
the parent's subdomain counter before calling itself recursively
for the parent and to decrement it if an error is to be returned.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
13 years agoPM / Domains: Implement subdomain counters as atomic fields
Rafael J. Wysocki [Mon, 8 Aug 2011 21:43:04 +0000 (23:43 +0200)]
PM / Domains: Implement subdomain counters as atomic fields

Currently, pm_genpd_poweron() and pm_genpd_poweroff() need to take
the parent PM domain's lock in order to modify the parent's counter
of active subdomains in a nonracy way.  This causes the locking to be
considerably complex and in fact is not necessary, because the
subdomain counters may be implemented as atomic fields and they
won't have to be modified under a lock.

Replace the unsigned in sd_count field in struct generic_pm_domain
by an atomic_t one and modify the code in drivers/base/power/domain.c
to take this change into account.

This patch doesn't change the locking yet, that is going to be done
in a separate subsequent patch.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
13 years agoPM / Runtime: Add might_sleep() to runtime PM functions
Colin Cross [Mon, 8 Aug 2011 21:39:36 +0000 (23:39 +0200)]
PM / Runtime: Add might_sleep() to runtime PM functions

Some of the entry points to pm runtime are not safe to
call in atomic context unless pm_runtime_irq_safe() has
been called.  Inspecting the code, it is not immediately
obvious that the functions sleep at all, as they run
inside a spin_lock_irqsave, but under some conditions
they can drop the lock and turn on irqs.

If a driver incorrectly calls the pm_runtime apis, it can
cause sleeping and irq processing when it expects to stay
in atomic context.

Add might_sleep_if to the majority of the __pm_runtime_* entry points
to enforce correct usage.

Add pm_runtime_put_sync_autosuspend to the list of
functions that can be called in atomic context.

Signed-off-by: Colin Cross <ccross@android.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>