Re: [PATCH 0/6] soc: qcom: pmic_glink_altmode: fix drm bridge use-after-free

From: Neil Armstrong
Date: Fri Feb 23 2024 - 09:54:50 EST


On 17/02/2024 16:02, Johan Hovold wrote:
Starting with 6.8-rc1 the internal display sometimes fails to come up on
machines like the Lenovo ThinkPad X13s and the logs indicate that this
is due to a regression in the DRM subsystem [1].

This series fixes a race in the pmic_glink_altmode driver which was
exposed / triggered by the transparent DRM bridges rework that went into
6.8-rc1 and that manifested itself as a bridge failing to attach and
sometimes triggering a NULL-pointer dereference.

The intermittent hard resets that have also been reported since 6.8-rc1
unfortunately still remains and suggests that we are dealing with two
separate regressions. There is some indication that also the hard resets
(e.g. due to register accesses to unclocked hardware) are also due to
changes in the DRM subsystem as it happens around the time that the eDP
panel and display controller would be initialised during boot (the
runtime PM rework?). This remains to be verified, however.

Included is also a fix for a related OF node reference leak in the
aux-hpd driver found through inspection when reworking the driver.

The use-after-free bug is triggered by a probe deferral and highlighted
some further bugs in the involved drivers, which were registering child
devices before deferring probe. This behaviour is not correct and can
both trigger probe deferral loops and potentially also further issues
with the DRM bridge implementation.

This series can either go through the Qualcomm SoC tree (pmic_glink) or
the DRM tree. The PHY patches do not depend on the rest of the series
and could possibly be merged separately through the PHY tree.

Whichever gets this to mainline the fastest.

Johan


[1] https://lore.kernel.org/lkml/ZctVmLK4zTwcpW3A@xxxxxxxxxxxxxxxxxxxx/


Johan Hovold (5):
drm/bridge: aux-hpd: fix OF node leaks
drm/bridge: aux-hpd: separate allocation and registration
soc: qcom: pmic_glink_altmode: fix drm bridge use-after-free
phy: qcom-qmp-combo: fix drm bridge registration
phy: qcom-qmp-combo: fix type-c switch registration

Rob Clark (1):
soc: qcom: pmic_glink: Fix boot when QRTR=m

drivers/gpu/drm/bridge/aux-hpd-bridge.c | 70 ++++++++++++++++++-----
drivers/phy/qualcomm/phy-qcom-qmp-combo.c | 16 +++---
drivers/soc/qcom/pmic_glink.c | 21 +++----
drivers/soc/qcom/pmic_glink_altmode.c | 16 +++++-
include/drm/bridge/aux-bridge.h | 15 +++++
5 files changed, 102 insertions(+), 36 deletions(-)


For the serie:
Acked-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>

After an offline discussion, Dmitry, it's ok to push the remaining patches to drm-misc-fixes.

Thanks,
Neil