Commit 56660d5e authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6

into home.osdl.org:/home/torvalds/v2.5/linux
parents dfb754ee 6c4b9b99
...@@ -80,8 +80,8 @@ ...@@ -80,8 +80,8 @@
#define COPYRIGHT "Copyright (c) 1999-2003 " MODULEAUTHOR #define COPYRIGHT "Copyright (c) 1999-2003 " MODULEAUTHOR
#endif #endif
#define MPT_LINUX_VERSION_COMMON "2.05.00.05" #define MPT_LINUX_VERSION_COMMON "2.05.00.06"
#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-2.05.00.05" #define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-2.05.00.06"
#define WHAT_MAGIC_STRING "@" "(" "#" ")" #define WHAT_MAGIC_STRING "@" "(" "#" ")"
#define show_mptmod_ver(s,ver) \ #define show_mptmod_ver(s,ver) \
......
...@@ -1231,7 +1231,9 @@ mptscsih_initChainBuffers (MPT_SCSI_HOST *hd, int init) ...@@ -1231,7 +1231,9 @@ mptscsih_initChainBuffers (MPT_SCSI_HOST *hd, int init)
} else { } else {
mem = (u8 *) hd->ReqToChain; mem = (u8 *) hd->ReqToChain;
} }
memset(mem, 0xFF, sz); /* memset(mem, 0xFF, sz); */
for(ii=0;ii<hd->ioc->req_depth;ii++)
hd->ReqToChain[ii] = MPT_HOST_NO_CHAIN;
/* ChainToChain size must equal the total number /* ChainToChain size must equal the total number
......
...@@ -3914,5 +3914,7 @@ static Scsi_Host_Template aha152x_driver_template = { ...@@ -3914,5 +3914,7 @@ static Scsi_Host_Template aha152x_driver_template = {
.use_clustering = DISABLE_CLUSTERING, .use_clustering = DISABLE_CLUSTERING,
}; };
#ifndef PCMCIA
module_init(aha152x_init); module_init(aha152x_init);
module_exit(aha152x_exit); module_exit(aha152x_exit);
#endif
This diff is collapsed.
...@@ -309,16 +309,19 @@ struct nvram { ...@@ -309,16 +309,19 @@ struct nvram {
} cntr_flags_1; /* 5 */ } cntr_flags_1; /* 5 */
struct { struct {
uint16_t boot_lun_number:5; uint8_t boot_lun_number:5;
uint16_t scsi_bus_number:1; uint8_t scsi_bus_number:1;
uint16_t unused_6:1; uint8_t unused_6:1;
uint16_t unused_7:1; uint8_t unused_7:1;
uint16_t boot_target_number:4; } cntr_flags_2l; /* 7 */
uint16_t unused_12:1;
uint16_t unused_13:1; struct {
uint16_t unused_14:1; uint8_t boot_target_number:4;
uint16_t unused_15:1; uint8_t unused_12:1;
} cntr_flags_2; /* 6, 7 */ uint8_t unused_13:1;
uint8_t unused_14:1;
uint8_t unused_15:1;
} cntr_flags_2h; /* 8 */
uint16_t unused_8; /* 8, 9 */ uint16_t unused_8; /* 8, 9 */
uint16_t unused_10; /* 10, 11 */ uint16_t unused_10; /* 10, 11 */
......
...@@ -1135,8 +1135,8 @@ typedef union { ...@@ -1135,8 +1135,8 @@ typedef union {
uint16_t extended; uint16_t extended;
struct { struct {
uint8_t reserved; uint8_t reserved;
uint8_t standard;; uint8_t standard;
}; } id;
} target_id_t; } target_id_t;
#define SET_TARGET_ID(ha, to, from) \ #define SET_TARGET_ID(ha, to, from) \
...@@ -1144,7 +1144,7 @@ do { \ ...@@ -1144,7 +1144,7 @@ do { \
if (HAS_EXTENDED_IDS(ha)) \ if (HAS_EXTENDED_IDS(ha)) \
to.extended = cpu_to_le16(from); \ to.extended = cpu_to_le16(from); \
else \ else \
to.standard = (uint8_t)from; \ to.id.standard = (uint8_t)from; \
} while (0) } while (0)
/* /*
......
...@@ -1592,6 +1592,8 @@ qla2x00_configure_loop(scsi_qla_host_t *ha) ...@@ -1592,6 +1592,8 @@ qla2x00_configure_loop(scsi_qla_host_t *ha)
if (!atomic_read(&ha->loop_down_timer) && if (!atomic_read(&ha->loop_down_timer) &&
!(test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))) { !(test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))) {
qla2x00_config_os(ha);
/* If we found all devices then go ready */ /* If we found all devices then go ready */
if (!(test_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags))) { if (!(test_bit(LOGIN_RETRY_NEEDED, &ha->dpc_flags))) {
atomic_set(&ha->loop_state, LOOP_READY); atomic_set(&ha->loop_state, LOOP_READY);
......
...@@ -1420,24 +1420,22 @@ static void scsi_eh_flush_done_q(struct list_head *done_q) ...@@ -1420,24 +1420,22 @@ static void scsi_eh_flush_done_q(struct list_head *done_q)
list_for_each_safe(lh, lh_sf, done_q) { list_for_each_safe(lh, lh_sf, done_q) {
scmd = list_entry(lh, struct scsi_cmnd, eh_entry); scmd = list_entry(lh, struct scsi_cmnd, eh_entry);
list_del_init(lh); list_del_init(lh);
if (!scmd->device->online) { if (scmd->device->online &&
scmd->result |= (DRIVER_TIMEOUT << 24); (++scmd->retries < scmd->allowed)) {
} else { SCSI_LOG_ERROR_RECOVERY(3, printk("%s: flush"
if (++scmd->retries < scmd->allowed) { " retry cmd: %p\n",
SCSI_LOG_ERROR_RECOVERY(3,
printk("%s: flush retry"
" cmd: %p\n",
current->comm, current->comm,
scmd)); scmd));
scsi_queue_insert(scmd, SCSI_MLQUEUE_EH_RETRY); scsi_queue_insert(scmd, SCSI_MLQUEUE_EH_RETRY);
continue; } else {
} if (!scmd->result)
} scmd->result |= (DRIVER_TIMEOUT << 24);
SCSI_LOG_ERROR_RECOVERY(3, printk("%s: flush finish" SCSI_LOG_ERROR_RECOVERY(3, printk("%s: flush finish"
" cmd: %p\n", " cmd: %p\n",
current->comm, scmd)); current->comm, scmd));
scsi_finish_command(scmd); scsi_finish_command(scmd);
} }
}
} }
/** /**
......
...@@ -361,7 +361,6 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev) ...@@ -361,7 +361,6 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev)
if (error) { if (error) {
printk(KERN_INFO "error 2\n"); printk(KERN_INFO "error 2\n");
goto clean_device; goto clean_device;
return error;
} }
get_device(&sdev->sdev_gendev); get_device(&sdev->sdev_gendev);
...@@ -370,8 +369,10 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev) ...@@ -370,8 +369,10 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev)
for (i = 0; sdev->host->hostt->sdev_attrs[i]; i++) { for (i = 0; sdev->host->hostt->sdev_attrs[i]; i++) {
error = attr_add(&sdev->sdev_gendev, error = attr_add(&sdev->sdev_gendev,
sdev->host->hostt->sdev_attrs[i]); sdev->host->hostt->sdev_attrs[i]);
if (error) if (error) {
scsi_remove_device(sdev); scsi_remove_device(sdev);
goto out;
}
} }
} }
...@@ -380,11 +381,14 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev) ...@@ -380,11 +381,14 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev)
scsi_sysfs_sdev_attrs[i])) { scsi_sysfs_sdev_attrs[i])) {
error = device_create_file(&sdev->sdev_gendev, error = device_create_file(&sdev->sdev_gendev,
scsi_sysfs_sdev_attrs[i]); scsi_sysfs_sdev_attrs[i]);
if (error) if (error) {
scsi_remove_device(sdev); scsi_remove_device(sdev);
goto out;
}
} }
} }
out:
return error; return error;
clean_device: clean_device:
...@@ -394,7 +398,6 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev) ...@@ -394,7 +398,6 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev)
put_device(&sdev->sdev_gendev); put_device(&sdev->sdev_gendev);
return error; return error;
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment