Re: [PATCH] lib: make sg_pool explicitly non-modular
On Wed, 2016-04-20 at 23:02 -0400, Paul Gortmaker wrote: > > > > > So the .config will have CONFIG_SG_POOL=m > > That is impossible currently, since as per above, the variable is > bool > and not tristate. Did you mean to make it tristate? I didn't notice that. Yes, it should be tristate.
Re: [PATCH] lib: make sg_pool explicitly non-modular
On Wed, 2016-04-20 at 23:02 -0400, Paul Gortmaker wrote: > > > > > So the .config will have CONFIG_SG_POOL=m > > That is impossible currently, since as per above, the variable is > bool > and not tristate. Did you mean to make it tristate? I didn't notice that. Yes, it should be tristate.
Re: [PATCH] lib: make sg_pool explicitly non-modular
[Re: [PATCH] lib: make sg_pool explicitly non-modular] On 20/04/2016 (Wed 13:28) Ming Lin wrote: > On Wed, 2016-04-20 at 15:13 -0400, Paul Gortmaker wrote: > > The recently added Kconfig controlling compilation of this code is: > > > > lib/Kconfig:config SG_POOL > > lib/Kconfig:def_bool n > > > > ...meaning that it currently is not being built as a module by anyone. > > > > Lets remove the modular code that is essentially orphaned, so that > > when reading the driver there is no doubt it is builtin-only. > > > > Since module_init translates to device_initcall in the non-modular > > case, the init ordering remains unchanged with this commit. However > > one might want to consider moving it to subsys_initcall if it is to > > be ready ahead of SCSI drivers wanting this and using device_initcall. > > > > Cc: Christoph Hellwig <h...@lst.de> > > Cc: Ming Lin <min...@ssi.samsung.com> > > Cc: Sagi Grimberg <s...@grimberg.me> > > Cc: Martin K. Petersen <martin.peter...@oracle.com> > > Signed-off-by: Paul Gortmaker <paul.gortma...@windriver.com> > > --- > > lib/sg_pool.c | 17 ++--- > > 1 file changed, 2 insertions(+), 15 deletions(-) > > > > diff --git a/lib/sg_pool.c b/lib/sg_pool.c > > index 6dd30615a201..e2cf548b9610 100644 > > --- a/lib/sg_pool.c > > +++ b/lib/sg_pool.c > > @@ -1,4 +1,4 @@ > > -#include > > +#include > > #include > > #include > > #include > > @@ -156,17 +156,4 @@ cleanup_sdb: > > > > return -ENOMEM; > > } > > - > > -static __exit void sg_pool_exit(void) > > -{ > > - int i; > > - > > - for (i = 0; i < SG_MEMPOOL_NR; i++) { > > - struct sg_pool *sgp = sg_pools + i; > > - mempool_destroy(sgp->pool); > > - kmem_cache_destroy(sgp->slab); > > - } > > -} > > - > > -module_init(sg_pool_init); > > -module_exit(sg_pool_exit); > > +device_initcall(sg_pool_init); > > For SCSI it's OK because always CONFIG_SCSI=y > > But we may have a kernel .config with !CONFIG_SCSI and other > non-block-device driver may use this sg_pool. > > So the .config will have CONFIG_SG_POOL=m That is impossible currently, since as per above, the variable is bool and not tristate. Did you mean to make it tristate? Paul. -- > > > >
Re: [PATCH] lib: make sg_pool explicitly non-modular
[Re: [PATCH] lib: make sg_pool explicitly non-modular] On 20/04/2016 (Wed 13:28) Ming Lin wrote: > On Wed, 2016-04-20 at 15:13 -0400, Paul Gortmaker wrote: > > The recently added Kconfig controlling compilation of this code is: > > > > lib/Kconfig:config SG_POOL > > lib/Kconfig:def_bool n > > > > ...meaning that it currently is not being built as a module by anyone. > > > > Lets remove the modular code that is essentially orphaned, so that > > when reading the driver there is no doubt it is builtin-only. > > > > Since module_init translates to device_initcall in the non-modular > > case, the init ordering remains unchanged with this commit. However > > one might want to consider moving it to subsys_initcall if it is to > > be ready ahead of SCSI drivers wanting this and using device_initcall. > > > > Cc: Christoph Hellwig > > Cc: Ming Lin > > Cc: Sagi Grimberg > > Cc: Martin K. Petersen > > Signed-off-by: Paul Gortmaker > > --- > > lib/sg_pool.c | 17 ++--- > > 1 file changed, 2 insertions(+), 15 deletions(-) > > > > diff --git a/lib/sg_pool.c b/lib/sg_pool.c > > index 6dd30615a201..e2cf548b9610 100644 > > --- a/lib/sg_pool.c > > +++ b/lib/sg_pool.c > > @@ -1,4 +1,4 @@ > > -#include > > +#include > > #include > > #include > > #include > > @@ -156,17 +156,4 @@ cleanup_sdb: > > > > return -ENOMEM; > > } > > - > > -static __exit void sg_pool_exit(void) > > -{ > > - int i; > > - > > - for (i = 0; i < SG_MEMPOOL_NR; i++) { > > - struct sg_pool *sgp = sg_pools + i; > > - mempool_destroy(sgp->pool); > > - kmem_cache_destroy(sgp->slab); > > - } > > -} > > - > > -module_init(sg_pool_init); > > -module_exit(sg_pool_exit); > > +device_initcall(sg_pool_init); > > For SCSI it's OK because always CONFIG_SCSI=y > > But we may have a kernel .config with !CONFIG_SCSI and other > non-block-device driver may use this sg_pool. > > So the .config will have CONFIG_SG_POOL=m That is impossible currently, since as per above, the variable is bool and not tristate. Did you mean to make it tristate? Paul. -- > > > >
Re: [PATCH] lib: make sg_pool explicitly non-modular
On Wed, 2016-04-20 at 15:13 -0400, Paul Gortmaker wrote: > The recently added Kconfig controlling compilation of this code is: > > lib/Kconfig:config SG_POOL > lib/Kconfig:def_bool n > > ...meaning that it currently is not being built as a module by anyone. > > Lets remove the modular code that is essentially orphaned, so that > when reading the driver there is no doubt it is builtin-only. > > Since module_init translates to device_initcall in the non-modular > case, the init ordering remains unchanged with this commit. However > one might want to consider moving it to subsys_initcall if it is to > be ready ahead of SCSI drivers wanting this and using device_initcall. > > Cc: Christoph Hellwig> Cc: Ming Lin > Cc: Sagi Grimberg > Cc: Martin K. Petersen > Signed-off-by: Paul Gortmaker > --- > lib/sg_pool.c | 17 ++--- > 1 file changed, 2 insertions(+), 15 deletions(-) > > diff --git a/lib/sg_pool.c b/lib/sg_pool.c > index 6dd30615a201..e2cf548b9610 100644 > --- a/lib/sg_pool.c > +++ b/lib/sg_pool.c > @@ -1,4 +1,4 @@ > -#include > +#include > #include > #include > #include > @@ -156,17 +156,4 @@ cleanup_sdb: > > return -ENOMEM; > } > - > -static __exit void sg_pool_exit(void) > -{ > - int i; > - > - for (i = 0; i < SG_MEMPOOL_NR; i++) { > - struct sg_pool *sgp = sg_pools + i; > - mempool_destroy(sgp->pool); > - kmem_cache_destroy(sgp->slab); > - } > -} > - > -module_init(sg_pool_init); > -module_exit(sg_pool_exit); > +device_initcall(sg_pool_init); For SCSI it's OK because always CONFIG_SCSI=y But we may have a kernel .config with !CONFIG_SCSI and other non-block-device driver may use this sg_pool. So the .config will have CONFIG_SG_POOL=m
Re: [PATCH] lib: make sg_pool explicitly non-modular
On Wed, 2016-04-20 at 15:13 -0400, Paul Gortmaker wrote: > The recently added Kconfig controlling compilation of this code is: > > lib/Kconfig:config SG_POOL > lib/Kconfig:def_bool n > > ...meaning that it currently is not being built as a module by anyone. > > Lets remove the modular code that is essentially orphaned, so that > when reading the driver there is no doubt it is builtin-only. > > Since module_init translates to device_initcall in the non-modular > case, the init ordering remains unchanged with this commit. However > one might want to consider moving it to subsys_initcall if it is to > be ready ahead of SCSI drivers wanting this and using device_initcall. > > Cc: Christoph Hellwig > Cc: Ming Lin > Cc: Sagi Grimberg > Cc: Martin K. Petersen > Signed-off-by: Paul Gortmaker > --- > lib/sg_pool.c | 17 ++--- > 1 file changed, 2 insertions(+), 15 deletions(-) > > diff --git a/lib/sg_pool.c b/lib/sg_pool.c > index 6dd30615a201..e2cf548b9610 100644 > --- a/lib/sg_pool.c > +++ b/lib/sg_pool.c > @@ -1,4 +1,4 @@ > -#include > +#include > #include > #include > #include > @@ -156,17 +156,4 @@ cleanup_sdb: > > return -ENOMEM; > } > - > -static __exit void sg_pool_exit(void) > -{ > - int i; > - > - for (i = 0; i < SG_MEMPOOL_NR; i++) { > - struct sg_pool *sgp = sg_pools + i; > - mempool_destroy(sgp->pool); > - kmem_cache_destroy(sgp->slab); > - } > -} > - > -module_init(sg_pool_init); > -module_exit(sg_pool_exit); > +device_initcall(sg_pool_init); For SCSI it's OK because always CONFIG_SCSI=y But we may have a kernel .config with !CONFIG_SCSI and other non-block-device driver may use this sg_pool. So the .config will have CONFIG_SG_POOL=m
[PATCH] lib: make sg_pool explicitly non-modular
The recently added Kconfig controlling compilation of this code is: lib/Kconfig:config SG_POOL lib/Kconfig:def_bool n ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. However one might want to consider moving it to subsys_initcall if it is to be ready ahead of SCSI drivers wanting this and using device_initcall. Cc: Christoph HellwigCc: Ming Lin Cc: Sagi Grimberg Cc: Martin K. Petersen Signed-off-by: Paul Gortmaker --- lib/sg_pool.c | 17 ++--- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/lib/sg_pool.c b/lib/sg_pool.c index 6dd30615a201..e2cf548b9610 100644 --- a/lib/sg_pool.c +++ b/lib/sg_pool.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include @@ -156,17 +156,4 @@ cleanup_sdb: return -ENOMEM; } - -static __exit void sg_pool_exit(void) -{ - int i; - - for (i = 0; i < SG_MEMPOOL_NR; i++) { - struct sg_pool *sgp = sg_pools + i; - mempool_destroy(sgp->pool); - kmem_cache_destroy(sgp->slab); - } -} - -module_init(sg_pool_init); -module_exit(sg_pool_exit); +device_initcall(sg_pool_init); -- 2.8.0
[PATCH] lib: make sg_pool explicitly non-modular
The recently added Kconfig controlling compilation of this code is: lib/Kconfig:config SG_POOL lib/Kconfig:def_bool n ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. However one might want to consider moving it to subsys_initcall if it is to be ready ahead of SCSI drivers wanting this and using device_initcall. Cc: Christoph Hellwig Cc: Ming Lin Cc: Sagi Grimberg Cc: Martin K. Petersen Signed-off-by: Paul Gortmaker --- lib/sg_pool.c | 17 ++--- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/lib/sg_pool.c b/lib/sg_pool.c index 6dd30615a201..e2cf548b9610 100644 --- a/lib/sg_pool.c +++ b/lib/sg_pool.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include @@ -156,17 +156,4 @@ cleanup_sdb: return -ENOMEM; } - -static __exit void sg_pool_exit(void) -{ - int i; - - for (i = 0; i < SG_MEMPOOL_NR; i++) { - struct sg_pool *sgp = sg_pools + i; - mempool_destroy(sgp->pool); - kmem_cache_destroy(sgp->slab); - } -} - -module_init(sg_pool_init); -module_exit(sg_pool_exit); +device_initcall(sg_pool_init); -- 2.8.0