I don't see any problems with this, since nvkm_device_del() is mainly in charge of just releasing memory allocations as is drm_dev_put(). Reviewed-by: Lyude Paul <lyude@xxxxxxxxxx> On Mon, 2019-09-16 at 16:36 +0200, Thierry Reding wrote: > From: Thierry Reding <treding@xxxxxxxxxx> > > When Nouveau is instantiated on top of a platform device, the dev->pdev > field will be NULL and calling pci_disable_device() will crash. Move the > PCI disabling code to the PCI specific driver removal code. > > Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> > --- > drivers/gpu/drm/nouveau/nouveau_drm.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c > b/drivers/gpu/drm/nouveau/nouveau_drm.c > index 2cd83849600f..b65ae817eabf 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_drm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c > @@ -715,7 +715,6 @@ static int nouveau_drm_probe(struct pci_dev *pdev, > void > nouveau_drm_device_remove(struct drm_device *dev) > { > - struct pci_dev *pdev = dev->pdev; > struct nouveau_drm *drm = nouveau_drm(dev); > struct nvkm_client *client; > struct nvkm_device *device; > @@ -727,7 +726,6 @@ nouveau_drm_device_remove(struct drm_device *dev) > device = nvkm_device_find(client->device); > > nouveau_drm_device_fini(dev); > - pci_disable_device(pdev); > drm_dev_put(dev); > nvkm_device_del(&device); > } > @@ -738,6 +736,7 @@ nouveau_drm_remove(struct pci_dev *pdev) > struct drm_device *dev = pci_get_drvdata(pdev); > > nouveau_drm_device_remove(dev); > + pci_disable_device(pdev); > } > > static int -- Cheers, Lyude Paul _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel