diff options
Diffstat (limited to 'include/linux/rpmsg.h')
| -rw-r--r-- | include/linux/rpmsg.h | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/rpmsg.h b/include/linux/rpmsg.h index a8e50e44203..82a673905ed 100644 --- a/include/linux/rpmsg.h +++ b/include/linux/rpmsg.h @@ -38,6 +38,8 @@  #include <linux/types.h>  #include <linux/device.h>  #include <linux/mod_devicetable.h> +#include <linux/kref.h> +#include <linux/mutex.h>  /* The feature bitmap for virtio rpmsg */  #define VIRTIO_RPMSG_F_NS	0 /* RP supports name service notifications */ @@ -120,7 +122,9 @@ typedef void (*rpmsg_rx_cb_t)(struct rpmsg_channel *, void *, int, void *, u32);  /**   * struct rpmsg_endpoint - binds a local rpmsg address to its user   * @rpdev: rpmsg channel device + * @refcount: when this drops to zero, the ept is deallocated   * @cb: rx callback handler + * @cb_lock: must be taken before accessing/changing @cb   * @addr: local rpmsg address   * @priv: private data for the driver's use   * @@ -140,7 +144,9 @@ typedef void (*rpmsg_rx_cb_t)(struct rpmsg_channel *, void *, int, void *, u32);   */  struct rpmsg_endpoint {  	struct rpmsg_channel *rpdev; +	struct kref refcount;  	rpmsg_rx_cb_t cb; +	struct mutex cb_lock;  	u32 addr;  	void *priv;  };  |