[PATCH] drm/doc: Add a warning to drm_dev_is_unplugged

Noralf Trønnes noralf at tronnes.org
Tue Jan 29 10:26:25 UTC 2019



Den 29.01.2019 11.20, skrev Noralf Trønnes:
> 
> 
> Den 29.01.2019 10.51, skrev Daniel Vetter:
>> On Tue, Jan 29, 2019 at 10:02:32AM +0100, Noralf Trønnes wrote:
>>>
>>>
>>> Den 29.01.2019 09.56, skrev Daniel Vetter:
>>>> It's probably not what you want, definitely not after Noralf's work to
>>>> add drm_dev_enter/exit.
>>>>
>>>> Cc: Noralf Trønnes <noralf at tronnes.org>
>>>> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
>>>> ---
>>>
>>> Reviewed-by: Noralf Trønnes <noralf at tronnes.org>
>>
>> Thanks for your review, applied. btw I noticed that we also have plenty of
>> drm_dev_is_unplugged in the core, not sure what to do about those.
> 
> I think they're fine. They're kind of a shortcut for some code paths,
> but in order to be safe I believe that it's the driver that needs to
> have the responsibility to protect its resources. This way we don't run
> into any suprises, since DRM and it's codepaths are quite complex.
> 

To be a bit more precise, it also reports back to userspace for some
code paths that might not reach the driver that the device is gone.

> Noralf.
> 
>> -Daniel
>>
>>>
>>>>  include/drm/drm_drv.h | 4 ++++
>>>>  1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
>>>> index 9a688cf12881..ca46a45a9cce 100644
>>>> --- a/include/drm/drm_drv.h
>>>> +++ b/include/drm/drm_drv.h
>>>> @@ -740,6 +740,10 @@ void drm_dev_unplug(struct drm_device *dev);
>>>>   * Unplugging itself is singalled through drm_dev_unplug(). If a device is
>>>>   * unplugged, these two functions guarantee that any store before calling
>>>>   * drm_dev_unplug() is visible to callers of this function after it completes
>>>> + *
>>>> + * WARNING: This function fundamentally races against drm_dev_unplug(). It is
>>>> + * recommended that drivers instead use the underlying drm_dev_enter() and
>>>> + * drm_dev_exit() function pairs.
>>>>   */
>>>>  static inline bool drm_dev_is_unplugged(struct drm_device *dev)
>>>>  {
>>>>
>>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
> 


More information about the dri-devel mailing list