]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/rds/rds.h
Merge tag 'powerpc-5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
[linux.git] / net / rds / rds.h
index 53e86911773a83fb8206a46c769600bcd71fe566..e4a6035230836981a286b2b87ea09de361bff3a8 100644 (file)
@@ -40,7 +40,6 @@
 #ifdef ATOMIC64_INIT
 #define KERNEL_HAS_ATOMIC64
 #endif
-
 #ifdef RDS_DEBUG
 #define rdsdebug(fmt, args...) pr_debug("%s(): " fmt, __func__ , ##args)
 #else
@@ -478,6 +477,9 @@ struct rds_message {
                        struct rds_notifier     *op_notifier;
 
                        struct rds_mr           *op_rdma_mr;
+
+                       u64                     op_odp_addr;
+                       struct rds_mr           *op_odp_mr;
                } rdma;
                struct rm_data_op {
                        unsigned int            op_active:1;
@@ -573,7 +575,8 @@ struct rds_transport {
        void (*exit)(void);
        void *(*get_mr)(struct scatterlist *sg, unsigned long nr_sg,
                        struct rds_sock *rs, u32 *key_ret,
-                       struct rds_connection *conn);
+                       struct rds_connection *conn,
+                       u64 start, u64 length, int need_odp);
        void (*sync_mr)(void *trans_private, int direction);
        void (*free_mr)(void *trans_private, int invalidate);
        void (*flush_mrs)(void);
@@ -956,6 +959,12 @@ static inline bool rds_destroy_pending(struct rds_connection *conn)
               (conn->c_trans->t_unloading && conn->c_trans->t_unloading(conn));
 }
 
+enum {
+       ODP_NOT_NEEDED,
+       ODP_ZEROBASED,
+       ODP_VIRTUAL
+};
+
 /* stats.c */
 DECLARE_PER_CPU_SHARED_ALIGNED(struct rds_statistics, rds_stats);
 #define rds_stats_inc_which(which, member) do {                \