History log of /drivers/s390/scsi/zfcp_def.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
86a9668a8d29ea711613e1cb37efa68e7c4db564 15-Aug-2011 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: support for hardware data router

FICON Express8S supports hardware data router, which requires an
adapted qdio request format.
This part 2/2 exploits the functionality in zfcp.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
/drivers/s390/scsi/zfcp_def.h
038d9446a9e601d7972926ca69fee10eeda6f3c7 22-Feb-2011 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Add information to symbolic port name when running in NPIV mode

Query the FC symbolic port name for reporting in the fc_host sysfs and
enable the symbolic_name attribute in the fc_host sysfs. When running
in NPIV mode, extend the symbolic port name with the devno and the
hostname. This allows better identification of Linux systems for SAN
and storage administrators.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
1947c72a122a8c367fdfc650c39a98ba76cc573a 22-Feb-2011 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Move SCSI host and transport templates out of struct zfcp_data

The SCSI host and transport templates are the only members left in the
global zfcp_data struct. Move them out of zfcp_data and remove the
now unused zfcp_data struct. Also update the names of the register and
unregister functions to use the zfcp_scsi prefix.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
259afe2ed92c179e0a85da10ca63bf927b9851ca 22-Feb-2011 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Move qtcb kmem_cache to zfcp_fsf.c

Move the kmem_cache for allocating the qtcb to zfcp_fsf.c and rename
it accordingly.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
f9773229be6d8a3caa4c9dfc2961a63ab51a4e2a 22-Feb-2011 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Use common FC kmem_cache for GPN_FT request

Switch the allocation of the GPN_FT request data to the FC kmem_cache
and remove the zfcp_gpn kmem_cache.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
fcf7e6144df60cd5082e5bc52f1ca5d1ca99a2d6 22-Feb-2011 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Allocate GID_PN data through new FC kmem_cache

Allocate the data for the GID_PN request through the new FC
kmem_cache. While updating the GID_PN code, also introduce a helper
function for initializing the CT header for FC nameserver requests.
Remove the "paranoia" check as well, the GID_PN request data does not
suddenly change.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
087897e36982ef8536dc9c8baed159a31517b5e6 22-Feb-2011 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Introduce new kmem_cache for FC request and response data

A data buffer that is passed to the hardware must not cross a page
boundary. zfcp uses a series of kmem_caches to align the data to not
cross a page boundary. Introduce a new kmem_cache for the FC requests
sent from the zfcp driver and use it for the ELS ADISC data. The goal
is to migrate to the FC kmem_cache in later patches and remove the
request specific kmem_caches.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
c7b279ae51942c14529bf2806685e9c658f28611 22-Feb-2011 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Replace kmem_cache for "status read" data

zfcp requires a mempool for the status read data blocks to resubmit
the "status read" requests at any time. Each status read data block
has the size of a page (4096 bytes) and needs to be placed in one
page.

Instead of having a kmem_cache for allocating page sized chunks, use
mempool_create_page_pool to create a mempool returning pages and
remove the zfcp kmem_cache.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
7c35e77b96b2f0af8c278c13d484d42dad3c7422 22-Feb-2011 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Remove unused flag ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
edaed859e63aac174fcc3fed81886b91bb124661 08-Sep-2010 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Replace status modifier functions.

Replace the zfcp_modify_<xxx>_status functions and its accompanying wrappers
with dedicated status modifier functions. This eases code readability and
maintenance.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
b62a8d9b45b971a67a0f8413338c230e3117dff5 08-Sep-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Use SCSI device data zfcp_scsi_dev instead of zfcp_unit

This is the large change to switch from using the data in
zfcp_unit to zfcp_scsi_dev. Keeping everything working requires doing
the switch in one piece. To ensure that no code keeps using the data
in zfcp_unit, this patch also removes the data from zfcp_unit that is
now being replaced with zfcp_scsi_dev.

For zfcp, the scsi_device together with zfcp_scsi_dev exist from the
call of slave_alloc to the call of slave_destroy. The data in
zfcp_scsi_dev is initialized in zfcp_scsi_slave_alloc and the LUN is
opened; the final shutdown for the LUN is run from slave_destroy.

Where the scsi_device or zfcp_scsi_dev is needed, the pointer to the
scsi_device is passed as function argument and inside the function
converted to the pointer to zfcp_scsi_dev; this avoids back and forth
conversion betweeen scsi_device and zfcp_scsi_dev.

While changing the function arguments from zfcp_unit to scsi_device,
the functions names are renamed form "unit" to "lun". This is to have
a seperation between zfcp_scsi_dev/LUN and the zfcp_unit; only code
referring to the remaining configuration information in zfcp_unit
struct uses "unit".

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
57c237731b92fadc7d44824276313ec330b1989b 08-Sep-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Add zfcp private struct as SCSI device driver data

Add a new data structure zfcp_scsi_dev that holds zfcp private data
for each SCSI device. Use scsi_transport_reserve_device to let the
SCSI midlayer automatically allocate this with each SCSI device.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
339f4f4eab80caa6cf0d39fb057ad6ddb84ba91e 16-Jul-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Trigger logging in the FCP channel on qdio error conditions

Exploit the cio siosl function to trigger logging in the FCP channel
on qdio error conditions. Add a helper function in zfcp_qdio to ensure
that tracing is only triggered once before calling qdio_shutdown.

Trigger in zfcp for hardware logs are:
- timeout for FSF requests to the FCP channel
- "no recommendation" status from FCP channel
- invalid FSF protocol status
- stalled outbound queue
- unknown request id on inbound queue
- QDIO_ERROR_SLSB_STATE

All of the above triggers run from the Linux qdio softirq context, so
no additional synchronization is necessary for the handling of the
ZFCP_STATUS_ADAPTER_SIOSL_ISSUED flag.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
dcc18f48a2f1a44c5e8848f30d0cf53a8066c62a 16-Jul-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Enable data division support for FCP devices

Try to enable data division support for FCP devices and indicate in
the adapter status flag if it succeeded.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
2d1e547f7523514d1da449bcf08645fe13579378 16-Jul-2010 Sven Schuetz <sven@linux.vnet.ibm.com> [SCSI] zfcp: Post events through FC transport class

Post FC transport class netlink events for usage in the userspace,
e.g. for HBAAPI. Supported events are those required for the
polled events in HBAAPI.
- link up
- link down
- incoming RSCN
(events related to FC-AL are not supported, as zfcp has no support for FC-AL)

Signed-off-by: Sven Schuetz <sven@linux.vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
1bf3ff02ca6247b2d7c9ebda93002392bf60a61d 16-Jul-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Remove SCSI device when removing unit

Configuring a LUN in zfcp, also creates a SCSI device. For
consistency, it makes sense to remove the SCSI device when the LUN is
deconfigured. Replace the flush_work with the call to
scsi_remove_device: scsi_remove_device also takes the scan_mutex that
synchronizes itself with any long running device discovery.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
64deb6efdc5504ce97b5c1c6f281fffbc150bd93 30-Apr-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Use status_read_buf_num provided by FCP channel

