aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.vnet.ibm.com>2012-09-04 13:36:41 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2012-09-26 09:45:09 -0400
commitc3e6d407c0c09fb46a391bdd0a28827472825de7 (patch)
treee81b40186f8224dd0e8f62f77c29d445d91e5873 /drivers
parent50ab9a9a60fc83b8e8db36b54f365226e2b139ac (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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/s390/block/scm_drv.c11
-rw-r--r--drivers/s390/cio/scm.c6
2 files changed, 3 insertions, 14 deletions
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
57static int scm_remove(struct scm_device *scmdev) 51static 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/*