Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp1465258imm; Wed, 20 Jun 2018 19:25:42 -0700 (PDT) X-Google-Smtp-Source: ADUXVKIP1oxLTocO2BfEl1KJVz9TO6a+lUEs+s49uJRWu+Ud7aWLMes7FndkDZQ6N3yUukvKSiTk X-Received: by 2002:a65:6612:: with SMTP id w18-v6mr20450349pgv.38.1529547942499; Wed, 20 Jun 2018 19:25:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1529547942; cv=none; d=google.com; s=arc-20160816; b=yQG+2JSYYWaEe7q4F8rzHIB7wOjQZbnuluUQp8qjxv+89cwMmfBTgcGto0SFj2+Tgi jqMGXjSZkJxRNC9oxlJlOBSozudBXhRzxcqhJL2myZpBue3LoLepZSL9EZCC563tB6KG aQ2Fxt6uexAj8VgaYLIy57cFrMxR/k9rUHKsJ6ETvv1YUV9iHE1DDHv5Y9Ej1W6BBCdw Yrj3/sYAWjfL7z/FVx71CuogkwjKpvAoqCyxE377ECL4s8V2GiuRWXVxdDUskMOEl9ng a0ufITrVz49pxaRl1F1WIImvy8q18auZuuI8N/Jt5PJriEeH22ykOp8jCXdR3wvcF+Dt idQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=/QWf8dGAiHtRqnP8KyhpTkbXYak9DT/HadRaAiDTG9A=; b=ElQ3phPokTLO37r/k7pLXflFIN+U1Ti9+71LJEcYJ2A7Zt3zPrMXe/lVlldtl23Z/S wcr7uPIZkaNFXMVJZZRcyebSv6H1++e8IJr8gUhvjBtYAx5EkK5biufo7hTNdIOeytfg MmkUcMbcdGbzXMrxPipHyjn0WZwArN3Hrxo2xcjj5Uis85oEdwczpt6Tdzf5kdGNTjVj /vkDS37V0fkWow601m+KwqJXVBUlNH9QiIdTNwCrgaR3q4Xm5q6DLIrFkKZliwdROKYX bEt7Zhpp5Gaj3A6Cg6ia8cSoIdDEZcYSDE5R7cNqPPEbWdHnNM3FOi4G5m8lNyUkEPNp IyYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tSLOf90z; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g7-v6si858939pll.83.2018.06.20.19.25.28; Wed, 20 Jun 2018 19:25:42 -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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tSLOf90z; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754207AbeFUCYt (ORCPT + 99 others); Wed, 20 Jun 2018 22:24:49 -0400 Received: from mail-vk0-f66.google.com ([209.85.213.66]:38091 "EHLO mail-vk0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754097AbeFUCYr (ORCPT ); Wed, 20 Jun 2018 22:24:47 -0400 Received: by mail-vk0-f66.google.com with SMTP id b77-v6so958868vkb.5; Wed, 20 Jun 2018 19:24:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=/QWf8dGAiHtRqnP8KyhpTkbXYak9DT/HadRaAiDTG9A=; b=tSLOf90zLyr3MiUObmlyayJb+/Engp4FJYFg/tIvSQnImWKvhqCzJ38yDcBiDHMYsU X+mpNXRRGaTjlgRRNM6Z57xZkAiHCgsbV2+6HfRhJl6FSkMh9UZqjTFq4CCmF/luU96J hPKcMcwb+oQPmV1KaJmu4VZ3fXMIRNqZ9u3oamHURoGDDqwYOG1/qOFpmyhneb+ePI2w NpZj9+qV/dlF6O2txfM6uFtacQqg4YCwtb9/elSlDxDJ6QxY9aKCiiyZ21awkEvvUomJ cPPunx0sqPcQW9Fdb8Awuh+PaSVCIQe4ndJi7RvzwPOWbxyASeRWO5Und0Vj8UcVRLdY 1z3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=/QWf8dGAiHtRqnP8KyhpTkbXYak9DT/HadRaAiDTG9A=; b=umO6QIoEdnXKr/t30rCgUECEpFC7MPusFVifkQMQUFgFzUT8ZwZdCGiJNqMClVVNaM rJJcjrTPH6nft102sh8K7IINksx/+rwwNgquOaq9GAyZnH4NfgP2JAXoM9oJP4cUl088 f+EcgDABI4Lo0gxmkk/Y2a+0hg6awnLZx45k/djucQGIbLGsqWfqnhKRR7dyR4qtD0Ni lu333+JXZnpA5H77PWjUnHw3uEX7Du3fA1PcUbjvtgCGWPFlukUPY1cPUAMdiUKTCShl VA73fn/IF3s2NbSalbCYoANZcWTf1SsXNeSLYK9VE/9xnfEMPCBoWPXPQZ5ixxB9IQrP QxdA== X-Gm-Message-State: APt69E1wyTnTipnnlyRlebvvFVDFDyKAAUZeY8RJYk3xtPMdXjWp2nNv GiHJHyEKpzD7+buIlod2jxR3tpltEj7aaJ3Sisg= X-Received: by 2002:a1f:860b:: with SMTP id i11-v6mr13889674vkd.15.1529547886966; Wed, 20 Jun 2018 19:24:46 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a67:8b02:0:0:0:0:0 with HTTP; Wed, 20 Jun 2018 19:24:46 -0700 (PDT) In-Reply-To: <29324e04-e6c3-188c-a7fa-0363305b6455@huawei.com> 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> <29324e04-e6c3-188c-a7fa-0363305b6455@huawei.com> From: Andy Shevchenko Date: Thu, 21 Jun 2018 05:24:46 +0300 Message-ID: Subject: Re: [PATCH v4 21/21] sparc64: use match_string() helper To: Yisheng Xie Cc: Linux Kernel Mailing List , "David S. Miller" , Anthony Yznaga , Pavel Tatashin , sparclinux@vger.kernel.org, Kefeng Wang Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jun 21, 2018 at 4:39 AM, Yisheng Xie wrote: > 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. > FWIW, Reviewed-by: Andy Shevchenko > 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 > > -- With Best Regards, Andy Shevchenko