Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp1435977imm; Wed, 20 Jun 2018 18:41:39 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLkTDaPmj1ftAt098Qfs/pUC9Dswteg8NMkP5E1vCfVrfJD7eFW1dzRoy0SOrG0JR8vnI+T X-Received: by 2002:a62:8f8c:: with SMTP id n134-v6mr25395090pfd.66.1529545299261; Wed, 20 Jun 2018 18:41:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529545299; cv=none; d=google.com; s=arc-20160816; b=Q+MvDql5cBAhl5iH7aKaO0RIRLWqk/47qrPzHd9SBedI+Fbx+KGLnkErfjcBQaT1To efH6HfeFPtBZrC656wKu3Px//gntDMrUpN0doZnY9ck9b+I2GeYlO8ntHDRqpVQT1G0K 4aYR5PEv/9DGWhQkHVNQkX3Wu4l8yaZmtTXs+zT0uMuzJ+loG702iOtpb1a4A/693gAj icMaVkb8Enni4ixQ34gr7VEvd9yW0HVBQ1GRmZxMO6U9tLFfsq6XxK1me9mUKtP0fPGG 6vrPU2eE5UHkeUwPaZ6v8Sjhwy4RgYRLfZObT9Ka4sm5ek0cLP2OLXuwlc32rI5V4+6s VZRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:cc:references:to :subject:arc-authentication-results; bh=xI9ddlFno6jmBdtg7A77s8RZZy+JzsAOjGZhMITwlyo=; b=cLZiaTfru17qwE1pTgFHoBAGf8ZlusLR86JE3/h4SfY6vrZfAI5exPnrtN9jAqXU4h BiVaZNMIok92DdrGtl9OiNfwdrRiR7XzDFrKZvJ3nSfAW6GtDaGHxO/6XtXQTsNj4oZg kMXOJ++YkHBjc40jwccokvXE8vUcBu93rEnPcFuKFT41m2jf8zKKzoEP9cg8ZnbNIzzl UUrEE43VH/a/mQ2BzG6ZkzWfm7p43mazFU+RRsOJdOvphh17QP0Wt/XL7T9jR0o0PMw7 MyTjVKIde9JKtZW1zpw9b2qylF5QW3WmfL9Yhxhga2fLYgJtNNA2BxkuJBq2AZVpdeWE dUew== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v72-v6si3545476pfa.103.2018.06.20.18.41.24; Wed, 20 Jun 2018 18:41:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754207AbeFUBj7 (ORCPT + 99 others); Wed, 20 Jun 2018 21:39:59 -0400 Received: from szxga06-in.huawei.com ([45.249.212.32]:58613 "EHLO huawei.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1754018AbeFUBj5 (ORCPT ); Wed, 20 Jun 2018 21:39:57 -0400 Received: from DGGEMS407-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id E9B149E587C37; Thu, 21 Jun 2018 09:39:54 +0800 (CST) Received: from [127.0.0.1] (10.177.29.40) by DGGEMS407-HUB.china.huawei.com (10.3.19.207) with Microsoft SMTP Server id 14.3.382.0; Thu, 21 Jun 2018 09:39:45 +0800 Subject: [PATCH v4 21/21] sparc64: use match_string() helper To: Andy Shevchenko References: <1527765086-19873-1-git-send-email-xieyisheng1@huawei.com> <1527765086-19873-22-git-send-email-xieyisheng1@huawei.com> <80339b72-902f-a74e-6ad2-28744c7760cb@huawei.com> CC: Linux Kernel Mailing List , "David S. Miller" , Anthony Yznaga , Pavel Tatashin , , Kefeng Wang From: Yisheng Xie Message-ID: <29324e04-e6c3-188c-a7fa-0363305b6455@huawei.com> Date: Thu, 21 Jun 2018 09:39:28 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.177.29.40] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org match_string() returns the index of an array for a matching string, which can be used instead of open coded variant. As Andy's suggestion, this patch add string literal instead of NULL for crypto in array of hwcaps and make an additional condition after match_string() in all users of it. Cc: "David S. Miller" Cc: Anthony Yznaga Cc: Pavel Tatashin Cc: sparclinux@vger.kernel.org Signed-off-by: Yisheng Xie --- arch/sparc/kernel/setup_64.c | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/arch/sparc/kernel/setup_64.c b/arch/sparc/kernel/setup_64.c index 7944b3c..6fa0c78 100644 --- a/arch/sparc/kernel/setup_64.c +++ b/arch/sparc/kernel/setup_64.c @@ -401,8 +401,7 @@ void __init start_early_boot(void) */ "mul32", "div32", "fsmuld", "v8plus", "popc", "vis", "vis2", "ASIBlkInit", "fmaf", "vis3", "hpc", "random", "trans", "fjfmau", - "ima", "cspare", "pause", "cbcond", NULL /*reserved for crypto */, - "adp", + "ima", "cspare", "pause", "cbcond", "crypto", "adp", }; static const char *crypto_hwcaps[] = { @@ -418,7 +417,7 @@ void cpucap_info(struct seq_file *m) seq_puts(m, "cpucaps\t\t: "); for (i = 0; i < ARRAY_SIZE(hwcaps); i++) { unsigned long bit = 1UL << i; - if (hwcaps[i] && (caps & bit)) { + if ((caps & bit) && bit != HWCAP_SPARC_CRYPTO) { seq_printf(m, "%s%s", printed ? "," : "", hwcaps[i]); printed++; @@ -472,7 +471,7 @@ static void __init report_hwcaps(unsigned long caps) for (i = 0; i < ARRAY_SIZE(hwcaps); i++) { unsigned long bit = 1UL << i; - if (hwcaps[i] && (caps & bit)) + if ((caps & bit) && bit != HWCAP_SPARC_CRYPTO) report_one_hwcap(&printed, hwcaps[i]); } if (caps & HWCAP_SPARC_CRYPTO) @@ -504,18 +503,13 @@ static unsigned long __init mdesc_cpu_hwcap_list(void) while (len) { int i, plen; - for (i = 0; i < ARRAY_SIZE(hwcaps); i++) { - unsigned long bit = 1UL << i; + i = match_string(hwcaps, ARRAY_SIZE(hwcaps), prop); + if (i >= 0) + caps |= 1UL << i; - if (hwcaps[i] && !strcmp(prop, hwcaps[i])) { - caps |= bit; - break; - } - } - for (i = 0; i < ARRAY_SIZE(crypto_hwcaps); i++) { - if (!strcmp(prop, crypto_hwcaps[i])) - caps |= HWCAP_SPARC_CRYPTO; - } + i = match_string(crypto_hwcaps, ARRAY_SIZE(crypto_hwcaps), prop); + if (i >= 0) + caps |= HWCAP_SPARC_CRYPTO; plen = strlen(prop) + 1; prop += plen; -- 1.7.12.4