diff options
Diffstat (limited to 'drivers/s390/scsi/zfcp_fsf.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_fsf.c | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index 4c0a59afd5c8..a8b02542ac2d 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c | |||
@@ -828,7 +828,7 @@ zfcp_fsf_status_read_port_closed(struct zfcp_fsf_req *fsf_req) | |||
828 | 828 | ||
829 | if (!port || (port->d_id != (status_buffer->d_id & ZFCP_DID_MASK))) { | 829 | if (!port || (port->d_id != (status_buffer->d_id & ZFCP_DID_MASK))) { |
830 | ZFCP_LOG_NORMAL("bug: Reopen port indication received for" | 830 | ZFCP_LOG_NORMAL("bug: Reopen port indication received for" |
831 | "nonexisting port with d_id 0x%08x on " | 831 | "nonexisting port with d_id 0x%06x on " |
832 | "adapter %s. Ignored.\n", | 832 | "adapter %s. Ignored.\n", |
833 | status_buffer->d_id & ZFCP_DID_MASK, | 833 | status_buffer->d_id & ZFCP_DID_MASK, |
834 | zfcp_get_busid_by_adapter(adapter)); | 834 | zfcp_get_busid_by_adapter(adapter)); |
@@ -853,7 +853,7 @@ zfcp_fsf_status_read_port_closed(struct zfcp_fsf_req *fsf_req) | |||
853 | &status_buffer->status_subtype, sizeof (u32)); | 853 | &status_buffer->status_subtype, sizeof (u32)); |
854 | ZFCP_LOG_NORMAL("bug: Undefined status subtype received " | 854 | ZFCP_LOG_NORMAL("bug: Undefined status subtype received " |
855 | "for a reopen indication on port with " | 855 | "for a reopen indication on port with " |
856 | "d_id 0x%08x on the adapter %s. " | 856 | "d_id 0x%06x on the adapter %s. " |
857 | "Ignored. (debug info 0x%x)\n", | 857 | "Ignored. (debug info 0x%x)\n", |
858 | status_buffer->d_id, | 858 | status_buffer->d_id, |
859 | zfcp_get_busid_by_adapter(adapter), | 859 | zfcp_get_busid_by_adapter(adapter), |
@@ -1156,7 +1156,7 @@ zfcp_fsf_abort_fcp_command(unsigned long old_req_id, | |||
1156 | } | 1156 | } |
1157 | 1157 | ||
1158 | ZFCP_LOG_DEBUG("Abort FCP Command request initiated " | 1158 | ZFCP_LOG_DEBUG("Abort FCP Command request initiated " |
1159 | "(adapter%s, port d_id=0x%08x, " | 1159 | "(adapter%s, port d_id=0x%06x, " |
1160 | "unit x%016Lx, old_req_id=0x%lx)\n", | 1160 | "unit x%016Lx, old_req_id=0x%lx)\n", |
1161 | zfcp_get_busid_by_adapter(adapter), | 1161 | zfcp_get_busid_by_adapter(adapter), |
1162 | unit->port->d_id, | 1162 | unit->port->d_id, |
@@ -1554,7 +1554,7 @@ zfcp_fsf_send_ct_handler(struct zfcp_fsf_req *fsf_req) | |||
1554 | 1554 | ||
1555 | case FSF_ACCESS_DENIED: | 1555 | case FSF_ACCESS_DENIED: |
1556 | ZFCP_LOG_NORMAL("access denied, cannot send generic service " | 1556 | ZFCP_LOG_NORMAL("access denied, cannot send generic service " |
1557 | "command (adapter %s, port d_id=0x%08x)\n", | 1557 | "command (adapter %s, port d_id=0x%06x)\n", |
1558 | zfcp_get_busid_by_port(port), port->d_id); | 1558 | zfcp_get_busid_by_port(port), port->d_id); |
1559 | for (counter = 0; counter < 2; counter++) { | 1559 | for (counter = 0; counter < 2; counter++) { |
1560 | subtable = header->fsf_status_qual.halfword[counter * 2]; | 1560 | subtable = header->fsf_status_qual.halfword[counter * 2]; |
@@ -1576,7 +1576,7 @@ zfcp_fsf_send_ct_handler(struct zfcp_fsf_req *fsf_req) | |||
1576 | 1576 | ||
1577 | case FSF_GENERIC_COMMAND_REJECTED: | 1577 | case FSF_GENERIC_COMMAND_REJECTED: |
1578 | ZFCP_LOG_INFO("generic service command rejected " | 1578 | ZFCP_LOG_INFO("generic service command rejected " |
1579 | "(adapter %s, port d_id=0x%08x)\n", | 1579 | "(adapter %s, port d_id=0x%06x)\n", |
1580 | zfcp_get_busid_by_port(port), port->d_id); | 1580 | zfcp_get_busid_by_port(port), port->d_id); |
1581 | ZFCP_LOG_INFO("status qualifier:\n"); | 1581 | ZFCP_LOG_INFO("status qualifier:\n"); |
1582 | ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_INFO, | 1582 | ZFCP_HEX_DUMP(ZFCP_LOG_LEVEL_INFO, |
@@ -1602,7 +1602,7 @@ zfcp_fsf_send_ct_handler(struct zfcp_fsf_req *fsf_req) | |||
1602 | 1602 | ||
1603 | case FSF_PORT_BOXED: | 1603 | case FSF_PORT_BOXED: |
1604 | ZFCP_LOG_INFO("port needs to be reopened " | 1604 | ZFCP_LOG_INFO("port needs to be reopened " |
1605 | "(adapter %s, port d_id=0x%08x)\n", | 1605 | "(adapter %s, port d_id=0x%06x)\n", |
1606 | zfcp_get_busid_by_port(port), port->d_id); | 1606 | zfcp_get_busid_by_port(port), port->d_id); |
1607 | debug_text_event(adapter->erp_dbf, 2, "fsf_s_pboxed"); | 1607 | debug_text_event(adapter->erp_dbf, 2, "fsf_s_pboxed"); |
1608 | zfcp_erp_port_boxed(port); | 1608 | zfcp_erp_port_boxed(port); |
@@ -1683,7 +1683,7 @@ zfcp_fsf_send_els(struct zfcp_send_els *els) | |||
1683 | NULL, &lock_flags, &fsf_req); | 1683 | NULL, &lock_flags, &fsf_req); |
1684 | if (ret < 0) { | 1684 | if (ret < 0) { |
1685 | ZFCP_LOG_INFO("error: creation of ELS request failed " | 1685 | ZFCP_LOG_INFO("error: creation of ELS request failed " |
1686 | "(adapter %s, port d_id: 0x%08x)\n", | 1686 | "(adapter %s, port d_id: 0x%06x)\n", |
1687 | zfcp_get_busid_by_adapter(adapter), d_id); | 1687 | zfcp_get_busid_by_adapter(adapter), d_id); |
1688 | goto failed_req; | 1688 | goto failed_req; |
1689 | } | 1689 | } |
@@ -1708,7 +1708,7 @@ zfcp_fsf_send_els(struct zfcp_send_els *els) | |||
1708 | ZFCP_MAX_SBALS_PER_ELS_REQ); | 1708 | ZFCP_MAX_SBALS_PER_ELS_REQ); |
1709 | if (bytes <= 0) { | 1709 | if (bytes <= 0) { |
1710 | ZFCP_LOG_INFO("error: creation of ELS request failed " | 1710 | ZFCP_LOG_INFO("error: creation of ELS request failed " |
1711 | "(adapter %s, port d_id: 0x%08x)\n", | 1711 | "(adapter %s, port d_id: 0x%06x)\n", |
1712 | zfcp_get_busid_by_adapter(adapter), d_id); | 1712 | zfcp_get_busid_by_adapter(adapter), d_id); |
1713 | if (bytes == 0) { | 1713 | if (bytes == 0) { |
1714 | ret = -ENOMEM; | 1714 | ret = -ENOMEM; |
@@ -1725,7 +1725,7 @@ zfcp_fsf_send_els(struct zfcp_send_els *els) | |||
1725 | ZFCP_MAX_SBALS_PER_ELS_REQ); | 1725 | ZFCP_MAX_SBALS_PER_ELS_REQ); |
1726 | if (bytes <= 0) { | 1726 | if (bytes <= 0) { |
1727 | ZFCP_LOG_INFO("error: creation of ELS request failed " | 1727 | ZFCP_LOG_INFO("error: creation of ELS request failed " |
1728 | "(adapter %s, port d_id: 0x%08x)\n", | 1728 | "(adapter %s, port d_id: 0x%06x)\n", |
1729 | zfcp_get_busid_by_adapter(adapter), d_id); | 1729 | zfcp_get_busid_by_adapter(adapter), d_id); |
1730 | if (bytes == 0) { | 1730 | if (bytes == 0) { |
1731 | ret = -ENOMEM; | 1731 | ret = -ENOMEM; |
@@ -1739,7 +1739,7 @@ zfcp_fsf_send_els(struct zfcp_send_els *els) | |||
1739 | /* reject request */ | 1739 | /* reject request */ |
1740 | ZFCP_LOG_INFO("error: microcode does not support chained SBALs" | 1740 | ZFCP_LOG_INFO("error: microcode does not support chained SBALs" |
1741 | ", ELS request too big (adapter %s, " | 1741 | ", ELS request too big (adapter %s, " |
1742 | "port d_id: 0x%08x)\n", | 1742 | "port d_id: 0x%06x)\n", |
1743 | zfcp_get_busid_by_adapter(adapter), d_id); | 1743 | zfcp_get_busid_by_adapter(adapter), d_id); |
1744 | ret = -EOPNOTSUPP; | 1744 | ret = -EOPNOTSUPP; |
1745 | goto failed_send; | 1745 | goto failed_send; |
@@ -1760,13 +1760,13 @@ zfcp_fsf_send_els(struct zfcp_send_els *els) | |||
1760 | ret = zfcp_fsf_req_send(fsf_req); | 1760 | ret = zfcp_fsf_req_send(fsf_req); |
1761 | if (ret) { | 1761 | if (ret) { |
1762 | ZFCP_LOG_DEBUG("error: initiation of ELS request failed " | 1762 | ZFCP_LOG_DEBUG("error: initiation of ELS request failed " |
1763 | "(adapter %s, port d_id: 0x%08x)\n", | 1763 | "(adapter %s, port d_id: 0x%06x)\n", |
1764 | zfcp_get_busid_by_adapter(adapter), d_id); | 1764 | zfcp_get_busid_by_adapter(adapter), d_id); |
1765 | goto failed_send; | 1765 | goto failed_send; |
1766 | } | 1766 | } |
1767 | 1767 | ||
1768 | ZFCP_LOG_DEBUG("ELS request initiated (adapter %s, port d_id: " | 1768 | ZFCP_LOG_DEBUG("ELS request initiated (adapter %s, port d_id: " |
1769 | "0x%08x)\n", zfcp_get_busid_by_adapter(adapter), d_id); | 1769 | "0x%06x)\n", zfcp_get_busid_by_adapter(adapter), d_id); |
1770 | goto out; | 1770 | goto out; |
1771 | 1771 | ||
1772 | failed_send: | 1772 | failed_send: |
@@ -1859,7 +1859,7 @@ static int zfcp_fsf_send_els_handler(struct zfcp_fsf_req *fsf_req) | |||
1859 | case FSF_ELS_COMMAND_REJECTED: | 1859 | case FSF_ELS_COMMAND_REJECTED: |
1860 | ZFCP_LOG_INFO("ELS has been rejected because command filter " | 1860 | ZFCP_LOG_INFO("ELS has been rejected because command filter " |
1861 | "prohibited sending " | 1861 | "prohibited sending " |
1862 | "(adapter: %s, port d_id: 0x%08x)\n", | 1862 | "(adapter: %s, port d_id: 0x%06x)\n", |
1863 | zfcp_get_busid_by_adapter(adapter), d_id); | 1863 | zfcp_get_busid_by_adapter(adapter), d_id); |
1864 | 1864 | ||
1865 | break; | 1865 | break; |
@@ -1907,7 +1907,7 @@ static int zfcp_fsf_send_els_handler(struct zfcp_fsf_req *fsf_req) | |||
1907 | 1907 | ||
1908 | case FSF_ACCESS_DENIED: | 1908 | case FSF_ACCESS_DENIED: |
1909 | ZFCP_LOG_NORMAL("access denied, cannot send ELS command " | 1909 | ZFCP_LOG_NORMAL("access denied, cannot send ELS command " |
1910 | "(adapter %s, port d_id=0x%08x)\n", | 1910 | "(adapter %s, port d_id=0x%06x)\n", |
1911 | zfcp_get_busid_by_adapter(adapter), d_id); | 1911 | zfcp_get_busid_by_adapter(adapter), d_id); |
1912 | for (counter = 0; counter < 2; counter++) { | 1912 | for (counter = 0; counter < 2; counter++) { |
1913 | subtable = header->fsf_status_qual.halfword[counter * 2]; | 1913 | subtable = header->fsf_status_qual.halfword[counter * 2]; |
@@ -2070,7 +2070,7 @@ zfcp_fsf_exchange_config_evaluate(struct zfcp_fsf_req *fsf_req, int xchg_ok) | |||
2070 | ZFCP_LOG_NORMAL("The adapter %s reported the following characteristics:\n" | 2070 | ZFCP_LOG_NORMAL("The adapter %s reported the following characteristics:\n" |
2071 | "WWNN 0x%016Lx, " | 2071 | "WWNN 0x%016Lx, " |
2072 | "WWPN 0x%016Lx, " | 2072 | "WWPN 0x%016Lx, " |
2073 | "S_ID 0x%08x,\n" | 2073 | "S_ID 0x%06x,\n" |
2074 | "adapter version 0x%x, " | 2074 | "adapter version 0x%x, " |
2075 | "LIC version 0x%x, " | 2075 | "LIC version 0x%x, " |
2076 | "FC link speed %d Gb/s\n", | 2076 | "FC link speed %d Gb/s\n", |
@@ -3043,6 +3043,7 @@ zfcp_fsf_open_unit_handler(struct zfcp_fsf_req *fsf_req) | |||
3043 | queue_designator = &header->fsf_status_qual.fsf_queue_designator; | 3043 | queue_designator = &header->fsf_status_qual.fsf_queue_designator; |
3044 | 3044 | ||
3045 | atomic_clear_mask(ZFCP_STATUS_COMMON_ACCESS_DENIED | | 3045 | atomic_clear_mask(ZFCP_STATUS_COMMON_ACCESS_DENIED | |
3046 | ZFCP_STATUS_COMMON_ACCESS_BOXED | | ||
3046 | ZFCP_STATUS_UNIT_SHARED | | 3047 | ZFCP_STATUS_UNIT_SHARED | |
3047 | ZFCP_STATUS_UNIT_READONLY, | 3048 | ZFCP_STATUS_UNIT_READONLY, |
3048 | &unit->status); | 3049 | &unit->status); |
@@ -4645,23 +4646,22 @@ zfcp_fsf_req_create(struct zfcp_adapter *adapter, u32 fsf_cmd, int req_flags, | |||
4645 | fsf_req->adapter = adapter; | 4646 | fsf_req->adapter = adapter; |
4646 | fsf_req->fsf_command = fsf_cmd; | 4647 | fsf_req->fsf_command = fsf_cmd; |
4647 | INIT_LIST_HEAD(&fsf_req->list); | 4648 | INIT_LIST_HEAD(&fsf_req->list); |
4648 | |||
4649 | /* this is serialized (we are holding req_queue-lock of adapter */ | ||
4650 | if (adapter->req_no == 0) | ||
4651 | adapter->req_no++; | ||
4652 | fsf_req->req_id = adapter->req_no++; | ||
4653 | |||
4654 | init_timer(&fsf_req->timer); | 4649 | init_timer(&fsf_req->timer); |
4655 | zfcp_fsf_req_qtcb_init(fsf_req); | ||
4656 | 4650 | ||
4657 | /* initialize waitqueue which may be used to wait on | 4651 | /* initialize waitqueue which may be used to wait on |
4658 | this request completion */ | 4652 | this request completion */ |
4659 | init_waitqueue_head(&fsf_req->completion_wq); | 4653 | init_waitqueue_head(&fsf_req->completion_wq); |
4660 | 4654 | ||
4661 | ret = zfcp_fsf_req_sbal_get(adapter, req_flags, lock_flags); | 4655 | ret = zfcp_fsf_req_sbal_get(adapter, req_flags, lock_flags); |
4662 | if(ret < 0) { | 4656 | if (ret < 0) |
4663 | goto failed_sbals; | 4657 | goto failed_sbals; |
4664 | } | 4658 | |
4659 | /* this is serialized (we are holding req_queue-lock of adapter) */ | ||
4660 | if (adapter->req_no == 0) | ||
4661 | adapter->req_no++; | ||
4662 | fsf_req->req_id = adapter->req_no++; | ||
4663 | |||
4664 | zfcp_fsf_req_qtcb_init(fsf_req); | ||
4665 | 4665 | ||
4666 | /* | 4666 | /* |
4667 | * We hold queue_lock here. Check if QDIOUP is set and let request fail | 4667 | * We hold queue_lock here. Check if QDIOUP is set and let request fail |
@@ -4788,7 +4788,7 @@ static int zfcp_fsf_req_send(struct zfcp_fsf_req *fsf_req) | |||
4788 | retval = -EIO; | 4788 | retval = -EIO; |
4789 | del_timer(&fsf_req->timer); | 4789 | del_timer(&fsf_req->timer); |
4790 | spin_lock(&adapter->req_list_lock); | 4790 | spin_lock(&adapter->req_list_lock); |
4791 | zfcp_reqlist_remove(adapter, fsf_req->req_id); | 4791 | zfcp_reqlist_remove(adapter, fsf_req); |
4792 | spin_unlock(&adapter->req_list_lock); | 4792 | spin_unlock(&adapter->req_list_lock); |
4793 | /* undo changes in request queue made for this request */ | 4793 | /* undo changes in request queue made for this request */ |
4794 | zfcp_qdio_zero_sbals(req_queue->buffer, | 4794 | zfcp_qdio_zero_sbals(req_queue->buffer, |