Hi, On 10/12/19 9:26 AM, Bill Wendling wrote: > The "pci_bar_*" functions use 64-bit masks, but the results are assigned > to 32-bit variables. Use 32-bit masks, since we're interested only in > the least significant 4-bits. > > Signed-off-by: Bill Wendling <morbo@xxxxxxxxxx> > --- > lib/linux/pci_regs.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) In my first comment I didn't realize that the file is actually a copy of a Linux user API header file (it's taken from include/uapi/linux/pci_regs.h). I don't think relying on changes to our own copy of the file is the best idea, because we might forget to include them the next time we sync our version with Linux. I think the best approach would be to do the explicit cast to uint32_t in pci_bar_mask. Thanks, Alex > > diff --git a/lib/linux/pci_regs.h b/lib/linux/pci_regs.h > index 1becea8..3bc2b92 100644 > --- a/lib/linux/pci_regs.h > +++ b/lib/linux/pci_regs.h > @@ -96,8 +96,8 @@ > #define PCI_BASE_ADDRESS_MEM_TYPE_1M 0x02 /* Below 1M [obsolete] */ > #define PCI_BASE_ADDRESS_MEM_TYPE_64 0x04 /* 64 bit address */ > #define PCI_BASE_ADDRESS_MEM_PREFETCH 0x08 /* prefetchable? */ > -#define PCI_BASE_ADDRESS_MEM_MASK (~0x0fUL) > -#define PCI_BASE_ADDRESS_IO_MASK (~0x03UL) > +#define PCI_BASE_ADDRESS_MEM_MASK (~0x0fU) > +#define PCI_BASE_ADDRESS_IO_MASK (~0x03U) > /* bit 1 is reserved if address_space = 1 */ > > /* Header type 0 (normal devices) */