From patchwork Fri Jan 9 18:31:08 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Toppins X-Patchwork-Id: 427229 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id C318714018C for ; Sat, 10 Jan 2015 05:37:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751489AbbAIShS (ORCPT ); Fri, 9 Jan 2015 13:37:18 -0500 Received: from mail-yh0-f42.google.com ([209.85.213.42]:63338 "EHLO mail-yh0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750807AbbAIShR (ORCPT ); Fri, 9 Jan 2015 13:37:17 -0500 Received: by mail-yh0-f42.google.com with SMTP id v1so4858817yhn.1 for ; Fri, 09 Jan 2015 10:37:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cumulusnetworks.com; s=google; h=from:to:cc:subject:date:message-id; bh=HoFZd2Mefum+iWXMUjzKbMabgejgeGBG6bIvPJtf5ZU=; b=NjbSgZgOFUQ0opATyy1jeTJOPjs9ngGdVm9ST1l8eWEW0RlMrXw8uT1g3dVgccWnc0 kxK2Al59/hoSXnX/yoVYWBq6Sb3XQNfM6f2tIqEvQEFyz4yvD4EkGzgGXcI6ipmmKupx cu3lDWuepKnEiQUqcnotbB8LnCDPIrzuqm01U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=HoFZd2Mefum+iWXMUjzKbMabgejgeGBG6bIvPJtf5ZU=; b=b97cHRgm/xsQcmvjoLc7XFnz6jLqDp7eYHXWo47J+c7xOzruXadSZqdLUeM5/Q+kAP CfnLzlyccogpDTWkFFE2waFLF9f7JWpJUvUCcitHk11Z589WH19pfst6MmPC+0v4zLWt LNScAf6xqr79kEf8Rs3tgN7uMn6bfCWsyuRsfDtDLiz75+jglednXCJYtr4e8DWJDWBE hI2lhSOv9ADlZ5lVPg5gFIeAnMkihmo+MwmUtdvAEf4avoAp/2UirqUbdG+0+DMyg6DK 8yjo6RTwYoz0wK7drsBPq5yez9a5dwTfNIXhI2FDcOXPcPAgsnFavzwKsvgx8LRlNagb aI+g== X-Gm-Message-State: ALoCoQlJTD5DC6zgbaecENb0f50N6EbT5TNlj4yruhVu03Mb/iT/s+MZlYD9WXQOW0sykO8Jlzzh X-Received: by 10.236.34.228 with SMTP id s64mr12127224yha.31.1420828636457; Fri, 09 Jan 2015 10:37:16 -0800 (PST) Received: from debian-devel.rtplab.test (cpe-174-097-188-117.nc.res.rr.com. [174.97.188.117]) by mx.google.com with ESMTPSA id 46sm5120419yho.54.2015.01.09.10.37.15 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Jan 2015 10:37:15 -0800 (PST) From: Jonathan Toppins To: netdev@vger.kernel.org Cc: shm@cumulusnetworks.com, Andy Gospodarek , Nikolay Aleksandrov Subject: [PATCH] bonding: cleanup bond_opts array Date: Fri, 9 Jan 2015 13:31:08 -0500 Message-Id: <1420828268-10360-1-git-send-email-jtoppins@cumulusnetworks.com> X-Mailer: git-send-email 1.7.10.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Remove the empty array element initializer and size the array with BOND_OPT_LAST so the compiler will complain if more elements are in there than should be. An interesting unwanted side effect of this initializer is that if one inserts new options into the middle of the array then this initializer will zero out the option that equals BOND_OPT_TLB_DYNAMIC_LB+1. Example: Extend the OPTS enum: enum { ... BOND_OPT_TLB_DYNAMIC_LB, BOND_OPT_LACP_NEW1, BOND_OPT_LAST }; Now insert into bond_opts array: static const struct bond_option bond_opts[] = { ... [BOND_OPT_LACP_RATE] = { .... unchanged stuff .... }, [BOND_OPT_LACP_NEW1] = { ... new stuff ... }, ... [BOND_OPT_TLB_DYNAMIC_LB] = { .... unchanged stuff ....}, { } // MARK A }; Since BOND_OPT_LACP_NEW1 = BOND_OPT_TLB_DYNAMIC_LB+1, the last initializer (MARK A) will overwrite the contents of BOND_OPT_LACP_NEW1 and can be easily viewed with the crash utility. Signed-off-by: Jonathan Toppins Cc: Andy Gospodarek Cc: Nikolay Aleksandrov Signed-off-by: Andy Gospodarek Acked-by: Nikolay Aleksandrov --- drivers/net/bonding/bond_options.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/bonding/bond_options.c b/drivers/net/bonding/bond_options.c index 1a61cc9..9bd538d4 100644 --- a/drivers/net/bonding/bond_options.c +++ b/drivers/net/bonding/bond_options.c @@ -186,7 +186,7 @@ static const struct bond_opt_value bond_tlb_dynamic_lb_tbl[] = { { NULL, -1, 0} }; -static const struct bond_option bond_opts[] = { +static const struct bond_option bond_opts[BOND_OPT_LAST] = { [BOND_OPT_MODE] = { .id = BOND_OPT_MODE, .name = "mode", @@ -379,8 +379,7 @@ static const struct bond_option bond_opts[] = { .values = bond_tlb_dynamic_lb_tbl, .flags = BOND_OPTFLAG_IFDOWN, .set = bond_option_tlb_dynamic_lb_set, - }, - { } + } }; /* Searches for an option by name */