git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
infiniband
/
ulp
/
iser
/
iscsi_iser.h
diff --git
a/drivers/infiniband/ulp/iser/iscsi_iser.h
b/drivers/infiniband/ulp/iser/iscsi_iser.h
index
3350ba6
..
cae8c96
100644
(file)
--- a/
drivers/infiniband/ulp/iser/iscsi_iser.h
+++ b/
drivers/infiniband/ulp/iser/iscsi_iser.h
@@
-82,8
+82,12
@@
__func__ , ## arg); \
} while (0)
__func__ , ## arg); \
} while (0)
+#define SHIFT_4K 12
+#define SIZE_4K (1UL << SHIFT_4K)
+#define MASK_4K (~(SIZE_4K-1))
+
/* support upto 512KB in one RDMA */
/* support upto 512KB in one RDMA */
-#define ISCSI_ISER_SG_TABLESIZE (0x80000 >>
PAGE_SHIFT
)
+#define ISCSI_ISER_SG_TABLESIZE (0x80000 >>
SHIFT_4K
)
#define ISCSI_ISER_MAX_LUN 256
#define ISCSI_ISER_MAX_CMD_LEN 16
#define ISCSI_ISER_MAX_LUN 256
#define ISCSI_ISER_MAX_CMD_LEN 16
@@
-171,13
+175,14
@@
struct iser_mem_reg {
u64 va;
u64 len;
void *mem_h;
u64 va;
u64 len;
void *mem_h;
+ int is_fmr;
};
struct iser_regd_buf {
struct iser_mem_reg reg; /* memory registration info */
void *virt_addr;
struct iser_device *device; /* device->device for dma_unmap */
};
struct iser_regd_buf {
struct iser_mem_reg reg; /* memory registration info */
void *virt_addr;
struct iser_device *device; /* device->device for dma_unmap */
-
dma_addr_t
dma_addr; /* if non zero, addr for dma_unmap */
+
u64
dma_addr; /* if non zero, addr for dma_unmap */
enum dma_data_direction direction; /* direction for dma_unmap */
unsigned int data_size;
atomic_t ref_count; /* refcount, freed when dec to 0 */
enum dma_data_direction direction; /* direction for dma_unmap */
unsigned int data_size;
atomic_t ref_count; /* refcount, freed when dec to 0 */
@@
-187,7
+192,7
@@
struct iser_regd_buf {
struct iser_dto {
struct iscsi_iser_cmd_task *ctask;
struct iser_dto {
struct iscsi_iser_cmd_task *ctask;
- struct is
csi_iser_conn *
conn;
+ struct is
er_conn *ib_
conn;
int notify_enable;
/* vector of registered buffers */
int notify_enable;
/* vector of registered buffers */
@@
-257,7
+262,6
@@
struct iscsi_iser_conn {
struct iscsi_iser_cmd_task {
struct iser_desc desc;
struct iscsi_iser_conn *iser_conn;
struct iscsi_iser_cmd_task {
struct iser_desc desc;
struct iscsi_iser_conn *iser_conn;
- int rdma_data_count;/* RDMA bytes */
enum iser_task_status status;
int command_sent; /* set if command sent */
int dir[ISER_DIRS_NUM]; /* set if dir use*/
enum iser_task_status status;
int command_sent; /* set if command sent */
int dir[ISER_DIRS_NUM]; /* set if dir use*/
@@
-279,7
+283,7
@@
struct iser_global {
struct mutex connlist_mutex;
struct list_head connlist; /* all iSER IB connections */
struct mutex connlist_mutex;
struct list_head connlist; /* all iSER IB connections */
-
kmem_cache_t
*desc_cache;
+
struct kmem_cache
*desc_cache;
};
extern struct iser_global ig;
};
extern struct iser_global ig;
@@
-351,4
+355,11
@@
int iser_post_send(struct iser_desc *tx_desc);
int iser_conn_state_comp(struct iser_conn *ib_conn,
enum iser_ib_conn_state comp);
int iser_conn_state_comp(struct iser_conn *ib_conn,
enum iser_ib_conn_state comp);
+
+int iser_dma_map_task_data(struct iscsi_iser_cmd_task *iser_ctask,
+ struct iser_data_buf *data,
+ enum iser_data_dir iser_dir,
+ enum dma_data_direction dma_dir);
+
+void iser_dma_unmap_task_data(struct iscsi_iser_cmd_task *iser_ctask);
#endif
#endif