diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/megaraid.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index ec81532eb845..6ee88c59953e 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c | |||
@@ -1938,7 +1938,7 @@ megaraid_abort(Scsi_Cmnd *cmd) | |||
1938 | 1938 | ||
1939 | 1939 | ||
1940 | static int | 1940 | static int |
1941 | __megaraid_reset(Scsi_Cmnd *cmd) | 1941 | megaraid_reset(struct scsi_cmnd *cmd) |
1942 | { | 1942 | { |
1943 | adapter_t *adapter; | 1943 | adapter_t *adapter; |
1944 | megacmd_t mc; | 1944 | megacmd_t mc; |
@@ -1950,7 +1950,6 @@ __megaraid_reset(Scsi_Cmnd *cmd) | |||
1950 | mc.cmd = MEGA_CLUSTER_CMD; | 1950 | mc.cmd = MEGA_CLUSTER_CMD; |
1951 | mc.opcode = MEGA_RESET_RESERVATIONS; | 1951 | mc.opcode = MEGA_RESET_RESERVATIONS; |
1952 | 1952 | ||
1953 | spin_unlock_irq(&adapter->lock); | ||
1954 | if( mega_internal_command(adapter, LOCK_INT, &mc, NULL) != 0 ) { | 1953 | if( mega_internal_command(adapter, LOCK_INT, &mc, NULL) != 0 ) { |
1955 | printk(KERN_WARNING | 1954 | printk(KERN_WARNING |
1956 | "megaraid: reservation reset failed.\n"); | 1955 | "megaraid: reservation reset failed.\n"); |
@@ -1958,9 +1957,10 @@ __megaraid_reset(Scsi_Cmnd *cmd) | |||
1958 | else { | 1957 | else { |
1959 | printk(KERN_INFO "megaraid: reservation reset.\n"); | 1958 | printk(KERN_INFO "megaraid: reservation reset.\n"); |
1960 | } | 1959 | } |
1961 | spin_lock_irq(&adapter->lock); | ||
1962 | #endif | 1960 | #endif |
1963 | 1961 | ||
1962 | spin_lock_irq(&adapter->lock); | ||
1963 | |||
1964 | rval = megaraid_abort_and_reset(adapter, cmd, SCB_RESET); | 1964 | rval = megaraid_abort_and_reset(adapter, cmd, SCB_RESET); |
1965 | 1965 | ||
1966 | /* | 1966 | /* |
@@ -1968,24 +1968,11 @@ __megaraid_reset(Scsi_Cmnd *cmd) | |||
1968 | * to be communicated over to the mid layer. | 1968 | * to be communicated over to the mid layer. |
1969 | */ | 1969 | */ |
1970 | mega_rundoneq(adapter); | 1970 | mega_rundoneq(adapter); |
1971 | |||
1972 | return rval; | ||
1973 | } | ||
1974 | |||
1975 | static int | ||
1976 | megaraid_reset(Scsi_Cmnd *cmd) | ||
1977 | { | ||
1978 | adapter_t *adapter = (adapter_t *)cmd->device->host->hostdata; | ||
1979 | int rc; | ||
1980 | |||
1981 | spin_lock_irq(&adapter->lock); | ||
1982 | rc = __megaraid_reset(cmd); | ||
1983 | spin_unlock_irq(&adapter->lock); | 1971 | spin_unlock_irq(&adapter->lock); |
1984 | 1972 | ||
1985 | return rc; | 1973 | return rval; |
1986 | } | 1974 | } |
1987 | 1975 | ||
1988 | |||
1989 | /** | 1976 | /** |
1990 | * megaraid_abort_and_reset() | 1977 | * megaraid_abort_and_reset() |
1991 | * @adapter - megaraid soft state | 1978 | * @adapter - megaraid soft state |