The FCP channel provides the number of status read buffers to issue.
Use the provided number instead of the hardcoded number in zfcp.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
1674b4054744c2cfd6573e43eca45d86ff581d0e 30-Apr-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Move sbale handling to zfcp_qdio files

Move the code accessing the qdio sbales and zfcp_qdio_req struct to
the zfcp_qdio files and provide helper functions for accessing the
qdio related parts.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
683229845f1780b10041ee7a1043fc8f10061455 30-Apr-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Report scatter-gather limits to SCSI and block layer

Instead of dealing with large segments in the scatter-gather lists in
zfcp_qdio.c, report the limits to the upper layers. With these limits
in place, the code for mapping large data blocks to multiple sbales
can be removed.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
34c2b712992540ca436e97432ffc57c84c8f8c18 17-Feb-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Introduce header file for qdio structs and inline functions

Move the qdio related structs and some helper functions to a new
zfcp_qdio.h header file. While doing this, rename the struct
zfcp_queue_req to zfcp_qdio_req to adhere to the naming scheme used in
zfcp. This allows a better seperation of the qdio code and inlining
the helper functions will save some function calls.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
615f59e0daaf56e43dcaaf3ea228967d9bc21584 17-Feb-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Rename sysfs_device attribute to dev in zfcp_unit and zfcp_port

Kernel code uses dev as short name for the struct device. Rename the
sysfs_device in zfcp_unit and zfcp_port to match this convention.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
b6bd2fb92a7bb9f1f3feecd9945c21e6c227dd51 17-Feb-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Move FSF request tracking code to new file

Move the code for tracking FSF requests to new file to have this code
in one place. The functions for adding and removing requests on the
I/O path are already inline. The alloc and free functions are only
called once, so it does not hurt to inline them and add them to the
same file.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
e60a6d69f1f84c2ef1cc63aefaadfe7ae9f12934 17-Feb-2010 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Remove function zfcp_reqlist_find_safe

Always use the FSF request id as a reference to the FSF request. With
this change the function zfcp_reqlist_find_safe is no longer needed
and can be removed.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
54987386ee3790f3900de4df2ed4deb0e18dfc9f 24-Nov-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Remove flag ZFCP_STATUS_FSFREQ_TMFUNCNOTSUPP

The flag ZFCP_STATUS_FSFREQ_TMFUNCNOTSUPP is never set and hence can
be removed. This is a leftover from the time when zfcp had to decide
whether the target supports a "logical unit reset" or not. Nowadays,
the SCSI midlayer calls the eh_device_reset_handler or the
eh_target_reset_handler and zfcp simply maps this to a "logical unit
reset" or a "target reset".

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
4c571c659e9d41332b6981ca5379047681ce9d2f 24-Nov-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Update FSF error reporting

The SCSI midlayer retries commands based on the remote port state and
the command status reported by the driver. Returning
DID_TRANSPORT_DISRUPTED is a better approach, use this for reporting
FSF errors back to the SCSI midlayer. See
http://marc.info/?l=linux-scsi&m=125668044215051&w=2 as reference.

There is also no need in special treatment of ABORTED commands, so
remove the ZFCP_STATUS_FSFREQ_ABORTED, the commands are then returned
with DID_TRANSPORT_DISRUPTED.

Also remove the ZFCP_STATUS_FSFREQ_RETRY: It is useless, no retry is
happening in the FSF layer and nobody checks the state of this flag.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
ee744622c65cd66824e8dd1b9509e515c800de14 24-Nov-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Improve ELS ADISC handling

Introduce kmem_cache for ELS ADISC data to guarantee the required
hardware alignment and free the allocated memory in case the send
failes.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
7c7dc196814b9e1d5cc254dc579a5fa78ae524f7 24-Nov-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Simplify handling of ct and els requests

Remove some redundancies in FC related code and trace:
- drop redundant data from SAN trace (local s_id that only changes
during link down, ls_code that is already part of payload, d_id in
ct response trace that is always the same as in ct request trace)
- use one common fsf struct to hold zfcp data for ct and els requests
- leverage common fsf struct for FC passthrough job data, allocate it
with dd_bsg_data for passthrough requests and unify common code for
ct and els passthrough request
- simplify callback handling in zfcp_fc

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
800c0cad962dcf630cabf3efdc5983619e73d4c9 24-Nov-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Remove ZFCP_DID_MASK

Instead of assigning 4 bytes with the highest byte masked out, use a 3
byte array with the ntoh24 and h24ton helper functions, thus
eliminating the need for the ZFCP_DID_MASK.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
bd0072ecc449fb2ea8f6a2c9f6ff308f3ae0b078 24-Nov-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Move WKA port to zfcp FC code

The well-known-address (WKA) port handling code is part of the FC code
in zfcp. Move everything WKA related to the zfcp_fc files and use the
common zfcp_fc prefix for structs and functions. Drop the unused key
management service while renaming the struct, no request could ever
reach this service in zfcp and it is obsolete anyway.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
dbf5dfe9dbcecf159139eec25ad256738cbc3715 24-Nov-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Use common code definitions for FC CT structs

Use common code definitions for FC GPN_FT and GID_PN
instead of inventing private ones. Move the private structs still
required inside zfcp to zfcp_fc header file.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
9d05ce2c0a6704ff84df02cbb3baef94fcac4f5d 24-Nov-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Use common code definitions for FC ELS structs

Use common code definitions for FC plogi, logo, rscn and adisc structs
instead of inventing private ones. Move the private struct for issuing
ELS ADISC inside zfcp to zfcp_fc header file.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
4318e08c84e4916ac463002ffb7f9901ddb3c385 24-Nov-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Update FCP protocol related code

Use common data structures for FCP CMND, FCP RSP and related
definitions and remove zfcp private definitions. Split the FCP CMND
setup and FCP RSP evaluation code in seperate functions. Use inline
functions to not negatively impact the I/O path.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
6b183334c23969d52d4d9f775da554480d05ca4d 24-Nov-2009 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Remove STATUS_COMMON_REMOVE flag as it is not required anymore

The flag ZFCP_STATUS_COMMON_REMOVE was used to indicate that a
resource is not ready to be used or about to be removed from the
system. This is now better done by an improved list handling
and therefore the additional indicator is not required anymore.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
de3dc57214a1466034ecc4d4ffb10331d34c09a3 24-Nov-2009 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Remove global config_mutex

The global config_mutex was required for the serialization of a
configuration change within the zfcp driver. This global locking is
now obsolete and can be removed. The requirement of serializing the
access to a zfcp_adapter reference via a ccw_device is realized wth a
static spinlock.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
f3450c7b917201bb49d67032e9f60d5125675d6a 24-Nov-2009 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Replace local reference counting with common kref

Replace the local reference counting by already available mechanisms
offered by kref. Where possible existing device structures were used,
including the same functionality.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
ecf0c7721b104c0ce9c8ca534c911f6310cf92a8 24-Nov-2009 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Replace global config_lock with local list locks

