Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751604AbcDTU26 (ORCPT ); Wed, 20 Apr 2016 16:28:58 -0400 Received: from mail.kernel.org ([198.145.29.136]:37570 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750938AbcDTU25 (ORCPT ); Wed, 20 Apr 2016 16:28:57 -0400 Message-ID: <1461184116.32304.7.camel@ssi> Subject: Re: [PATCH] lib: make sg_pool explicitly non-modular From: Ming Lin To: Paul Gortmaker Cc: linux-kernel@vger.kernel.org, Christoph Hellwig , Sagi Grimberg , "Martin K . Petersen" Date: Wed, 20 Apr 2016 13:28:36 -0700 In-Reply-To: <1461179589-31089-1-git-send-email-paul.gortmaker@windriver.com> References: <1461179589-31089-1-git-send-email-paul.gortmaker@windriver.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1911 Lines: 64 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