Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755870AbbGFNoF (ORCPT ); Mon, 6 Jul 2015 09:44:05 -0400 Received: from charlotte.tuxdriver.com ([70.61.120.58]:60786 "EHLO smtp.tuxdriver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751849AbbGFNoC (ORCPT ); Mon, 6 Jul 2015 09:44:02 -0400 Date: Mon, 6 Jul 2015 09:43:49 -0400 From: Neil Horman To: Joe Perches Cc: Vlad Yasevich , "David S. Miller" , linux-sctp@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFC patch] sctp: sctp_generate_fwdtsn: Initialize sctp_fwdtsn_skip array, neatening Message-ID: <20150706134349.GB30816@hmsreliant.think-freely.org> References: <1435874096.2487.51.camel@perches.com> <20150703115105.GA3503@hmsreliant.think-freely.org> <1435941701.2487.71.camel@perches.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1435941701.2487.71.camel@perches.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Score: -2.9 (--) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2716 Lines: 77 On Fri, Jul 03, 2015 at 09:41:41AM -0700, Joe Perches wrote: > On Fri, 2015-07-03 at 07:51 -0400, Neil Horman wrote: > > On Thu, Jul 02, 2015 at 02:54:56PM -0700, Joe Perches wrote: > > > It's not clear to me that the sctp_fwdtsn_skip array is > > > always initialized when used. > > > > > > It is appropriate to initialize the array to 0? > > > > > > This patch initializes the array too 0 and moves the > > > local variables into the blocks where used. > > > > > > It also does some miscellaneous neatening by using > > > continue; and unindenting the following block and > > > using ARRAY_SIZE rather than 10 to decouple the > > > array declaration size from a constant. > > > --- > > We don't set ftsn_skip_arr to a known value because we limit the amount of > > elements that get read from it prior to those elements being set. That is to > > say, in our first use (the call to sctp_get_skip_pos), we pass the uninitialized > > array, and the nskips value, which is initalized to 0. Looking at the > > definition of sctp_get_skip_pos, the for loop there becomes a nop, meaning the > > uninitalized array is irrelevant, as we never visit any of its elements. > > element zero is returned, and thats what the for_each loop in > > sctp_generate_fwdtsn sets in that element of the array. On the next iteration > > of the for_each loop, we call sctp_get_skip_pos with nskips = 1, so only the > > first element is visited, whcih was set by the previous loop iteration. > > Alright. > > I might have chosen a while loop to limit the # of > returns but it likely compiles to the same code. > > static inline int sctp_get_skip_pos(struct sctp_fwdtsn_skip *skiplist, > int nskips, __be16 stream) > { > int i; > > for (i = 0; i < nskips; i++) { > if (skiplist[i].stream == stream) > return i; > } > return i; > } > > to: > > { > int i = 0; > > while (i < nskips && skiplist[i].stream != stream) > i++; > > return i; > } > > > The rest of the cleanups look ok I think. Can you tell me what you did to test > > it? > > Just code inspection. I'd like something more than that for this amount of code change. at least run some lksctp tests to exercise the gap ack code. Neil > > > -- > 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/ > -- 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/