The global config_lock was used to protect the configuration organized
in independent lists. It is not necessary to have a lock on driver
level for this purpose. This patch replaces the global config_lock
with a set of local list locks.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
41e05a12c7aae16f0381103af3e5ca791e87ce59 18-Aug-2009 Heiko Carstens <heiko.carstens@de.ibm.com> [SCSI] zfcp: optimize zfcp_qdio_account

Remove expensive ktime_get()/ktime_us_delta() functions from the hot
path and use get_clock_monotonic() instead. This elimates seven
function calls and avoids a lot of unnecessary calculations.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
24680defdb55e073c5e43d14318a164b842d8ce7 18-Aug-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Replace config semaphore with mutex

The config semaphore is only used as a mutex, so replace it with a
simple mutex.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
98fc4d5c8cd9bd1a412cca922feecb54c1c22d8e 18-Aug-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Simplify and update ct/gs and els timeout handling

The recommendation for a timeout of 2 * R_A_TOV is the same for ct/gs
and els requests, so set it in the common function used for
initializing both request types. Besides, the timer inside zfcp should
only run longer than the timeout set for the channel, so 10 seconds
more should be enough (instead of 60 seconds).

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
347c6a965dc110c91a77f65181fc011ee257a4a6 18-Aug-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Use kthread API for zfcp erp thread

Switch the creation of the zfcp erp thread from the deprecated
kernel_thread API to the kthread API. This allows also the removal of
some flags in zfcp since the kthread API handles thread creation and
shutdown internally. To allow the usage of the kthread_stop function,
replace the erp ready semaphore with a waitqueue for waiting until erp
actions arrive on the ready queue.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
799b76d09aeee558d18c1f5b93e63f58f1d1fc11 18-Aug-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Decouple gid_pn requests from erp

Don't let the erp wait for gid_pn requests to complete. Instead, queue
the gid_pn work, exit erp and let the finished gid_pn work trigger a
new port reopen.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
564e1c86c810f9ccfe4300afa402815e3db4886d 18-Aug-2009 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Move qdio related data out of zfcp_adapter

The zfcp_adapter structure was growing over time to a size of almost
one memory page. To reduce the size of the data structure and to
seperate different layers, put all qdio related data in the new
zfcp_qdio data structure.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
42428f747a8a0db9c6de03e105932316defad65d 18-Aug-2009 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Separate qdio attributes from zfcp_fsf_req

Split all qdio related attributes out of zfcp_fsf_req and put it in
new structure.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
4544683a4b1d4e65ccca8c736bac56a195a5206b 18-Aug-2009 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Move workqueue to adapter struct

Remove the global driver work queue and replace it with a workqueue
local to the adapter. The usage of this workqueue makes this the
correct place for the structure. In addition multiple adapters won't
block each other due to the serialization of the queued work.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
a4623c467ff76f9258555d44d68371e10c5406c2 18-Aug-2009 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Improve request allocation through mempools

Remove the special case for NO_QTCB requests and optimize the
mempool and cache processing for fsfreqs. Especially use seperate
mempools for the zfcp_fsf_req and zfcp_qtcb structs.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
058b8647892ed49ba6a0d2c0966a72e20e2e69ff 18-Aug-2009 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Replace fsf_req wait_queue with completion

The combination wait_queue/wakeup in conjunction with the flag
ZFCP_STATUS_FSFREQ_COMPLETED to signal the completion of an fsfreq
was not race-safe and can be better solved by a completion.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
14e242ea55a8b807dc1fb7654941caf68a20cd81 18-Aug-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Only issue one test link command per port

When the FCP channel returns a series of commands with the error
status "test link", zfcp will send a series of ELS ADISC commands.
This is technically no problem, but it is enough to only issue one
test command per remote port. So, track whether a ELS ADISC command is
already pending, and do not send a new one if there is already a
pending command.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
d46f384a89c2378cb7858747faa1935db17e22a8 18-Aug-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Move debug data from zfcp_data to own data structure

The struct zfcp_adapter includes everything related to the debug
traces. This introduces dependences between the definitions in
zfcp_def.h and zfcp_dbf.h. Move all debug related data structures to a
new data structure to break those dependencies and manage the debug
data in zfcp_dbf.[hc].

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
/drivers/s390/scsi/zfcp_def.h
9d544f2b9bd4a0f7ba2784cc47e3591667a7b8d4 06-Apr-2009 Sven Schuetz <sven@linux.vnet.ibm.com> [SCSI] zfcp: Add FC pass-through support

Provide the ability to do fibre channel requests from the userspace to
our zfcp driver. Patch builds upon extension to the fibre channel
tranport class by James Smart and Seokmann Ju. See here
http://marc.info/?l=linux-scsi&m=123808882309133&w=2

Signed-off-by: Sven Schuetz <sven@linux.vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
6fcf41d1d8796f41b893754324704e23971c2ea1 15-May-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Keep ccw device and model id in zfcp_ccw.c

Keep the information about the device and model id in zfcp_ccw. This
requires an additional helper function to check for the privileged
cfdc subchannel, but it allows the removal of the redundant defines
from the zfcp_def header file.

Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
92d5193b467c68e8432d6878980621c787e735af 17-Apr-2009 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Dont block zfcp_wq with scan

When running the scsi_scan from the zfcp workqueue and the target
device does not respond, the zfcp workqueue can block until the
scsi_scan hits a timeout. Move the work to the scsi host workqueue,
since this one is also used for the scan from the SCSI midlayer.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
a2fa0aede07c9488239dcac1eae58233181c355a 02-Mar-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Block FC transport rports early on errors

Use the I/O blocking mechanism in the FC transport class to allow
faster failovers for multipathing:
- Call fc_remote_port_delete early to set the rport to BLOCKED.
- Check the rport status in queuecommand with fc_remote_portchkready
to no longer accept new I/O for this port and fail the I/O with the
appropriate scsi_cmnd result.
- Implement the terminate_rport_io handler to abort all pending I/O
requests
- Return SCSI commands with DID_TRANSPORT_DISRUPTED while erp is
running.
- When updating the remote port status, check for late changes and
update the remote ports status accordingly.

Acked-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
21ddaa53f92dba820a3778978e617f20ecb6ab6f 02-Mar-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Remove PCI flag

The usage of the PCI flag to trigger interrupts is optional. Even
without setting the flag, qdio still receives interrupts to continue
working on the queue. Remove the PCI flag from zfcp, it is not
necessary.

Acked-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
8fdf30d5429605a4c30cc515c73e5eab140035de 02-Mar-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Send ELS ADISC from workqueue

Issue ELS ADISC requests from workqueue. This allows the link test
request to be sent when the request queue is full due to I/O load for
other remote ports. It also simplifies request queue locking,
zfcp_fsf_send_fcp_command_task is now the only function that has
interrupts disabled from the caller. This is also a prereq for the FC
passthrough support that issues ELS requests from userspace.

