Messages in this thread | | | Date | Wed, 4 Nov 2015 21:20:22 +0300 | From | Dan Carpenter <> | Subject | Re: [patch] vfio: make an array larger |
| |
Sorry, I should have said that I am on linux-next at the start.
> > -static u8 pci_cap_length[] = { > > +static u8 pci_cap_length[PCI_CAP_ID_MAX + 1] = { > > [PCI_CAP_ID_BASIC] = PCI_STD_HEADER_SIZEOF, /* pci config header */ > > [PCI_CAP_ID_PM] = PCI_PM_SIZEOF, > > [PCI_CAP_ID_AGP] = PCI_AGP_SIZEOF, > > This doesn't make a whole lot of sense to me. The last entry we define > is: > > [PCI_CAP_ID_AF] = PCI_CAP_AF_SIZEOF,
Yes.
> }; > > and PCI_CAP_ID_MAX is defined as: > > #define PCI_CAP_ID_MAX PCI_CAP_ID_AF
No. I am on linux-next and we appear to have added a new element beyond PCI_CAP_ID_AF.
#define PCI_CAP_ID_AF 0x13 /* PCI Advanced Features */ #define PCI_CAP_ID_EA 0x14 /* PCI Enhanced Allocation */ #define PCI_CAP_ID_MAX PCI_CAP_ID_EA
> > So the array is implicitly sized to PCI_CAP_ID_MAX + 1 already, this > doesn't make it any larger.
In linux-next it makes it larger. But also explicitly using PCI_CAP_ID_MAX + 1 is cleaner as well as fixing the bug in case we add more elements later again.
regards, dan carpenter
| |