Re: [PATCH rdma-next 7/7] RDMA/mad: Convert BUG_ONs to error flows

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

 



On Tue, 2018-05-29 at 14:56 +0300, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> 
> Let's perform checks in-place instead of BUG_ONs.
> 
> Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> ---
>  drivers/infiniband/core/mad.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c
> index 6a205224582d..c37079f86341 100644
> --- a/drivers/infiniband/core/mad.c
> +++ b/drivers/infiniband/core/mad.c
> @@ -1556,7 +1556,8 @@ static int add_oui_reg_req(struct ib_mad_reg_req *mad_reg_req,
>  			    mad_reg_req->oui, 3)) {
>  			method = &(*vendor_table)->vendor_class[
>  						vclass]->method_table[i];
> -			BUG_ON(!*method);
> +			if (!*method)
> +				goto error3;
>  			goto check_in_use;
>  		}
>  	}
> @@ -1566,10 +1567,12 @@ static int add_oui_reg_req(struct ib_mad_reg_req *mad_reg_req,
>  				vclass]->oui[i])) {
>  			method = &(*vendor_table)->vendor_class[
>  				vclass]->method_table[i];
> -			BUG_ON(*method);
>  			/* Allocate method table for this OUI */
> -			if ((ret = allocate_method_table(method)))
> -				goto error3;
> +			if (*method) {
                            ^
                            Shouldn't this be (!*method)?

> +				ret = allocate_method_table(method);
> +				if (ret)
> +					goto error3;
> +			}
>  			memcpy((*vendor_table)->vendor_class[vclass]->oui[i],
>  			       mad_reg_req->oui, 3);
>  			goto check_in_use;

-- 
Doug Ledford <dledford@xxxxxxxxxx>
    GPG KeyID: B826A3330E572FDD
    Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD

Attachment: signature.asc
Description: This is a digitally signed message part


[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