Patch-mainline: v3.8-rc1..v3.9-rc2
Target: openSUSE 12.3
Test steps:
+ build; make modules_install; make install
+ mount -t efivarfs none /sys/firmware/efi/efivars/
or create file
/lib/systemd/system/sys-firmware-efi-efivars.mount [1]
+ ls /sys/firmware/efi/efivars will show up all EFI variables
+ Try the small create[2]/delete[3] programs from Gary Lin
The create program will create a EFI variable is TestVar, then we can see it show up
in /sys/firmware/efi/efivars. And, delete program can remove it.
Backported 33 patches:
0001-efi-Add-support-for-a-UEFI-variable-filesystem.patch
0002-efi-Handle-deletions-and-size-changes-in-efivarfs_w.patch
0003-efi-add-efivars-kobject-to-efi-sysfs-folder.patch
0004-efivarfs-Add-documentation-for-the-EFI-variable-fil.patch
0005-efivarfs-efivarfs_file_read-ensure-we-free-data-in.patch
0006-efivarfs-efivarfs_create-ensure-we-drop-our-refer.patch
0007-efivarfs-efivarfs_fill_super-fix-inode-reference.patch
0008-efivarfs-efivarfs_fill_super-ensure-we-free-our-t.patch
0009-efivarfs-efivarfs_fill_super-ensure-we-clean-up-c.patch
0010-efivarfs-Implement-exclusive-access-for-get-set-_v.patch
0011-efivarfs-Return-an-error-if-we-fail-to-read-a-variab.patch
0012-efi-Clarify-GUID-length-calculations.patch
0013-efivarfs-Replace-magic-number-with-sizeof-attributes.patch
0014-efivarfs-Add-unique-magic-number.patch
0015-efivarfs-Make-datasize-unsigned-long.patch
0016-efivarfs-Return-a-consistent-error-when-efivarfs_get.patch
0017-efivarfs-Fix-return-value-of-efivarfs_file_write.patch
0018-efivarfs-Use-query_variable_info-to-limit-kmalloc.patch
0019-efivarfs-Make-efivarfs_fill_super-static.patch
0020-efivarfs-Drop-link-count-of-the-right-inode.patch
0021-efivarfs-Never-return-ENOENT-from-firmware.patch
0022-efivarfs-Delete-dentry-from-dcache-in-efivarfs_file_.patch
0023-efi_pstore-Check-remaining-space-with-QueryVariableI.patch
0024-pstore-Avoid-deadlock-in-panic-and-emergency-restart.patch
0025-efi_pstore-Avoid-deadlock-in-non-blocking-paths.patch
0026-efivarfs-guid-part-of-filenames-are-case-insensitive.patch
0027-efivars-Disable-external-interrupt-while-holding-efi.patch
0028-efi_pstore-Introducing-workqueue-updating-sysfs.patch
0029-efivarfs-Validate-filenames-much-more-aggressively.patch
0030-efi-be-more-paranoid-about-available-space-when-crea.patch
0031-efivars-efivarfs_valid_name-should-handle-pstore-syn.patch
0032-efivarfs-return-accurate-error-code-in-efivarfs_fill.patch
0033-efivars-Sanitise-string-length-returned-by.patch
[1]
/lib/systemd/system/sys-firmware-efi-efivars.mount (already sent to systemd mailing list for review)
[Unit]
Description=EFI Variables File System
Documentation=https://www.kernel.org/doc/Documentation/filesystems/efivarfs.txt
DefaultDependencies=no
ConditionPathExists=/sys/firmware/efi/efivars
Before=sysinit.target
[Mount]
What=efivarfs
Where=/sys/firmware/efi/efivars
Type=efivarfs
[2]
create.c
#include