diff options
Diffstat (limited to 'drivers/scsi/ibmvscsi/ibmvscsi.c')
| -rw-r--r-- | drivers/scsi/ibmvscsi/ibmvscsi.c | 39 | 
1 files changed, 11 insertions, 28 deletions
| diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c index 5870866abc99..5ecc63d1b436 100644 --- a/drivers/scsi/ibmvscsi/ibmvscsi.c +++ b/drivers/scsi/ibmvscsi/ibmvscsi.c | |||
| @@ -393,12 +393,6 @@ static int map_sg_data(struct scsi_cmnd *cmd, | |||
| 393 | return 1; | 393 | return 1; | 
| 394 | else if (sg_mapped < 0) | 394 | else if (sg_mapped < 0) | 
| 395 | return 0; | 395 | return 0; | 
| 396 | else if (sg_mapped > SG_ALL) { | ||
| 397 | printk(KERN_ERR | ||
| 398 | "ibmvscsi: More than %d mapped sg entries, got %d\n", | ||
| 399 | SG_ALL, sg_mapped); | ||
| 400 | return 0; | ||
| 401 | } | ||
| 402 | 396 | ||
| 403 | set_srp_direction(cmd, srp_cmd, sg_mapped); | 397 | set_srp_direction(cmd, srp_cmd, sg_mapped); | 
| 404 | 398 | ||
| @@ -708,8 +702,7 @@ static int ibmvscsi_queuecommand(struct scsi_cmnd *cmnd, | |||
| 708 | struct srp_cmd *srp_cmd; | 702 | struct srp_cmd *srp_cmd; | 
| 709 | struct srp_event_struct *evt_struct; | 703 | struct srp_event_struct *evt_struct; | 
| 710 | struct srp_indirect_buf *indirect; | 704 | struct srp_indirect_buf *indirect; | 
| 711 | struct ibmvscsi_host_data *hostdata = | 705 | struct ibmvscsi_host_data *hostdata = shost_priv(cmnd->device->host); | 
| 712 | (struct ibmvscsi_host_data *)&cmnd->device->host->hostdata; | ||
| 713 | u16 lun = lun_from_dev(cmnd->device); | 706 | u16 lun = lun_from_dev(cmnd->device); | 
| 714 | u8 out_fmt, in_fmt; | 707 | u8 out_fmt, in_fmt; | 
| 715 | 708 | ||
| @@ -960,8 +953,7 @@ static void sync_completion(struct srp_event_struct *evt_struct) | |||
| 960 | */ | 953 | */ | 
| 961 | static int ibmvscsi_eh_abort_handler(struct scsi_cmnd *cmd) | 954 | static int ibmvscsi_eh_abort_handler(struct scsi_cmnd *cmd) | 
| 962 | { | 955 | { | 
| 963 | struct ibmvscsi_host_data *hostdata = | 956 | struct ibmvscsi_host_data *hostdata = shost_priv(cmd->device->host); | 
| 964 | (struct ibmvscsi_host_data *)cmd->device->host->hostdata; | ||
| 965 | struct srp_tsk_mgmt *tsk_mgmt; | 957 | struct srp_tsk_mgmt *tsk_mgmt; | 
| 966 | struct srp_event_struct *evt; | 958 | struct srp_event_struct *evt; | 
| 967 | struct srp_event_struct *tmp_evt, *found_evt; | 959 | struct srp_event_struct *tmp_evt, *found_evt; | 
| @@ -1084,9 +1076,7 @@ static int ibmvscsi_eh_abort_handler(struct scsi_cmnd *cmd) | |||
| 1084 | */ | 1076 | */ | 
| 1085 | static int ibmvscsi_eh_device_reset_handler(struct scsi_cmnd *cmd) | 1077 | static int ibmvscsi_eh_device_reset_handler(struct scsi_cmnd *cmd) | 
| 1086 | { | 1078 | { | 
| 1087 | struct ibmvscsi_host_data *hostdata = | 1079 | struct ibmvscsi_host_data *hostdata = shost_priv(cmd->device->host); | 
| 1088 | (struct ibmvscsi_host_data *)cmd->device->host->hostdata; | ||
| 1089 | |||
| 1090 | struct srp_tsk_mgmt *tsk_mgmt; | 1080 | struct srp_tsk_mgmt *tsk_mgmt; | 
| 1091 | struct srp_event_struct *evt; | 1081 | struct srp_event_struct *evt; | 
| 1092 | struct srp_event_struct *tmp_evt, *pos; | 1082 | struct srp_event_struct *tmp_evt, *pos; | 
| @@ -1183,8 +1173,7 @@ static int ibmvscsi_eh_device_reset_handler(struct scsi_cmnd *cmd) | |||
| 1183 | static int ibmvscsi_eh_host_reset_handler(struct scsi_cmnd *cmd) | 1173 | static int ibmvscsi_eh_host_reset_handler(struct scsi_cmnd *cmd) | 
| 1184 | { | 1174 | { | 
| 1185 | unsigned long wait_switch = 0; | 1175 | unsigned long wait_switch = 0; | 
| 1186 | struct ibmvscsi_host_data *hostdata = | 1176 | struct ibmvscsi_host_data *hostdata = shost_priv(cmd->device->host); | 
| 1187 | (struct ibmvscsi_host_data *)cmd->device->host->hostdata; | ||
| 1188 | 1177 | ||
| 1189 | dev_err(hostdata->dev, "Resetting connection due to error recovery\n"); | 1178 | dev_err(hostdata->dev, "Resetting connection due to error recovery\n"); | 
| 1190 | 1179 | ||
| @@ -1412,8 +1401,7 @@ static int ibmvscsi_change_queue_depth(struct scsi_device *sdev, int qdepth) | |||
| 1412 | static ssize_t show_host_srp_version(struct class_device *class_dev, char *buf) | 1401 | static ssize_t show_host_srp_version(struct class_device *class_dev, char *buf) | 
| 1413 | { | 1402 | { | 
| 1414 | struct Scsi_Host *shost = class_to_shost(class_dev); | 1403 | struct Scsi_Host *shost = class_to_shost(class_dev); | 
| 1415 | struct ibmvscsi_host_data *hostdata = | 1404 | struct ibmvscsi_host_data *hostdata = shost_priv(shost); | 
| 1416 | (struct ibmvscsi_host_data *)shost->hostdata; | ||
| 1417 | int len; | 1405 | int len; | 
| 1418 | 1406 | ||
| 1419 | len = snprintf(buf, PAGE_SIZE, "%s\n", | 1407 | len = snprintf(buf, PAGE_SIZE, "%s\n", | 
| @@ -1433,8 +1421,7 @@ static ssize_t show_host_partition_name(struct class_device *class_dev, | |||
| 1433 | char *buf) | 1421 | char *buf) | 
| 1434 | { | 1422 | { | 
| 1435 | struct Scsi_Host *shost = class_to_shost(class_dev); | 1423 | struct Scsi_Host *shost = class_to_shost(class_dev); | 
| 1436 | struct ibmvscsi_host_data *hostdata = | 1424 | struct ibmvscsi_host_data *hostdata = shost_priv(shost); | 
| 1437 | (struct ibmvscsi_host_data *)shost->hostdata; | ||
| 1438 | int len; | 1425 | int len; | 
| 1439 | 1426 | ||
| 1440 | len = snprintf(buf, PAGE_SIZE, "%s\n", | 1427 | len = snprintf(buf, PAGE_SIZE, "%s\n", | 
| @@ -1454,8 +1441,7 @@ static ssize_t show_host_partition_number(struct class_device *class_dev, | |||
| 1454 | char *buf) | 1441 | char *buf) | 
| 1455 | { | 1442 | { | 
| 1456 | struct Scsi_Host *shost = class_to_shost(class_dev); | 1443 | struct Scsi_Host *shost = class_to_shost(class_dev); | 
| 1457 | struct ibmvscsi_host_data *hostdata = | 1444 | struct ibmvscsi_host_data *hostdata = shost_priv(shost); | 
| 1458 | (struct ibmvscsi_host_data *)shost->hostdata; | ||
| 1459 | int len; | 1445 | int len; | 
| 1460 | 1446 | ||
| 1461 | len = snprintf(buf, PAGE_SIZE, "%d\n", | 1447 | len = snprintf(buf, PAGE_SIZE, "%d\n", | 
| @@ -1474,8 +1460,7 @@ static struct class_device_attribute ibmvscsi_host_partition_number = { | |||
| 1474 | static ssize_t show_host_mad_version(struct class_device *class_dev, char *buf) | 1460 | static ssize_t show_host_mad_version(struct class_device *class_dev, char *buf) | 
| 1475 | { | 1461 | { | 
| 1476 | struct Scsi_Host *shost = class_to_shost(class_dev); | 1462 | struct Scsi_Host *shost = class_to_shost(class_dev); | 
| 1477 | struct ibmvscsi_host_data *hostdata = | 1463 | struct ibmvscsi_host_data *hostdata = shost_priv(shost); | 
| 1478 | (struct ibmvscsi_host_data *)shost->hostdata; | ||
| 1479 | int len; | 1464 | int len; | 
| 1480 | 1465 | ||
| 1481 | len = snprintf(buf, PAGE_SIZE, "%d\n", | 1466 | len = snprintf(buf, PAGE_SIZE, "%d\n", | 
| @@ -1494,8 +1479,7 @@ static struct class_device_attribute ibmvscsi_host_mad_version = { | |||
| 1494 | static ssize_t show_host_os_type(struct class_device *class_dev, char *buf) | 1479 | static ssize_t show_host_os_type(struct class_device *class_dev, char *buf) | 
| 1495 | { | 1480 | { | 
| 1496 | struct Scsi_Host *shost = class_to_shost(class_dev); | 1481 | struct Scsi_Host *shost = class_to_shost(class_dev); | 
| 1497 | struct ibmvscsi_host_data *hostdata = | 1482 | struct ibmvscsi_host_data *hostdata = shost_priv(shost); | 
| 1498 | (struct ibmvscsi_host_data *)shost->hostdata; | ||
| 1499 | int len; | 1483 | int len; | 
| 1500 | 1484 | ||
| 1501 | len = snprintf(buf, PAGE_SIZE, "%d\n", hostdata->madapter_info.os_type); | 1485 | len = snprintf(buf, PAGE_SIZE, "%d\n", hostdata->madapter_info.os_type); | 
| @@ -1513,8 +1497,7 @@ static struct class_device_attribute ibmvscsi_host_os_type = { | |||
| 1513 | static ssize_t show_host_config(struct class_device *class_dev, char *buf) | 1497 | static ssize_t show_host_config(struct class_device *class_dev, char *buf) | 
| 1514 | { | 1498 | { | 
| 1515 | struct Scsi_Host *shost = class_to_shost(class_dev); | 1499 | struct Scsi_Host *shost = class_to_shost(class_dev); | 
| 1516 | struct ibmvscsi_host_data *hostdata = | 1500 | struct ibmvscsi_host_data *hostdata = shost_priv(shost); | 
| 1517 | (struct ibmvscsi_host_data *)shost->hostdata; | ||
| 1518 | 1501 | ||
| 1519 | /* returns null-terminated host config data */ | 1502 | /* returns null-terminated host config data */ | 
| 1520 | if (ibmvscsi_do_host_config(hostdata, buf, PAGE_SIZE) == 0) | 1503 | if (ibmvscsi_do_host_config(hostdata, buf, PAGE_SIZE) == 0) | 
| @@ -1582,7 +1565,7 @@ static int ibmvscsi_probe(struct vio_dev *vdev, const struct vio_device_id *id) | |||
| 1582 | goto scsi_host_alloc_failed; | 1565 | goto scsi_host_alloc_failed; | 
| 1583 | } | 1566 | } | 
| 1584 | 1567 | ||
| 1585 | hostdata = (struct ibmvscsi_host_data *)host->hostdata; | 1568 | hostdata = shost_priv(host); | 
| 1586 | memset(hostdata, 0x00, sizeof(*hostdata)); | 1569 | memset(hostdata, 0x00, sizeof(*hostdata)); | 
| 1587 | INIT_LIST_HEAD(&hostdata->sent); | 1570 | INIT_LIST_HEAD(&hostdata->sent); | 
| 1588 | hostdata->host = host; | 1571 | hostdata->host = host; | 
