On 11/21/2022 7:24 AM, Greg Kroah-Hartman wrote:
On Mon, Nov 21, 2022 at 05:59:59AM -0800, Elliot Berman wrote:
+struct gh_rm_rpc {
+ struct device *dev;
+ struct gunyah_resource tx_ghrsc, rx_ghrsc;
+ struct gh_msgq msgq;
+ struct mbox_client msgq_client;
+ struct gh_rm_connection *active_rx_connection;
+ int last_tx_ret;
+
+ struct idr call_idr;
+ struct mutex call_idr_lock;
+
+ struct mutex send_lock;
+
+ struct work_struct recv_work;
+};
What handles the reference counting for this object? Shouldn't this be
a real 'struct device' and just have a pointer to the parent? Otherwise
how do you know when to free this?
Reference counting is not needed on the gh_rm_rpc object because its
only client (the VM manager) is torn down before the gh_rm_rpc.
Thanks,
Elliot