On Thu, Oct 20, 2016 at 02:55:39PM +0200, Andrew Jones wrote: > On Fri, Oct 14, 2016 at 08:40:48PM +0800, Peter Xu wrote: > > Signed-off-by: Peter Xu <peterx@xxxxxxxxxx> > > --- > > lib/pci.h | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/lib/pci.h b/lib/pci.h > > index b8755ff..6a1c3c9 100644 > > --- a/lib/pci.h > > +++ b/lib/pci.h > > @@ -18,6 +18,12 @@ enum { > > #define PCI_BAR_NUM (6) > > #define PCI_DEVFN_MAX (256) > > > > +#define PCI_BDF_GET_DEVFN(x) ((x) & 0xff) > > +#define PCI_BDF_GET_BUS(x) (((x) >> 8) & 0xff) > > +#define PCI_SLOT(devfn) (((devfn) >> 3) & 0x1f) > > +#define PCI_FUNC(devfn) ((devfn) & 0x07) > > +#define PCI_BUILD_BDF(bus, devfn) ((bus << 8) | (devfn)) > > As I mention frequently; I know nothing about PCI, but this doesn't > look right to me. DEVFN should be defined as > > #define PCI_DEVFN(slot, func) ((((slot) & 0x1f) << 3) | ((func) & 0x07)) > > Care to explain these? Please provide the explanation in the commit > message to along with a motivation for adding them. Looks like the above lines are not conflicting? E.g., the above patch (PCI_SLOT and PCI_FUNC) provides way to abstract slot/function out of devfn value, while the one you mentioned (PCI_DEVFN) should be the builder macro that builds a devfn value from its slot and function? However... I just found that I didn't use PCI_SLOT/PCI_FUNC/PCI_BUILD_BDF macros in the following patches, so maybe I should just remove the last three of them... Thanks, -- peterx -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html