aboutsummaryrefslogtreecommitdiff
path: root/kernel/ethosu_network_info.h
diff options
context:
space:
mode:
authorDavide Grohmann <davide.grohmann@arm.com>2022-04-27 16:49:07 +0200
committerDavide Grohmann <davide.grohmann@arm.com>2022-05-23 15:42:30 +0200
commit32660f9ff9608dc595f4bdf3944a3ceb37d67a79 (patch)
treec57eaef314cc0600c2df6de9426c15709f42bccf /kernel/ethosu_network_info.h
parentb9248a425e7f72d240d11852c72c44bae4d38bac (diff)
downloadethos-u-linux-driver-stack-32660f9ff9608dc595f4bdf3944a3ceb37d67a79.tar.gz
Use ids for identifying messages sent to EthosU firmware
Avoid to use pointers to kernel memory as identify messages, prior this change, if memory is reused that can lead to unexpected conflicts. Remove ref counting from capabilities and network_info since memory is freed in only one place. Finally, extract the capabilities code in its own files. Change-Id: I9ab7257f3ab85fa3347be65b3739e0daf9b5a441
Diffstat (limited to 'kernel/ethosu_network_info.h')
-rw-r--r--kernel/ethosu_network_info.h30
1 files changed, 4 insertions, 26 deletions
diff --git a/kernel/ethosu_network_info.h b/kernel/ethosu_network_info.h
index 680be80..facca54 100644
--- a/kernel/ethosu_network_info.h
+++ b/kernel/ethosu_network_info.h
@@ -28,7 +28,6 @@
#include "ethosu_core_interface.h"
#include "ethosu_mailbox.h"
-#include <linux/kref.h>
#include <linux/types.h>
#include <linux/completion.h>
@@ -44,7 +43,6 @@ struct ethosu_network_info {
struct ethosu_device *edev;
struct ethosu_network *net;
struct ethosu_uapi_network_info *uapi;
- struct kref kref;
struct completion done;
int errno;
struct ethosu_mailbox_msg msg;
@@ -55,34 +53,14 @@ struct ethosu_network_info {
****************************************************************************/
/**
- * ethosu_network_info_create() - Create network info
+ * ethosu_network_info_request() - Send a network info request
*
* This function must be called in the context of a user space process.
*
- * Return: Valid pointer on success, else ERR_PTR.
+ * Return: 0 on success, .
*/
-struct ethosu_network_info *ethosu_network_info_create(
- struct ethosu_device *edev,
- struct ethosu_network *net,
- struct ethosu_uapi_network_info *uapi);
-
-/**
- * ethosu_network_info_get() - Get network info
- */
-void ethosu_network_info_get(struct ethosu_network_info *info);
-
-/**
- * ethosu_network_info_put() - Put network info
- *
- * Return: 1 if object was removed, else 0.
- */
-int ethosu_network_info_put(struct ethosu_network_info *info);
-
-/**
- * ethosu_network_info_wait() - Get network info
- */
-int ethosu_network_info_wait(struct ethosu_network_info *info,
- int timeout);
+int ethosu_network_info_request(struct ethosu_network *net,
+ struct ethosu_uapi_network_info *uapi);
/**
* ethosu_network_info_rsp() - Handle network info response.