mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-07 18:05:21 +02:00
accel/habanalabs: fix bug in timestamp interrupt handling
[ Upstream commit 0165994c21
]
There is a potential race between user thread seeking to re-use
a timestamp record with new interrupt id, while this record is still
in the middle of interrupt handling and it is about to be freed.
Imagine the driver set the record in_use to 0 and only then fill the
free_node information. This might lead to unpleasant scenario where
the new registration thread detects the record as free to use, and
change the cq buff address. That will cause the free_node to get
the wrong buffer address to put refcount to.
Signed-off-by: farah kassabri <fkassabri@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
db5ba2c1ed
commit
03be3489b1
|
@ -271,6 +271,9 @@ static int handle_registration_node(struct hl_device *hdev, struct hl_user_pendi
|
||||||
free_node->cq_cb = pend->ts_reg_info.cq_cb;
|
free_node->cq_cb = pend->ts_reg_info.cq_cb;
|
||||||
list_add(&free_node->free_objects_node, *free_list);
|
list_add(&free_node->free_objects_node, *free_list);
|
||||||
|
|
||||||
|
/* Mark TS record as free */
|
||||||
|
pend->ts_reg_info.in_use = false;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user