diff options
| -rw-r--r-- | drivers/scsi/scsi_transport_spi.c | 10 | ||||
| -rw-r--r-- | include/scsi/scsi_transport_spi.h | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/drivers/scsi/scsi_transport_spi.c b/drivers/scsi/scsi_transport_spi.c index 86306d681b6f..7ee95eb83dda 100644 --- a/drivers/scsi/scsi_transport_spi.c +++ b/drivers/scsi/scsi_transport_spi.c | |||
| @@ -24,7 +24,7 @@ | |||
| 24 | #include <linux/module.h> | 24 | #include <linux/module.h> |
| 25 | #include <linux/workqueue.h> | 25 | #include <linux/workqueue.h> |
| 26 | #include <linux/blkdev.h> | 26 | #include <linux/blkdev.h> |
| 27 | #include <asm/semaphore.h> | 27 | #include <linux/mutex.h> |
| 28 | #include <scsi/scsi.h> | 28 | #include <scsi/scsi.h> |
| 29 | #include "scsi_priv.h" | 29 | #include "scsi_priv.h" |
| 30 | #include <scsi/scsi_device.h> | 30 | #include <scsi/scsi_device.h> |
| @@ -48,7 +48,7 @@ | |||
| 48 | 48 | ||
| 49 | /* Private data accessors (keep these out of the header file) */ | 49 | /* Private data accessors (keep these out of the header file) */ |
| 50 | #define spi_dv_pending(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_pending) | 50 | #define spi_dv_pending(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_pending) |
| 51 | #define spi_dv_sem(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_sem) | 51 | #define spi_dv_mutex(x) (((struct spi_transport_attrs *)&(x)->starget_data)->dv_mutex) |
| 52 | 52 | ||
| 53 | struct spi_internal { | 53 | struct spi_internal { |
| 54 | struct scsi_transport_template t; | 54 | struct scsi_transport_template t; |
| @@ -242,7 +242,7 @@ static int spi_setup_transport_attrs(struct transport_container *tc, | |||
| 242 | spi_hold_mcs(starget) = 0; | 242 | spi_hold_mcs(starget) = 0; |
| 243 | spi_dv_pending(starget) = 0; | 243 | spi_dv_pending(starget) = 0; |
| 244 | spi_initial_dv(starget) = 0; | 244 | spi_initial_dv(starget) = 0; |
| 245 | init_MUTEX(&spi_dv_sem(starget)); | 245 | mutex_init(&spi_dv_mutex(starget)); |
| 246 | 246 | ||
| 247 | return 0; | 247 | return 0; |
| 248 | } | 248 | } |
| @@ -915,7 +915,7 @@ spi_dv_device(struct scsi_device *sdev) | |||
| 915 | scsi_target_quiesce(starget); | 915 | scsi_target_quiesce(starget); |
| 916 | 916 | ||
| 917 | spi_dv_pending(starget) = 1; | 917 | spi_dv_pending(starget) = 1; |
| 918 | down(&spi_dv_sem(starget)); | 918 | mutex_lock(&spi_dv_mutex(starget)); |
| 919 | 919 | ||
| 920 | starget_printk(KERN_INFO, starget, "Beginning Domain Validation\n"); | 920 | starget_printk(KERN_INFO, starget, "Beginning Domain Validation\n"); |
| 921 | 921 | ||
| @@ -923,7 +923,7 @@ spi_dv_device(struct scsi_device *sdev) | |||
| 923 | 923 | ||
| 924 | starget_printk(KERN_INFO, starget, "Ending Domain Validation\n"); | 924 | starget_printk(KERN_INFO, starget, "Ending Domain Validation\n"); |
| 925 | 925 | ||
| 926 | up(&spi_dv_sem(starget)); | 926 | mutex_unlock(&spi_dv_mutex(starget)); |
| 927 | spi_dv_pending(starget) = 0; | 927 | spi_dv_pending(starget) = 0; |
| 928 | 928 | ||
| 929 | scsi_target_resume(starget); | 929 | scsi_target_resume(starget); |
diff --git a/include/scsi/scsi_transport_spi.h b/include/scsi/scsi_transport_spi.h index 54a89611e9c5..2b5930ba69ec 100644 --- a/include/scsi/scsi_transport_spi.h +++ b/include/scsi/scsi_transport_spi.h | |||
| @@ -54,7 +54,7 @@ struct spi_transport_attrs { | |||
| 54 | unsigned int support_qas; /* supports quick arbitration and selection */ | 54 | unsigned int support_qas; /* supports quick arbitration and selection */ |
| 55 | /* Private Fields */ | 55 | /* Private Fields */ |
| 56 | unsigned int dv_pending:1; /* Internal flag */ | 56 | unsigned int dv_pending:1; /* Internal flag */ |
| 57 | struct semaphore dv_sem; /* semaphore to serialise dv */ | 57 | struct mutex dv_mutex; /* semaphore to serialise dv */ |
| 58 | }; | 58 | }; |
| 59 | 59 | ||
| 60 | enum spi_signal_type { | 60 | enum spi_signal_type { |
