Thread (41 messages) 41 messages, 7 authors, 2020-07-24

Re: [PATCH v3 19/20] coresight: add try_get_module() in coresight_grab_device()

From: Greg KH <gregkh@linuxfoundation.org>
Date: 2020-07-22 10:50:15

On Wed, Jul 22, 2020 at 11:49:48AM +0100, Suzuki K Poulose wrote:
Hi Tingwei,

On 07/17/2020 06:45 AM, Tingwei Zhang wrote:
quoted
When coresight device is in an active session, driver module of
that device should not be removed. Use try_get_module() in
coresight_grab_device() to prevent module to be unloaded.
Is this really sufficient ? AFAIU, a device could be removed, but the
module may still be alive due to the refcount on the module. This
could imply that we have stale pointers in the _path_, which could
lead to corruption elsewhere. Should we do a get/put_device() instead ?
Remember there are two separate things here, code and data.  There are
two different reference counts for them, do not confuse the two.

get/put is needed when you have a reference to the data, module stuff is
when you are calling into code.

But note that you do not always need to grab a reference count to the
module, as long as the module can properly tear the data down when it is
asked to be removed.  Look at networking drivers as a great example of
that.

thanks,

greg k-h

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help