diff --git a/src/urma/hw/udma/kernel_headers/udma_abi.h b/src/urma/hw/udma/kernel_headers/udma_abi.h index 3cc1e7b9fd8d7cc2f27bff56e4f177bf76f0e3a7..257962765d5aab447ac116b6ce4858d62f4a7194 100644 --- a/src/urma/hw/udma/kernel_headers/udma_abi.h +++ b/src/urma/hw/udma/kernel_headers/udma_abi.h @@ -6,9 +6,9 @@ #include -#define MAP_COMMAND_MASK 0xff -#define MAP_INDEX_MASK 0xffffff -#define MAP_INDEX_SHIFT 8 +#define MAP_COMMAND_MASK 0xf +#define MAP_INDEX_MASK 0xfffffff +#define MAP_INDEX_SHIFT 4 #define UDMA_SEGMENT_ACCESS_GUARD (1UL << 5) @@ -85,7 +85,7 @@ struct udma_create_jetty_ucmd { struct udma_create_jfc_ucmd { __aligned_u64 buf_addr; __u32 buf_len; - __u32 mode; /* 0: normal, 1: user STARS mode, 2: kernel STARS mode */ + __u32 mode; /* 0: normal, 1: user stars, 2: kernel stars */ __aligned_u64 db_addr; __u32 is_hugepage : 1; __u32 rsv : 31; @@ -112,9 +112,9 @@ struct udma_create_jfr_resp { }; enum db_mmap_type { + UDMA_MMAP_HUGEPAGE, UDMA_MMAP_JFC_PAGE, UDMA_MMAP_JETTY_DSQE, - UDMA_MMAP_HUGEPAGE, }; enum { diff --git a/src/urma/hw/udma/udma_u_buf.c b/src/urma/hw/udma/udma_u_buf.c index 5200c4b3a45a124832d3e7e7d54f5d88d3e3fcac..edfe893854d1781abffdda49f7af87a32e8da56a 100644 --- a/src/urma/hw/udma/udma_u_buf.c +++ b/src/urma/hw/udma/udma_u_buf.c @@ -130,7 +130,7 @@ static void udma_u_hugepage_del(struct udma_u_context *ctx, static struct udma_u_hugepage_priv * udma_u_alloc_hugepage_priv(struct udma_u_context *ctx, uint32_t len) { - off_t offset = get_mmap_offset(0, ctx->page_size, UDMA_MMAP_HUGEPAGE); + off_t offset = get_mmap_offset((UDMA_HUGEPAGE_SIZE / ctx->page_size >> MAP_INDEX_SHIFT), ctx->page_size, UDMA_MMAP_HUGEPAGE); struct udma_u_hugepage_priv *priv; int ret;