On Thu, Jun 18, 2020 at 04:35:31PM +0000, Shiju Jose wrote: > >-----Original Message----- > >From: Andy Shevchenko [mailto:andriy.shevchenko@xxxxxxxxxxxxxxx] > >Sent: 18 June 2020 16:56 > >To: Shiju Jose <shiju.jose@xxxxxxxxxx> > >Cc: linux-acpi@xxxxxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx; linux- > >kernel@xxxxxxxxxxxxxxx; rjw@xxxxxxxxxxxxx; helgaas@xxxxxxxxxx; > >bp@xxxxxxxxx; james.morse@xxxxxxx; lenb@xxxxxxxxxx; > >tony.luck@xxxxxxxxx; dan.carpenter@xxxxxxxxxx; > >zhangliguang@xxxxxxxxxxxxxxxxx; Wangkefeng (OS Kernel Lab) > ><wangkefeng.wang@xxxxxxxxxx>; jroedel@xxxxxxx; Linuxarm > ><linuxarm@xxxxxxxxxx>; yangyicong <yangyicong@xxxxxxxxxx>; Jonathan > >Cameron <jonathan.cameron@xxxxxxxxxx>; tanxiaofei > ><tanxiaofei@xxxxxxxxxx> > >Subject: Re: [PATCH v10 2/2] PCI: hip: Add handling of HiSilicon HIP PCIe > >controller errors > > > >On Thu, Jun 18, 2020 at 04:40:51PM +0100, Shiju Jose wrote: ... > >> Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxx> > > > >Hmm... Did I give a tag? Yes, and please, be sure that you got explicit tags from reviewers. ... > >> + for_each_set_bit_from(idx, (const unsigned long *)&edata->val_bits, > > > >Can't you make val_bits unsigned long? Because this casting is incorrect. > >Otherwise, make a local copy into unsigned long variable. > > The data val_bits in the error record is 64 bits, thus used u64. > Casting is added because of a compilation warning on _find_nex_bit_ function as it > expects the type of the address as const unsigned long*. > Probably I will make local copy of val_bits into unsigned long variable. I see. So, something like this: unsigned long bits[] = { BITMAP_FROM_U64(edata->val_bits) }; ... for_each_set_bit_from(i, bits, ...) ... looks plausible. Or if you have better idea... -- With Best Regards, Andy Shevchenko