Re: [kvm-unit-tests PATCH 2/7] pci: use uint32_t for unsigned long values

Paolo Bonzini
2020-02-28T13:02:19Z

On 28/02/20 13:46, Andrew Jones wrote:
> On Fri, Feb 28, 2020 at 12:04:38PM +0100, Paolo Bonzini wrote:
>> On 26/02/20 10:44, 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@google.com>
>>> ---
>>> lib/linux/pci_regs.h | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> 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) */
>>>
>>
>> Removing the "U" is even better because it will then sign-extend
>> automatically.
>>
>
> We don't want this patch at all though. We shouldn't change pci_regs.h
> since it comes from linux and someday we may update again and lose
> any changes we make. We should change how these masks are used instead.

I will try to get the change into Linux.

Paolo