[PATCH 2/2] drm/connector: send hotplug uevent on connector cleanup
Simon Ser
contact at emersion.fr
Tue Oct 18 09:26:34 UTC 2022
On Tuesday, October 18th, 2022 at 11:24, Ville Syrjälä <ville.syrjala at linux.intel.com> wrote:
> On Mon, Oct 17, 2022 at 03:32:01PM +0000, Simon Ser wrote:
>
> > A typical DP-MST unplug removes a KMS connector. However care must
> > be taken to properly synchronize with user-space. The expected
> > sequence of events is the following:
> >
> > 1. The kernel notices that the DP-MST port is gone.
> > 2. The kernel marks the connector as disconnected, then sends a
> > uevent to make user-space re-scan the connector list.
> > 3. User-space notices the connector goes from connected to disconnected,
> > disables it.
> > 4. Kernel handles the the IOCTL disabling the connector. On success,
> > the very last reference to the struct drm_connector is dropped and
> > drm_connector_cleanup() is called.
> > 5. The connector is removed from the list, and a uevent is sent to tell
> > user-space that the connector disappeared.
> >
> > The very last step was missing. As a result, user-space thought the
> > connector still existed and could try to disable it again. Since the
> > kernel no longer knows about the connector, that would end up with
> > EINVAL and confused user-space.
>
> So is the uevent sent by the mst delayed destroy work
> useless now, or what is going on there?
No, that one is still useful, step (2) above.
More information about the dri-devel
mailing list