diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/char/watchdog/ixp2000_wdt.c | 7 | ||||
-rw-r--r-- | drivers/fc4/fc.c | 6 | ||||
-rw-r--r-- | drivers/scsi/aic7xxx/aic79xx_osm.c | 8 |
3 files changed, 12 insertions, 9 deletions
diff --git a/drivers/char/watchdog/ixp2000_wdt.c b/drivers/char/watchdog/ixp2000_wdt.c index ab659d37b4d2..4e98c215e5b1 100644 --- a/drivers/char/watchdog/ixp2000_wdt.c +++ b/drivers/char/watchdog/ixp2000_wdt.c | |||
@@ -192,7 +192,12 @@ static struct miscdevice ixp2000_wdt_miscdev = | |||
192 | 192 | ||
193 | static int __init ixp2000_wdt_init(void) | 193 | static int __init ixp2000_wdt_init(void) |
194 | { | 194 | { |
195 | wdt_tick_rate = (*IXP2000_T1_CLD * HZ)/ 256;; | 195 | if ((*IXP2000_PRODUCT_ID & 0x001ffef0) == 0x00000000) { |
196 | printk(KERN_INFO "Unable to use IXP2000 watchdog due to IXP2800 erratum #25.\n"); | ||
197 | return -EIO; | ||
198 | } | ||
199 | |||
200 | wdt_tick_rate = (*IXP2000_T1_CLD * HZ) / 256; | ||
196 | 201 | ||
197 | return misc_register(&ixp2000_wdt_miscdev); | 202 | return misc_register(&ixp2000_wdt_miscdev); |
198 | } | 203 | } |
diff --git a/drivers/fc4/fc.c b/drivers/fc4/fc.c index fbd9ff79b7b8..e3c958823533 100644 --- a/drivers/fc4/fc.c +++ b/drivers/fc4/fc.c | |||
@@ -765,8 +765,6 @@ void fcp_release(fc_channel *fcchain, int count) /* count must > 0 */ | |||
765 | 765 | ||
766 | static void fcp_scsi_done (Scsi_Cmnd *SCpnt) | 766 | static void fcp_scsi_done (Scsi_Cmnd *SCpnt) |
767 | { | 767 | { |
768 | unsigned long flags; | ||
769 | |||
770 | if (FCP_CMND(SCpnt)->done) | 768 | if (FCP_CMND(SCpnt)->done) |
771 | FCP_CMND(SCpnt)->done(SCpnt); | 769 | FCP_CMND(SCpnt)->done(SCpnt); |
772 | } | 770 | } |
@@ -907,8 +905,6 @@ int fcp_scsi_abort(Scsi_Cmnd *SCpnt) | |||
907 | */ | 905 | */ |
908 | 906 | ||
909 | if (++fc->abort_count < (fc->can_queue >> 1)) { | 907 | if (++fc->abort_count < (fc->can_queue >> 1)) { |
910 | unsigned long flags; | ||
911 | |||
912 | SCpnt->result = DID_ABORT; | 908 | SCpnt->result = DID_ABORT; |
913 | fcmd->done(SCpnt); | 909 | fcmd->done(SCpnt); |
914 | printk("FC: soft abort\n"); | 910 | printk("FC: soft abort\n"); |
@@ -931,6 +927,7 @@ void fcp_scsi_reset_done(Scsi_Cmnd *SCpnt) | |||
931 | 927 | ||
932 | int fcp_scsi_dev_reset(Scsi_Cmnd *SCpnt) | 928 | int fcp_scsi_dev_reset(Scsi_Cmnd *SCpnt) |
933 | { | 929 | { |
930 | unsigned long flags; | ||
934 | fcp_cmd *cmd; | 931 | fcp_cmd *cmd; |
935 | fcp_cmnd *fcmd; | 932 | fcp_cmnd *fcmd; |
936 | fc_channel *fc = FC_SCMND(SCpnt); | 933 | fc_channel *fc = FC_SCMND(SCpnt); |
@@ -1028,6 +1025,7 @@ static int __fcp_scsi_host_reset(Scsi_Cmnd *SCpnt) | |||
1028 | 1025 | ||
1029 | int fcp_scsi_host_reset(Scsi_Cmnd *SCpnt) | 1026 | int fcp_scsi_host_reset(Scsi_Cmnd *SCpnt) |
1030 | { | 1027 | { |
1028 | unsigned long flags; | ||
1031 | int rc; | 1029 | int rc; |
1032 | 1030 | ||
1033 | spin_lock_irqsave(SCpnt->device->host->host_lock, flags); | 1031 | spin_lock_irqsave(SCpnt->device->host->host_lock, flags); |
diff --git a/drivers/scsi/aic7xxx/aic79xx_osm.c b/drivers/scsi/aic7xxx/aic79xx_osm.c index c4eaaad2c69b..5f526dd0aaa1 100644 --- a/drivers/scsi/aic7xxx/aic79xx_osm.c +++ b/drivers/scsi/aic7xxx/aic79xx_osm.c | |||
@@ -941,7 +941,7 @@ ahd_linux_queue(Scsi_Cmnd * cmd, void (*scsi_done) (Scsi_Cmnd *)) | |||
941 | */ | 941 | */ |
942 | cmd->scsi_done = scsi_done; | 942 | cmd->scsi_done = scsi_done; |
943 | 943 | ||
944 | ahd_lock(ahd, &flags); | 944 | ahd_midlayer_entrypoint_lock(ahd, &flags); |
945 | 945 | ||
946 | /* | 946 | /* |
947 | * Close the race of a command that was in the process of | 947 | * Close the race of a command that was in the process of |
@@ -955,7 +955,7 @@ ahd_linux_queue(Scsi_Cmnd * cmd, void (*scsi_done) (Scsi_Cmnd *)) | |||
955 | ahd_cmd_set_transaction_status(cmd, CAM_REQUEUE_REQ); | 955 | ahd_cmd_set_transaction_status(cmd, CAM_REQUEUE_REQ); |
956 | ahd_linux_queue_cmd_complete(ahd, cmd); | 956 | ahd_linux_queue_cmd_complete(ahd, cmd); |
957 | ahd_schedule_completeq(ahd); | 957 | ahd_schedule_completeq(ahd); |
958 | ahd_unlock(ahd, &flags); | 958 | ahd_midlayer_entrypoint_unlock(ahd, &flags); |
959 | return (0); | 959 | return (0); |
960 | } | 960 | } |
961 | dev = ahd_linux_get_device(ahd, cmd->device->channel, | 961 | dev = ahd_linux_get_device(ahd, cmd->device->channel, |
@@ -965,7 +965,7 @@ ahd_linux_queue(Scsi_Cmnd * cmd, void (*scsi_done) (Scsi_Cmnd *)) | |||
965 | ahd_cmd_set_transaction_status(cmd, CAM_RESRC_UNAVAIL); | 965 | ahd_cmd_set_transaction_status(cmd, CAM_RESRC_UNAVAIL); |
966 | ahd_linux_queue_cmd_complete(ahd, cmd); | 966 | ahd_linux_queue_cmd_complete(ahd, cmd); |
967 | ahd_schedule_completeq(ahd); | 967 | ahd_schedule_completeq(ahd); |
968 | ahd_unlock(ahd, &flags); | 968 | ahd_midlayer_entrypoint_unlock(ahd, &flags); |
969 | printf("%s: aic79xx_linux_queue - Unable to allocate device!\n", | 969 | printf("%s: aic79xx_linux_queue - Unable to allocate device!\n", |
970 | ahd_name(ahd)); | 970 | ahd_name(ahd)); |
971 | return (0); | 971 | return (0); |
@@ -979,7 +979,7 @@ ahd_linux_queue(Scsi_Cmnd * cmd, void (*scsi_done) (Scsi_Cmnd *)) | |||
979 | dev->flags |= AHD_DEV_ON_RUN_LIST; | 979 | dev->flags |= AHD_DEV_ON_RUN_LIST; |
980 | ahd_linux_run_device_queues(ahd); | 980 | ahd_linux_run_device_queues(ahd); |
981 | } | 981 | } |
982 | ahd_unlock(ahd, &flags); | 982 | ahd_midlayer_entrypoint_unlock(ahd, &flags); |
983 | return (0); | 983 | return (0); |
984 | } | 984 | } |
985 | 985 | ||