From 95498fa038e6a3bfc88a1efeec2eb64fe0de6332 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 18 Sep 2007 06:26:31 +0100 Subject: [PATCH] Remove the last remaining visible hack. --- src/drivers/infiniband/arbel.c | 19 +++++++++---------- src/drivers/infiniband/arbel.h | 2 ++ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/drivers/infiniband/arbel.c b/src/drivers/infiniband/arbel.c index 51246d7e..9ba81ca7 100644 --- a/src/drivers/infiniband/arbel.c +++ b/src/drivers/infiniband/arbel.c @@ -1692,6 +1692,7 @@ static int arbel_alloc_icm ( struct arbel *arbel, struct arbelprm_scalar_parameter icm_aux_size; struct arbelprm_virtual_physical_mapping map_icm_aux; struct arbelprm_virtual_physical_mapping map_icm; + union arbelprm_doorbell_record *db_rec; size_t icm_offset = 0; unsigned int log_num_qps, log_num_srqs, log_num_ees, log_num_cqs; unsigned int log_num_mtts, log_num_mpts, log_num_rdbs, log_num_eqs; @@ -1848,6 +1849,14 @@ static int arbel_alloc_icm ( struct arbel *arbel, goto err_map_icm; } + /* Initialise UAR context */ + arbel->db_rec = phys_to_virt ( user_to_phys ( arbel->icm, 0 ) + + ( arbel->limits.reserved_uars * + ARBEL_PAGE_SIZE ) ); + memset ( arbel->db_rec, 0, ARBEL_PAGE_SIZE ); + db_rec = &arbel->db_rec[ARBEL_GROUP_SEPARATOR_DOORBELL]; + MLX_FILL_1 ( &db_rec->qp, 1, res, ARBEL_UAR_RES_GROUP_SEP ); + return 0; arbel_cmd_unmap_icm ( arbel, ( arbel->icm_len / 4096 ) ); @@ -2026,16 +2035,6 @@ static int arbel_probe ( struct pci_device *pci, if ( ( rc = arbel_alloc_icm ( arbel, &init_hca ) ) != 0 ) goto err_alloc_icm; - - unsigned long uar_offset = ( arbel->limits.reserved_uars * 4096 ); - arbel->db_rec = phys_to_virt ( user_to_phys ( arbel->icm, - uar_offset ) ); - memset ( arbel->db_rec, 0, 4096 ); - union arbelprm_doorbell_record *db_rec; - db_rec = &arbel->db_rec[ARBEL_GROUP_SEPARATOR_DOORBELL]; - MLX_FILL_1 ( &db_rec->qp, 1, res, ARBEL_UAR_RES_GROUP_SEP ); - - /* Initialise HCA */ MLX_FILL_1 ( &init_hca, 74, uar_parameters.log_max_uars, 1 ); if ( ( rc = arbel_cmd_init_hca ( arbel, &init_hca ) ) != 0 ) { diff --git a/src/drivers/infiniband/arbel.h b/src/drivers/infiniband/arbel.h index 4d2c740f..4d7e4fc6 100644 --- a/src/drivers/infiniband/arbel.h +++ b/src/drivers/infiniband/arbel.h @@ -79,6 +79,8 @@ #define ARBEL_INVALID_LKEY 0x00000100UL +#define ARBEL_PAGE_SIZE 4096 + #define ARBEL_DB_POST_SND_OFFSET 0x10 /*