Files
linux/drivers
Lucas De Marchi ac4eead379 drm/i915/dsb: remove atomic operations
The current dsb API is not really prepared to handle multithread access.
I was debugging an issue that ended up fixed by commit a096883dda
("drm/i915/dsb: Remove PIN_MAPPABLE from the DSB object VMA") and was
puzzled how these atomic operations were guaranteeing atomicity.

	if (atomic_add_return(1, &dsb->refcount) != 1)
		return dsb;

Thread A could still be initializing dsb struct (and even fail in the
middle) while thread B would take a reference and use it (even
derefencing a NULL cmd_buf).

I don't think the atomic operations here will help much if this were
to support multithreaded scenario in future, so just remove them to
avoid confusion.

v2: Use refcount++ != 0 instead of ++refcount != 1 (from Ville)

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191111205024.22853-2-lucas.demarchi@intel.com
Link: https://patchwork.freedesktop.org/patch/msgid/20191116011539.18230-1-lucas.demarchi@intel.com
2019-11-18 13:27:09 -08:00
..
2019-10-27 15:57:19 +00:00
2019-10-23 12:10:05 +02:00
2019-10-23 12:10:05 +02:00
2019-11-06 21:48:29 -08:00
2019-09-23 17:20:40 -04:00
2019-10-15 23:51:36 +02:00
2019-10-22 17:55:51 +02:00
2019-10-26 19:47:31 +08:00
2019-10-15 14:07:01 -06:00
2019-11-14 05:53:10 +10:00