aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/etnaviv/state_blt.xml.h
diff options
context:
space:
mode:
authorTakashi Iwai2022-09-08 11:51:13 +0200
committerThomas Zimmermann2022-09-10 21:45:52 +0200
commitc5c354a3a4728045e1342166394c615d75d45377 (patch)
tree21028e170a6dd96f1ae4eec9375a559f1766bb8d /drivers/gpu/drm/etnaviv/state_blt.xml.h
parent046f4f0af7fd1fad06793d863d288c6b2cd84e99 (diff)
drm/udl: Fix inconsistent urbs.count value during udl_free_urb_list()
In the current design, udl_get_urb() may be called asynchronously during the driver freeing its URL list via udl_free_urb_list(). The problem is that the sync is determined by comparing the urbs.count and urbs.available fields, while we clear urbs.count field only once after udl_free_urb_list() finishes, i.e. during udl_free_urb_list(), the state becomes inconsistent. For fixing this inconsistency and also for hardening the locking scheme, this patch does a slight refactoring of the code around udl_get_urb() and udl_free_urb_list(). Now urbs.count is updated in the same spinlock at extracting a URB from the list in udl_free_url_list(). Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20220908095115.23396-11-tiwai@suse.de
Diffstat (limited to 'drivers/gpu/drm/etnaviv/state_blt.xml.h')
0 files changed, 0 insertions, 0 deletions