gpu: host1x: Assign intr waiter inside lock
authorMikko Perttunen <mperttunen@nvidia.com>
Mon, 29 Mar 2021 13:38:35 +0000 (16:38 +0300)
committerThierry Reding <treding@nvidia.com>
Wed, 31 Mar 2021 15:42:14 +0000 (17:42 +0200)
commit5a8d95d20c406c673258edd4c2bd308c22304657
tree0f335352bc18763b99688b76da22d105a38d36da
parentf5ba33fb9690566c382624637125827b5512e766
gpu: host1x: Assign intr waiter inside lock

Move the assignment of the ref out-pointer in host1x_intr_add_action
to happen within the spinlock. With the current arrangement,
it is possible for the waiter to complete before the assignment
has happened, which breaks horribly if the waiter completion
callback tries to use the reference.

In practice, there is currently no situation where this issue can
manifest -- it was first noticed with the upcoming DMA fence
implementation patches. As such this doesn't need to be backported.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/host1x/intr.c