Lines Matching refs:uuarn
489 int uuarn = -EINVAL; in alloc_uuar() local
494 uuarn = 0; in alloc_uuar()
495 uuari->count[uuarn]++; in alloc_uuar()
500 uuarn = -ENOMEM; in alloc_uuar()
502 uuarn = alloc_med_class_uuar(uuari); in alloc_uuar()
507 uuarn = -ENOMEM; in alloc_uuar()
509 uuarn = alloc_high_class_uuar(uuari); in alloc_uuar()
513 uuarn = 2; in alloc_uuar()
518 return uuarn; in alloc_uuar()
521 static void free_med_class_uuar(struct mlx5_uuar_info *uuari, int uuarn) in free_med_class_uuar() argument
523 clear_bit(uuarn, uuari->bitmap); in free_med_class_uuar()
524 --uuari->count[uuarn]; in free_med_class_uuar()
527 static void free_high_class_uuar(struct mlx5_uuar_info *uuari, int uuarn) in free_high_class_uuar() argument
529 clear_bit(uuarn, uuari->bitmap); in free_high_class_uuar()
530 --uuari->count[uuarn]; in free_high_class_uuar()
533 static void free_uuar(struct mlx5_uuar_info *uuari, int uuarn) in free_uuar() argument
539 if (uuarn == 0) { in free_uuar()
540 --uuari->count[uuarn]; in free_uuar()
544 if (uuarn < high_uuar) { in free_uuar()
545 free_med_class_uuar(uuari, uuarn); in free_uuar()
549 free_high_class_uuar(uuari, uuarn); in free_uuar()
588 static int uuarn_to_uar_index(struct mlx5_uuar_info *uuari, int uuarn) in uuarn_to_uar_index() argument
590 return uuari->uars[uuarn / MLX5_BF_REGS_PER_PAGE].index; in uuarn_to_uar_index()
604 int uuarn; in create_user_qp() local
618 uuarn = alloc_uuar(&context->uuari, MLX5_IB_LATENCY_CLASS_HIGH); in create_user_qp()
619 if (uuarn < 0) { in create_user_qp()
622 uuarn = alloc_uuar(&context->uuari, MLX5_IB_LATENCY_CLASS_MEDIUM); in create_user_qp()
623 if (uuarn < 0) { in create_user_qp()
626 uuarn = alloc_uuar(&context->uuari, MLX5_IB_LATENCY_CLASS_LOW); in create_user_qp()
627 if (uuarn < 0) { in create_user_qp()
629 return uuarn; in create_user_qp()
634 uar_index = uuarn_to_uar_index(&context->uuari, uuarn); in create_user_qp()
635 mlx5_ib_dbg(dev, "uuarn 0x%x, uar_index 0x%x\n", uuarn, uar_index); in create_user_qp()
682 resp->uuar_index = uuarn; in create_user_qp()
683 qp->uuarn = uuarn; in create_user_qp()
711 free_uuar(&context->uuari, uuarn); in create_user_qp()
723 free_uuar(&context->uuari, qp->uuarn); in destroy_qp_user()
734 int uuarn; in create_kernel_qp() local
744 uuarn = alloc_uuar(uuari, lc); in create_kernel_qp()
745 if (uuarn < 0) { in create_kernel_qp()
750 qp->bf = &uuari->bfs[uuarn]; in create_kernel_qp()
821 free_uuar(&dev->mdev->priv.uuari, uuarn); in create_kernel_qp()
834 free_uuar(&dev->mdev->priv.uuari, qp->bf->uuarn); in destroy_qp_kernel()
2858 if (0 && nreq == 1 && bf->uuarn && inl && size > 1 && size <= bf->buf_size / 16) { in mlx5_ib_post_send()