Re: [PATCH rdma-next 02/10] RDMA: Restore ability to fail on AH destroy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 24/08/2020 13:32, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> 
> Like any other IB verbs objects, AH are refcounted by ib_core. The release
> of those objects is controlled by ib_core with promise that AH destroy
> can't fail.
> 
> Being SW object for now, this change makes dealloc_ah() to behave like
> any other destroy IB flows.

Maybe I'm misreading this, but AH isn't necessarily a software object. It's a HW
object as well in some of the drivers.

> diff --git a/drivers/infiniband/hw/efa/efa_verbs.c b/drivers/infiniband/hw/efa/efa_verbs.c
> index 660a69943e02..426c5f687c7b 100644
> --- a/drivers/infiniband/hw/efa/efa_verbs.c
> +++ b/drivers/infiniband/hw/efa/efa_verbs.c
> @@ -1875,7 +1875,7 @@ int efa_create_ah(struct ib_ah *ibah,
>  	return err;
>  }
> 
> -void efa_destroy_ah(struct ib_ah *ibah, u32 flags)
> +int efa_destroy_ah(struct ib_ah *ibah, u32 flags)
>  {
>  	struct efa_dev *dev = to_edev(ibah->pd->device);
>  	struct efa_ah *ah = to_eah(ibah);
> @@ -1885,10 +1885,11 @@ void efa_destroy_ah(struct ib_ah *ibah, u32 flags)
>  	if (!(flags & RDMA_DESTROY_AH_SLEEPABLE)) {
>  		ibdev_dbg(&dev->ibdev,
>  			  "Destroy address handle is not supported in atomic context\n");
> -		return;
> +		return -EINVAL;

-EOPNOTSUPP.

>  	}
> 
>  	efa_ah_destroy(dev, ah);
> +	return 0;
>  }



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux