From patchwork Fri Dec 15 18:27:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Herbert X-Patchwork-Id: 849353 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=quantonium-net.20150623.gappssmtp.com header.i=@quantonium-net.20150623.gappssmtp.com header.b="Jp/PqCv6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yyzTF41wCz9sBW for ; Sat, 16 Dec 2017 05:28:33 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756267AbdLOS2a (ORCPT ); Fri, 15 Dec 2017 13:28:30 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:45122 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756195AbdLOS21 (ORCPT ); Fri, 15 Dec 2017 13:28:27 -0500 Received: by mail-pf0-f194.google.com with SMTP id u19so6694057pfa.12 for ; Fri, 15 Dec 2017 10:28:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quantonium-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=9dJ8ZbNRJip1W5R3juPd6Pbw/xeNyvq4XqNXo9NadZo=; b=Jp/PqCv6jSQkBKs4Xs4gks+QeeZtU/HP2Df/f9Ee2Q3+71tEHdkd/+kcX/QuoxzjWm ElVp2WcLEQgtHusnZwpgmrMpn0uOrqdJolUxeBEBsPRQbTwR0Q4N4NmgT2SP6sEnOnXM z+cSWlGJm0uCtAItTNE28c6MOS8C76cQK0jqY4X0JTumpegJcByMIMR1Wf1g0eoOzpL7 9Bgo/NzvoB8GjBg8dZA0DB0avXk4xEDwFUjLXVaEIBjoskYKPwmwroQ453wKJsj2sj5c DewT5d2ukuDMhRgmdJi0kUG0yiM8xjs0J8Zhd+1BZp3nVaW19GB3xLtbEEFW0GDcYgAz 7BWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=9dJ8ZbNRJip1W5R3juPd6Pbw/xeNyvq4XqNXo9NadZo=; b=jwDBMc+/dwdVDB5vpFAQlgAbGWti37Um7qfwLSCAG2FPG6pAoDgA7miEKZp9nnm8H/ qlul6buyfg4d7IbMQYcGt2HKeZtNTG5LHOcV1AmL6JgTFSegBn6NSfiu1Z+P+HdN78lj rvI9T2OYlsYSqIMbfCB6PKqWHYEne1iXcm/nFBymzcrpsddg82NBx0MbxF6VJseU1V5D AbocKK1GOm2XSbDbUTSXHHb92sDMxVE+77KcL20Yz54yLjPkXZKGG1MEVQ6F3Tegai09 cQuKZYGacb7bf+Ou7erTH9kgNswCc/+Hysg2msgJb1F1A2Am/lkuiEXe2aOAmbwnkF6o WByQ== X-Gm-Message-State: AKGB3mJApTXr2Eojwoob4i0vvFv0da9nHH50PAB9bc1RgkzhPIfgWJ/s H05AMVeEqRDUWKgUy7l0xNdFYgNi X-Google-Smtp-Source: ACJfBovNqt3nafJzMONJa2duMrvvPdWEFLH3BevY55SW0B4L5UXLFIR9JBFQhjRoWA9ECBiMulvd2Q== X-Received: by 10.98.13.133 with SMTP id 5mr14302555pfn.112.1513362506555; Fri, 15 Dec 2017 10:28:26 -0800 (PST) Received: from localhost.localdomain (67-207-98-108.static.wiline.com. [67.207.98.108]) by smtp.gmail.com with ESMTPSA id 69sm14120903pfj.28.2017.12.15.10.28.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Dec 2017 10:28:25 -0800 (PST) From: Tom Herbert To: davem@davemloft.net Cc: netdev@vger.kernel.org, roopa@cumulusnetworks.com, rohit@quantonium.net, Tom Herbert Subject: [PATCH v4 net-next 3/6] ila: Call library function alloc_bucket_locks Date: Fri, 15 Dec 2017 10:27:57 -0800 Message-Id: <20171215182800.10248-4-tom@quantonium.net> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20171215182800.10248-1-tom@quantonium.net> References: <20171215182800.10248-1-tom@quantonium.net> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org To allocate the array of bucket locks for the hash table we now call library function alloc_bucket_spinlocks. Signed-off-by: Tom Herbert --- net/ipv6/ila/ila_xlat.c | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/net/ipv6/ila/ila_xlat.c b/net/ipv6/ila/ila_xlat.c index 887dd5b785b5..3ef8869ac508 100644 --- a/net/ipv6/ila/ila_xlat.c +++ b/net/ipv6/ila/ila_xlat.c @@ -31,26 +31,14 @@ struct ila_net { bool hooks_registered; }; +#define MAX_LOCKS 1024 #define LOCKS_PER_CPU 10 static int alloc_ila_locks(struct ila_net *ilan) { - unsigned int i, size; - unsigned int nr_pcpus = num_possible_cpus(); - - nr_pcpus = min_t(unsigned int, nr_pcpus, 32UL); - size = roundup_pow_of_two(nr_pcpus * LOCKS_PER_CPU); - - if (sizeof(spinlock_t) != 0) { - ilan->locks = kvmalloc(size * sizeof(spinlock_t), GFP_KERNEL); - if (!ilan->locks) - return -ENOMEM; - for (i = 0; i < size; i++) - spin_lock_init(&ilan->locks[i]); - } - ilan->locks_mask = size - 1; - - return 0; + return alloc_bucket_spinlocks(&ilan->xlat.locks, &ilan->xlat.locks_mask, + MAX_LOCKS, LOCKS_PER_CPU, + GFP_KERNEL); } static u32 hashrnd __read_mostly; @@ -639,7 +627,7 @@ static __net_exit void ila_exit_net(struct net *net) rhashtable_free_and_destroy(&ilan->rhash_table, ila_free_cb, NULL); - kvfree(ilan->locks); + free_bucket_spinlocks(ilan->xlat.locks); if (ilan->hooks_registered) nf_unregister_net_hooks(net, ila_nf_hook_ops,