Lines Matching refs:db
702 struct mlx4_db *db, int order) in mlx4_alloc_db_from_pgdir() argument
723 db->u.pgdir = pgdir; in mlx4_alloc_db_from_pgdir()
724 db->index = i; in mlx4_alloc_db_from_pgdir()
725 db->db = pgdir->db_page + db->index; in mlx4_alloc_db_from_pgdir()
726 db->dma = pgdir->db_dma + db->index * 4; in mlx4_alloc_db_from_pgdir()
727 db->order = order; in mlx4_alloc_db_from_pgdir()
732 int mlx4_db_alloc(struct mlx4_dev *dev, struct mlx4_db *db, int order, gfp_t gfp) in mlx4_db_alloc() argument
741 if (!mlx4_alloc_db_from_pgdir(pgdir, db, order)) in mlx4_db_alloc()
753 WARN_ON(mlx4_alloc_db_from_pgdir(pgdir, db, order)); in mlx4_db_alloc()
762 void mlx4_db_free(struct mlx4_dev *dev, struct mlx4_db *db) in mlx4_db_free() argument
770 o = db->order; in mlx4_db_free()
771 i = db->index; in mlx4_db_free()
773 if (db->order == 0 && test_bit(i ^ 1, db->u.pgdir->order0)) { in mlx4_db_free()
774 clear_bit(i ^ 1, db->u.pgdir->order0); in mlx4_db_free()
778 set_bit(i, db->u.pgdir->bits[o]); in mlx4_db_free()
780 if (bitmap_full(db->u.pgdir->order1, MLX4_DB_PER_PAGE / 2)) { in mlx4_db_free()
782 db->u.pgdir->db_page, db->u.pgdir->db_dma); in mlx4_db_free()
783 list_del(&db->u.pgdir->list); in mlx4_db_free()
784 kfree(db->u.pgdir); in mlx4_db_free()
796 err = mlx4_db_alloc(dev, &wqres->db, 1, GFP_KERNEL); in mlx4_alloc_hwq_res()
800 *wqres->db.db = 0; in mlx4_alloc_hwq_res()
822 mlx4_db_free(dev, &wqres->db); in mlx4_alloc_hwq_res()
833 mlx4_db_free(dev, &wqres->db); in mlx4_free_hwq_res()