Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1365323

Re: [PATCH 0/2] scsi: remove orphaned modular code from non-modular drivers

From James Bottomley <jejb@linux.vnet.ibm.com>
Newsgroups linux.kernel
Subject Re: [PATCH 0/2] scsi: remove orphaned modular code from non-modular drivers
Date 2016-03-28 07:40 +0200
Message-ID <rhy49-2we-1@gated-at.bofh.it> (permalink)
References <rhmml-2Ya-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Sun, 2016-03-27 at 13:00 -0400, Paul Gortmaker wrote:
> In the ongoing audit/cleanup of non-modular code needlessly using 
> modular infrastructure, the SCSI subsystem fortunately only contains 
> two instances that I detected.  Both are for legacy drivers that 
> predate the git epoch, so cleary there is no demand for converting 
> these drivers to be tristate.
> 
> For anyone new to the underlying goal of this cleanup, we are trying 
> to not use module support for code that isn't buildable as a module
> since:
> 
>  (1) it is easy to accidentally write unused module_exit and remove
> code
>  (2) it can be misleading when reading the source, thinking it can be
>      modular when the Makefile and/or Kconfig prohibit it
>  (3) it requires the include of the module.h header file which in
> turn
>      includes nearly everything else, thus adding to CPP overhead.
>  (4) it gets copied/replicated into other code and spreads like
> weeds.

I don't really buy any of these as being credible issues for the
ancient drivers, so there doesn't appear to be an real benefit to this
conversion; however, besides the danger of touching old stuff, there
are some down sides:

> -MODULE_DESCRIPTION("Sun3x ESP SCSI driver");
> -MODULE_AUTHOR("Thomas Bogendoerfer (tsbogend@alpha.franken.de)");
> -MODULE_LICENSE("GPL");
> -MODULE_VERSION(DRV_VERSION);

These tags are usefully greppable for drivers, regardless of whether
they generate actual kernel side information.

> We explicitly disallow a driver unbind, since that doesn't have a
> sensible use case anyway, and it allows us to drop the ".remove"
> code for non-modular drivers.

That's bogus.  I use bind and unbind a lot for testing built in drivers
but the usual user use case is for resetting the devices.

> Build tested for mips (jazz) and m68k (sun3x) on 4.6-rc1 to ensure no
> silly typos crept in.

For trivial changes, build testing is not really sufficient: a
significant fraction of them break something that isn't spotted by the
reviewers.  For the older drivers, this isn't discovered for months to
years and then someone has to go digging back through all the so called
trivial changes to find which one it was.

James

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/2] scsi: remove orphaned modular code from non-modular drivers Paul Gortmaker <paul.gortmaker@windriver.com> - 2016-03-27 19:10 +0200
  [PATCH 1/2] drivers/scsi: make jazz_esp.c driver explicitly non-modular Paul Gortmaker <paul.gortmaker@windriver.com> - 2016-03-27 19:10 +0200
  [PATCH 2/2] drivers/scsi: make sun3x_esp.c driver explicitly non-modular Paul Gortmaker <paul.gortmaker@windriver.com> - 2016-03-27 19:10 +0200
  Re: [PATCH 0/2] scsi: remove orphaned modular code from non-modular  drivers James Bottomley <jejb@linux.vnet.ibm.com> - 2016-03-28 07:40 +0200
    Re: [PATCH 0/2] scsi: remove orphaned modular code from non-modular  drivers Paul Gortmaker <paul.gortmaker@windriver.com> - 2016-03-28 17:20 +0200

csiph-web