linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Jonathan Hunter <jonathanh@nvidia.com>,
	Thierry Reding <treding@nvidia.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.12 16/48] drm/tegra: sor: Fully initialize SOR before registration
Date: Wed, 16 Jun 2021 17:33:26 +0200	[thread overview]
Message-ID: <20210616152837.168264350@linuxfoundation.org> (raw)
In-Reply-To: <20210616152836.655643420@linuxfoundation.org>

From: Thierry Reding <treding@nvidia.com>

[ Upstream commit 5dea42759bcef74b0802ea64b904409bc37f9045 ]

Before registering the SOR host1x client, make sure that it is fully
initialized. This avoids a potential race condition between the SOR's
probe and the host1x device initialization in cases where the SOR is
the final sub-device to register to a host1x instance.

Reported-by: Jonathan Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/gpu/drm/tegra/sor.c | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
index 67a80dae1c00..32c83f2e386c 100644
--- a/drivers/gpu/drm/tegra/sor.c
+++ b/drivers/gpu/drm/tegra/sor.c
@@ -3922,17 +3922,10 @@ static int tegra_sor_probe(struct platform_device *pdev)
 	platform_set_drvdata(pdev, sor);
 	pm_runtime_enable(&pdev->dev);
 
-	INIT_LIST_HEAD(&sor->client.list);
+	host1x_client_init(&sor->client);
 	sor->client.ops = &sor_client_ops;
 	sor->client.dev = &pdev->dev;
 
