Re[2]: [PATCH v5 1/3] mfd: syscon: Removed support for unloading

From: Alexander Shiyan
Date: Mon Feb 25 2013 - 01:54:16 EST

> On Sat, Feb 23, 2013 at 04:51:19PM -0700, Stephen Warren wrote:
> > On 02/22/2013 10:28 PM, Alexander Shiyan wrote:
> > >> On 02/22/2013 10:15 PM, Alexander Shiyan wrote:
> > >>> The driver can be used in various subsystems and therefore should not
> > >>> be unloaded when it is defined in the kernel configuration, so remove
> > >>> support for unloading it.
> > >>
> > >> Why not fix the clients to module_get() at the appropriate times; then
> > >> you could still allow unloading, couldn't you?
> > >
> > > I has explain this before.
> >
> > If multiple people have asked this, perhaps it'd be a good idea to
> > include the answer in the commit description.
> >
> > > Driver defined as "bool" and loaded via postcore_initcall.
> >
> > Being defined as a "bool" sounds like a reasonable reason that no
> > remove() is required.
> No, it is not - I can still unbind the device from driver via sysfs. Now
> what will happen is resources are leaked and won't be available when
> trying to bin (via sysfs) again.
> This patch is broken.

I will try to resolve the dispute.
Initially, the first part of the patch (this) was an attempt to prevent the unloading
(unregister) of the driver (not the device), ie remove module_exit call.
The patch also removes the code to remove the device. Inclusion in this patch
of the code was a mistake. Because of this, people are confused about the terms,
including me.
Code, relating to the removal of the device should be moved to the third patch.
Since all moved to using the managed resources, it should not have any questions.

About uloading (unregister) driver: As far i understand "__exit" section is
completely discarded when kernel compiled without module support.
But where is this call (module_exit) is placing in case "bool" driver and
kernel is compiled with module support? Fixme please.


¢éì®&Þ~º&¶¬–+-±éÝ¥Šw®žË±Êâmébžìdz¹Þ)í…æèw*jg¬±¨¶‰šŽŠÝj/êäz¹ÞŠà2ŠÞ¨è­Ú&¢)ß«a¶Úþø®G«éh®æj:+v‰¨Šwè†Ù>Wš±êÞiÛaxPjØm¶Ÿÿà -»+ƒùdš_