Acked-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
63caf367e1c92e0667a344d9b687c04e6ef054b5 02-Mar-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Improve reliability of SCSI eh handlers in zfcp

When the SCSI midlayer is running error recovery, the low-level error
recovery in zfcp could be running and preventing the SCSI midlayer to
issue error recovery requests. To avoid unnecessary error recovery
escalation, wait for the zfcp erp to finish and retry if necessary.

While reworking the SCSI eh handlers, alsa cleanup the code and
simplify the interface from zfcp_scsi to the fsf layer.

Acked-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
94506fd1483b39cd5d66b8ccb4ead3c9cc9542ac 02-Mar-2009 Martin Peschke <mpeschke@linux.vnet.ibm.com> [SCSI] zfcp: add measurement data for average qdio queue utilisation

Provide measurement data for the utilisation of the QDIO outbound queue.
The additional value allows to calculate an average queue utilisation
by looking at the deltas per time unit. Needed for capacity planning.
It is up to user space to handle wrap-arounds of the 64 bit value.

The new counter neatly complements the existing counter for queue full
conditions. That is why, both statistics counter have been integrated.

Signed-off-by: Martin Peschke <mpeschke@linux.vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
86f8a1b4b472e4b2b58df5826709d4797d84d46f 02-Mar-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Remove UNIT_REGISTERED status flag

Use the device pointer in zfcp_unit for tracking if we have a
registered SCSI device. With this approach, the flag
ZFCP_STATUS_UNIT_REGISTERED is only redundant and can be removed.

Acked-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
a5b11dda12ed7e3a79180b10ad6209a40a02989f 02-Mar-2009 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Remove some port flags

PORT_PHYS_CLOSING is only set and cleared, but not actually used
for status checking.

PORT_INVALID_WWPN is set when the GID_PN request does not return
a d_id for a remote port, e.g. when a remote port has been
unplugged. For this case, the d_id is zero. In the erp we can
check the d_id and use the normal escalation procedure that gives
up after three retries and remove the special case.

PORT_NO_WWPN is unused: Each port in the remote port list has a
valid wwpn. The WKA ports are now tracked outside the port
list. Remove the PORT_NO_WWPN flag, since this is no longer set
for any port.

Acked-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
39eb7e9aca2a582330ddb6f1167272268e6b3965 19-Dec-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Add support for unchained FSF requests

Add the support to send CT and ELS requests as unchained FSF requests. This is
required for older hardware and was somehow omitted during the cleanup of the
FSF layer. The req_count and resp_count attributes are unused, so remove them
instead of adding a special case for setting them. Also add debug data and a
warning, when the ct request hits a limit.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Acked-by: Martin Petermann <martin@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
b225cf9b8040849e16add4da8e84a72a3548ada8 19-Dec-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Remove busid macro

With the change to the dev_ message macros, the macro to get the busid
is only used in a few places. Remove it and directly get the dev_name
from the device.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
b98478d71b0fea6d35f96069612d92b76013589f 19-Dec-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: remove DID_DID flag

The port flag DID_DID indicates whether we know the current id of the
port. This is always set in parallel. Since the id 0 is invalid
(because the port id 0 is invalid) we can remove the DID_DID flag:
d_id of 0 indicates an invalid d_id != 0 is a valid one.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Acked-by: Felix Beck <felix@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
e0d7fcb5ecad495a54f7334e410f5e16e1da7f78 19-Dec-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Simplify mask lookups for incoming RSCNs

Use an array for looking up the mask corresponding to the 2-bit
information instead of the switch/case.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Acked-by: Felix Beck <felix@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
3623ecba19660d1d838f8b1a4d1e80007d603617 19-Dec-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Remove initial device data from zfcp_data

The information from the kernel parameter is only needed during init.
Keep the three pieces (busid, wwpn and lun) local to simplify the
global zfcp_data structures. While at it, also remove the unused
loglevel variable and give the module parameter variable a better
name.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Acked-by: Felix Beck <felix@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
b228af0269eaf1af22dbae12a0860f8dbfd63662 19-Dec-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Remove adapter list

After the latest changes, the list of FCP devices is only used to
lookup the adapter for requests from the actcli tool. Change this to
use the lookup function in the cio layer. Now we can remove the
adapter list and have one place less to use the global config_lock.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Acked-by: Felix Beck <felix@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
bd43a42b7e9880f426ed715f18bb4f963b7352af 25-Dec-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [S390] zfcp: Report microcode level through service level interface

Register zfcp with the new /proc/service_level interface to report the
FCP microcode level. When the adapter goes offline or a channel path
disappears, zfcp unregisters, since the microcode version might change
and zfcp does not know about it.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
/drivers/s390/scsi/zfcp_def.h
0997f1c5fec0b540784611036d458a84a1f7029a 16-Oct-2008 Stefan Raspl <raspl@linux.vnet.ibm.com> blktrace: pass zfcp driver data

This patch writes the channel and fabric latencies in nanoseconds per
request via blktrace for later analysis. The utilization of the inbound
and outbound adapter queue is also reported.

Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com>
Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/drivers/s390/scsi/zfcp_def.h
b9d3aed7e1e50183085fcd2af643bf42d6b4bd95 10-Oct-2008 Cornelia Huck <cornelia.huck@de.ibm.com> [S390] more bus_id -> dev_name conversions

Some further bus_id -> dev_name() conversions in s390 code.

Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
/drivers/s390/scsi/zfcp_def.h
2a0217d5c7d22d6dd28f8ae5d20b06d24dc426b8 10-Oct-2008 Kay Sievers <kay.sievers@vrfy.org> [S390] bus_id -> dev_name conversions

bus_id -> dev_name() conversions in s390 code.

[cornelia.huck@de.ibm.com: minor adaptions]
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
/drivers/s390/scsi/zfcp_def.h
b7f15f3c94196accac799727502ed88a029ae7ef 01-Oct-2008 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: fix deadlock caused by shared work queue tasks

Each adapter reopen trigger automatically a scan_port task which
is waiting for the ERP to be finished before further processing.
Since the initial device setup enqueues adapter, port and LUN which
are individual ERP actions, this process would start after
everything is done. Unfortunately the port_reopen requires another
scheduled work to be finished which is queued after the automatic
scan_port -> deadlock !

This fix creates an own work queue for ERP based nameserver requests.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
0406289ed57955860a4f8d744a14f4c819260ce4 01-Oct-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Simplify zfcp data structures

Reduce the size of zfcp data structures by removing unused and
redundant members. scsi_lun is only the mangled version of the
fcp_lun. So, remove the redundant field and use the fcp_lun instead.

Since the queue lock and the pci_batch indicator are only used in the
request queue, move them from the common queue struct to the adapter
struct.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
7ba58c9cc16d296290fe645acb11db2b01276544 01-Oct-2008 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: remove all typedefs and replace them with standards

