summaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorJonathan Corbet <corbet@lwn.net>2008-05-15 16:09:48 -0600
committerJonathan Corbet <corbet@lwn.net>2008-06-20 14:05:49 -0600
commit46787b481be00d5443d385480d12470728406cf4 (patch)
treee88c6e7e2b6dededc025862cc6328ed4436f8b3a /drivers/scsi
parentb3369c68bf9d61062585f3ebc1286220191c0f84 (diff)
gdth: cdev lock_kernel() pushdown
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/gdth.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index 46771d4c81b..822d5214692 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -120,6 +120,7 @@
#include <linux/timer.h>
#include <linux/dma-mapping.h>
#include <linux/list.h>
+#include <linux/smp_lock.h>
#ifdef GDTH_RTC
#include <linux/mc146818rtc.h>
@@ -4019,10 +4020,12 @@ static int gdth_open(struct inode *inode, struct file *filep)
{
gdth_ha_str *ha;
+ lock_kernel();
list_for_each_entry(ha, &gdth_instances, list) {
if (!ha->sdev)
ha->sdev = scsi_get_host_dev(ha->shost);
}
+ unlock_kernel();
TRACE(("gdth_open()\n"));
return 0;