Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751554AbaANLX6 (ORCPT ); Tue, 14 Jan 2014 06:23:58 -0500 Received: from cpsmtpb-ews07.kpnxchange.com ([213.75.39.10]:52257 "EHLO cpsmtpb-ews07.kpnxchange.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751342AbaANLXx (ORCPT ); Tue, 14 Jan 2014 06:23:53 -0500 Message-ID: <1389698630.20290.48.camel@x220> Subject: Re: [PATCH 1/2] net/mlx4_core: clean up cq_res_start_move_to() From: Paul Bolle To: Jack Morgenstein Cc: Or Gerlitz , Rony Efraim , Hadar Hen Zion , "David S. Miller" , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Date: Tue, 14 Jan 2014 12:23:50 +0100 In-Reply-To: <20140114084752.1db64b21@jpm-OptiPlex-GX620> References: <1389099678.15032.19.camel@x41> <20140114084752.1db64b21@jpm-OptiPlex-GX620> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.3 (3.10.3-1.fc20) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 14 Jan 2014 11:23:51.0483 (UTC) FILETIME=[19FCF0B0:01CF111B] X-RcptDomain: vger.kernel.org Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2014-01-14 at 08:47 +0200, Jack Morgenstein wrote: > On Tue, 07 Jan 2014 14:01:18 +0100 > Paul Bolle wrote: > > > + } else { > > + /* state == RES_CQ_HW */ > > + if (r->com.state != RES_CQ_ALLOCATED) > > if (state != RES_CQ_HW || r->com.state != RES_CQ_ALLOCATED) > to protect against any bad calls to this function > (although I know that currently there are none). So we end up with } else if (state != RES_CQ_HW || r->com.state != RES_CQ_ALLOCATED) { err = -EINVAL; } else { err = 0; } don't we? Which is fine with me, as GCC still is then able to correctly analyze this function. > This also preserves the behavior of the switch statement. > > > err = -EINVAL; > > - } > > + else > > + err = 0; > > + } > > > > - if (!err) { > > - r->com.from_state = r->com.state; > > - r->com.to_state = state; > > - r->com.state = RES_CQ_BUSY; > > - if (cq) > > - *cq = r; > > - } > > + if (!err) { > > + r->com.from_state = r->com.state; > > + r->com.to_state = state; > > + r->com.state = RES_CQ_BUSY; > > Please keep the "if" here. Protects against (future) bad calls. > > > + *cq = r; > > } There seems to be a school of thought that says it's better to trigger an Oops if a programming error is made (in this case by passing a NULL cq) then silently handle that (future) programming error and make debugging harder. But, even it that school of thought really exists, this is up to you. Besides, it's only a triviality I added to my patches. Thanks for the review! I hope to send in a v2 of my patches shortly. Paul Bolle -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/