From patchwork Fri Sep 22 16:25:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aaron Wood X-Patchwork-Id: 817627 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=gmail.com header.i=@gmail.com header.b="UyfvUgNl"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xzJch5xmjz9s7g for ; Sat, 23 Sep 2017 02:20:52 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752533AbdIVQUj (ORCPT ); Fri, 22 Sep 2017 12:20:39 -0400 Received: from mail-qt0-f196.google.com ([209.85.216.196]:34108 "EHLO mail-qt0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752097AbdIVQUh (ORCPT ); Fri, 22 Sep 2017 12:20:37 -0400 Received: by mail-qt0-f196.google.com with SMTP id q8so958608qtb.1; Fri, 22 Sep 2017 09:20:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=3hAME3G34hPB5hPvPZCvzHwPaPAbJZsMYr67eIJu0pA=; b=UyfvUgNlE1A6jU1AUwcUt0oNbpDVZ0uGtzThjZpnzttg/t+THGoaLg75ndVPeE/mMy u3IqOkXkGtpnCF17yU+9Dlw5CxYEPdWCnIECy9TqaIq9J6uEHDDqYJuEPp7s/MgQrlny j5g0Jv722huUxh95izy9jQuaS9G7F5shKLoxc7yrnbwl9LoJ8EN8AEj5HhRdD3pnSbAp ZBglIom75ctSps0WLALeYRNmj5L7a9xCZwp1LHV0xhd7GinZzQxcgijCdNdQYesGE1bP Vf3Vvi4bb94mphsUSoLq7YeThUmTl6bPbKZTzzbqeQN2XfidP+VNMCmNZ/NHKuR/0Nho liJA== 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; bh=3hAME3G34hPB5hPvPZCvzHwPaPAbJZsMYr67eIJu0pA=; b=s05HgzVLujD72Pp3KKCha0Ruf/TQ4zkHqaAk5OL+EkAIuh5QGCNrJGvqeheuRvaOKC mrOwb+XkOXEXRb1ZhtcTjIi55ZB/P9SC2Yqnpi+n7ssIZ5qYmBrb5N3JAgnM9JR95tYc eu/T2iLpP+LeDq7LANP1171gdrkvf9/Zn/0NMqI6EjjjRnjXwhUDkJY6iGgPN4EQ40Tv W9efEKMhrznPo3vKaPwWoXOF71WHQtNRiEhzVLC6pUKFqi83UWWSBlzO6hCONIQHs11P 6m6xkmGQLCxc56H7zuNixMHCuYGraB0K5LXSP0eRkuk7x+Due1S1QlLeuFXbZfLUmFtv J2Gw== X-Gm-Message-State: AHPjjUhyCY9rxqVh0+XLvcEHdzA/ABjlcGm2GJKrkuh88DE3kD7KgZqQ tH+aQuWuMfQYuaOsJYBiMlI= X-Google-Smtp-Source: AOwi7QAqpXJAHrgX9Bqyl7gDfMKHmFQTfrGNH2UX8qvw2pmlvwKZkVsFpqkqehqhxg5LwvLBjDKmxA== X-Received: by 10.200.8.225 with SMTP id y30mr8816950qth.239.1506097237040; Fri, 22 Sep 2017 09:20:37 -0700 (PDT) Received: from localhost.localdomain (pool-96-252-71-247.bstnma.fios.verizon.net. [96.252.71.247]) by smtp.gmail.com with ESMTPSA id k2sm143904qtk.53.2017.09.22.09.20.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Sep 2017 09:20:35 -0700 (PDT) From: Aaron Wood To: ericvh@gmail.com, rminnich@sandia.gov, lucho@ionkov.net, davem@davemloft.net, v9fs-developer@lists.sourceforge.net, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Aaron Wood Subject: [PATCH] Switch to use the new hashtable implementation. This reduces the code and need for yet another hashtable implementation. Date: Fri, 22 Sep 2017 12:25:03 -0400 Message-Id: <20170922162503.3744-1-aaronjwood@gmail.com> X-Mailer: git-send-email 2.11.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Aaron Wood --- net/9p/error.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/net/9p/error.c b/net/9p/error.c index 126fd0dceea2..2e966fcc5cbb 100644 --- a/net/9p/error.c +++ b/net/9p/error.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -50,8 +51,8 @@ struct errormap { struct hlist_node list; }; -#define ERRHASHSZ 32 -static struct hlist_head hash_errmap[ERRHASHSZ]; +#define ERR_HASH_BITS 5 +static DEFINE_HASHTABLE(hash_errmap, ERR_HASH_BITS); /* FixMe - reduce to a reasonable size */ static struct errormap errmap[] = { @@ -193,18 +194,14 @@ static struct errormap errmap[] = { int p9_error_init(void) { struct errormap *c; - int bucket; - - /* initialize hash table */ - for (bucket = 0; bucket < ERRHASHSZ; bucket++) - INIT_HLIST_HEAD(&hash_errmap[bucket]); + int key; /* load initial error map into hash table */ for (c = errmap; c->name != NULL; c++) { c->namelen = strlen(c->name); - bucket = jhash(c->name, c->namelen, 0) % ERRHASHSZ; + key = jhash(c->name, c->namelen, 0); INIT_HLIST_NODE(&c->list); - hlist_add_head(&c->list, &hash_errmap[bucket]); + hash_add(hash_errmap, &c->list, key); } return 1; @@ -222,12 +219,12 @@ int p9_errstr2errno(char *errstr, int len) { int errno; struct errormap *c; - int bucket; + int key; errno = 0; c = NULL; - bucket = jhash(errstr, len, 0) % ERRHASHSZ; - hlist_for_each_entry(c, &hash_errmap[bucket], list) { + key = jhash(errstr, len, 0); + hash_for_each_possible(hash_errmap, c, list, key) { if (c->namelen == len && !memcmp(c->name, errstr, len)) { errno = c->val; break;