-	err = host1x_client_register(&sor->client);
-	if (err < 0) {
-		dev_err(&pdev->dev, "failed to register host1x client: %d\n",
-			err);
-		goto rpm_disable;
-	}
-
 	/*
 	 * On Tegra210 and earlier, provide our own implementation for the
 	 * pad output clock.
@@ -3944,13 +3937,13 @@ static int tegra_sor_probe(struct platform_device *pdev)
 				      sor->index);
 		if (!name) {
 			err = -ENOMEM;
-			goto unregister;
+			goto uninit;
 		}
 
 		err = host1x_client_resume(&sor->client);
 		if (err < 0) {
 			dev_err(sor->dev, "failed to resume: %d\n", err);
-			goto unregister;
+			goto uninit;
 		}
 
 		sor->clk_pad = tegra_clk_sor_pad_register(sor, name);
@@ -3961,14 +3954,20 @@ static int tegra_sor_probe(struct platform_device *pdev)
 		err = PTR_ERR(sor->clk_pad);
 		dev_err(sor->dev, "failed to register SOR pad clock: %d\n",
 			err);
-		goto unregister;
+		goto uninit;
+	}
+
+	err = __host1x_client_register(&sor->client);
+	if (err < 0) {
+		dev_err(&pdev->dev, "failed to register host1x client: %d\n",
+			err);
+		goto uninit;
 	}
 
 	return 0;
 
-unregister:
-	host1x_client_unregister(&sor->client);
-rpm_disable:
+uninit:
+	host1x_client_exit(&sor->client);
 	pm_runtime_disable(&pdev->dev);
 remove:
 	tegra_output_remove(&sor->output);
-- 
2.30.2




  parent reply	other threads:[~2021-06-16 15:40 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-16 15:33 [PATCH 5.12 00/48] 5.12.12-rc1 review Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 01/48] net: ieee802154: fix null deref in parse dev addr Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 02/48] HID: asus: Filter keyboard EC for old ROG keyboard Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 03/48] HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for Saitek X65 Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 04/48] HID: quirks: Add HID_QUIRK_NO_INIT_REPORTS quirk for Dell K15A keyboard-dock Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 05/48] HID: a4tech: use A4_2WHEEL_MOUSE_HACK_B8 for A4TECH NB-95 Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 06/48] HID: hid-input: add mapping for emoji picker key Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 07/48] HID: hid-sensor-hub: Return error for hid_set_field() failure Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 08/48] HID: asus: filter G713/G733 key event to prevent shutdown Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 09/48] HID: quirks: Add quirk for Lenovo optical mouse Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 10/48] HID: multitouch: set Stylus suffix for Stylus-application devices, too Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 11/48] HID: Add BUS_VIRTUAL to hid_connect logging Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 12/48] HID: usbhid: fix info leak in hid_submit_ctrl Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 13/48] mt76: mt7921: fix max aggregation subframes setting Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 14/48] drm/tegra: sor: Do not leak runtime PM reference Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 15/48] gpu: host1x: Split up client initalization and registration Greg Kroah-Hartman
2021-06-16 15:33 ` Greg Kroah-Hartman [this message]
2021-06-16 15:33 ` [PATCH 5.12 17/48] hwmon/pmbus: (q54sj108a2) The PMBUS_MFR_ID is actually 6 chars instead of 5 Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 18/48] ARM: OMAP1: Fix use of possibly uninitialized irq variable Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 19/48] ARM: OMAP2+: Fix build warning when mmc_omap is not built Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 20/48] gfs2: Prevent direct-I/O write fallback errors from getting lost Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 21/48] gfs2: fix a deadlock on withdraw-during-mount Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 22/48] gfs2: Clean up revokes on normal withdraws Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 23/48] HID: multitouch: Disable event reporting on suspend on the Asus T101HA touchpad Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 24/48] HID: gt683r: add missing MODULE_DEVICE_TABLE Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 25/48] HID: intel-ish-hid: ipc: Add Alder Lake device IDs Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 26/48] riscv: Use -mno-relax when using lld linker Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 27/48] ALSA: hda: Add AlderLake-M PCI ID Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 28/48] mt76: mt7921: remove leftover 80+80 HE capability Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 29/48] gfs2: Fix use-after-free in gfs2_glock_shrink_scan Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 30/48] scsi: target: core: Fix warning on realtime kernels Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 31/48] ethernet: myri10ge: Fix missing error code in myri10ge_probe() Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 32/48] scsi: qedf: Do not put host in qedf_vport_create() unconditionally Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 33/48] Bluetooth: Add a new USB ID for RTL8822CE Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 34/48] scsi: scsi_devinfo: Add blacklist entry for HPE OPEN-V Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 35/48] nvme-loop: reset queue count to 1 in nvme_loop_destroy_io_queues() Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 36/48] nvme-loop: clear NVME_LOOP_Q_LIVE when nvme_loop_configure_admin_queue() fails Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 37/48] nvme-loop: check for NVME_LOOP_Q_LIVE in nvme_loop_destroy_admin_queue() Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 38/48] nvme-loop: do not warn for deleted controllers during reset Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 39/48] net: ipconfig: Dont override command-line hostnames or domains Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 40/48] drm/amd/display: Allow bandwidth validation for 0 streams Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 41/48] drm/amdgpu: refine amdgpu_fru_get_product_info Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 42/48] drm/amd/display: Fix overlay validation by considering cursors Greg Kroah-Hartman
2021-06-16 16:02   ` Harry Wentland
2021-06-16 15:33 ` [PATCH 5.12 43/48] drm/amd/display: Fix potential memory leak in DMUB hw_init Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 44/48] drm/amd/amdgpu:save psp ring wptr to avoid attack Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 45/48] rtnetlink: Fix missing error code in rtnl_bridge_notify() Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 46/48] net/x25: Return the correct errno code Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 47/48] net: " Greg Kroah-Hartman
2021-06-16 15:33 ` [PATCH 5.12 48/48] fib: " Greg Kroah-Hartman
2021-06-16 18:39 ` [PATCH 5.12 00/48] 5.12.12-rc1 review Fox Chen
2021-06-16 22:18 ` Justin Forbes
2021-06-16 22:54 ` Florian Fainelli
2021-06-17  4:57 ` Naresh Kamboju
2021-06-17 21:40 ` Guenter Roeck

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=20210616152837.168264350@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=jonathanh@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=treding@nvidia.com \
    /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).