linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] Chainsaw efivars.c
@ 2013-04-04 12:18 Matt Fleming
  2013-04-04 12:18 ` [PATCH 1/6] efi: move utf16 string functions to efi.h Matt Fleming
                   ` (6 more replies)
  0 siblings, 7 replies; 17+ messages in thread
From: Matt Fleming @ 2013-04-04 12:18 UTC (permalink / raw)
  To: linux-efi; +Cc: linux-kernel, Matt Fleming

From: Matt Fleming <matt.fleming@intel.com>

drivers/firmware/efivars.c has grown pretty large and is ~2K lines.

Inside efivars.c there's currently,

  o code for handling EFI variables at the firmware-level
  o sysfs code for exposing EFI variables
  o a new EFI variable filesystem
  o a persistent storage backend

all intertwined and smushed together. This situation is only going to get worse
as new EFI support is added.

We need an interface that hides the EFI variable operations in use so code
isn't tempted to access them directly, e.g. efivarfs currently uses '__efivars'
which means it doesn't work for CONFIG_GOOGLE_SMI as that uses different
variable ops. With this interface in place, we can start moving independent
code out into separate files, allowing users to only turn on the functionality
that they want.

This patch series introduces the new efivar_entry API, and splits out the major
parts of efivars.c into new files. In particular, having the efivarfs code
under fs/ allows building an efivarfs.ko module, which means mount(8) can
automatically load it.

The remaining EFI code is repositioned under drivers/firmware/efi/.

The series is also available on the 'chainsaw' branch at,

  git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/linux.git

Matt Fleming (5):
  efi: move utf16 string functions to efi.h
  efivars: Keep a private global pointer to efivars
  efivars: efivar_entry API
  efivars: Move pstore code into the new EFI directory
  efivarfs: Move to fs/efivarfs

Tom Gundersen (1):
  efi: split efisubsystem from efivars

 MAINTAINERS                       |   13 +-
 drivers/firmware/Kconfig          |   36 +-
 drivers/firmware/Makefile         |    2 +-
 drivers/firmware/efi/Kconfig      |   45 +
 drivers/firmware/efi/Makefile     |    6 +
 drivers/firmware/efi/efi-pstore.c |  244 +++++
 drivers/firmware/efi/efi.c        |  145 +++
 drivers/firmware/efi/efivars.c    |  615 +++++++++++
 drivers/firmware/efi/vars.c       | 1020 +++++++++++++++++
 drivers/firmware/efivars.c        | 2171 -------------------------------------
 drivers/firmware/google/gsmi.c    |   30 +-
 fs/Kconfig                        |    1 +
 fs/Makefile                       |    1 +
 fs/efivarfs/Kconfig               |   12 +
 fs/efivarfs/Makefile              |    7 +
 fs/efivarfs/file.c                |  111 ++
 fs/efivarfs/inode.c               |  173 +++
 fs/efivarfs/internal.h            |   22 +
 fs/efivarfs/super.c               |  266 +++++
 include/linux/efi.h               |  132 ++-
 20 files changed, 2818 insertions(+), 2234 deletions(-)
 create mode 100644 drivers/firmware/efi/Kconfig
 create mode 100644 drivers/firmware/efi/Makefile
 create mode 100644 drivers/firmware/efi/efi-pstore.c
 create mode 100644 drivers/firmware/efi/efi.c
 create mode 100644 drivers/firmware/efi/efivars.c
 create mode 100644 drivers/firmware/efi/vars.c
 delete mode 100644 drivers/firmware/efivars.c
 create mode 100644 fs/efivarfs/Kconfig
 create mode 100644 fs/efivarfs/Makefile
 create mode 100644 fs/efivarfs/file.c
 create mode 100644 fs/efivarfs/inode.c
 create mode 100644 fs/efivarfs/internal.h
 create mode 100644 fs/efivarfs/super.c

-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 17+ messages in thread
* [PATCH v2 0/6] Chainsaw efivars.c
@ 2013-04-16 21:41 Matt Fleming
  2013-04-16 21:41 ` [PATCH 4/6] efivars: Move pstore code into the new EFI directory Matt Fleming
  0 siblings, 1 reply; 17+ messages in thread
From: Matt Fleming @ 2013-04-16 21:41 UTC (permalink / raw)
  To: linux-efi; +Cc: linux-kernel, H. Peter Anvin, Matt Fleming

From: Matt Fleming <matt.fleming@intel.com>

drivers/firmware/efivars.c has grown pretty large and is ~2K lines.

Inside efivars.c there's currently,

  o code for handling EFI variables at the firmware-level
  o sysfs code for exposing EFI variables
  o a new EFI variable filesystem
  o a persistent storage backend

all intertwined and smushed together. This situation is only going to get worse
as new EFI support is added.

We need an interface that hides the EFI variable operations in use so code
isn't tempted to access them directly, e.g. efivarfs currently uses '__efivars'
which means it doesn't work for CONFIG_GOOGLE_SMI as that uses different
variable ops. With this interface in place, we can start moving independent
code out into separate files, allowing users to only turn on the functionality
that they want.

This patch series introduces the new efivar_entry API, and splits out the major
parts of efivars.c into new files. In particular, having the efivarfs code
under fs/ allows building an efivarfs.ko module, which means mount(8) can
automatically load it.

The remaining EFI code is repositioned under drivers/firmware/efi/.

The series is also available on the 'chainsaw' branch at,

  git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/linux.git

Changes in v2:

 - Add Reviewed-by/Acked-by tags from Mike
 - Allow both EFI variable ops to be built as requested by Mike (PATCH 2)
 - Fix deadlock and remove unnecessary logic changes in the pstore patch
   reported by Seiji (PATCH 3)

Matt Fleming (5):
  efi: move utf16 string functions to efi.h
  efivars: Keep a private global pointer to efivars
  efivars: efivar_entry API
  efivars: Move pstore code into the new EFI directory
  efivarfs: Move to fs/efivarfs

Tom Gundersen (1):
  efi: split efisubsystem from efivars

 MAINTAINERS                       |   13 +-
 drivers/firmware/Kconfig          |   36 +-
 drivers/firmware/Makefile         |    2 +-
 drivers/firmware/efi/Kconfig      |   39 +
 drivers/firmware/efi/Makefile     |    6 +
 drivers/firmware/efi/efi-pstore.c |  244 +++++
 drivers/firmware/efi/efi.c        |  134 +++
 drivers/firmware/efi/efivars.c    |  615 +++++++++++
 drivers/firmware/efi/vars.c       | 1046 ++++++++++++++++++
 drivers/firmware/efivars.c        | 2171 -------------------------------------
 drivers/firmware/google/gsmi.c    |   30 +-
 fs/Kconfig                        |    1 +
 fs/Makefile                       |    1 +
 fs/efivarfs/Kconfig               |   12 +
 fs/efivarfs/Makefile              |    7 +
 fs/efivarfs/file.c                |  111 ++
 fs/efivarfs/inode.c               |  173 +++
 fs/efivarfs/internal.h            |   22 +
 fs/efivarfs/super.c               |  266 +++++
 include/linux/efi.h               |  133 ++-
 20 files changed, 2828 insertions(+), 2234 deletions(-)
 create mode 100644 drivers/firmware/efi/Kconfig
 create mode 100644 drivers/firmware/efi/Makefile
 create mode 100644 drivers/firmware/efi/efi-pstore.c
 create mode 100644 drivers/firmware/efi/efi.c
 create mode 100644 drivers/firmware/efi/efivars.c
 create mode 100644 drivers/firmware/efi/vars.c
 delete mode 100644 drivers/firmware/efivars.c
 create mode 100644 fs/efivarfs/Kconfig
 create mode 100644 fs/efivarfs/Makefile
 create mode 100644 fs/efivarfs/file.c
 create mode 100644 fs/efivarfs/inode.c
 create mode 100644 fs/efivarfs/internal.h
 create mode 100644 fs/efivarfs/super.c

-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 17+ messages in thread
* [PATCH v3 0/6] Chainsaw efivars.c
@ 2013-04-17 12:47 Matt Fleming
  2013-04-17 12:47 ` [PATCH 4/6] efivars: Move pstore code into the new EFI directory Matt Fleming
  0 siblings, 1 reply; 17+ messages in thread
From: Matt Fleming @ 2013-04-17 12:47 UTC (permalink / raw)
  To: linux-efi; +Cc: linux-kernel, H. Peter Anvin, Matt Fleming

From: Matt Fleming <matt.fleming@intel.com>

drivers/firmware/efivars.c has grown pretty large and is ~2K lines.

Inside efivars.c there's currently,

  o code for handling EFI variables at the firmware-level
  o sysfs code for exposing EFI variables
  o a new EFI variable filesystem
  o a persistent storage backend

all intertwined and smushed together. This situation is only going to get worse
as new EFI support is added.

We need an interface that hides the EFI variable operations in use so code
isn't tempted to access them directly, e.g. efivarfs currently uses '__efivars'
which means it doesn't work for CONFIG_GOOGLE_SMI as that uses different
variable ops. With this interface in place, we can start moving independent
code out into separate files, allowing users to only turn on the functionality
that they want.

This patch series introduces the new efivar_entry API, and splits out the major
parts of efivars.c into new files. In particular, having the efivarfs code
under fs/ allows building an efivarfs.ko module, which means mount(8) can
automatically load it.

The remaining EFI code is repositioned under drivers/firmware/efi/.

The series is also available on the 'chainsaw' branch at,

  git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi.git

Changes in v3:

 - Add Reviewed-by/Tested-by tags from Tom
 - Add a parameter to efivar_init() to turn off the duplicate variable
   detection. This is used in efivar_update_sysfs_entries()
   because the workqueue function is only invoked if the firmware's
   GetNextVariableName() is functioning properly.

Changes in v2:

 - Add Reviewed-by/Acked-by tags from Mike
 - Allow both EFI variable ops to be built as requested by Mike (PATCH 2)
 - Fix deadlock and remove unnecessary logic changes in the pstore patch
   reported by Seiji (PATCH 3)


Matt Fleming (5):
  efi: move utf16 string functions to efi.h
  efivars: Keep a private global pointer to efivars
  efivars: efivar_entry API
  efivars: Move pstore code into the new EFI directory
  efivarfs: Move to fs/efivarfs

Tom Gundersen (1):
  efi: split efisubsystem from efivars

 MAINTAINERS                       |   13 +-
 drivers/firmware/Kconfig          |   36 +-
 drivers/firmware/Makefile         |    2 +-
 drivers/firmware/efi/Kconfig      |   39 +
 drivers/firmware/efi/Makefile     |    6 +
 drivers/firmware/efi/efi-pstore.c |  244 +++++
 drivers/firmware/efi/efi.c        |  134 +++
 drivers/firmware/efi/efivars.c    |  617 +++++++++++
 drivers/firmware/efi/vars.c       | 1049 ++++++++++++++++++
 drivers/firmware/efivars.c        | 2171 -------------------------------------
 drivers/firmware/google/gsmi.c    |   30 +-
 fs/Kconfig                        |    1 +
 fs/Makefile                       |    1 +
 fs/efivarfs/Kconfig               |   12 +
 fs/efivarfs/Makefile              |    7 +
 fs/efivarfs/file.c                |  111 ++
 fs/efivarfs/inode.c               |  173 +++
 fs/efivarfs/internal.h            |   22 +
 fs/efivarfs/super.c               |  267 +++++
 include/linux/efi.h               |  134 ++-
 20 files changed, 2835 insertions(+), 2234 deletions(-)
 create mode 100644 drivers/firmware/efi/Kconfig
 create mode 100644 drivers/firmware/efi/Makefile
 create mode 100644 drivers/firmware/efi/efi-pstore.c
 create mode 100644 drivers/firmware/efi/efi.c
 create mode 100644 drivers/firmware/efi/efivars.c
 create mode 100644 drivers/firmware/efi/vars.c
 delete mode 100644 drivers/firmware/efivars.c
 create mode 100644 fs/efivarfs/Kconfig
 create mode 100644 fs/efivarfs/Makefile
 create mode 100644 fs/efivarfs/file.c
 create mode 100644 fs/efivarfs/inode.c
 create mode 100644 fs/efivarfs/internal.h
 create mode 100644 fs/efivarfs/super.c

-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2013-04-17 12:48 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-04 12:18 [PATCH 0/6] Chainsaw efivars.c Matt Fleming
2013-04-04 12:18 ` [PATCH 1/6] efi: move utf16 string functions to efi.h Matt Fleming
2013-04-09 22:00   ` Mike Waychison
2013-04-10 11:18     ` David Woodhouse
2013-04-04 12:18 ` [PATCH 2/6] efivars: Keep a private global pointer to efivars Matt Fleming
2013-04-09 22:07   ` Mike Waychison
2013-04-11 13:10     ` Matt Fleming
2013-04-04 12:18 ` [PATCH 3/6] efivars: efivar_entry API Matt Fleming
2013-04-10 15:25   ` Seiji Aguchi
2013-04-11 13:34     ` Matt Fleming
2013-04-04 12:18 ` [PATCH 4/6] efivars: Move pstore code into the new EFI directory Matt Fleming
2013-04-04 12:18 ` [PATCH 5/6] efivarfs: Move to fs/efivarfs Matt Fleming
2013-04-04 12:18 ` [PATCH 6/6] efi: split efisubsystem from efivars Matt Fleming
2013-04-09 16:25 ` [PATCH 0/6] Chainsaw efivars.c H. Peter Anvin
2013-04-09 16:50   ` Matt Fleming
2013-04-16 21:41 [PATCH v2 " Matt Fleming
2013-04-16 21:41 ` [PATCH 4/6] efivars: Move pstore code into the new EFI directory Matt Fleming
2013-04-17 12:47 [PATCH v3 0/6] Chainsaw efivars.c Matt Fleming
2013-04-17 12:47 ` [PATCH 4/6] efivars: Move pstore code into the new EFI directory Matt Fleming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).