On Fri, Oct 11, 2019 at 5:27 AM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > Hi, > > On 10-10-2019 18:59, Daniel Vetter wrote: > > 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> > > Thanks, > > > I guess also cc: stable material? > > Yes. > > amdgpu maintainers, can you please add a Cc: stable while merging? > Let me know if you want a new version with this added. I'll take care of it when I merge this. Thanks! Alex > > Regards, > > Hans > > > > >> 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 > >> > > > > > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel