On Monday 12 March 2018 05:02 PM, Avri Altman wrote: > >> -----Original Message----- >> From: Harish Jenny K N [mailto:[email protected]] >> Sent: Monday, March 12, 2018 1:17 PM >> To: Avri Altman <[email protected]>; Andy Shevchenko >> <[email protected]>; [email protected]; >> [email protected]; [email protected]; [email protected] >> Cc: [email protected]; [email protected]; >> [email protected] >> 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:[email protected]] >>>> Sent: Monday, March 12, 2018 12:08 PM >>>> To: Harish Jenny K N <[email protected]>; >>>> [email protected]; [email protected]; >>>> [email protected]; shawn.lin@rock- chips.com; Avri Altman >>>> <[email protected]> >>>> Cc: [email protected]; [email protected]; >>>> [email protected] >>>> 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 <[email protected]> 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 <[email protected]> >>>> >>>>> + 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