Remove typedefs from zfcp, use already existing types instead.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
5ab944f97e09a3d52951fe903eed9a7b88d810b2 01-Oct-2008 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: attach and release SAN nameserver port on demand

Changing the zfcp behaviour from always having the nameserver port
open to an on-demand strategy. This strategy reduces the use of
limited resources like port connections. The patch provides a common
infrastructure which could be used for all WKA ports in future.

Also reduce the number of nameserver lookups by changing the zfcp
behaviour of always querying the nameserver for the corresponding
destination ID of the remote port. If the destination ID has changed
during the reopen process we will be informed and then trigger a
nameserver query on demand.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
44cc76f2d154aa24340354b4711a0fe7f8f08adc 01-Oct-2008 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: remove unused references, declarations and flags

- Remove unused references and declarations, including one instance
of the FC ls_adisc struct that has been defined twice.
- Also remove the flags COMMON_OPENING, COMMON_CLOSING,
ADAPTER_REGISTERED and XPORT_OK that are only set and cleared, but
not checked anywhere.
- Remove the zfcp specific atomic_test_mask makro. Simply use
atomic_read directly instead.
- Remove the zfcp internal sg helper functions and switch the places
where it is still used to call sg_virt directly.
- With the update of the QDIO code, the QDIO data structures no
longer use the volatile type qualifier. Now we can also remove the
volatile qualifiers from the zfcp code.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
2450d3e7b8604d0abb042817f2502cb7ee0b782f 01-Oct-2008 Stefan Raspl <raspl@linux.vnet.ibm.com> [SCSI] zfcp: add queue_full sysfs attribute

Adds a new sysfs attribute queue_full for adapters that records the number
of incidents where a requests could not be submitted due to insufficient
free space on the request queue.

Signed-off-by: Stefan Raspl <raspl@linux.vnet.ibm.com>
Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
287ac01acf22ab6aaaf9f5a4919ce2449c8b391c 02-Jul-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Cleanup code in zfcp_erp.c

Cleanup the code in zfcp_erp.c, move erp internal definititions to
this file and move FSF timeout handling to the FSF layer.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
c41f8cbddd4e0e72951e0575165dea8ea26f1c4b 02-Jul-2008 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: zfcp_fsf cleanup.

Code cleanup for the zfcp_fsf.c file.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
60221920706a01bef89af2577f9a90a8eeb4e662 02-Jul-2008 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: consolidate sysfs things into one file.

zfcp was using three files to deal with sysfs representation
for adapters, ports and units. The consolidation into one file
prevents code-duplication and eases maintainability.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
317e6b6519b5a34263a33f150ed57ad468b26a64 02-Jul-2008 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Cleanup of code in zfcp_aux.c

Overall cleanup of zfcp_aux.c to simplify code and follow kernel
coding style.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
f76af7d7e36373179be7a9e09f6b0aae330549b7 02-Jul-2008 Martin Petermann <martin@linux.vnet.ibm.com> [SCSI] zfcp: Cleanup of code in zfcp_scsi.c

Cleanup code in zfcp_scsi.c, fix coding style issues and simplify the
code.

Signed-off-by: Martin Petermann <martin@linux.vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
5d4e226246331087799a01c267ec72e5931ff190 02-Jul-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Small QDIO cleanups

QBUFF_PER_PAGE is only used inside the qdio module, so move it to
zfcp_qdio.c

zfcp_qdio_zero_sbals is now only used in the qdio module, so make it
static.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
7afe29f7dd6dccbe454d7fd6cd6a5a7f7bcbc530 02-Jul-2008 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Adapter reopen for large number of unsolicited status

When zfcp receives 16 unsolicited status messages, this could trigger
an adapter reopen. In this case, first try to send a new status read,
and only if this fails, go through the recovery.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
cc8c282963bd258a5bf49d3aa52675a4ae6d31f6 10-Jun-2008 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Automatically attach remote ports

Automatically attach the remote ports in zfcp when the adapter is set
online. This is done by querying all available ports from the FC
namesever. The scan for remote ports is also triggered by RSCNs and
can be triggered manually with the sysfs attribute 'port_rescan'.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
553448f6c4838a1e4bed2bc9301c748278d7d9ce 10-Jun-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Message cleanup

Cleanup the messages used in the zfcp driver: Remove unnecessary debug
and trace message and convert the remaining messages to standard
kernel macros. Remove the zfcp message macros and while updating the
whole flie also update the copyright headers.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
00bab91066a49468bfa4f6d5c8ad5e9ec53b7ea3 10-Jun-2008 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: Cleanup qdio code

Cleanup the interface code from zfcp to qdio. Also move code that
belongs to the qdio interface from the erp to the qdio file.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
45633fdc9615f9fd2a0ae18e301562298b15abf3 10-Jun-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Move CFDC code to new file.

zfcp implements a device file to allow Linux guests changing the
Access Control Tables stored in the adapter. The code for the device
file has nothing to do with the other parts of the driver, so move it
to a new file and cleanup the code while doing so.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
24073b475d6d2bad8880434a16343ee1da816ea5 10-Jun-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Move FC code to new file

Move all Fibre Channel related code to new file and cleanup the code
while doing so.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
c3baa9a26c5ac7e8d801093d55d33620d8bc2fe2 19-May-2008 Martin Peschke <mp3@de.ibm.com> [SCSI] zfcp: Add information about interrupt to trace.

Store the index of the buffer in the inbound queue used to report
request completion in trace record for request coompletion.
This piece of information allows to better compare qdio and zfcp traces.

Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
e891bffe927f39718cf84c35b380d6edb189848b 19-May-2008 Martin Peschke <mp3@de.ibm.com> [SCSI] zfcp: Rename sbal_curr to sbal_last.

sbal_last is more appropriate, because it matches sbal_first.

Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
d01d51beee4dd9f7ff9caf7491aa1727a318e665 19-May-2008 Martin Peschke <mp3@de.ibm.com> [SCSI] zfcp: Rename sbal_last.

sbal_last is confusing, as it is not the last one actually used,
but just a limit. sbal_limit is a better name.

Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
d26ab06ede83287f99067fee3034c5455a75faf9 19-May-2008 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: receiving an unsolicted status can lead to I/O stall

Processing of an unsolicted status request can lead to a locking race
of the request_queue's queue_lock during the recreation of the
used up status read request while still in interrupt context
of the response handler.

Detaching the 'refill' of the long running status read requests from
the handler to a scheduled work is solving this issue.

In addition, each refill-run is trying to re-establish the full amount
of status read requests, which might have failed in earlier runs.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
c9615858a81d2424c78b10a2f689ba24b156937c 06-May-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Track fabric and channel latencies provided by FCP adapter

