Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / drivers / infiniband / ulp / srp / ib_srp.h
index 5b581fb..c5cd43a 100644 (file)
@@ -46,7 +46,6 @@
 #include <rdma/ib_verbs.h>
 #include <rdma/ib_sa.h>
 #include <rdma/ib_cm.h>
-#include <rdma/ib_fmr_pool.h>
 
 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];