Messages in this thread | | | Date | Thu, 16 Feb 2023 09:40:52 -0800 | Subject | Re: [PATCH v10 08/26] gunyah: rsc_mgr: Add resource manager RPC core | From | Elliot Berman <> |
| |
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
| |