Lines Matching refs:db
689 struct mlx4_db *db, int order) in mlx4_alloc_db_from_pgdir() argument
710 db->u.pgdir = pgdir; in mlx4_alloc_db_from_pgdir()
711 db->index = i; in mlx4_alloc_db_from_pgdir()
712 db->db = pgdir->db_page + db->index; in mlx4_alloc_db_from_pgdir()
713 db->dma = pgdir->db_dma + db->index * 4; in mlx4_alloc_db_from_pgdir()
714 db->order = order; in mlx4_alloc_db_from_pgdir()
719 int mlx4_db_alloc(struct mlx4_dev *dev, struct mlx4_db *db, int order, gfp_t gfp) in mlx4_db_alloc() argument
728 if (!mlx4_alloc_db_from_pgdir(pgdir, db, order)) in mlx4_db_alloc()
740 WARN_ON(mlx4_alloc_db_from_pgdir(pgdir, db, order)); in mlx4_db_alloc()
749 void mlx4_db_free(struct mlx4_dev *dev, struct mlx4_db *db) in mlx4_db_free() argument
757 o = db->order; in mlx4_db_free()
758 i = db->index; in mlx4_db_free()
760 if (db->order == 0 && test_bit(i ^ 1, db->u.pgdir->order0)) { in mlx4_db_free()
761 clear_bit(i ^ 1, db->u.pgdir->order0); in mlx4_db_free()
765 set_bit(i, db->u.pgdir->bits[o]); in mlx4_db_free()
767 if (bitmap_full(db->u.pgdir->order1, MLX4_DB_PER_PAGE / 2)) { in mlx4_db_free()
769 db->u.pgdir->db_page, db->u.pgdir->db_dma); in mlx4_db_free()
770 list_del(&db->u.pgdir->list); in mlx4_db_free()
771 kfree(db->u.pgdir); in mlx4_db_free()
783 err = mlx4_db_alloc(dev, &wqres->db, 1, GFP_KERNEL); in mlx4_alloc_hwq_res()
787 *wqres->db.db = 0; in mlx4_alloc_hwq_res()
809 mlx4_db_free(dev, &wqres->db); in mlx4_alloc_hwq_res()
820 mlx4_db_free(dev, &wqres->db); in mlx4_free_hwq_res()