Re: [PATCH v9] mmc: Export host capabilities to debugfs.

From: Harish Jenny K N
Date: Mon Mar 12 2018 - 08:30:57 EST




On Monday 12 March 2018 05:02 PM, Avri Altman wrote:
>
>> -----Original Message-----
>> From: Harish Jenny K N [mailto:harish_kandiga@xxxxxxxxxx]
>> Sent: Monday, March 12, 2018 1:17 PM
>> To: Avri Altman <Avri.Altman@xxxxxxx>; Andy Shevchenko
>> <andriy.shevchenko@xxxxxxxxxxxxxxx>; ulf.hansson@xxxxxxxxxx;
>> linus.walleij@xxxxxxxxxx; adrian.hunter@xxxxxxxxx; shawn.lin@xxxxxxxxxxxxxx
>> Cc: linux-mmc@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
>> Vladimir_Zapolskiy@xxxxxxxxxx
>> Subject: Re: [PATCH v9] mmc: Export host capabilities to debugfs.
>>
>>
>>
>> On Monday 12 March 2018 04:15 PM, Avri Altman wrote:
>>>> -----Original Message-----
>>>> From: Andy Shevchenko [mailto:andriy.shevchenko@xxxxxxxxxxxxxxx]
>>>> Sent: Monday, March 12, 2018 12:08 PM
>>>> To: Harish Jenny K N <harish_kandiga@xxxxxxxxxx>;
>>>> ulf.hansson@xxxxxxxxxx; linus.walleij@xxxxxxxxxx;
>>>> adrian.hunter@xxxxxxxxx; shawn.lin@rock- chips.com; Avri Altman
>>>> <Avri.Altman@xxxxxxx>
>>>> Cc: linux-mmc@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
>>>> Vladimir_Zapolskiy@xxxxxxxxxx
>>>> Subject: Re: [PATCH v9] mmc: Export host capabilities to debugfs.
>>>>
>>>> On Mon, 2018-03-12 at 10:01 +0530, Harish Jenny K N wrote:
>>>>> This patch exports the host capabilities to debugfs
>>>>>
>>>>> This idea of sharing host capabilities over debugfs came up from
>>>>> Abbas Raza <Abbas_Raza@xxxxxxxxxx> Earlier discussions:
>>>>> https://lkml.org/lkml/2018/3/5/357
>>>>> https://www.spinics.net/lists/linux-mmc/msg48219.html
>>>>>
>>>> Address below minors and, FWIW, take mine
>>>>
>>>> Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
>>>>
>>>>> + for_each_set_bit(bit, (const unsigned long *)&caps,
>>>>> BITS_PER_LONG)
>>>>> + for_each_set_bit(bit, (const unsigned long *)&caps2,
>>>>> BITS_PER_LONG)
>>>> Explicit casting is not needed anymore in both cases.
>>> Also maybe use sizeof(mmc_host_capabilities) instead of BITS_PER_LONG?
>> You mean sizeof(caps) and not sizeof(mmc_host_capabilities) . Right ?
> meant ARRAY_SIZE(mmc_host_capabilities)
>
> Thanks,
> Avri
>

ARRAY_SIZE(mmc_host_capabilities) will be 32 and this will be my old change for which I got a comment from Andy Shevchenko asking me to replace u32 with unsigned long.

This is the old comment:

>> +ÂÂÂ int size = sizeof(u32) * BITS_PER_BYTE;
> This is redundant. Use BITS_PER_LONG (why's that, see below) in the
for_each_set_bit().

>> +ÂÂÂ for_each_set_bit(bit, (const unsigned long *)&caps, size)
>> +ÂÂÂ for_each_set_bit(bit, (const unsigned long *)&caps2, size)
> These are UB cases.
> Fix is simple, replace u32 by unsigned long in (1) above.

Note: Without typecasting &caps to(const unsigned long *) will give compilation error in this case.


Thanks,
Harish Jenny K N