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

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



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.

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)
>>>  {
>>>
> 


More information about the dri-devel mailing list