Add the infrastructure to retrieve the fabric and channel latencies
from FSF commands for each SCSI command that has been processed. For
each unit, the sum, min, max and number of requests is tracked.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
2cca775baecbfede2fec20c99add709232311fe7 18-Apr-2008 Linus Torvalds <torvalds@linux-foundation.org> Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (137 commits)
[SCSI] iscsi: bidi support for iscsi_tcp
[SCSI] iscsi: bidi support at the generic libiscsi level
[SCSI] iscsi: extended cdb support
[SCSI] zfcp: Fix error handling for blocked unit for send FCP command
[SCSI] zfcp: Remove zfcp_erp_wait from slave destory handler to fix deadlock
[SCSI] zfcp: fix 31 bit compile warnings
[SCSI] bsg: no need to set BSG_F_BLOCK bit in bsg_complete_all_commands
[SCSI] bsg: remove minor in struct bsg_device
[SCSI] bsg: use better helper list functions
[SCSI] bsg: replace kobject_get with blk_get_queue
[SCSI] bsg: takes a ref to struct device in fops->open
[SCSI] qla1280: remove version check
[SCSI] libsas: fix endianness bug in sas_ata
[SCSI] zfcp: fix compiler warning caused by poking inside new semaphore (linux-next)
[SCSI] aacraid: Do not describe check_reset parameter with its value
[SCSI] aacraid: Fix down_interruptible() to check the return value
[SCSI] sun3_scsi_vme: add MODULE_LICENSE
[SCSI] st: rename flush_write_buffer()
[SCSI] tgt: use KMEM_CACHE macro
[SCSI] initio: fix big endian problems for auto request sense
...
2a2cf6b18626e66b7898013dfa4df8fe2feca568 17-Apr-2008 Harvey Harrison <harvey.harrison@gmail.com> [S390] replace remaining __FUNCTION__ occurrences

__FUNCTION__ is gcc-specific, use __func__

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
/drivers/s390/scsi/zfcp_def.h
2b604c9b909ce1c98e51208eee2f70ee3e604079 31-Mar-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Move DBF definitions to private header file

Unclutter the global zfcp_def.h header. Move everything required to
call into the debug feature to a new header file.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
507e49693a074e878f20718fb97a5da01ccd9cbd 27-Mar-2008 Martin Peschke <mp3@de.ibm.com> [SCSI] zfcp: Remove obsolete erp_dbf trace

This patch removes the now obsolete erp_dbf trace.

Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
6f4f365e9c5d721c4d03ee8009dd6fab47feb045 27-Mar-2008 Martin Peschke <mp3@de.ibm.com> [SCSI] zfcp: Add trace records for recovery actions.

This patch writes trace records for various phases of a recovery action:
action being created, action being processed, action continueing
asynchronously, action gone, action timed out, action dismissed etc.

Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
9467a9b3efdd9041202f71cc270bda827a7ec777 27-Mar-2008 Martin Peschke <mp3@de.ibm.com> [SCSI] zfcp: Trace all triggers of error recovery activity

This patch allows any recovery event to be traced back to an exact
cause, e.g. a particular request identified by an id (address).

Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
698ec01635819c5ae60090bb4efcbeffc41642fb 27-Mar-2008 Martin Peschke <mp3@de.ibm.com> [SCSI] zfcp: Add traces for state changes.

This patch writes a trace record which provides information about state
changes for adapters, ports and units, e.g. target failure, targets becoming
online, targets being temporarily blocked due to pending recovery, targets
which have been recovered successfully etc.

Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
348447e85749120ad600a5c8e23b6bb7058b931d 27-Mar-2008 Martin Peschke <mp3@de.ibm.com> [SCSI] zfcp: Add trace records for recovery thread and its queues

This patch writes trace records which provide information about the
operation of the zfcp error recovery thread and the queues it works
on.

Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
d79a83dbffe2e49e73f2903c350937faf2e0c2f1 27-Mar-2008 Martin Peschke <mp3@de.ibm.com> [SCSI] zfcp: Register new recovery trace.

This patch registers the new recovery trace with the s390 debug
feature.

Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
74b2e047ecda7a82c3327a0d0bb45ee2ccf301ca 03-Mar-2008 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: convert zfcp to use target reset and device reset handler

[based on proposal from Mike Christie <michaelc@cs.wisc.edu>, this
patch adds some simplifications to the handler functions]

With the new target reset handler callback in the SCSI midlayer, the
device reset handler in zfcp can be split in two parts. Now, zfcp does
not have to track anymore whether the device supports LUN resets, so
remove this flag and let the SCSI midlayer decide what to do.

The device reset handler simply issues a LUN reset and the target
reset handler a target reset.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
d1ad09db2fd551d49d65ef040591cb9298e70fb6 20-Dec-2007 Heiko Carstens <heiko.carstens@de.ibm.com> [SCSI] zfcp: fix use after free bug.

zfcp_erp_strategy_check_fsfreq() checks if it is safe to access the
fsf_req associated with the erp_action that gets passed. To test if
it is safe it accesses the fsf_req in order to get its index into
the hash list. This is broken since the fsf_req might be freed already
and the read index has no meaning. It could lead to memory corruption.
Fix this by introducing a new zfcp_reqlist_find_safe() method which
just checks if addresses are equal. This is slower, but only gets
called in case of error recovery.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
1de1b43b5f0bb536126e31f07ec833e01969ed1c 05-Nov-2007 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Fix deadlock when adding invalid LUN

When adding an invalid LUN, there is a deadlock between the add
via scsi_scan_target and the slave_destroy handler: The handler
waits for the scan to complete, but for an invalid unit,
scsi_scan_target directly calls the slave_destroy handler.

Fix the deadlock by removing the wait in the slave_destroy
handler, it was not necessary anyway.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
18edcdbdb2911baa5aaeb0ed781e3424cbf98d64 05-Nov-2007 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Specify waiting times in ERP in seconds

It is not necessary to use jiffies or milliseconds to specify
waiting times that last a couple of seconds.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
/drivers/s390/scsi/zfcp_def.h
9335432959111c982c74177521305e6a3fb600a3 26-Oct-2007 Jens Axboe <jens.axboe@oracle.com> SG: s390-scsi: missing size parameter in zfcp_address_to_sg()

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/drivers/s390/scsi/zfcp_def.h
642f149031d70415d9318b919d50b71e4724adbd 24-Oct-2007 Jens Axboe <jens.axboe@oracle.com> SG: Change sg_set_page() to take length and offset argument

Most drivers need to set length and offset as well, so may as well fold
those three lines into one.

Add sg_assign_page() for those two locations that only needed to set
the page, where the offset/length is set outside of the function context.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/drivers/s390/scsi/zfcp_def.h
73fc4f0d2ce4a92c36b00649c58e0a068a6cdfa4 23-Oct-2007 Jens Axboe <jens.axboe@oracle.com> s390 zfcp: sg fixups

Based on initial patch from Heiko Carstens <heiko.carstens@de.ibm.com>

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/drivers/s390/scsi/zfcp_def.h
f1346372f9c73154727bf2cadb7f78126597efd2 30-Jul-2007 FUJITA Tomonori <tomof@acm.org> zfcp: sg chaining support

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/drivers/s390/scsi/zfcp_def.h
41fa2adabc0a750a40d6fe86d5ce2f75fb3ad287 07-Sep-2007 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: whitespace cleanup

