From: Maxime Ripard <maxime@cerno.tech>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
Maxime Ripard <maxime@cerno.tech>
Cc: Daniel Vetter <daniel.vetter@intel.com>,
David Airlie <airlied@linux.ie>,
dri-devel@lists.freedesktop.org,
Linus Torvalds <torvalds@linux-foundation.org>,
linux-kernel@vger.kernel.org,
Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Subject: [PATCH 0/2] drm/vc4: hdmi: Get rid of encoder->crtc, take 2
Date: Fri, 24 Sep 2021 15:55:28 +0200 [thread overview]
Message-ID: <20210924135530.1036564-1-maxime@cerno.tech> (raw)
Hi,
Following the report from Sudip Mukherjee, the previous version of that patch
got reverted until a fix was found.
While it's not clear yet why we end up in that situation, the culprit is that
the original patch in its ASoC prepare hook was calling the vc4_hdmi_set_n_cts
function that in turned relied on the connector->state->crtc pointer being
non-NULL.
However, no particular caution was being done to make sure that was the case,
eventually leading to a NULL pointer dereference under the "right"
circumstances.
We did however had some checks for the pointers sanity in the original patch,
but they were only enforced when the device was opened, and we were only
checking for the connector->state pointer.
The fix is then two-fold: First, we check that we can actually perform audio
operations in both startup and prepare, since the situation could have changed
between the time the device was opened and the time when we actually start
streaming. Then, the encoder->crtc conversion patch has been changed to check
on connector->state->crtc as well in that sanity check to avoid dereferencing
it if it's NULL.
Let me know what you think,
Maxime
Maxime Ripard (2):
drm/vc4: hdmi: Check the device state in prepare()
drm/vc4: hdmi: Remove drm_encoder->crtc usage
drivers/gpu/drm/vc4/vc4_hdmi.c | 75 ++++++++++++++++++++++++++--------
1 file changed, 57 insertions(+), 18 deletions(-)
--
2.31.1
next reply other threads:[~2021-09-24 13:55 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-24 13:55 Maxime Ripard [this message]
2021-09-24 13:55 ` [PATCH 1/2] drm/vc4: hdmi: Check the device state in prepare() Maxime Ripard
2021-09-26 21:24 ` Sudip Mukherjee
2021-09-24 13:55 ` [PATCH 2/2] drm/vc4: hdmi: Remove drm_encoder->crtc usage Maxime Ripard
2021-09-26 21:25 ` Sudip Mukherjee
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=20210924135530.1036564-1-maxime@cerno.tech \
--to=maxime@cerno.tech \
--cc=airlied@linux.ie \
--cc=daniel.vetter@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=sudipm.mukherjee@gmail.com \
--cc=torvalds@linux-foundation.org \
--cc=tzimmermann@suse.de \
/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
all inboxes | Powered by JetHome®