On Wed, Sep 30, 2020 at 08:47:00PM +0200, Thomas Gleixner wrote:
> > + pci_read_config_dword(pdev, SIOVCAP(dvsec), &val32);
> > + if ((val32 & 0x1) && idxd->hw.gen_cap.max_ims_mult) {
> > + idxd->ims_size = idxd->hw.gen_cap.max_ims_mult * 256ULL;
> > + dev_dbg(dev, "IMS size: %u\n", idxd->ims_size);
> > + set_bit(IDXD_FLAG_SIOV_SUPPORTED, &idxd->flags);
> > + dev_dbg(&pdev->dev, "IMS supported for device\n");
> > + return;
> > + }
> > +
> > + dev_dbg(&pdev->dev, "SIOV unsupported for device\n");
>
> It's really hard to find the code inside all of this dev_dbg()
> noise. But why is this capability check done in this driver? Is this
> capability stuff really IDXD specific or is the next device which
> supports this going to copy and pasta the above?
It is the weirdest thing, IMHO. Intel defined a dvsec cap in their
SIOV cookbook, but as far as I can see it serves no purpose at
all.
Last time I asked I got some unclear mumbling about "OEMs".
I expect you'll see all Intel drivers copying this code.
Jason