Cleanup the whitepace from the entire zfcp driver to prevent
to have those changes in future feature or function patches.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
b4e44590f0811e629faf2de4aea15e752d83ce3d 18-Jul-2007 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: code cleanup

improve code for buffer enqueue. easy readability and maintainability.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
ca2d02c2f9ea476062ae181eec60b8bcd97857d6 08-May-2007 Heiko Carstens <heiko.carstens@de.ibm.com> [SCSI] zfcp: rework request ID management.

Simplify request ID management and make sure that frequently used
functions are inlined. Also fix a memory leak in zfcp_adapter_enqueue()
which only gets hit in error handling.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
5f852be9e11d62223ea063f6ceed4f9677f54051 08-May-2007 Christof Schmitt <christof.schmitt@de.ibm.com> [SCSI] zfcp: Fix deadlock between zfcp ERP and SCSI

The SCSI stack requires low level drivers to register and
unregister devices. For zfcp this leads to the situation where
zfcp calls the SCSI stack, the SCSI tries to scan the new device
and the scan SCSI command fails. This would require the zfcp erp,
but the erp thread is already blocked in the register call.

The fix is to make sure that the calls from the ERP thread to
the SCSI stack do not block the ERP thread. In detail:
1) Use a workqueue to avoid blocking of the scsi_scan_target calls.
2) When removing a unit make sure that no scsi_scan_target call is
pending.
3) Replace scsi_flush_work with scsi_target_unblock. This avoids
blocking and has the same result.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
e18b890bb0881bbab6f4f1a6cd20d9c60d66b003 07-Dec-2006 Christoph Lameter <clameter@sgi.com> [PATCH] slab: remove kmem_cache_t

Replace all uses of kmem_cache_t with struct kmem_cache.

The patch was generated using the following script:

#!/bin/sh
#
# Replace one string by another in all the kernel sources.
#

set -e

for file in `find * -name "*.c" -o -name "*.h"|xargs grep -l $1`; do
quilt add $file
sed -e "1,\$s/$1/$2/g" $file >/tmp/$$
mv /tmp/$$ $file
quilt refresh
done

The script was run like this

sh replace kmem_cache_t "struct kmem_cache"

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
/drivers/s390/scsi/zfcp_def.h
8d1a006049ff1c084d57fbea1106ecad3455bd27 12-Oct-2006 Swen Schillig <swen@vnet.ibm.com> [SCSI] zfcp: initialize scsi_host_template.max_sectors with appropriate value

Define ZFCP_MAX_SECTORS and initialize scsi_host_template.max_sectors
with appropriate value.

Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
2abbe866c8eb0296e3f5343bcf73e5371522a738 18-Sep-2006 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: introduce struct timer_list in struct zfcp_fsf_req

This instance will be used whenever a timer is needed for
a request by zfcp.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
dd52e0eaf891cd85bf2ca057c15ed6bfd76db4e6 18-Sep-2006 Heiko Carstens <heiko.carstens@de.ibm.com> [SCSI] zfcp: create private slab caches to guarantee proper data alignment

Create private slab caches in order to guarantee proper alignment of
data structures that get passed to hardware.

Sidenote: with this patch slab cache debugging will finally work on s390
(at least no known problems left).

Furthermore this patch does some minor cleanups:
- store ptr for transport template in struct zfcp_data

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Compile fix ups and
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
39b083fe1c3c7b88939f6fa1b0b96e579f12e96f 20-Sep-2006 Heiko Carstens <heiko.carstens@de.ibm.com> [S390] empty function defines.

Use do { } while (0) constructs instead of empty defines to avoid
subtle compile bugs.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
/drivers/s390/scsi/zfcp_def.h
58b3ac07fed31ffc1349380b78305af6522fe1f4 02-Aug-2006 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: bump version number

New version number fo zfcp driver.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
f6c0e7a7b3b6db15146877c0cef43b413af5b76e 02-Aug-2006 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: minor erp bug fixes

Bug fixes for zfcp's erp:
- trigger adapter reopen if do_QDIO fails
- avoid erp deadlock if registration of scsi target or remote port hang
- do not treat as error if exchange port data fails
- decrease timeout for target reset and aborts
- mark unit failed if slave_destroy is called

Additionally some code cleanup was done:
- made some functions void when retval is not of interest
- shortened initialization of zfcp's host_template
- corrected some comments

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
fea9d6c7bcd8ff1d60ff74f27ba483b3820b18a3 02-Aug-2006 Volker Sameske <sameske@de.ibm.com> [SCSI] zfcp: improve management of request IDs

Improve request handling. Use hash table to manage request IDs.

Signed-off-by: Volker Sameske <sameske@de.ibm.com>
Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
93ef588735973e4c35ff3707685678cdebd694a4 22-May-2006 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: bump up version number

Bump up version number, skip "4.6.0" because this might
clash with zfcp version in certain distros.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
75bfc2837bbcc329193d51e8b7115184b78beae0 22-May-2006 Ralph Wuerthner <rwuerthn@de.ibm.com> [SCSI] zfcp: evaluate plogi payload to set maxframe_size, supported_classes of rports

Signed-off-by: Ralph Wuerthner <rwuerthn@de.ibm.com>
Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
06506d00ec1a0d7d3b1dff59185af355ce29ac0a 22-May-2006 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: (cleanup) removed superfluous macros, struct members, typedefs

Removed some macros, struct members and typedefs which were
unused or not necessary.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
4a9d2d8bf989c77b54add430932fa5ed8a80dba9 22-May-2006 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: (cleanup) shortened copyright and author information

Copyright update, shortened file headers, shortened author information.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
ad58f7dbeb6f5ea82679962f18985f16b660a2d9 10-Mar-2006 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: fix device registration issues

The patch fixes following issues:

(1) Replace scsi_add_device with scsi_scan_target.
(Thus the rport instead of the scsi_host becomes parent of a
scsi_target again.)

(2) Avoid scsi_device allocation during registration of an remote port.
(Would be done during fc_scsi_scan_rport.)

(3) Fix queuecommand behaviour when an zfcp unit is blocked.
(Call scsi_done with DID_NO_CONNECT instead of returning
SCSI_MLQUEUE_DEVICE_BUSY otherwise we might end up waiting
for completion in blk_execute_rq for ever.)

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
ed829ad607a9c334cea490d3a8c0f874153fb42d 11-Feb-2006 Maxim Shchetynin <maxim@de.ibm.com> [SCSI] zfcp: fix logging during device reset

Avoid access to old fsf_requests if device reset is logged.

Signed-off-by: Maxim Shchetynin <maxim@de.ibm.com>
Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
2f8f3ed5fc566700cf45d422f4cf1624bd123d93 11-Feb-2006 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: fix adapter erp when link is unplugged

Remove endless polling for replug of the local link. Just wait for
link up notification.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
c8024eb549f0c701e6d1c46c32e997f06f05d76d 11-Feb-2006 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: get rid of physical_wwpn and physical_s_id

