aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/misc/habanalabs/goya/goyaP.h
diff options
context:
space:
mode:
authorfarah kassabri <fkassabri@habana.ai>2020-05-06 11:17:38 +0300
committerOded Gabbay <ogabbay@kernel.org>2020-11-30 10:47:31 +0200
commit03df136bc5dd5be111c6c4b8dc265615e190fe75 (patch)
tree7ace9164d6ce8d6dbffdc6aefdcc836a6ac69d7c /drivers/misc/habanalabs/goya/goyaP.h
parenthabanalabs/gaudi: add support for FW security (diff)
downloadwireguard-linux-03df136bc5dd5be111c6c4b8dc265615e190fe75.tar.xz
wireguard-linux-03df136bc5dd5be111c6c4b8dc265615e190fe75.zip
habanalabs/gaudi: scrub all memory upon closing FD
In cases of multi-tenants, administrators may want to prevent data leakage between users running on the same device one after another. To do that the driver can scrub the internal memory (both SRAM and DRAM) after a user finish to use the memory. Because in GAUDI the driver allows only one application to use the device at a time, it can scrub the memory when user app close FD. In future devices where we have MMU on the DRAM, we can scrub the DRAM memory with a finer granularity (page granularity) when the user allocates the memory. This feature is not supported in Goya. To allow users that want to debug their applications, we add a kernel module parameter to load the driver with this feature disabled. Signed-off-by: farah kassabri <fkassabri@habana.ai> Reviewed-by: Oded Gabbay <ogabbay@kernel.org> Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
Diffstat (limited to 'drivers/misc/habanalabs/goya/goyaP.h')
-rw-r--r--drivers/misc/habanalabs/goya/goyaP.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/misc/habanalabs/goya/goyaP.h b/drivers/misc/habanalabs/goya/goyaP.h
index def86c75e035..ef4298f84a0a 100644
--- a/drivers/misc/habanalabs/goya/goyaP.h
+++ b/drivers/misc/habanalabs/goya/goyaP.h
@@ -221,6 +221,7 @@ void goya_add_end_of_cb_packets(struct hl_device *hdev, void *kernel_address,
u32 len, u64 cq_addr, u32 cq_val, u32 msix_vec,
bool eb);
int goya_cs_parser(struct hl_device *hdev, struct hl_cs_parser *parser);
+int goya_scrub_device_mem(struct hl_device *hdev, u64 addr, u64 size);
void *goya_get_int_queue_base(struct hl_device *hdev, u32 queue_id,
dma_addr_t *dma_handle, u16 *queue_len);
u32 goya_get_dma_desc_list_size(struct hl_device *hdev, struct sg_table *sgt);