Re: [PATCH v2 21/21] sparc64: use match_string() helper

From: Yisheng Xie
Date: Tue Jun 05 2018 - 05:06:01 EST


Hi Andy,

On 2018/6/4 18:06, Andy Shevchenko wrote:
> On Mon, Jun 4, 2018 at 4:06 AM, Yisheng Xie <xieyisheng1@xxxxxxxxxx> wrote:
>> Hi Andy,
>>
>> On 2018/6/1 19:34, Andy Shevchenko wrote:
>>> On Thu, May 31, 2018 at 2:11 PM, Yisheng Xie <xieyisheng1@xxxxxxxxxx> wrote:
>>>> match_string() returns the index of an array for a matching string,
>>>> which can be used instead of open coded variant.
>>>
>>>> @@ -512,10 +512,9 @@ static unsigned long __init mdesc_cpu_hwcap_list(void)
>>>> break;
>>>> }
>>>> }
>>>
>>> It seems previous loop also can be replaced.
>>
>> No, because the there is an NULL in the middle of the array hwcaps:
>> static const char *hwcaps[] = {
>> "flush", "stbar", "swap", "muldiv", "v9",
>> "ultra3", "blkinit", "n2",
>>
>> /* These strings are as they appear in the machine description
>> * 'hwcap-list' property for cpu nodes.
>> */
>> "mul32", "div32", "fsmuld", "v8plus", "popc", "vis", "vis2",
>> "ASIBlkInit", "fmaf", "vis3", "hpc", "random", "trans", "fjfmau",
>> "ima", "cspare", "pause", "cbcond", NULL /*reserved for crypto */,
>> "adp",
>> };
>
> Actually you can.
> What you need is to add string literal instead of NULL and make an
> additional condition after match_string() in all users (not to many),
> something like
>
> i = match_string();
> if (i < 0)
> ...
> if (BIT(i) == HWCAP_SPARC_CRYPTO) // or !=

OK, I get your point.

Thanks
Yisheng
> ...
>