Remove all remainders of obsolete zfcp adapter attributes physical_wwpn and
physical_s_id.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
e018ba1fceee5bd306e31f6e3a60934d5f143ac5 01-Feb-2006 Heiko Carstens <heiko.carstens@de.ibm.com> [PATCH] s390: Remove CVS generated information

- Remove all CVS generated information like e.g. revision IDs from
drivers/s390 and include/asm-s390 (none present in arch/s390).

- Add newline at end of arch/s390/lib/Makefile to avoid diff message.

Acked-by: Andreas Herrmann <aherrman@de.ibm.com>
Acked-by: Frank Pavlic <pavlic@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
/drivers/s390/scsi/zfcp_def.h
ad757cdfd2a40c9d5310d00f24427525788341cd 13-Jan-2006 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: transport class adaptations II

Replaced zfcp adapter attributes with fc_host attributes:
fc_topology by port_type, physical_wwpn by permanent_port_name.
Make use of fc_host attribute supported_speeds.
Removed zfcp adapter attribute physical_s_id.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
f6cd94b126aa78ebaa21075df3b9577fbf995968 05-Jan-2006 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: transport class adaptations

Added host stats, removed superfluous get_starget_ functions,
removed some attributes from zfcp specific sysfs tree (e.g.
scsi_host_no, scsi_lun, wwnn and d_id).
Host stats are given for the physical adapter port not for the
virtual adapter. Reset stats is implemented in the device driver.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
13e1e1f08c1c098c7574c1fa72bd8c67792dc89b 19-Sep-2005 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: add additional fc_host attributes

this patch adds some fc host attributes and removes its equivalents
from the zfcp_adapter structure and zfcp specific sysfs subtree.

Furthermore it removes superfluous calls to fc_remort_port_delete when
an adapter is set offline because rports will be removed by
fc_remove_host anyway.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
aef4a983090fa590481a86d9690dc3fa6bb121fa 13-Sep-2005 Maxim Shchetynin <maxim@de.ibm.com> [SCSI] zfcp: provide support for NPIV

N_Port ID Virtualization (NPIV) allows a single FCP port to appear as
multiple, distinct ports providing separate port identification. NPIV
is supported by FC HBAs on System z9. zfcp was adapted to support this
new feature.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
8a36e4532ea10471f0a8605207d071361d7be2c3 13-Sep-2005 Maxim Shchetynin <maxim@de.ibm.com> [SCSI] zfcp: enhancement of zfcp debug features

Debug features (DBFs) els_dbf, cmd_dbf and abt_dbf were removed and
san_dbf, hba_dbf and scsi_dbf were introduced. The erp_dbf did not
change.
The new traces improve debugging of problems with zfcp, scsi-stack,
multipath and hardware in the SAN. san_dbf traces things like ELS and
CT commands, hba_dbf saves HBA specific information of requests, and
scsi_dbf saves FCP and SCSI specific information of requests. Common
to all new DBFs is that they provide a so called structured view. This
significantly improves readability of the traces.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
059c97d0434834d291eff94669ca2dd3eaac9d28 13-Sep-2005 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: remove union zfcp_req_data, use unit refcount for FCP commands

o union zfcp_req_data removed
o increment unit refcount when processing FCP commands
(This fixes a theoretical race: When all scsi commands of a unit
are aborted and the scsi_device is removed then the unit could be
removed before all fsf_requests of that unit are completely processed.)

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
3859f6a248cbdfbe7b41663f3a2b51f48e30b281 27-Aug-2005 Andreas Herrmann <aherrman@de.ibm.com> [PATCH] zfcp: add rports to enable scsi_add_device to work again

This patch fixes a severe problem with 2.6.13-rc7.

Due to recent SCSI changes it is not possible to add any LUNs to the zfcp
device driver anymore. With registration of remote ports this is fixed.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Acked-by: James Bottomley <jejb@steeleye.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
/drivers/s390/scsi/zfcp_def.h
d736a27b7efbc835c7b83db5c1bbd41edbadf32e 13-Jun-2005 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: fix handling of port boxed and lun boxed fsf states

From: Maxim Shchetynin <maxim@de.ibm.com>

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
1db2c9c0931a53fe013db55fd2ff58859db31e8d 13-Jun-2005 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: fix bug during adapter shutdown

Fixes a race between zfcp_fsf_req_dismiss_all and
zfcp_qdio_reqid_check. During adapter shutdown it occurred that a
request was cleaned up twice. First during its normal
completion. Second when dismiss_all was called. The fix is to
serialize access to fsf request list between zfcp_fsf_req_dismiss_all
and zfcp_qdio_reqid_check and delete a fsf request from the list if
its completion is triggered. (Additionally a rwlock was replaced by a
spinlock and fsf_req_cleanup was eliminated.)

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
64b29a130901d5b8578e9f602cf2dae56aaff224 13-Jun-2005 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: fix: problem in send_els_handler when D_ID assignment changes

From: Maxim Shchetynin <maxim@de.ibm.com>

Fixes a bug in zfcp_send_els_handler. If D_ID assignments for ports
are changing between initiation of one ELS request and its completion
the wrong port might be accessed in the completion for that ELS
request. Thus a pointer to the port has to be passed for ELS requests
to identify the port structure if required.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
22753fa514aad02342e647ad13048caa282d9238 13-Jun-2005 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: fix: allow more time for adapter initialization

From: Maxim Shchetynin <maxim@de.ibm.com>

Extend the time for adapter initialization: In case of protocol
status HOST_CONNECTION_INITIALIZING for the exchange config data
command do a first retry in 1 second, then double the sleep time for
each following retry until recovery exceeds 2 minutes. The old
behaviour of allowing 6 retries with .5 seconds delay between retries
was insufficient and qdio queues were shut down too erarly.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
6bc9dace767f1fffdf975b3398b3c4e37cd5ae18 10-Jun-2005 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: remove flags_dump feature

Removes the rarely used "flags_dump" mechanism of zfcp.

Equivalent debug information will be provided with a reworking of
zfcp's s390dbf-facilities which is in preparation.

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
bd6ae2f6d61da0f90c6b66e9a4ab6c53ef8c159a 21-Apr-2005 Andreas Herrmann <aherrman@de.ibm.com> [SCSI] zfcp: fix compile error

Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
6f71d9bc025b02a8cbc2be83b0226a7043a507a5 11-Apr-2005 <jejb@titanic.il.steeleye.com> zfcp: add point-2-point support

From: Andreas Herrmann <aherrman@de.ibm.com>

This patch mainly introduces support for point-2-point
topology.

From: Heiko Carstens <heiko.carstens@de.ibm.com>
From: Maxim Shchetynin <maxim@de.ibm.com>
From: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
/drivers/s390/scsi/zfcp_def.h
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 17-Apr-2005 Linus Torvalds <torvalds@ppc970.osdl.org> Linux-2.6.12-rc2

Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.

Let it rip!
/drivers/s390/scsi/zfcp_def.h