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?
+ 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?
And why no documentation for this core structure?
thanks,
greg k-h