Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
Pull infiniband updates from Roland Dreier: "Main batch of InfiniBand/RDMA changes for 3.14: - Flow steering for InfiniBand UD traffic - IP-based addressing for IBoE aka RoCE - Pass SRP submaintainership from Dave to Bart - SRP transport fixes from Bart - Add the new Cisco usNIC low-level device driver - Various other fixes" * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (75 commits) IB/mlx5: Verify reserved fields are cleared IB/mlx5: Remove old field for create mkey mailbox IB/mlx5: Abort driver cleanup if teardown hca fails IB/mlx5: Allow creation of QPs with zero-length work queues mlx5_core: Fix PowerPC support mlx5_core: Improve debugfs readability IB/mlx5: Add support for resize CQ IB/mlx5: Implement modify CQ IB/mlx5: Make sure doorbell record is visible before doorbell mlx5_core: Use mlx5 core style warning IB/mlx5: Clear out struct before create QP command mlx5_core: Fix out arg size in access_register command RDMA/nes: Slight optimization of Ethernet address compare IB/qib: Fix QP check when looping back to/from QP1 RDMA/cxgb4: Fix gcc warning on 32-bit arch IB/usnic: Remove unused includes of <linux/version.h> RDMA/amso1100: Add check if cache memory was allocated before freeing it IPoIB: Report operstate consistently when brought up without a link IB/core: Fix unused variable warning RDMA/cma: Handle global/non-linklocal IPv6 addresses in cma_check_linklocal() ...
This commit is contained in:
@@ -19,7 +19,7 @@ struct srp_rport_identifiers {
|
||||
* @SRP_RPORT_BLOCKED: Transport layer not operational; fast I/O fail timer
|
||||
* is running and I/O has been blocked.
|
||||
* @SRP_RPORT_FAIL_FAST: Fast I/O fail timer has expired; fail I/O fast.
|
||||
* @SRP_RPORT_LOST: Device loss timer has expired; port is being removed.
|
||||
* @SRP_RPORT_LOST: Port is being removed.
|
||||
*/
|
||||
enum srp_rport_state {
|
||||
SRP_RPORT_RUNNING,
|
||||
@@ -29,10 +29,26 @@ enum srp_rport_state {
|
||||
};
|
||||
|
||||
/**
|
||||
* struct srp_rport
|
||||
* @lld_data: LLD private data.
|
||||
* @mutex: Protects against concurrent rport reconnect / fast_io_fail /
|
||||
* dev_loss_tmo activity.
|
||||
* struct srp_rport - SRP initiator or target port
|
||||
*
|
||||
* Fields that are relevant for SRP initiator and SRP target drivers:
|
||||
* @dev: Device associated with this rport.
|
||||
* @port_id: 16-byte port identifier.
|
||||
* @roles: Role of this port - initiator or target.
|
||||
*
|
||||
* Fields that are only relevant for SRP initiator drivers:
|
||||
* @lld_data: LLD private data.
|
||||
* @mutex: Protects against concurrent rport reconnect /
|
||||
* fast_io_fail / dev_loss_tmo activity.
|
||||
* @state: rport state.
|
||||
* @deleted: Whether or not srp_rport_del() has already been invoked.
|
||||
* @reconnect_delay: Reconnect delay in seconds.
|
||||
* @failed_reconnects: Number of failed reconnect attempts.
|
||||
* @reconnect_work: Work structure used for scheduling reconnect attempts.
|
||||
* @fast_io_fail_tmo: Fast I/O fail timeout in seconds.
|
||||
* @dev_loss_tmo: Device loss timeout in seconds.
|
||||
* @fast_io_fail_work: Work structure used for scheduling fast I/O fail work.
|
||||
* @dev_loss_work: Work structure used for scheduling device loss work.
|
||||
*/
|
||||
struct srp_rport {
|
||||
/* for initiator and target drivers */
|
||||
@@ -48,7 +64,6 @@ struct srp_rport {
|
||||
|
||||
struct mutex mutex;
|
||||
enum srp_rport_state state;
|
||||
bool deleted;
|
||||
int reconnect_delay;
|
||||
int failed_reconnects;
|
||||
struct delayed_work reconnect_work;
|
||||
@@ -60,6 +75,8 @@ struct srp_rport {
|
||||
|
||||
/**
|
||||
* struct srp_function_template
|
||||
*
|
||||
* Fields that are only relevant for SRP initiator drivers:
|
||||
* @has_rport_state: Whether or not to create the state, fast_io_fail_tmo and
|
||||
* dev_loss_tmo sysfs attribute for an rport.
|
||||
* @reset_timer_if_blocked: Whether or srp_timed_out() should reset the command
|
||||
@@ -71,6 +88,11 @@ struct srp_rport {
|
||||
* srp_reconnect_rport().
|
||||
* @terminate_rport_io: Callback function for terminating all outstanding I/O
|
||||
* requests for an rport.
|
||||
* @rport_delete: Callback function that deletes an rport.
|
||||
*
|
||||
* Fields that are only relevant for SRP target drivers:
|
||||
* @tsk_mgmt_response: Callback function for sending a task management response.
|
||||
* @it_nexus_response: Callback function for processing an IT nexus response.
|
||||
*/
|
||||
struct srp_function_template {
|
||||
/* for initiator drivers */
|
||||
@@ -101,9 +123,11 @@ extern int srp_tmo_valid(int reconnect_delay, int fast_io_fail_tmo,
|
||||
extern int srp_reconnect_rport(struct srp_rport *rport);
|
||||
extern void srp_start_tl_fail_timers(struct srp_rport *rport);
|
||||
extern void srp_remove_host(struct Scsi_Host *);
|
||||
extern void srp_stop_rport_timers(struct srp_rport *rport);
|
||||
|
||||
/**
|
||||
* srp_chkready() - evaluate the transport layer state before I/O
|
||||
* @rport: SRP target port pointer.
|
||||
*
|
||||
* Returns a SCSI result code that can be returned by the LLD queuecommand()
|
||||
* implementation. The role of this function is similar to that of
|
||||
|
Reference in New Issue
Block a user