Messages in this thread | | | Subject | Re: [PATCH v9] mmc: Export host capabilities to debugfs. | From | Andy Shevchenko <> | Date | Mon, 12 Mar 2018 15:03:27 +0200 |
| |
On Mon, 2018-03-12 at 18:00 +0530, Harish Jenny K N wrote:
> > > > > > + 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)
> 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
There is nothing about ARRAY_SIZE(). ARRAY_SIZE() will work quite good as well.
> 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.
What kind of?
-- Andy Shevchenko <andriy.shevchenko@linux.intel.com> Intel Finland Oy
| |