Re: [PATCH v10 08/26] gunyah: rsc_mgr: Add resource manager RPC core

From: Elliot Berman
Date: Thu Feb 16 2023 - 12:41:20 EST




On 2/15/2023 10:43 PM, Greg Kroah-Hartman wrote:
On Tue, Feb 14, 2023 at 01:23:25PM -0800, Elliot Berman wrote:
+struct gh_rm {
+ struct device *dev;

What device does this point to?


The platform device.

+ 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 kmem_cache *cache;
+ struct mutex send_lock;
+ struct blocking_notifier_head nh;
+};

This obviously is the "device" that your system works on, so what are
the lifetime rules of it? Why isn't is just a real 'struct device' in
the system instead of a random memory blob with a pointer to a device?

What controls the lifetime of this structure and where is the reference
counting logic for it?


The lifetime of the structure is bound by the platform device that above struct device *dev points to. get_gh_rm and put_gh_rm increments the device ref counter and ensures lifetime of the struct is also extended.

And why no documentation for this core structure?


Sure, I will add.

thanks,

greg k-h