diff options
author | Sebastian Ott <sebott@linux.vnet.ibm.com> | 2012-09-04 13:36:41 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2012-09-26 09:45:09 -0400 |
commit | c3e6d407c0c09fb46a391bdd0a28827472825de7 (patch) | |
tree | e81b40186f8224dd0e8f62f77c29d445d91e5873 | |
parent | 50ab9a9a60fc83b8e8db36b54f365226e2b139ac (diff) |
s390/scm: remove superfluous lock
Remove the spinlock from struct scm_device. drvdata and attributes
are guarded via device_lock.
Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r-- | arch/s390/include/asm/eadm.h | 2 | ||||
-rw-r--r-- | drivers/s390/block/scm_drv.c | 11 | ||||
-rw-r--r-- | drivers/s390/cio/scm.c | 6 |
3 files changed, 3 insertions, 16 deletions
diff --git a/arch/s390/include/asm/eadm.h b/arch/s390/include/asm/eadm.h index 4d6e103f6e26..8d4847191ecc 100644 --- a/arch/s390/include/asm/eadm.h +++ b/arch/s390/include/asm/eadm.h | |||
@@ -3,7 +3,6 @@ | |||
3 | 3 | ||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <linux/device.h> | 5 | #include <linux/device.h> |
6 | #include <linux/spinlock.h> | ||
7 | 6 | ||
8 | struct arqb { | 7 | struct arqb { |
9 | u64 data; | 8 | u64 data; |
@@ -83,7 +82,6 @@ struct scm_device { | |||
83 | u64 size; | 82 | u64 size; |
84 | unsigned int nr_max_block; | 83 | unsigned int nr_max_block; |
85 | struct device dev; | 84 | struct device dev; |
86 | spinlock_t lock; | ||
87 | struct { | 85 | struct { |
88 | unsigned int persistence:4; | 86 | unsigned int persistence:4; |
89 | unsigned int oper_state:4; | 87 | unsigned int oper_state:4; |
diff --git a/drivers/s390/block/scm_drv.c b/drivers/s390/block/scm_drv.c index fce711a63060..349966f6fc52 100644 --- a/drivers/s390/block/scm_drv.c +++ b/drivers/s390/block/scm_drv.c | |||
@@ -9,7 +9,6 @@ | |||
9 | #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt | 9 | #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt |
10 | 10 | ||
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <linux/spinlock.h> | ||
13 | #include <linux/slab.h> | 12 | #include <linux/slab.h> |
14 | #include <asm/eadm.h> | 13 | #include <asm/eadm.h> |
15 | #include "scm_blk.h" | 14 | #include "scm_blk.h" |
@@ -37,15 +36,10 @@ static int scm_probe(struct scm_device *scmdev) | |||
37 | if (!bdev) | 36 | if (!bdev) |
38 | return -ENOMEM; | 37 | return -ENOMEM; |
39 | 38 | ||
40 | spin_lock_irq(&scmdev->lock); | ||
41 | dev_set_drvdata(&scmdev->dev, bdev); | 39 | dev_set_drvdata(&scmdev->dev, bdev); |
42 | spin_unlock_irq(&scmdev->lock); | ||
43 | |||
44 | ret = scm_blk_dev_setup(bdev, scmdev); | 40 | ret = scm_blk_dev_setup(bdev, scmdev); |
45 | if (ret) { | 41 | if (ret) { |
46 | spin_lock_irq(&scmdev->lock); | ||
47 | dev_set_drvdata(&scmdev->dev, NULL); | 42 | dev_set_drvdata(&scmdev->dev, NULL); |
48 | spin_unlock_irq(&scmdev->lock); | ||
49 | kfree(bdev); | 43 | kfree(bdev); |
50 | goto out; | 44 | goto out; |
51 | } | 45 | } |
@@ -56,12 +50,9 @@ out: | |||
56 | 50 | ||
57 | static int scm_remove(struct scm_device *scmdev) | 51 | static int scm_remove(struct scm_device *scmdev) |
58 | { | 52 | { |
59 | struct scm_blk_dev *bdev; | 53 | struct scm_blk_dev *bdev = dev_get_drvdata(&scmdev->dev); |
60 | 54 | ||
61 | spin_lock_irq(&scmdev->lock); | ||
62 | bdev = dev_get_drvdata(&scmdev->dev); | ||
63 | dev_set_drvdata(&scmdev->dev, NULL); | 55 | dev_set_drvdata(&scmdev->dev, NULL); |
64 | spin_unlock_irq(&scmdev->lock); | ||
65 | scm_blk_dev_cleanup(bdev); | 56 | scm_blk_dev_cleanup(bdev); |
66 | kfree(bdev); | 57 | kfree(bdev); |
67 | 58 | ||
diff --git a/drivers/s390/cio/scm.c b/drivers/s390/cio/scm.c index aa4476e92050..bcf20f3aa51b 100644 --- a/drivers/s390/cio/scm.c +++ b/drivers/s390/cio/scm.c | |||
@@ -5,7 +5,6 @@ | |||
5 | * Author(s): Sebastian Ott <sebott@linux.vnet.ibm.com> | 5 | * Author(s): Sebastian Ott <sebott@linux.vnet.ibm.com> |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/spinlock.h> | ||
9 | #include <linux/device.h> | 8 | #include <linux/device.h> |
10 | #include <linux/module.h> | 9 | #include <linux/module.h> |
11 | #include <linux/mutex.h> | 10 | #include <linux/mutex.h> |
@@ -134,9 +133,9 @@ static ssize_t show_##name(struct device *dev, \ | |||
134 | struct scm_device *scmdev = to_scm_dev(dev); \ | 133 | struct scm_device *scmdev = to_scm_dev(dev); \ |
135 | int ret; \ | 134 | int ret; \ |
136 | \ | 135 | \ |
137 | spin_lock(&scmdev->lock); \ | 136 | device_lock(dev); \ |
138 | ret = sprintf(buf, "%u\n", scmdev->attrs.name); \ | 137 | ret = sprintf(buf, "%u\n", scmdev->attrs.name); \ |
139 | spin_unlock(&scmdev->lock); \ | 138 | device_unlock(dev); \ |
140 | \ | 139 | \ |
141 | return ret; \ | 140 | return ret; \ |
142 | } \ | 141 | } \ |
@@ -193,7 +192,6 @@ static void scmdev_setup(struct scm_device *scmdev, struct sale *sale, | |||
193 | scmdev->dev.bus = &scm_bus_type; | 192 | scmdev->dev.bus = &scm_bus_type; |
194 | scmdev->dev.release = scmdev_release; | 193 | scmdev->dev.release = scmdev_release; |
195 | scmdev->dev.groups = scmdev_attr_groups; | 194 | scmdev->dev.groups = scmdev_attr_groups; |
196 | spin_lock_init(&scmdev->lock); | ||
197 | } | 195 | } |
198 | 196 | ||
199 | /* | 197 | /* |