Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp767682imm; Fri, 1 Jun 2018 09:10:54 -0700 (PDT) X-Google-Smtp-Source: ADUXVKK/2JRMpkb4DZS40KFEwmxaIeV0MBbL7KjFtsvb0kvrQcQR6ent6SQxW5/ATDZNBRZxs/yR X-Received: by 2002:a17:902:6f16:: with SMTP id w22-v6mr11535311plk.216.1527869454657; Fri, 01 Jun 2018 09:10:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527869454; cv=none; d=google.com; s=arc-20160816; b=TtHZ9bDLODeDFR0Zmocj84pXgf6Oy8q6imI9e7SyaV8snBqI/WT0NtXYmgs79v5cyD /gDWXNRwxXt8Qm+7+y0ir4steyab5Vm3hf4exlBRWVpXzU5mCtdPB6HglHAHlSldRFfF uShnX4R8rtEGazkDqbCoLjqBvNj2rGI3lkyacFe1vAW33qTIP0d/6T0kORAnMUfk9bAh j4/bZai+ftTNjqgK8LWxzu+B20nkt3BE2FjKfBWux/KM3rI14VQhNtwXME9l1hkkia2O sWmTCpgRSgt55a3n7D/5TYU07goKnjWYgY6NJGt4XdhhHWfOS/IRckFEPzJe9ptcOBuz CY2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=GPoCItGG4LS9OMXu70PmpTq9Rn6KB7wjtPBYUVkoI8I=; b=Zr2DnUoxpwcIlO087a31K0RXTZR9+iVyi8v8a6n7saeCLs2vBNaohkTCHSF1JHKC+C qWnEj90dCBikr4XHRSSSjSwmBQRiAigHEkqk2oMgwbnYjM6eMuttBxKkuWe65YMbbful Rcjq42F/vDCQBZvX4d3dmBKJSbTZcoaX9xXabCJxV7UtCL39uJGAF3Tz3VH/sR9MSxiA Kv5ajLVE8jMfgDOR3+N8UeVpXy/2ZbyrH7hYYrcuMhG5Lw3TelNN8RrCVyAya1Zy7jfV l2+epFFd3brGnT0eoKpTYKc0kZ/tybfWjMBZEMsHdS0xhyMuhcZDFD0ybp5+wGybQDm0 Z26A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v16-v6si38366009pfm.151.2018.06.01.09.10.40; Fri, 01 Jun 2018 09:10:54 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753138AbeFAQKH (ORCPT + 99 others); Fri, 1 Jun 2018 12:10:07 -0400 Received: from orcrist.hmeau.com ([104.223.48.154]:58042 "EHLO deadmen.hmeau.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752308AbeFAQKD (ORCPT ); Fri, 1 Jun 2018 12:10:03 -0400 Received: from gondobar.mordor.me.apana.org.au ([192.168.128.4] helo=gondobar) by deadmen.hmeau.com with esmtps (Exim 4.89 #2 (Debian)) id 1fOmce-0003Vj-8o; Sat, 02 Jun 2018 00:09:48 +0800 Received: from herbert by gondobar with local (Exim 4.89) (envelope-from ) id 1fOmca-0000tA-Hf; Sat, 02 Jun 2018 00:09:44 +0800 Date: Sat, 2 Jun 2018 00:09:44 +0800 From: Herbert Xu To: Davidlohr Bueso Cc: akpm@linux-foundation.org, torvalds@linux-foundation.org, tgraf@suug.ch, manfred@colorfullife.com, mhocko@kernel.org, guillaume.knispel@supersonicimagine.com, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org, Davidlohr Bueso Subject: Re: [PATCH 1/5] lib/rhashtable: convert param sanitations to WARN_ON Message-ID: <20180601160944.ji2gsp3pyunlj476@gondor.apana.org.au> References: <20180601160125.30031-1-dave@stgolabs.net> <20180601160125.30031-2-dave@stgolabs.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180601160125.30031-2-dave@stgolabs.net> User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jun 01, 2018 at 09:01:21AM -0700, Davidlohr Bueso wrote: > For the purpose of making rhashtable_init() unable to fail, > we can replace the returning -EINVAL with WARN_ONs whenever > the caller passes bogus parameters during initialization. > > Signed-off-by: Davidlohr Bueso > --- > lib/rhashtable.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/lib/rhashtable.c b/lib/rhashtable.c > index 9427b5766134..05a4b1b8b8ce 100644 > --- a/lib/rhashtable.c > +++ b/lib/rhashtable.c > @@ -1024,12 +1024,11 @@ int rhashtable_init(struct rhashtable *ht, > > size = HASH_DEFAULT_SIZE; > > - if ((!params->key_len && !params->obj_hashfn) || > - (params->obj_hashfn && !params->obj_cmpfn)) > - return -EINVAL; > + WARN_ON((!params->key_len && !params->obj_hashfn) || > + (params->obj_hashfn && !params->obj_cmpfn)); > > - if (params->nulls_base && params->nulls_base < (1U << RHT_BASE_SHIFT)) > - return -EINVAL; > + WARN_ON(params->nulls_base && > + params->nulls_base < (1U << RHT_BASE_SHIFT)); I still don't like this. Yes for your use-case you will never crash and a WARN_ON is fine. However, rhashtable is used in all sorts of contexts and returning an error makes sense for quite a number of them. So if you really want just add the WARN_ON to your own code: err = rhashtable_init(...) WARN_ON(err); Cheers, -- Email: Herbert Xu Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt