[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 0/5] xen: avoid module usage in non-modular code



This series of commits is a part of a larger project to ensure
people don't reference modular support functions in non-modular
code.  Overall there was roughly 5k lines of dead code in the
kernel due to this.  So far we've fixed several areas, like tty,
x86, net, ... and we continue to work on other areas.

There are several reasons to not use module support for code that
can never be built as a module, but the big ones are:

 (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.
 (4) it gets copied/replicated into other code and spreads like weeds.

For the xen subsystem, there are just five commits:

First, we get rid of "include <linux/module.h>" instances that are
completely unnecessary.

Then #2 and #3 and #5 are basically trivial remapping to the
appropriate non-modular counterparts, meaning that there is no
runtime change here either.

The fourth hypervisor commit is similar, but also has removal of
some dead code associated with the module_exit function that will
never be called.  So the runtime should be the same, but the object
file will be different (reduced in size).

Patches created on linux-next and build tested for x86-64 and ARM64
allmodconfig.

---

Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Cc: David Vrabel <david.vrabel@xxxxxxxxxx>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: Russell King <linux@xxxxxxxxxxxxxxxx>
Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx

Paul Gortmaker (5):
  xen: audit usages of module.h ; remove unnecessary instances
  drivers/xen: make [xen-]ballon explicitly non-modular
  drivers/xen: make xenbus_dev_[front/back]end explicitly non-modular
  drivers/xen: make sys-hypervisor.c explicitly non-modular
  drivers/xen: make platform-pci.c explicitly non-modular

 arch/arm/include/asm/xen/hypercall.h     |  2 ++
 drivers/xen/balloon.c                    |  4 ----
 drivers/xen/events/events_2l.c           |  1 -
 drivers/xen/events/events_base.c         |  2 +-
 drivers/xen/events/events_fifo.c         |  1 -
 drivers/xen/features.c                   |  2 +-
 drivers/xen/grant-table.c                |  1 -
 drivers/xen/platform-pci.c               | 16 ++++++----------
 drivers/xen/sys-hypervisor.c             | 31 ++++---------------------------
 drivers/xen/xen-balloon.c                | 14 +++-----------
 drivers/xen/xen-pciback/conf_space.c     |  2 +-
 drivers/xen/xen-pciback/pciback_ops.c    |  2 +-
 drivers/xen/xen-pciback/xenbus.c         |  2 +-
 drivers/xen/xen-selfballoon.c            |  1 -
 drivers/xen/xenbus/xenbus_dev_backend.c  | 13 ++-----------
 drivers/xen/xenbus/xenbus_dev_frontend.c | 13 ++-----------
 drivers/xen/xenbus/xenbus_xs.c           |  1 -
 drivers/xen/xenfs/xensyms.c              |  1 -
 18 files changed, 24 insertions(+), 85 deletions(-)

-- 
2.6.1

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.