From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: "Hans de Goede" <hdegoede@redhat.com>,
"Michel Dänzer" <mdaenzer@redhat.com>,
"Alex Deucher" <alexander.deucher@amd.com>,
"Sasha Levin" <sashal@kernel.org>,
amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: [PATCH AUTOSEL 4.19 41/43] drm/radeon: Bail earlier when radeon.cik_/si_support=0 is passed
Date: Tue, 1 Oct 2019 12:43:09 -0400 [thread overview]
Message-ID: <20191001164311.15993-41-sashal@kernel.org> (raw)
In-Reply-To: <20191001164311.15993-1-sashal@kernel.org>
From: Hans de Goede <hdegoede@redhat.com>
[ Upstream commit 9dbc88d013b79c62bd845cb9e7c0256e660967c5 ]
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 an userspace bug, not sending unnecessary
udev events is a good idea in general.
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1490490
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/gpu/drm/radeon/radeon_drv.c | 31 +++++++++++++++++++++++++++++
drivers/gpu/drm/radeon/radeon_kms.c | 25 -----------------------
2 files changed, 31 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 2a7977a23b31c..c26f09b47ecb2 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -340,8 +340,39 @@ static int radeon_kick_out_firmware_fb(struct pci_dev *pdev)
static int radeon_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
+ unsigned long flags = 0;
int ret;
+ if (!ent)
+ return -ENODEV; /* Avoid NULL-ptr deref in drm_get_pci_dev */
+
+ flags = ent->driver_data;
+
+ if (!radeon_si_support) {
+ switch (flags & RADEON_FAMILY_MASK) {
+ case CHIP_TAHITI:
+ case CHIP_PITCAIRN:
+ case CHIP_VERDE:
+ case CHIP_OLAND:
+ case CHIP_HAINAN:
+ dev_info(&pdev->dev,
+ "SI support disabled by module param\n");
+ return -ENODEV;
+ }
+ }
+ if (!radeon_cik_support) {
+ switch (flags & RADEON_FAMILY_MASK) {
+ case CHIP_KAVERI:
+ case CHIP_BONAIRE:
+ case CHIP_HAWAII:
+ case CHIP_KABINI:
+ case CHIP_MULLINS:
+ dev_info(&pdev->dev,
+ "CIK support disabled by module param\n");
+ return -ENODEV;
+ }
+ }
+
if (vga_switcheroo_client_probe_defer(pdev))
return -EPROBE_DEFER;
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 6a8fb6fd183c3..3ff835767ac58 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -95,31 +95,6 @@ int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags)
struct radeon_device *rdev;
int r, acpi_status;
- if (!radeon_si_support) {
- switch (flags & RADEON_FAMILY_MASK) {
- case CHIP_TAHITI:
- case CHIP_PITCAIRN:
- case CHIP_VERDE:
- case CHIP_OLAND:
- case CHIP_HAINAN:
- dev_info(dev->dev,
- "SI support disabled by module param\n");
- return -ENODEV;
- }
- }
- if (!radeon_cik_support) {
- switch (flags & RADEON_FAMILY_MASK) {
- case CHIP_KAVERI:
- case CHIP_BONAIRE:
- case CHIP_HAWAII:
- case CHIP_KABINI:
- case CHIP_MULLINS:
- dev_info(dev->dev,
- "CIK support disabled by module param\n");
- return -ENODEV;
- }
- }
-
rdev = kzalloc(sizeof(struct radeon_device), GFP_KERNEL);
if (rdev == NULL) {
return -ENOMEM;
--
2.20.1
next prev parent reply other threads:[~2019-10-01 16:51 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-01 16:42 [PATCH AUTOSEL 4.19 01/43] ima: always return negative code for error Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 02/43] ima: fix freeing ongoing ahash_request Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 03/43] fs: nfs: Fix possible null-pointer dereferences in encode_attrs() Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 04/43] 9p: Transport error uninitialized Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 05/43] 9p: avoid attaching writeback_fid on mmap with type PRIVATE Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 06/43] 9p/cache.c: Fix memory leak in v9fs_cache_session_get_cookie Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 07/43] xen/pci: reserve MCFG areas earlier Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 08/43] ceph: fix directories inode i_blkbits initialization Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 09/43] ceph: reconnect connection if session hang in opening state Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 10/43] rbd: fix response length parameter for encoded strings Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 11/43] watchdog: aspeed: Add support for AST2600 Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 12/43] netfilter: nf_tables: allow lookups in dynamic sets Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 13/43] drm/amdgpu: Fix KFD-related kernel oops on Hawaii Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 14/43] drm/amdgpu: Check for valid number of registers to read Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 15/43] pNFS: Ensure we do clear the return-on-close layout stateid on fatal errors Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 16/43] net/sched: act_sample: don't push mac header on ip6gre ingress Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 17/43] pwm: stm32-lp: Add check in case requested period cannot be achieved Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 18/43] cdc_ncm: fix divide-by-zero caused by invalid wMaxPacketSize Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 19/43] usbnet: ignore endpoints with " Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 20/43] net/phy: fix DP83865 10 Mbps HDX loopback disable function Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 21/43] net_sched: add max len check for TCA_KIND Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 22/43] x86/purgatory: Disable the stackleak GCC plugin for the purgatory Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 23/43] ntb: point to right memory window index Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 24/43] thermal: Fix use-after-free when unregistering thermal zone device Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 25/43] thermal_hwmon: Sanitize thermal_zone type Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 26/43] libnvdimm/region: Initialize bad block for volatile namespaces Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 27/43] fuse: fix memleak in cuse_channel_open Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 28/43] arcnet: provide a buffer big enough to actually receive packets Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 29/43] libnvdimm/nfit_test: Fix acpi_handle redefinition Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 30/43] ppp: Fix memory leak in ppp_write Sasha Levin
2019-10-01 16:42 ` [PATCH AUTOSEL 4.19 31/43] sched/membarrier: Call sync_core only before usermode for same mm Sasha Levin
2019-10-01 16:43 ` [PATCH AUTOSEL 4.19 32/43] sched/membarrier: Fix private expedited registration check Sasha Levin
2019-10-01 16:43 ` [PATCH AUTOSEL 4.19 33/43] sched/core: Fix migration to invalid CPU in __set_cpus_allowed_ptr() Sasha Levin
2019-10-01 16:43 ` [PATCH AUTOSEL 4.19 34/43] perf build: Add detection of java-11-openjdk-devel package Sasha Levin
2019-10-01 16:43 ` [PATCH AUTOSEL 4.19 35/43] kernel/elfcore.c: include proper prototypes Sasha Levin
2019-10-01 16:43 ` [PATCH AUTOSEL 4.19 36/43] kexec: bail out upon SIGKILL when allocating memory Sasha Levin
2019-10-01 16:43 ` [PATCH AUTOSEL 4.19 37/43] macsec: drop skb sk before calling gro_cells_receive Sasha Levin
2019-10-01 16:43 ` [PATCH AUTOSEL 4.19 38/43] perf unwind: Fix libunwind build failure on i386 systems Sasha Levin
2019-10-01 16:43 ` [PATCH AUTOSEL 4.19 39/43] nfp: flower: fix memory leak in nfp_flower_spawn_vnic_reprs Sasha Levin
2019-10-01 16:43 ` [PATCH AUTOSEL 4.19 40/43] nfp: flower: prevent memory leak in nfp_flower_spawn_phy_reprs Sasha Levin
2019-10-01 16:43 ` Sasha Levin [this message]
2019-10-01 16:43 ` [PATCH AUTOSEL 4.19 42/43] usbnet: sanity checking of packet sizes and device mtu Sasha Levin
2019-10-01 16:43 ` [PATCH AUTOSEL 4.19 43/43] sch_netem: fix a divide by zero in tabledist() Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191001164311.15993-41-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=hdegoede@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mdaenzer@redhat.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).