diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-12-05 09:15:44 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-12-05 09:15:44 +0100 |
commit | c53d4a20ecabca0131591baf2ab283927c275b0c (patch) | |
tree | 03ca204bbe7fa31c25bb84e30ec19995c92ae962 | |
parent | a431c0902c6a9c8ca02fc519c75a487ace5e1682 (diff) | |
download | patches-c53d4a20ecabca0131591baf2ab283927c275b0c.tar.gz |
efi patch
-rw-r--r-- | efi-move-some-sysfs-files-to-be-read-only-by-root.patch | 114 | ||||
-rw-r--r-- | series | 1 |
2 files changed, 115 insertions, 0 deletions
diff --git a/efi-move-some-sysfs-files-to-be-read-only-by-root.patch b/efi-move-some-sysfs-files-to-be-read-only-by-root.patch new file mode 100644 index 00000000000000..671e16c802059b --- /dev/null +++ b/efi-move-some-sysfs-files-to-be-read-only-by-root.patch @@ -0,0 +1,114 @@ +From foo@baz Tue Dec 5 09:14:53 CET 2017 +Date: Tue, 05 Dec 2017 09:14:53 +0100 +To: Greg KH <gregkh@linuxfoundation.org> +From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +Subject: efi: move some sysfs files to be read-only by root + +Also add __ATTR_RO_MODE() to sysfs.h to make this easier. + +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> + + +diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c +index f70febf680c3..c3eefa126e3b 100644 +--- a/drivers/firmware/efi/efi.c ++++ b/drivers/firmware/efi/efi.c +@@ -143,8 +143,7 @@ static ssize_t systab_show(struct kobject *kobj, + return str - buf; + } + +-static struct kobj_attribute efi_attr_systab = +- __ATTR(systab, 0400, systab_show, NULL); ++static struct kobj_attribute efi_attr_systab = __ATTR_RO_MODE(systab, 0400); + + #define EFI_FIELD(var) efi.var + +diff --git a/drivers/firmware/efi/esrt.c b/drivers/firmware/efi/esrt.c +index bd7ed3c1148a..7aae2483fcb9 100644 +--- a/drivers/firmware/efi/esrt.c ++++ b/drivers/firmware/efi/esrt.c +@@ -106,7 +106,7 @@ static const struct sysfs_ops esre_attr_ops = { + }; + + /* Generic ESRT Entry ("ESRE") support. */ +-static ssize_t esre_fw_class_show(struct esre_entry *entry, char *buf) ++static ssize_t fw_class_show(struct esre_entry *entry, char *buf) + { + char *str = buf; + +@@ -117,18 +117,16 @@ static ssize_t esre_fw_class_show(struct esre_entry *entry, char *buf) + return str - buf; + } + +-static struct esre_attribute esre_fw_class = __ATTR(fw_class, 0400, +- esre_fw_class_show, NULL); ++static struct esre_attribute esre_fw_class = __ATTR_RO_MODE(fw_class, 0400); + + #define esre_attr_decl(name, size, fmt) \ +-static ssize_t esre_##name##_show(struct esre_entry *entry, char *buf) \ ++static ssize_t name##_show(struct esre_entry *entry, char *buf) \ + { \ + return sprintf(buf, fmt "\n", \ + le##size##_to_cpu(entry->esre.esre1->name)); \ + } \ + \ +-static struct esre_attribute esre_##name = __ATTR(name, 0400, \ +- esre_##name##_show, NULL) ++static struct esre_attribute esre_##name = __ATTR_RO_MODE(name, 0400) + + esre_attr_decl(fw_type, 32, "%u"); + esre_attr_decl(fw_version, 32, "%u"); +@@ -193,14 +191,13 @@ static int esre_create_sysfs_entry(void *esre, int entry_num) + + /* support for displaying ESRT fields at the top level */ + #define esrt_attr_decl(name, size, fmt) \ +-static ssize_t esrt_##name##_show(struct kobject *kobj, \ ++static ssize_t name##_show(struct kobject *kobj, \ + struct kobj_attribute *attr, char *buf)\ + { \ + return sprintf(buf, fmt "\n", le##size##_to_cpu(esrt->name)); \ + } \ + \ +-static struct kobj_attribute esrt_##name = __ATTR(name, 0400, \ +- esrt_##name##_show, NULL) ++static struct kobj_attribute esrt_##name = __ATTR_RO_MODE(name, 0400) + + esrt_attr_decl(fw_resource_count, 32, "%u"); + esrt_attr_decl(fw_resource_count_max, 32, "%u"); +diff --git a/drivers/firmware/efi/runtime-map.c b/drivers/firmware/efi/runtime-map.c +index 8e64b77aeac9..f377609ff141 100644 +--- a/drivers/firmware/efi/runtime-map.c ++++ b/drivers/firmware/efi/runtime-map.c +@@ -63,11 +63,11 @@ static ssize_t map_attr_show(struct kobject *kobj, struct attribute *attr, + return map_attr->show(entry, buf); + } + +-static struct map_attribute map_type_attr = __ATTR_RO(type); +-static struct map_attribute map_phys_addr_attr = __ATTR_RO(phys_addr); +-static struct map_attribute map_virt_addr_attr = __ATTR_RO(virt_addr); +-static struct map_attribute map_num_pages_attr = __ATTR_RO(num_pages); +-static struct map_attribute map_attribute_attr = __ATTR_RO(attribute); ++static struct map_attribute map_type_attr = __ATTR_RO_MODE(type, 0400); ++static struct map_attribute map_phys_addr_attr = __ATTR_RO_MODE(phys_addr, 0400); ++static struct map_attribute map_virt_addr_attr = __ATTR_RO_MODE(virt_addr, 0400); ++static struct map_attribute map_num_pages_attr = __ATTR_RO_MODE(num_pages, 0400); ++static struct map_attribute map_attribute_attr = __ATTR_RO_MODE(attribute, 0400); + + /* + * These are default attributes that are added for every memmap entry. +diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h +index e32dfe098e82..a886133ae15c 100644 +--- a/include/linux/sysfs.h ++++ b/include/linux/sysfs.h +@@ -117,6 +117,11 @@ struct attribute_group { + .show = _name##_show, \ + } + ++#define __ATTR_RO_MODE(_name, _mode) { \ ++ .attr = { .name = __stringify(_name), .mode = _mode }, \ ++ .show = _name##_show, \ ++} ++ + #define __ATTR_WO(_name) { \ + .attr = { .name = __stringify(_name), .mode = S_IWUSR }, \ + .store = _name##_store, \ @@ -1,5 +1,6 @@ # +efi-move-some-sysfs-files-to-be-read-only-by-root.patch 0001-gpu-gma500-remove-unneeded-DRIVER_LICENSE-define.patch 0002-input-remove-unneeded-DRIVER_LICENSE-defines.patch 0003-media-usbvision-remove-unneeded-DRIVER_LICENSE-defin.patch |