On Thu, Oct 10, 2019 at 6:28 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > Bail from the pci_driver probe function instead of from the drm_driver > load function. > > This avoid /dev/dri/card0 temporarily getting registered and then > unregistered again, sending unwanted add / remove udev events to > userspace. > > Specifically this avoids triggering the (userspace) bug fixed by this > plymouth merge-request: > https://gitlab.freedesktop.org/plymouth/plymouth/merge_requests/59 > > Note that despite that being a userspace bug, not sending unnecessary > udev events is a good idea in general. I think even better would be getting rid of the load/unload callbacks, this issue here isn't the only problem with them. Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> I guess also cc: stable material? -Daniel > > BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1490490 > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 35 +++++++++++++++++++++++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 35 ------------------------- > 2 files changed, 35 insertions(+), 35 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index 6f8aaf655a9f..2a00a36106b2 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -1048,6 +1048,41 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, > return -ENODEV; > } > > +#ifdef CONFIG_DRM_AMDGPU_SI > + if (!amdgpu_si_support) { > + switch (flags & AMD_ASIC_MASK) { > + case CHIP_TAHITI: > + case CHIP_PITCAIRN: > + case CHIP_VERDE: > + case CHIP_OLAND: > + case CHIP_HAINAN: > + dev_info(&pdev->dev, > + "SI support provided by radeon.\n"); > + dev_info(&pdev->dev, > + "Use radeon.si_support=0 amdgpu.si_support=1 to override.\n" > + ); > + return -ENODEV; > + } > + } > +#endif > +#ifdef CONFIG_DRM_AMDGPU_CIK > + if (!amdgpu_cik_support) { > + switch (flags & AMD_ASIC_MASK) { > + case CHIP_KAVERI: > + case CHIP_BONAIRE: > + case CHIP_HAWAII: > + case CHIP_KABINI: > + case CHIP_MULLINS: > + dev_info(&pdev->dev, > + "CIK support provided by radeon.\n"); > + dev_info(&pdev->dev, > + "Use radeon.cik_support=0 amdgpu.cik_support=1 to override.\n" > + ); > + return -ENODEV; > + } > + } > +#endif > + > /* Get rid of things like offb */ > ret = drm_fb_helper_remove_conflicting_pci_framebuffers(pdev, 0, "amdgpudrmfb"); > if (ret) > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > index f2c097983f48..d55f5baa83d3 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c > @@ -144,41 +144,6 @@ int amdgpu_driver_load_kms(struct drm_device *dev, unsigned long flags) > struct amdgpu_device *adev; > int r, acpi_status; > > -#ifdef CONFIG_DRM_AMDGPU_SI > - if (!amdgpu_si_support) { > - switch (flags & AMD_ASIC_MASK) { > - case CHIP_TAHITI: > - case CHIP_PITCAIRN: > - case CHIP_VERDE: > - case CHIP_OLAND: > - case CHIP_HAINAN: > - dev_info(dev->dev, > - "SI support provided by radeon.\n"); > - dev_info(dev->dev, > - "Use radeon.si_support=0 amdgpu.si_support=1 to override.\n" > - ); > - return -ENODEV; > - } > - } > -#endif > -#ifdef CONFIG_DRM_AMDGPU_CIK > - if (!amdgpu_cik_support) { > - switch (flags & AMD_ASIC_MASK) { > - case CHIP_KAVERI: > - case CHIP_BONAIRE: > - case CHIP_HAWAII: > - case CHIP_KABINI: > - case CHIP_MULLINS: > - dev_info(dev->dev, > - "CIK support provided by radeon.\n"); > - dev_info(dev->dev, > - "Use radeon.cik_support=0 amdgpu.cik_support=1 to override.\n" > - ); > - return -ENODEV; > - } > - } > -#endif > - > adev = kzalloc(sizeof(struct amdgpu_device), GFP_KERNEL); > if (adev == NULL) { > return -ENOMEM; > -- > 2.23.0 > -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel