X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Finfiniband%2Fulp%2Fsrp%2Fib_srp.h;h=c5cd43aae8604af42fb349b160e608a10a84c16d;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=5b581fb8eb0d08addeea3f9a5fff4763592f1ed6;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/drivers/infiniband/ulp/srp/ib_srp.h b/drivers/infiniband/ulp/srp/ib_srp.h index 5b581fb8e..c5cd43aae 100644 --- a/drivers/infiniband/ulp/srp/ib_srp.h +++ b/drivers/infiniband/ulp/srp/ib_srp.h @@ -46,7 +46,6 @@ #include #include #include -#include enum { SRP_PATH_REC_TIMEOUT_MS = 1000, @@ -56,21 +55,20 @@ enum { SRP_DLID_REDIRECT = 2, SRP_MAX_LUN = 512, - SRP_DEF_SG_TABLESIZE = 12, + SRP_MAX_IU_LEN = 256, SRP_RQ_SHIFT = 6, SRP_RQ_SIZE = 1 << SRP_RQ_SHIFT, SRP_SQ_SIZE = SRP_RQ_SIZE - 1, SRP_CQ_SIZE = SRP_SQ_SIZE + SRP_RQ_SIZE, - SRP_TAG_TSK_MGMT = 1 << (SRP_RQ_SHIFT + 1), - - SRP_FMR_SIZE = 256, - SRP_FMR_POOL_SIZE = 1024, - SRP_FMR_DIRTY_SIZE = SRP_FMR_POOL_SIZE / 4 + SRP_TAG_TSK_MGMT = 1 << (SRP_RQ_SHIFT + 1) }; #define SRP_OP_RECV (1 << 31) +#define SRP_MAX_INDIRECT ((SRP_MAX_IU_LEN - \ + sizeof (struct srp_cmd) - \ + sizeof (struct srp_indirect_buf)) / 16) enum srp_target_state { SRP_TARGET_LIVE, @@ -79,24 +77,15 @@ enum srp_target_state { SRP_TARGET_REMOVED }; -struct srp_device { - struct list_head dev_list; +struct srp_host { + u8 initiator_port_id[16]; struct ib_device *dev; + u8 port; struct ib_pd *pd; struct ib_mr *mr; - struct ib_fmr_pool *fmr_pool; - int fmr_page_shift; - int fmr_page_size; - unsigned long fmr_page_mask; -}; - -struct srp_host { - u8 initiator_port_id[16]; - struct srp_device *dev; - u8 port; struct class_device class_dev; struct list_head target_list; - spinlock_t target_lock; + struct mutex target_mutex; struct completion released; struct list_head list; }; @@ -106,7 +95,6 @@ struct srp_request { struct scsi_cmnd *scmnd; struct srp_iu *cmd; struct srp_iu *tsk_mgmt; - struct ib_pool_fmr *fmr; /* * Fake scatterlist used when scmnd->use_sg==0. Can be killed * when the SCSI midlayer no longer generates non-SG commands. @@ -122,7 +110,6 @@ struct srp_target_port { __be64 id_ext; __be64 ioc_guid; __be64 service_id; - u16 io_class; struct srp_host *srp_host; struct Scsi_Host *scsi_host; char target_name[32]; @@ -139,8 +126,6 @@ struct srp_target_port { int max_ti_iu_len; s32 req_lim; - int zero_req_lim; - unsigned rx_head; struct srp_iu *rx_ring[SRP_RQ_SIZE];