On Wed, Aug 27, 2014 at 2:57 PM, Alex Williamson <[email protected]> wrote: > If we have a GPU on the PCI root bus that calls > drm_pcie_get_speed_cap_mask() we end up with a NULL pointer > dereference since pdev->bus->self is NULL. We already protect > against callers passing non-PCI devices, so let's also catch this > case and return -EINVAL. > > Root complex graphics are not terribly likely outside of IGD, but > when we assign a standard plugin GPU to a virtual machine, our > assumption that we have a parent device quickly becomes invalid. > > Signed-off-by: Alex Williamson <[email protected]>
Reviewed-by: Alex Deucher <[email protected]> > --- > > drivers/gpu/drm/drm_pci.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c > index 020cfd9..411e806 100644 > --- a/drivers/gpu/drm/drm_pci.c > +++ b/drivers/gpu/drm/drm_pci.c > @@ -390,7 +390,7 @@ int drm_pcie_get_speed_cap_mask(struct drm_device *dev, > u32 *mask) > u32 lnkcap, lnkcap2; > > *mask = 0; > - if (!dev->pdev) > + if (!dev->pdev || pci_is_root_bus(dev->pdev->bus)) > return -EINVAL; > > root = dev->pdev->bus->self; > > _______________________________________________ > dri-devel mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

