forked from rpms/kernel
		
	Linux v4.1-5596-gaefbef10e3ae
This commit is contained in:
		
							parent
							
								
									21694f1b76
								
							
						
					
					
						commit
						35eff41288
					
				| @ -14,10 +14,10 @@ Signed-off-by: David Howells <dhowells@redhat.com> | |||||||
|  1 file changed, 20 insertions(+) |  1 file changed, 20 insertions(+) | ||||||
| 
 | 
 | ||||||
| diff --git a/include/linux/efi.h b/include/linux/efi.h
 | diff --git a/include/linux/efi.h b/include/linux/efi.h
 | ||||||
| index aa4ee20ec8bb..958d1d9a5af8 100644
 | index 13a3a411c65f..1d54caed7ae8 100644
 | ||||||
| --- a/include/linux/efi.h
 | --- a/include/linux/efi.h
 | ||||||
| +++ b/include/linux/efi.h
 | +++ b/include/linux/efi.h
 | ||||||
| @@ -589,6 +589,12 @@ void efi_native_runtime_setup(void);
 | @@ -594,6 +594,12 @@ void efi_native_runtime_setup(void);
 | ||||||
|  #define DEVICE_TREE_GUID \ |  #define DEVICE_TREE_GUID \ | ||||||
|      EFI_GUID(  0xb1b621d5, 0xf19c, 0x41a5, 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 ) |      EFI_GUID(  0xb1b621d5, 0xf19c, 0x41a5, 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 ) | ||||||
|   |   | ||||||
| @ -30,7 +30,7 @@ index aa4ee20ec8bb..958d1d9a5af8 100644 | |||||||
|  typedef struct { |  typedef struct { | ||||||
|  	efi_guid_t guid; |  	efi_guid_t guid; | ||||||
|  	u64 table; |  	u64 table; | ||||||
| @@ -804,6 +810,20 @@ typedef struct _efi_file_io_interface {
 | @@ -809,6 +815,20 @@ typedef struct _efi_file_io_interface {
 | ||||||
|   |   | ||||||
|  #define EFI_INVALID_TABLE_ADDR		(~0UL) |  #define EFI_INVALID_TABLE_ADDR		(~0UL) | ||||||
|   |   | ||||||
|  | |||||||
| @ -159,10 +159,10 @@ index 000000000000..424896a0b169 | |||||||
| +	return 0;
 | +	return 0;
 | ||||||
| +}
 | +}
 | ||||||
| diff --git a/include/linux/efi.h b/include/linux/efi.h
 | diff --git a/include/linux/efi.h b/include/linux/efi.h
 | ||||||
| index 958d1d9a5af8..3dd6f4a51b9b 100644
 | index 1d54caed7ae8..1ed1fa0ea172 100644
 | ||||||
| --- a/include/linux/efi.h
 | --- a/include/linux/efi.h
 | ||||||
| +++ b/include/linux/efi.h
 | +++ b/include/linux/efi.h
 | ||||||
| @@ -925,6 +925,10 @@ extern bool efi_poweroff_required(void);
 | @@ -940,6 +940,10 @@ extern bool efi_poweroff_required(void);
 | ||||||
|  char * __init efi_md_typeattr_format(char *buf, size_t size, |  char * __init efi_md_typeattr_format(char *buf, size_t size, | ||||||
|  				     const efi_memory_desc_t *md); |  				     const efi_memory_desc_t *md); | ||||||
|   |   | ||||||
|  | |||||||
| @ -33,7 +33,7 @@ index 82fbdbc1e0b0..a811210ad486 100644 | |||||||
|  290/040	ALL	edd_mbr_sig_buffer EDD MBR signatures |  290/040	ALL	edd_mbr_sig_buffer EDD MBR signatures | ||||||
|  2D0/A00	ALL	e820_map	E820 memory map table |  2D0/A00	ALL	e820_map	E820 memory map table | ||||||
| diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
 | diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
 | ||||||
| index 226d5696e1d1..6a8f880e213f 100644
 | index 8e0b76ad8350..39645abe44e3 100644
 | ||||||
| --- a/arch/x86/Kconfig
 | --- a/arch/x86/Kconfig
 | ||||||
| +++ b/arch/x86/Kconfig
 | +++ b/arch/x86/Kconfig
 | ||||||
| @@ -1697,6 +1697,16 @@ config EFI_MIXED
 | @@ -1697,6 +1697,16 @@ config EFI_MIXED
 | ||||||
| @ -129,10 +129,10 @@ index ab456dc233b5..74ba4083e7ce 100644 | |||||||
|  	 * The sentinel is set to a nonzero value (0xff) in header.S. |  	 * The sentinel is set to a nonzero value (0xff) in header.S. | ||||||
|  	 * |  	 * | ||||||
| diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
 | diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
 | ||||||
| index d74ac33290ae..88dad730e858 100644
 | index d3b95b89e9b2..d3071ca120eb 100644
 | ||||||
| --- a/arch/x86/kernel/setup.c
 | --- a/arch/x86/kernel/setup.c
 | ||||||
| +++ b/arch/x86/kernel/setup.c
 | +++ b/arch/x86/kernel/setup.c
 | ||||||
| @@ -1156,6 +1156,12 @@ void __init setup_arch(char **cmdline_p)
 | @@ -1161,6 +1161,12 @@ void __init setup_arch(char **cmdline_p)
 | ||||||
|   |   | ||||||
|  	io_delay_init(); |  	io_delay_init(); | ||||||
|   |   | ||||||
| @ -146,7 +146,7 @@ index d74ac33290ae..88dad730e858 100644 | |||||||
|  	 * Parse the ACPI tables for possible boot-time SMP configuration. |  	 * Parse the ACPI tables for possible boot-time SMP configuration. | ||||||
|  	 */ |  	 */ | ||||||
| diff --git a/include/linux/module.h b/include/linux/module.h
 | diff --git a/include/linux/module.h b/include/linux/module.h
 | ||||||
| index cdc46a791b9d..0c1edd33a42c 100644
 | index 6b99261cbb4b..7117d03cbfe8 100644
 | ||||||
| --- a/include/linux/module.h
 | --- a/include/linux/module.h
 | ||||||
| +++ b/include/linux/module.h
 | +++ b/include/linux/module.h
 | ||||||
| @@ -188,6 +188,12 @@ const struct exception_table_entry *search_exception_tables(unsigned long add);
 | @@ -188,6 +188,12 @@ const struct exception_table_entry *search_exception_tables(unsigned long add);
 | ||||||
|  | |||||||
| @ -16,7 +16,7 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> | |||||||
|  2 files changed, 17 insertions(+) |  2 files changed, 17 insertions(+) | ||||||
| 
 | 
 | ||||||
| diff --git a/include/linux/module.h b/include/linux/module.h
 | diff --git a/include/linux/module.h b/include/linux/module.h
 | ||||||
| index c883b86ea964..cdc46a791b9d 100644
 | index 1e5436042eb0..6b99261cbb4b 100644
 | ||||||
| --- a/include/linux/module.h
 | --- a/include/linux/module.h
 | ||||||
| +++ b/include/linux/module.h
 | +++ b/include/linux/module.h
 | ||||||
| @@ -508,6 +508,8 @@ int unregister_module_notifier(struct notifier_block *nb);
 | @@ -508,6 +508,8 @@ int unregister_module_notifier(struct notifier_block *nb);
 | ||||||
|  | |||||||
| @ -15,7 +15,7 @@ Upstream-status: Fedora mustard | |||||||
|  7 files changed, 65 insertions(+), 10 deletions(-) |  7 files changed, 65 insertions(+), 10 deletions(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
 | diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
 | ||||||
| index d99c8c38914f..bfb77c4faae6 100644
 | index 9bcd51050511..0290275eaaf8 100644
 | ||||||
| --- a/arch/x86/kernel/setup.c
 | --- a/arch/x86/kernel/setup.c
 | ||||||
| +++ b/arch/x86/kernel/setup.c
 | +++ b/arch/x86/kernel/setup.c
 | ||||||
| @@ -70,6 +70,11 @@
 | @@ -70,6 +70,11 @@
 | ||||||
| @ -30,7 +30,7 @@ index d99c8c38914f..bfb77c4faae6 100644 | |||||||
|  #include <video/edid.h> |  #include <video/edid.h> | ||||||
|   |   | ||||||
|  #include <asm/mtrr.h> |  #include <asm/mtrr.h> | ||||||
| @@ -1283,6 +1288,37 @@ void __init i386_reserve_resources(void)
 | @@ -1287,6 +1292,37 @@ void __init i386_reserve_resources(void)
 | ||||||
|   |   | ||||||
|  #endif /* CONFIG_X86_32 */ |  #endif /* CONFIG_X86_32 */ | ||||||
|   |   | ||||||
| @ -81,10 +81,10 @@ index 421e29e4cd81..61c1eb97806c 100644 | |||||||
|  	input_set_drvdata(udev->dev, udev); |  	input_set_drvdata(udev->dev, udev); | ||||||
|   |   | ||||||
| diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
 | diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
 | ||||||
| index 843f2cdc280b..13a5a3843d4c 100644
 | index 1c4791033b72..04d5f0033564 100644
 | ||||||
| --- a/drivers/tty/sysrq.c
 | --- a/drivers/tty/sysrq.c
 | ||||||
| +++ b/drivers/tty/sysrq.c
 | +++ b/drivers/tty/sysrq.c
 | ||||||
| @@ -465,6 +465,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
 | @@ -464,6 +464,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
 | ||||||
|  	&sysrq_showstate_blocked_op,	/* w */ |  	&sysrq_showstate_blocked_op,	/* w */ | ||||||
|  	/* x: May be registered on ppc/powerpc for xmon */ |  	/* x: May be registered on ppc/powerpc for xmon */ | ||||||
|  	/* x: May be registered on sparc64 for global PMU dump */ |  	/* x: May be registered on sparc64 for global PMU dump */ | ||||||
| @ -92,7 +92,7 @@ index 843f2cdc280b..13a5a3843d4c 100644 | |||||||
|  	NULL,				/* x */ |  	NULL,				/* x */ | ||||||
|  	/* y: May be registered on sparc64 for global register dump */ |  	/* y: May be registered on sparc64 for global register dump */ | ||||||
|  	NULL,				/* y */ |  	NULL,				/* y */ | ||||||
| @@ -508,7 +509,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
 | @@ -507,7 +508,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
 | ||||||
|                  sysrq_key_table[i] = op_p; |                  sysrq_key_table[i] = op_p; | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @ -101,7 +101,7 @@ index 843f2cdc280b..13a5a3843d4c 100644 | |||||||
|  { |  { | ||||||
|  	struct sysrq_key_op *op_p; |  	struct sysrq_key_op *op_p; | ||||||
|  	int orig_log_level; |  	int orig_log_level; | ||||||
| @@ -528,11 +529,15 @@ void __handle_sysrq(int key, bool check_mask)
 | @@ -527,11 +528,15 @@ void __handle_sysrq(int key, bool check_mask)
 | ||||||
|   |   | ||||||
|          op_p = __sysrq_get_key_op(key); |          op_p = __sysrq_get_key_op(key); | ||||||
|          if (op_p) { |          if (op_p) { | ||||||
| @ -118,7 +118,7 @@ index 843f2cdc280b..13a5a3843d4c 100644 | |||||||
|  			pr_cont("%s\n", op_p->action_msg); |  			pr_cont("%s\n", op_p->action_msg); | ||||||
|  			console_loglevel = orig_log_level; |  			console_loglevel = orig_log_level; | ||||||
|  			op_p->handler(key); |  			op_p->handler(key); | ||||||
| @@ -564,7 +569,7 @@ void __handle_sysrq(int key, bool check_mask)
 | @@ -563,7 +568,7 @@ void __handle_sysrq(int key, bool check_mask)
 | ||||||
|  void handle_sysrq(int key) |  void handle_sysrq(int key) | ||||||
|  { |  { | ||||||
|  	if (sysrq_on()) |  	if (sysrq_on()) | ||||||
| @ -148,7 +148,7 @@ index 843f2cdc280b..13a5a3843d4c 100644 | |||||||
|  		} |  		} | ||||||
|  		break; |  		break; | ||||||
|  	} |  	} | ||||||
| @@ -1091,7 +1098,7 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
 | @@ -1076,7 +1083,7 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
 | ||||||
|   |   | ||||||
|  		if (get_user(c, buf)) |  		if (get_user(c, buf)) | ||||||
|  			return -EFAULT; |  			return -EFAULT; | ||||||
|  | |||||||
| @ -1,52 +0,0 @@ | |||||||
| From: Andreas Fleig <andreasfleig@gmail.com> |  | ||||||
| Date: Thu, 23 Apr 2015 10:25:58 +0200 |  | ||||||
| Subject: [PATCH] HID: lenovo: set INPUT_PROP_POINTING_STICK |  | ||||||
| 
 |  | ||||||
| Set flags INPUT_PROP_POINTER and INPUT_PROP_POINTING_STICK for the trackpoint |  | ||||||
| integrated in Lenovo USB and Bluetooth keyboards. Libinput checks these flags |  | ||||||
| to enable features such as middle-button-scrolling by default. |  | ||||||
| 
 |  | ||||||
| Signed-off-by: Andreas Fleig <andreasfleig@gmail.com> |  | ||||||
| Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> |  | ||||||
| Signed-off-by: Jiri Kosina <jkosina@suse.cz> |  | ||||||
| ---
 |  | ||||||
|  drivers/hid/hid-lenovo.c | 19 +++++++++++++++++++ |  | ||||||
|  1 file changed, 19 insertions(+) |  | ||||||
| 
 |  | ||||||
| diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c
 |  | ||||||
| index c4c3f0952521..78608d646007 100644
 |  | ||||||
| --- a/drivers/hid/hid-lenovo.c
 |  | ||||||
| +++ b/drivers/hid/hid-lenovo.c
 |  | ||||||
| @@ -762,6 +762,24 @@ static void lenovo_remove(struct hid_device *hdev)
 |  | ||||||
|  	hid_hw_stop(hdev); |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| +static void lenovo_input_configured(struct hid_device *hdev,
 |  | ||||||
| +		struct hid_input *hi)
 |  | ||||||
| +{
 |  | ||||||
| +	switch (hdev->product) {
 |  | ||||||
| +		case USB_DEVICE_ID_LENOVO_TPKBD:
 |  | ||||||
| +		case USB_DEVICE_ID_LENOVO_CUSBKBD:
 |  | ||||||
| +		case USB_DEVICE_ID_LENOVO_CBTKBD:
 |  | ||||||
| +			if (test_bit(EV_REL, hi->input->evbit)) {
 |  | ||||||
| +				/* set only for trackpoint device */
 |  | ||||||
| +				__set_bit(INPUT_PROP_POINTER, hi->input->propbit);
 |  | ||||||
| +				__set_bit(INPUT_PROP_POINTING_STICK,
 |  | ||||||
| +						hi->input->propbit);
 |  | ||||||
| +			}
 |  | ||||||
| +			break;
 |  | ||||||
| +	}
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +
 |  | ||||||
|  static const struct hid_device_id lenovo_devices[] = { |  | ||||||
|  	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_TPKBD) }, |  | ||||||
|  	{ HID_USB_DEVICE(USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_CUSBKBD) }, |  | ||||||
| @@ -774,6 +792,7 @@ MODULE_DEVICE_TABLE(hid, lenovo_devices);
 |  | ||||||
|  static struct hid_driver lenovo_driver = { |  | ||||||
|  	.name = "lenovo", |  | ||||||
|  	.id_table = lenovo_devices, |  | ||||||
| +	.input_configured = lenovo_input_configured,
 |  | ||||||
|  	.input_mapping = lenovo_input_mapping, |  | ||||||
|  	.probe = lenovo_probe, |  | ||||||
|  	.remove = lenovo_remove, |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| From: Andrew Duggan <aduggan@synaptics.com> |  | ||||||
| Date: Tue, 16 Jun 2015 14:08:41 -0700 |  | ||||||
| Subject: [PATCH] HID: rmi: Disable populating F30 when the touchpad has |  | ||||||
|  physical buttons |  | ||||||
| 
 |  | ||||||
| Physical buttons do not use F30 to report their state and in some cases the |  | ||||||
| data reported in F30 is incorrect and inconsistent with what is reported by |  | ||||||
| the HID descriptor. When physical buttons are present, ignore F30 and let |  | ||||||
| hid-input report buttons based on what is defined in the HID descriptor. |  | ||||||
| 
 |  | ||||||
| Signed-off-by: Andrew Duggan <aduggan@synaptics.com> |  | ||||||
| Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> |  | ||||||
| Signed-off-by: Jiri Kosina <jkosina@suse.cz> |  | ||||||
| ---
 |  | ||||||
|  drivers/hid/hid-rmi.c | 9 ++++++--- |  | ||||||
|  1 file changed, 6 insertions(+), 3 deletions(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
 |  | ||||||
| index 368ffdf2c0a3..721f7f90a157 100644
 |  | ||||||
| --- a/drivers/hid/hid-rmi.c
 |  | ||||||
| +++ b/drivers/hid/hid-rmi.c
 |  | ||||||
| @@ -1013,6 +1013,7 @@ static int rmi_populate_f30(struct hid_device *hdev)
 |  | ||||||
|   |  | ||||||
|  static int rmi_populate(struct hid_device *hdev) |  | ||||||
|  { |  | ||||||
| +	struct rmi_data *data = hid_get_drvdata(hdev);
 |  | ||||||
|  	int ret; |  | ||||||
|   |  | ||||||
|  	ret = rmi_scan_pdt(hdev); |  | ||||||
| @@ -1033,9 +1034,11 @@ static int rmi_populate(struct hid_device *hdev)
 |  | ||||||
|  		return ret; |  | ||||||
|  	} |  | ||||||
|   |  | ||||||
| -	ret = rmi_populate_f30(hdev);
 |  | ||||||
| -	if (ret)
 |  | ||||||
| -		hid_warn(hdev, "Error while initializing F30 (%d).\n", ret);
 |  | ||||||
| +	if (!(data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS)) {
 |  | ||||||
| +		ret = rmi_populate_f30(hdev);
 |  | ||||||
| +		if (ret)
 |  | ||||||
| +			hid_warn(hdev, "Error while initializing F30 (%d).\n", ret);
 |  | ||||||
| +	}
 |  | ||||||
|   |  | ||||||
|  	return 0; |  | ||||||
|  } |  | ||||||
| @ -29,10 +29,10 @@ index 72665eb80692..2c7b80d31366 100644 | |||||||
| +
 | +
 | ||||||
|  #endif /* _KEYS_SYSTEM_KEYRING_H */ |  #endif /* _KEYS_SYSTEM_KEYRING_H */ | ||||||
| diff --git a/init/Kconfig b/init/Kconfig
 | diff --git a/init/Kconfig b/init/Kconfig
 | ||||||
| index dc24dec60232..3b703d077513 100644
 | index b999fa381bf9..4e0037c349f6 100644
 | ||||||
| --- a/init/Kconfig
 | --- a/init/Kconfig
 | ||||||
| +++ b/init/Kconfig
 | +++ b/init/Kconfig
 | ||||||
| @@ -1758,6 +1758,15 @@ config SYSTEM_TRUSTED_KEYRING
 | @@ -1744,6 +1744,15 @@ config SYSTEM_TRUSTED_KEYRING
 | ||||||
|   |   | ||||||
|  	  Keys in this keyring are used by module signature checking. |  	  Keys in this keyring are used by module signature checking. | ||||||
|   |   | ||||||
|  | |||||||
| @ -43,10 +43,10 @@ Signed-off-by: Josh Stone <jistone@redhat.com> | |||||||
|  2 files changed, 21 insertions(+), 1 deletion(-) |  2 files changed, 21 insertions(+), 1 deletion(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/Makefile b/Makefile
 | diff --git a/Makefile b/Makefile
 | ||||||
| index f5c8983aeeb7..962bafd4a18e 100644
 | index 6c6f14628f32..144ffbb5af82 100644
 | ||||||
| --- a/Makefile
 | --- a/Makefile
 | ||||||
| +++ b/Makefile
 | +++ b/Makefile
 | ||||||
| @@ -704,7 +704,11 @@ KBUILD_CFLAGS	+= -fomit-frame-pointer
 | @@ -703,7 +703,11 @@ KBUILD_CFLAGS	+= -fomit-frame-pointer
 | ||||||
|  endif |  endif | ||||||
|  endif |  endif | ||||||
|   |   | ||||||
| @ -59,7 +59,7 @@ index f5c8983aeeb7..962bafd4a18e 100644 | |||||||
|  ifdef CONFIG_DEBUG_INFO |  ifdef CONFIG_DEBUG_INFO | ||||||
|  ifdef CONFIG_DEBUG_INFO_SPLIT |  ifdef CONFIG_DEBUG_INFO_SPLIT | ||||||
| diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
 | diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
 | ||||||
| index ba2b0c87e65b..390e4089c086 100644
 | index b908048f8d6a..1bfb8e63218f 100644
 | ||||||
| --- a/lib/Kconfig.debug
 | --- a/lib/Kconfig.debug
 | ||||||
| +++ b/lib/Kconfig.debug
 | +++ b/lib/Kconfig.debug
 | ||||||
| @@ -165,7 +165,23 @@ config DEBUG_INFO_DWARF4
 | @@ -165,7 +165,23 @@ config DEBUG_INFO_DWARF4
 | ||||||
|  | |||||||
| @ -25,10 +25,10 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> | |||||||
|  create mode 100644 kernel/modsign_uefi.c |  create mode 100644 kernel/modsign_uefi.c | ||||||
| 
 | 
 | ||||||
| diff --git a/include/linux/efi.h b/include/linux/efi.h
 | diff --git a/include/linux/efi.h b/include/linux/efi.h
 | ||||||
| index 3dd6f4a51b9b..9cc069579351 100644
 | index 1ed1fa0ea172..6d392cbf7243 100644
 | ||||||
| --- a/include/linux/efi.h
 | --- a/include/linux/efi.h
 | ||||||
| +++ b/include/linux/efi.h
 | +++ b/include/linux/efi.h
 | ||||||
| @@ -595,6 +595,12 @@ void efi_native_runtime_setup(void);
 | @@ -600,6 +600,12 @@ void efi_native_runtime_setup(void);
 | ||||||
|  #define EFI_CERT_X509_GUID \ |  #define EFI_CERT_X509_GUID \ | ||||||
|      EFI_GUID(  0xa5c059a1, 0x94e4, 0x4aa7, 0x87, 0xb5, 0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72 ) |      EFI_GUID(  0xa5c059a1, 0x94e4, 0x4aa7, 0x87, 0xb5, 0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72 ) | ||||||
|   |   | ||||||
| @ -42,10 +42,10 @@ index 3dd6f4a51b9b..9cc069579351 100644 | |||||||
|  	efi_guid_t guid; |  	efi_guid_t guid; | ||||||
|  	u64 table; |  	u64 table; | ||||||
| diff --git a/init/Kconfig b/init/Kconfig
 | diff --git a/init/Kconfig b/init/Kconfig
 | ||||||
| index 3b703d077513..1c9c8e500a48 100644
 | index 4e0037c349f6..f3e3a0d45d40 100644
 | ||||||
| --- a/init/Kconfig
 | --- a/init/Kconfig
 | ||||||
| +++ b/init/Kconfig
 | +++ b/init/Kconfig
 | ||||||
| @@ -1912,6 +1912,15 @@ config MODULE_SIG_ALL
 | @@ -1898,6 +1898,15 @@ config MODULE_SIG_ALL
 | ||||||
|  comment "Do not forget to sign required modules with scripts/sign-file" |  comment "Do not forget to sign required modules with scripts/sign-file" | ||||||
|  	depends on MODULE_SIG_FORCE && !MODULE_SIG_ALL |  	depends on MODULE_SIG_FORCE && !MODULE_SIG_ALL | ||||||
|   |   | ||||||
|  | |||||||
| @ -11,14 +11,14 @@ Upstream-status: Sigh.  We almost got to drop this. | |||||||
| Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> | Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> | ||||||
| ---
 | ---
 | ||||||
|  Documentation/kernel-parameters.txt | 2 +- |  Documentation/kernel-parameters.txt | 2 +- | ||||||
|  drivers/acpi/video.c                | 2 +- |  drivers/acpi/acpi_video.c           | 2 +- | ||||||
|  2 files changed, 2 insertions(+), 2 deletions(-) |  2 files changed, 2 insertions(+), 2 deletions(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
 | diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
 | ||||||
| index 6726139bd289..a5e55141ae64 100644
 | index fd66d220c115..d5be5fb06be0 100644
 | ||||||
| --- a/Documentation/kernel-parameters.txt
 | --- a/Documentation/kernel-parameters.txt
 | ||||||
| +++ b/Documentation/kernel-parameters.txt
 | +++ b/Documentation/kernel-parameters.txt
 | ||||||
| @@ -3871,7 +3871,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 | @@ -3909,7 +3909,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 | ||||||
|  			the allocated input device; If set to 0, video driver |  			the allocated input device; If set to 0, video driver | ||||||
|  			will only send out the event without touching backlight |  			will only send out the event without touching backlight | ||||||
|  			brightness level. |  			brightness level. | ||||||
| @ -27,10 +27,10 @@ index 6726139bd289..a5e55141ae64 100644 | |||||||
|   |   | ||||||
|  	virtio_mmio.device= |  	virtio_mmio.device= | ||||||
|  			[VMMIO] Memory mapped virtio (platform) device. |  			[VMMIO] Memory mapped virtio (platform) device. | ||||||
| diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
 | diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
 | ||||||
| index cc79d3fedfb2..d9bf8ba7d848 100644
 | index 8c2fe2f2f9fd..6021e67be1f7 100644
 | ||||||
| --- a/drivers/acpi/video.c
 | --- a/drivers/acpi/acpi_video.c
 | ||||||
| +++ b/drivers/acpi/video.c
 | +++ b/drivers/acpi/acpi_video.c
 | ||||||
| @@ -68,7 +68,7 @@ MODULE_AUTHOR("Bruno Ducrot");
 | @@ -68,7 +68,7 @@ MODULE_AUTHOR("Bruno Ducrot");
 | ||||||
|  MODULE_DESCRIPTION("ACPI Video Driver"); |  MODULE_DESCRIPTION("ACPI Video Driver"); | ||||||
|  MODULE_LICENSE("GPL"); |  MODULE_LICENSE("GPL"); | ||||||
|  | |||||||
| @ -13,7 +13,7 @@ Signed-off-by: Josh Boyer <jwboyer@redhat.com> | |||||||
|  1 file changed, 2 insertions(+), 1 deletion(-) |  1 file changed, 2 insertions(+), 1 deletion(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
 | diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
 | ||||||
| index 7ccba395c9dd..9cbdbccf3dc3 100644
 | index a5dc9034efee..fd2aee6de6a7 100644
 | ||||||
| --- a/drivers/acpi/osl.c
 | --- a/drivers/acpi/osl.c
 | ||||||
| +++ b/drivers/acpi/osl.c
 | +++ b/drivers/acpi/osl.c
 | ||||||
| @@ -44,6 +44,7 @@
 | @@ -44,6 +44,7 @@
 | ||||||
| @ -24,7 +24,7 @@ index 7ccba395c9dd..9cbdbccf3dc3 100644 | |||||||
|   |   | ||||||
|  #include <asm/io.h> |  #include <asm/io.h> | ||||||
|  #include <asm/uaccess.h> |  #include <asm/uaccess.h> | ||||||
| @@ -252,7 +253,7 @@ early_param("acpi_rsdp", setup_acpi_rsdp);
 | @@ -248,7 +249,7 @@ early_param("acpi_rsdp", setup_acpi_rsdp);
 | ||||||
|  acpi_physical_address __init acpi_os_get_root_pointer(void) |  acpi_physical_address __init acpi_os_get_root_pointer(void) | ||||||
|  { |  { | ||||||
|  #ifdef CONFIG_KEXEC |  #ifdef CONFIG_KEXEC | ||||||
|  | |||||||
| @ -1,37 +0,0 @@ | |||||||
| From: Hans de Goede <hdegoede@redhat.com> |  | ||||||
| Date: Thu, 28 May 2015 18:25:46 +0200 |  | ||||||
| Subject: [PATCH] acpi_video: Add enable_native_backlight quirk for |  | ||||||
|  MacbookPro12,1 |  | ||||||
| 
 |  | ||||||
| It seems that the latest generation of MacbookPro needs to use the |  | ||||||
| native backlight driver, just like most modern laptops do, but it does |  | ||||||
| not automatically get enabled as the Apple BIOS does not advertise |  | ||||||
| Windows 8 compatibility. So add a quirk for this. |  | ||||||
| 
 |  | ||||||
| Cc: Christopher Beland <beland@alum.mit.edu> |  | ||||||
| Reported-by: Christopher Beland <beland@alum.mit.edu> |  | ||||||
| Signed-off-by: Hans de Goede <hdegoede@redhat.com> |  | ||||||
| ---
 |  | ||||||
|  drivers/acpi/video.c | 9 +++++++++ |  | ||||||
|  1 file changed, 9 insertions(+) |  | ||||||
| 
 |  | ||||||
| diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
 |  | ||||||
| index d9bf8ba7d848..b57d69370bac 100644
 |  | ||||||
| --- a/drivers/acpi/video.c
 |  | ||||||
| +++ b/drivers/acpi/video.c
 |  | ||||||
| @@ -583,6 +583,15 @@ static struct dmi_system_id video_dmi_table[] __initdata = {
 |  | ||||||
|  		DMI_MATCH(DMI_PRODUCT_NAME, "102434U"), |  | ||||||
|  		}, |  | ||||||
|  	}, |  | ||||||
| +	{
 |  | ||||||
| +	 /* https://bugzilla.redhat.com/show_bug.cgi?id=1217249 */
 |  | ||||||
| +	 .callback = video_enable_native_backlight,
 |  | ||||||
| +	 .ident = "Apple MacBook Pro 12,1",
 |  | ||||||
| +	 .matches = {
 |  | ||||||
| +		DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
 |  | ||||||
| +		DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro12,1"),
 |  | ||||||
| +		},
 |  | ||||||
| +	},
 |  | ||||||
|  	{} |  | ||||||
|  }; |  | ||||||
|   |  | ||||||
| @ -6,19 +6,20 @@ Add XGBE phy driver support for A0 hardware. | |||||||
| 
 | 
 | ||||||
| Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> | Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> | ||||||
| ---
 | ---
 | ||||||
|  drivers/net/phy/Makefile          |    1 + |  drivers/net/phy/Makefile          |    2 + | ||||||
|  drivers/net/phy/amd-xgbe-phy-a0.c | 1814 +++++++++++++++++++++++++++++++++++++ |  drivers/net/phy/amd-xgbe-phy-a0.c | 1814 +++++++++++++++++++++++++++++++++++++ | ||||||
|  2 files changed, 1815 insertions(+) |  2 files changed, 1816 insertions(+) | ||||||
|  create mode 100644 drivers/net/phy/amd-xgbe-phy-a0.c |  create mode 100644 drivers/net/phy/amd-xgbe-phy-a0.c | ||||||
| 
 | 
 | ||||||
| diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
 | diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
 | ||||||
| index 501ea7699a2d..92e76446033e 100644
 | index fcc25a0c45cd..5be1b6f5861b 100644
 | ||||||
| --- a/drivers/net/phy/Makefile
 | --- a/drivers/net/phy/Makefile
 | ||||||
| +++ b/drivers/net/phy/Makefile
 | +++ b/drivers/net/phy/Makefile
 | ||||||
| @@ -34,4 +34,5 @@ obj-$(CONFIG_MDIO_BUS_MUX_MMIOREG) += mdio-mux-mmioreg.o
 | @@ -34,4 +34,6 @@ obj-$(CONFIG_MDIO_BUS_MUX_GPIO)	+= mdio-mux-gpio.o
 | ||||||
|  |  obj-$(CONFIG_MDIO_BUS_MUX_MMIOREG) += mdio-mux-mmioreg.o | ||||||
|  obj-$(CONFIG_MDIO_SUN4I)	+= mdio-sun4i.o |  obj-$(CONFIG_MDIO_SUN4I)	+= mdio-sun4i.o | ||||||
|  obj-$(CONFIG_MDIO_MOXART)	+= mdio-moxart.o |  obj-$(CONFIG_MDIO_MOXART)	+= mdio-moxart.o | ||||||
|  obj-$(CONFIG_AMD_XGBE_PHY)	+= amd-xgbe-phy.o | +obj-$(CONFIG_AMD_XGBE_PHY)	+= amd-xgbe-phy.o
 | ||||||
| +obj-$(CONFIG_AMD_XGBE_PHY)	+= amd-xgbe-phy-a0.o
 | +obj-$(CONFIG_AMD_XGBE_PHY)	+= amd-xgbe-phy-a0.o
 | ||||||
|  obj-$(CONFIG_MDIO_BCM_UNIMAC)	+= mdio-bcm-unimac.o |  obj-$(CONFIG_MDIO_BCM_UNIMAC)	+= mdio-bcm-unimac.o | ||||||
| diff --git a/drivers/net/phy/amd-xgbe-phy-a0.c b/drivers/net/phy/amd-xgbe-phy-a0.c
 | diff --git a/drivers/net/phy/amd-xgbe-phy-a0.c b/drivers/net/phy/amd-xgbe-phy-a0.c
 | ||||||
|  | |||||||
| @ -1,9 +1,13 @@ | |||||||
| From: Peter Robinson <pbrobinson@gmail.com> | From: Peter Robinson <pbrobinson@gmail.com> | ||||||
| Subject: arm64: acpi drop expert patch | Date: Sun, 3 May 2015 18:35:23 +0100 | ||||||
| Date: Sun May 3 18:35:23 2015 +0100 | Subject: [PATCH] arm64: acpi drop expert patch | ||||||
|  | 
 | ||||||
|  | ---
 | ||||||
|  |  drivers/acpi/Kconfig | 2 +- | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
 | diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
 | ||||||
| index ab2cbb5..87a6c19 100644
 | index 35da507411a0..e3518852eb39 100644
 | ||||||
| --- a/drivers/acpi/Kconfig
 | --- a/drivers/acpi/Kconfig
 | ||||||
| +++ b/drivers/acpi/Kconfig
 | +++ b/drivers/acpi/Kconfig
 | ||||||
| @@ -5,7 +5,7 @@
 | @@ -5,7 +5,7 @@
 | ||||||
| @ -14,10 +14,10 @@ Signed-off-by: Mark Salter <msalter@redhat.com> | |||||||
|  1 file changed, 19 insertions(+) |  1 file changed, 19 insertions(+) | ||||||
| 
 | 
 | ||||||
| diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
 | diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
 | ||||||
| index 74753132c3ac..3cc99d7c2361 100644
 | index ffd3970721bf..b181dc1e4018 100644
 | ||||||
| --- a/arch/arm64/kernel/setup.c
 | --- a/arch/arm64/kernel/setup.c
 | ||||||
| +++ b/arch/arm64/kernel/setup.c
 | +++ b/arch/arm64/kernel/setup.c
 | ||||||
| @@ -579,3 +579,22 @@ const struct seq_operations cpuinfo_op = {
 | @@ -566,3 +566,22 @@ const struct seq_operations cpuinfo_op = {
 | ||||||
|  	.stop	= c_stop, |  	.stop	= c_stop, | ||||||
|  	.show	= c_show |  	.show	= c_show | ||||||
|  }; |  }; | ||||||
|  | |||||||
| @ -15,7 +15,7 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> | |||||||
|  1 file changed, 9 insertions(+) |  1 file changed, 9 insertions(+) | ||||||
| 
 | 
 | ||||||
| diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
 | diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
 | ||||||
| index 7543a56e0f45..93b5a6998371 100644
 | index 6f8558f744a4..d448974b6766 100644
 | ||||||
| --- a/drivers/platform/x86/asus-wmi.c
 | --- a/drivers/platform/x86/asus-wmi.c
 | ||||||
| +++ b/drivers/platform/x86/asus-wmi.c
 | +++ b/drivers/platform/x86/asus-wmi.c
 | ||||||
| @@ -1589,6 +1589,9 @@ static int show_dsts(struct seq_file *m, void *data)
 | @@ -1589,6 +1589,9 @@ static int show_dsts(struct seq_file *m, void *data)
 | ||||||
|  | |||||||
| @ -1,3 +1,7 @@ | |||||||
|  | From: Ming Lei <ming.lei@canonical.com> | ||||||
|  | Date: Tue, 28 Apr 2015 14:40:49 -0400 | ||||||
|  | Subject: [PATCH] blk: loop: avoid too many pending work IO | ||||||
|  | 
 | ||||||
| If there are too many pending per work I/O, too many | If there are too many pending per work I/O, too many | ||||||
| high priority work thread can be generated so that | high priority work thread can be generated so that | ||||||
| system performance can be effected. | system performance can be effected. | ||||||
| @ -32,7 +36,7 @@ Signed-off-by: Ming Lei <ming.lei@canonical.com> | |||||||
|  2 files changed, 19 insertions(+), 2 deletions(-) |  2 files changed, 19 insertions(+), 2 deletions(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/drivers/block/loop.c b/drivers/block/loop.c
 | diff --git a/drivers/block/loop.c b/drivers/block/loop.c
 | ||||||
| index ae3fcb4..5a728c6 100644
 | index d7173cb1ea76..4db0301420b0 100644
 | ||||||
| --- a/drivers/block/loop.c
 | --- a/drivers/block/loop.c
 | ||||||
| +++ b/drivers/block/loop.c
 | +++ b/drivers/block/loop.c
 | ||||||
| @@ -1425,13 +1425,24 @@ static int loop_queue_rq(struct blk_mq_hw_ctx *hctx,
 | @@ -1425,13 +1425,24 @@ static int loop_queue_rq(struct blk_mq_hw_ctx *hctx,
 | ||||||
| @ -44,11 +48,11 @@ index ae3fcb4..5a728c6 100644 | |||||||
| +
 | +
 | ||||||
| +	/*
 | +	/*
 | ||||||
| +	 * Fallback to single queue mode if the pending per work
 | +	 * Fallback to single queue mode if the pending per work
 | ||||||
| +	 * I/O number reaches 16, otherwise too many high priority
 | +	 * I/O number reaches 32, otherwise too many high priority
 | ||||||
| +	 * worker thread may effect system performance as reported
 | +	 * worker thread may effect system performance as reported
 | ||||||
| +	 * in fedora live booting from squashfs over loop.
 | +	 * in fedora live booting from squashfs over loop.
 | ||||||
| +	 */
 | +	 */
 | ||||||
| +	if (atomic_read(&lo->pending_per_work_io) >= 16)
 | +	if (atomic_read(&lo->pending_per_work_io) >= 32)
 | ||||||
| +		single_queue = true;
 | +		single_queue = true;
 | ||||||
|   |   | ||||||
|  	blk_mq_start_request(bd->rq); |  	blk_mq_start_request(bd->rq); | ||||||
| @ -66,8 +70,8 @@ index ae3fcb4..5a728c6 100644 | |||||||
|  		if (need_sched) |  		if (need_sched) | ||||||
|  			queue_work(loop_wq, &lo->write_work); |  			queue_work(loop_wq, &lo->write_work); | ||||||
|  	} else { |  	} else { | ||||||
| +		atomic_inc(&lo->pending_per_work_io);
 |  | ||||||
| +		cmd->per_work_io = true;
 | +		cmd->per_work_io = true;
 | ||||||
|  | +		atomic_inc(&lo->pending_per_work_io);
 | ||||||
|  		queue_work(loop_wq, &cmd->read_work); |  		queue_work(loop_wq, &cmd->read_work); | ||||||
|  	} |  	} | ||||||
|   |   | ||||||
| @ -81,7 +85,7 @@ index ae3fcb4..5a728c6 100644 | |||||||
|   |   | ||||||
|  static void loop_queue_write_work(struct work_struct *work) |  static void loop_queue_write_work(struct work_struct *work) | ||||||
| diff --git a/drivers/block/loop.h b/drivers/block/loop.h
 | diff --git a/drivers/block/loop.h b/drivers/block/loop.h
 | ||||||
| index 301c27f..eb855f5 100644
 | index 301c27f8323f..eb855f57a62d 100644
 | ||||||
| --- a/drivers/block/loop.h
 | --- a/drivers/block/loop.h
 | ||||||
| +++ b/drivers/block/loop.h
 | +++ b/drivers/block/loop.h
 | ||||||
| @@ -57,6 +57,7 @@ struct loop_device {
 | @@ -57,6 +57,7 @@ struct loop_device {
 | ||||||
| @ -100,5 +104,3 @@ index 301c27f..eb855f5 100644 | |||||||
|  	struct list_head list; |  	struct list_head list; | ||||||
|  }; |  }; | ||||||
|   |   | ||||||
| -- 
 |  | ||||||
| 1.9.1 |  | ||||||
| @ -123,7 +123,7 @@ CONFIG_CRYPTO_SHA1_ARM=m | |||||||
| CONFIG_CRYPTO_SHA256_ARM=m | CONFIG_CRYPTO_SHA256_ARM=m | ||||||
| CONFIG_CRYPTO_SHA1_ARM_NEON=m | CONFIG_CRYPTO_SHA1_ARM_NEON=m | ||||||
| CONFIG_CRYPTO_SHA512_ARM_NEON=m | CONFIG_CRYPTO_SHA512_ARM_NEON=m | ||||||
| 
 | CONFIG_CRYPTO_SHA512_ARM=m | ||||||
| # USB | # USB | ||||||
| CONFIG_USB_OHCI_HCD_PLATFORM=m | CONFIG_USB_OHCI_HCD_PLATFORM=m | ||||||
| CONFIG_USB_EHCI_HCD_PLATFORM=m | CONFIG_USB_EHCI_HCD_PLATFORM=m | ||||||
|  | |||||||
| @ -107,6 +107,7 @@ CONFIG_HW_RANDOM_XGENE=m | |||||||
| CONFIG_GPIO_XGENE=y | CONFIG_GPIO_XGENE=y | ||||||
| CONFIG_GPIO_XGENE_SB=m | CONFIG_GPIO_XGENE_SB=m | ||||||
| CONFIG_XGENE_DMA=m | CONFIG_XGENE_DMA=m | ||||||
|  | CONFIG_EDAC_XGENE=m | ||||||
| 
 | 
 | ||||||
| # busted build for various reasons | # busted build for various reasons | ||||||
| #  uses pci_* for some reason to allocate DMA buffers | #  uses pci_* for some reason to allocate DMA buffers | ||||||
| @ -118,6 +119,7 @@ CONFIG_XGENE_DMA=m | |||||||
| # CONFIG_VGA_CONSOLE is not set | # CONFIG_VGA_CONSOLE is not set | ||||||
| 
 | 
 | ||||||
| CONFIG_PCI_XGENE=y | CONFIG_PCI_XGENE=y | ||||||
|  | CONFIG_PCI_XGENE_MSI=y | ||||||
| CONFIG_HOTPLUG_PCI=y | CONFIG_HOTPLUG_PCI=y | ||||||
| # CONFIG_HOTPLUG_PCI_CPCI is not set | # CONFIG_HOTPLUG_PCI_CPCI is not set | ||||||
| # CONFIG_HOTPLUG_PCI_SHPC is not set | # CONFIG_HOTPLUG_PCI_SHPC is not set | ||||||
| @ -166,3 +168,5 @@ CONFIG_SATA_AHCI_PLATFORM=y | |||||||
| CONFIG_DEBUG_SECTION_MISMATCH=y | CONFIG_DEBUG_SECTION_MISMATCH=y | ||||||
| 
 | 
 | ||||||
| # CONFIG_FSL_MC_BUS is not set | # CONFIG_FSL_MC_BUS is not set | ||||||
|  | 
 | ||||||
|  | CONFIG_ARM_SMMU_V3=y | ||||||
|  | |||||||
| @ -218,6 +218,8 @@ CONFIG_RADIO_WL128X=m | |||||||
| 
 | 
 | ||||||
| CONFIG_OMAP_REMOTEPROC=m | CONFIG_OMAP_REMOTEPROC=m | ||||||
| 
 | 
 | ||||||
|  | CONFIG_GPIO_OMAP=m | ||||||
|  | 
 | ||||||
| # CONFIG_OMAP2_DSS_DEBUGFS is not set | # CONFIG_OMAP2_DSS_DEBUGFS is not set | ||||||
| # CONFIG_OMAP_IOMMU_DEBUG is not set | # CONFIG_OMAP_IOMMU_DEBUG is not set | ||||||
| # CONFIG_OMAP_MUX_DEBUG is not set | # CONFIG_OMAP_MUX_DEBUG is not set | ||||||
| @ -282,6 +284,7 @@ CONFIG_COMMON_CLK_QCOM=m | |||||||
| CONFIG_MFD_QCOM_RPM=m | CONFIG_MFD_QCOM_RPM=m | ||||||
| CONFIG_MFD_PM8921_CORE=m | CONFIG_MFD_PM8921_CORE=m | ||||||
| CONFIG_REGULATOR_QCOM_RPM=m | CONFIG_REGULATOR_QCOM_RPM=m | ||||||
|  | CONFIG_REGULATOR_QCOM_SPMI=m | ||||||
| CONFIG_APQ_GCC_8084=m | CONFIG_APQ_GCC_8084=m | ||||||
| CONFIG_APQ_MMCC_8084=m | CONFIG_APQ_MMCC_8084=m | ||||||
| CONFIG_IPQ_GCC_806X=m | CONFIG_IPQ_GCC_806X=m | ||||||
|  | |||||||
| @ -169,6 +169,8 @@ CONFIG_PL320_MBOX=y | |||||||
| CONFIG_SND_ARMAACI=m | CONFIG_SND_ARMAACI=m | ||||||
| CONFIG_USB_ISP1760=m | CONFIG_USB_ISP1760=m | ||||||
| 
 | 
 | ||||||
|  | CONFIG_EDAC=y | ||||||
|  | 
 | ||||||
| # highbank | # highbank | ||||||
| CONFIG_EDAC_HIGHBANK_MC=m | CONFIG_EDAC_HIGHBANK_MC=m | ||||||
| CONFIG_EDAC_HIGHBANK_L2=m | CONFIG_EDAC_HIGHBANK_L2=m | ||||||
| @ -187,6 +189,14 @@ CONFIG_DMA_SUN6I=m | |||||||
| CONFIG_SUNXI_WATCHDOG=m | CONFIG_SUNXI_WATCHDOG=m | ||||||
| CONFIG_NET_VENDOR_ALLWINNER=y | CONFIG_NET_VENDOR_ALLWINNER=y | ||||||
| CONFIG_STMMAC_PLATFORM=m | CONFIG_STMMAC_PLATFORM=m | ||||||
|  | CONFIG_DWMAC_GENERIC=m | ||||||
|  | CONFIG_DWMAC_IPQ806X=m | ||||||
|  | CONFIG_DWMAC_LPC18XX=m | ||||||
|  | CONFIG_DWMAC_MESON=m | ||||||
|  | CONFIG_DWMAC_ROCKCHIP=m | ||||||
|  | CONFIG_DWMAC_SOCFPGA=m | ||||||
|  | CONFIG_DWMAC_STI=m | ||||||
|  | CONFIG_DWMAC_SUNXI=m | ||||||
| CONFIG_EEPROM_SUNXI_SID=m | CONFIG_EEPROM_SUNXI_SID=m | ||||||
| CONFIG_RTC_DRV_SUNXI=m | CONFIG_RTC_DRV_SUNXI=m | ||||||
| CONFIG_PHY_SUN4I_USB=m | CONFIG_PHY_SUN4I_USB=m | ||||||
| @ -410,6 +420,7 @@ CONFIG_PCI_MVEBU=y | |||||||
| CONFIG_CACHE_TAUROS2=y | CONFIG_CACHE_TAUROS2=y | ||||||
| CONFIG_MV_XOR=y | CONFIG_MV_XOR=y | ||||||
| CONFIG_CRYPTO_DEV_MV_CESA=m | CONFIG_CRYPTO_DEV_MV_CESA=m | ||||||
|  | CONFIG_CRYPTO_DEV_MARVELL_CESA=m | ||||||
| CONFIG_MV643XX_ETH=m | CONFIG_MV643XX_ETH=m | ||||||
| CONFIG_PINCTRL_MVEBU=y | CONFIG_PINCTRL_MVEBU=y | ||||||
| CONFIG_PINCTRL_ARMADA_370=y | CONFIG_PINCTRL_ARMADA_370=y | ||||||
| @ -555,6 +566,7 @@ CONFIG_GENERIC_PINCONF=y | |||||||
| # CONFIG_PINCTRL_APQ8084 is not set | # CONFIG_PINCTRL_APQ8084 is not set | ||||||
| # CONFIG_PINCTRL_IPQ8064 is not set | # CONFIG_PINCTRL_IPQ8064 is not set | ||||||
| # CONFIG_PINCTRL_MSM8960 is not set | # CONFIG_PINCTRL_MSM8960 is not set | ||||||
|  | # CONFIG_PINCTRL_MSM8660 is not set | ||||||
| 
 | 
 | ||||||
| # GPIO | # GPIO | ||||||
| # CONFIG_GPIO_EM is not set | # CONFIG_GPIO_EM is not set | ||||||
| @ -595,6 +607,7 @@ CONFIG_SPI_TLE62X0=m | |||||||
| CONFIG_SPI_XCOMM=m | CONFIG_SPI_XCOMM=m | ||||||
| # CONFIG_SPI_FSL_SPI is not set | # CONFIG_SPI_FSL_SPI is not set | ||||||
| # CONFIG_SPI_CADENCE is not set | # CONFIG_SPI_CADENCE is not set | ||||||
|  | # CONFIG_SPI_ZYNQMP_GQSPI is not set | ||||||
| 
 | 
 | ||||||
| CONFIG_NFC_NCI_SPI=y | CONFIG_NFC_NCI_SPI=y | ||||||
| 
 | 
 | ||||||
| @ -633,6 +646,7 @@ CONFIG_MTD_NAND_PLATFORM=m | |||||||
| CONFIG_MTD_NAND_PXA3xx=m | CONFIG_MTD_NAND_PXA3xx=m | ||||||
| CONFIG_MTD_NAND_RICOH=m | CONFIG_MTD_NAND_RICOH=m | ||||||
| CONFIG_MTD_NAND_TMIO=m | CONFIG_MTD_NAND_TMIO=m | ||||||
|  | # CONFIG_MTD_NAND_BRCMNAND is not set | ||||||
| CONFIG_MTD_SPI_NOR=m | CONFIG_MTD_SPI_NOR=m | ||||||
| # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set | # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set | ||||||
| CONFIG_MTD_SPINAND_MT29F=m | CONFIG_MTD_SPINAND_MT29F=m | ||||||
|  | |||||||
| @ -148,6 +148,7 @@ CONFIG_MMC_REALTEK_PCI=m | |||||||
| CONFIG_MMC_REALTEK_USB=m | CONFIG_MMC_REALTEK_USB=m | ||||||
| CONFIG_MMC_VUB300=m | CONFIG_MMC_VUB300=m | ||||||
| CONFIG_MMC_TOSHIBA_PCI=m | CONFIG_MMC_TOSHIBA_PCI=m | ||||||
|  | CONFIG_MMC_MTK=m | ||||||
| # CONFIG_MMC_SPI is not set | # CONFIG_MMC_SPI is not set | ||||||
| # CONFIG_MMC_SDHCI_OF_ARASAN is not set | # CONFIG_MMC_SDHCI_OF_ARASAN is not set | ||||||
| # CONFIG_MMC_SDHCI_F_SDH30 is not set | # CONFIG_MMC_SDHCI_F_SDH30 is not set | ||||||
| @ -558,6 +559,8 @@ CONFIG_LIBFC=m | |||||||
| CONFIG_LIBFCOE=m | CONFIG_LIBFCOE=m | ||||||
| CONFIG_FCOE=m | CONFIG_FCOE=m | ||||||
| CONFIG_FCOE_FNIC=m | CONFIG_FCOE_FNIC=m | ||||||
|  | CONFIG_SCSI_SNIC=m | ||||||
|  | # CONFIG_SCSI_SNIC_DEBUG_FS is not set | ||||||
| 
 | 
 | ||||||
| CONFIG_ATA=y | CONFIG_ATA=y | ||||||
| CONFIG_ATA_BMDMA=y | CONFIG_ATA_BMDMA=y | ||||||
| @ -736,6 +739,7 @@ CONFIG_TCP_CONG_HSTCP=m | |||||||
| CONFIG_TCP_CONG_HYBLA=m | CONFIG_TCP_CONG_HYBLA=m | ||||||
| CONFIG_TCP_CONG_ILLINOIS=m | CONFIG_TCP_CONG_ILLINOIS=m | ||||||
| CONFIG_TCP_CONG_DCTCP=m | CONFIG_TCP_CONG_DCTCP=m | ||||||
|  | CONFIG_TCP_CONG_CDG=m | ||||||
| CONFIG_TCP_CONG_LP=m | CONFIG_TCP_CONG_LP=m | ||||||
| CONFIG_TCP_CONG_SCALABLE=m | CONFIG_TCP_CONG_SCALABLE=m | ||||||
| CONFIG_TCP_CONG_VEGAS=m | CONFIG_TCP_CONG_VEGAS=m | ||||||
| @ -779,6 +783,7 @@ CONFIG_SYN_COOKIES=y | |||||||
| CONFIG_NET_IPVTI=m | CONFIG_NET_IPVTI=m | ||||||
| CONFIG_NET_FOU=m | CONFIG_NET_FOU=m | ||||||
| CONFIG_NET_FOU_IP_TUNNELS=y | CONFIG_NET_FOU_IP_TUNNELS=y | ||||||
|  | CONFIG_GENEVE_CORE=m | ||||||
| CONFIG_GENEVE=m | CONFIG_GENEVE=m | ||||||
| CONFIG_INET_AH=m | CONFIG_INET_AH=m | ||||||
| CONFIG_INET_ESP=m | CONFIG_INET_ESP=m | ||||||
| @ -859,6 +864,7 @@ CONFIG_NETWORK_PHY_TIMESTAMPING=y | |||||||
| CONFIG_NETFILTER=y | CONFIG_NETFILTER=y | ||||||
| CONFIG_NETFILTER_ADVANCED=y | CONFIG_NETFILTER_ADVANCED=y | ||||||
| CONFIG_NF_CONNTRACK=m | CONFIG_NF_CONNTRACK=m | ||||||
|  | CONFIG_NETFILTER_INGRESS=y | ||||||
| CONFIG_NETFILTER_NETLINK=m | CONFIG_NETFILTER_NETLINK=m | ||||||
| CONFIG_NETFILTER_NETLINK_ACCT=m | CONFIG_NETFILTER_NETLINK_ACCT=m | ||||||
| CONFIG_NETFILTER_NETLINK_QUEUE=m | CONFIG_NETFILTER_NETLINK_QUEUE=m | ||||||
| @ -1032,6 +1038,7 @@ CONFIG_IP6_NF_TARGET_MASQUERADE=m | |||||||
| # nf_tables support | # nf_tables support | ||||||
| CONFIG_NF_TABLES=m | CONFIG_NF_TABLES=m | ||||||
| CONFIG_NF_TABLES_INET=m | CONFIG_NF_TABLES_INET=m | ||||||
|  | CONFIG_NF_TABLES_NETDEV=m | ||||||
| CONFIG_NFT_EXTHDR=m | CONFIG_NFT_EXTHDR=m | ||||||
| CONFIG_NFT_META=m | CONFIG_NFT_META=m | ||||||
| CONFIG_NFT_CT=m | CONFIG_NFT_CT=m | ||||||
| @ -1195,6 +1202,7 @@ CONFIG_NET_CLS_ACT=y | |||||||
| CONFIG_NET_CLS_BASIC=m | CONFIG_NET_CLS_BASIC=m | ||||||
| CONFIG_NET_CLS_CGROUP=y | CONFIG_NET_CLS_CGROUP=y | ||||||
| CONFIG_NET_CLS_BPF=m | CONFIG_NET_CLS_BPF=m | ||||||
|  | CONFIG_NET_CLS_FLOWER=m | ||||||
| CONFIG_NET_CLS_FLOW=m | CONFIG_NET_CLS_FLOW=m | ||||||
| CONFIG_NET_CLS_FW=m | CONFIG_NET_CLS_FW=m | ||||||
| CONFIG_NET_CLS_IND=y | CONFIG_NET_CLS_IND=y | ||||||
| @ -1375,6 +1383,8 @@ CONFIG_NET_VENDOR_BROCADE=y | |||||||
| CONFIG_BNA=m | CONFIG_BNA=m | ||||||
| CONFIG_NET_CALXEDA_XGMAC=m | CONFIG_NET_CALXEDA_XGMAC=m | ||||||
| 
 | 
 | ||||||
|  | # CONFIG_NET_VENDOR_CAVIUM is not set | ||||||
|  | 
 | ||||||
| CONFIG_NET_VENDOR_CHELSIO=y | CONFIG_NET_VENDOR_CHELSIO=y | ||||||
| CONFIG_CHELSIO_T1=m | CONFIG_CHELSIO_T1=m | ||||||
| CONFIG_CHELSIO_T1_1G=y | CONFIG_CHELSIO_T1_1G=y | ||||||
| @ -1413,12 +1423,14 @@ CONFIG_SUNDANCE=m | |||||||
| CONFIG_NET_VENDOR_EMULEX=y | CONFIG_NET_VENDOR_EMULEX=y | ||||||
| CONFIG_BE2NET=m | CONFIG_BE2NET=m | ||||||
| CONFIG_BE2NET_VXLAN=y | CONFIG_BE2NET_VXLAN=y | ||||||
|  | # CONFIG_BE2NET_HWMON is not set | ||||||
| 
 | 
 | ||||||
| CONFIG_NET_VENDOR_EXAR=y | CONFIG_NET_VENDOR_EXAR=y | ||||||
| CONFIG_S2IO=m | CONFIG_S2IO=m | ||||||
| CONFIG_VXGE=m | CONFIG_VXGE=m | ||||||
| # CONFIG_VXGE_DEBUG_TRACE_ALL is not set | # CONFIG_VXGE_DEBUG_TRACE_ALL is not set | ||||||
| 
 | 
 | ||||||
|  | # CONFIG_NET_VENDOR_EZCHIP is not set | ||||||
| # CONFIG_NET_VENDOR_FARADAY is not set | # CONFIG_NET_VENDOR_FARADAY is not set | ||||||
| # CONFIG_NET_VENDOR_FUJITSU is not set | # CONFIG_NET_VENDOR_FUJITSU is not set | ||||||
| # CONFIG_NET_VENDOR_HISILICON is not set | # CONFIG_NET_VENDOR_HISILICON is not set | ||||||
| @ -1510,6 +1522,8 @@ CONFIG_R8169=m | |||||||
| 
 | 
 | ||||||
| CONFIG_SH_ETH=m | CONFIG_SH_ETH=m | ||||||
| 
 | 
 | ||||||
|  | # CONFIG_NET_VENDOR_RENESAS is not set | ||||||
|  | 
 | ||||||
| CONFIG_NET_VENDOR_RDC=y | CONFIG_NET_VENDOR_RDC=y | ||||||
| CONFIG_R6040=m | CONFIG_R6040=m | ||||||
| 
 | 
 | ||||||
| @ -1586,6 +1600,7 @@ CONFIG_SMSC_PHY=m | |||||||
| CONFIG_STE10XP=m | CONFIG_STE10XP=m | ||||||
| CONFIG_VITESSE_PHY=m | CONFIG_VITESSE_PHY=m | ||||||
| CONFIG_MICREL_PHY=m | CONFIG_MICREL_PHY=m | ||||||
|  | CONFIG_DP83867_PHY=m | ||||||
| # CONFIG_MICREL_KS8995MA is not set | # CONFIG_MICREL_KS8995MA is not set | ||||||
| 
 | 
 | ||||||
| CONFIG_MII=m | CONFIG_MII=m | ||||||
| @ -1617,6 +1632,7 @@ CONFIG_JME=m | |||||||
| # CONFIG_IP1000 is not set | # CONFIG_IP1000 is not set | ||||||
| # CONFIG_MLX4_EN is not set | # CONFIG_MLX4_EN is not set | ||||||
| # CONFIG_MLX4_EN_VXLAN is not set | # CONFIG_MLX4_EN_VXLAN is not set | ||||||
|  | # CONFIG_MLX5_CORE is not set | ||||||
| # CONFIG_SFC is not set | # CONFIG_SFC is not set | ||||||
| 
 | 
 | ||||||
| # CONFIG_FDDI is not set | # CONFIG_FDDI is not set | ||||||
| @ -1802,6 +1818,8 @@ CONFIG_RSI_USB=m | |||||||
| CONFIG_RT2X00=m | CONFIG_RT2X00=m | ||||||
| CONFIG_RT2X00_LIB_DEBUGFS=y | CONFIG_RT2X00_LIB_DEBUGFS=y | ||||||
| # CONFIG_RT2X00_DEBUG is not set | # CONFIG_RT2X00_DEBUG is not set | ||||||
|  | CONFIG_WL_MEDIATEK=y | ||||||
|  | CONFIG_MT7601U=m | ||||||
| CONFIG_RT2400PCI=m | CONFIG_RT2400PCI=m | ||||||
| CONFIG_RT2500PCI=m | CONFIG_RT2500PCI=m | ||||||
| CONFIG_RT61PCI=m | CONFIG_RT61PCI=m | ||||||
| @ -1862,6 +1880,7 @@ CONFIG_IEEE802154_FAKELB=m | |||||||
| CONFIG_IEEE802154_CC2520=m | CONFIG_IEEE802154_CC2520=m | ||||||
| # CONFIG_IEEE802154_AT86RF230 is not set | # CONFIG_IEEE802154_AT86RF230 is not set | ||||||
| # CONFIG_IEEE802154_MRF24J40 is not set | # CONFIG_IEEE802154_MRF24J40 is not set | ||||||
|  | # CONFIG_IEEE802154_ATUSB is not set | ||||||
| 
 | 
 | ||||||
| CONFIG_MAC802154=m | CONFIG_MAC802154=m | ||||||
| CONFIG_NET_MPLS_GSO=m | CONFIG_NET_MPLS_GSO=m | ||||||
| @ -1944,6 +1963,8 @@ CONFIG_NFC_ST21NFCA_I2C=m | |||||||
| # CONFIG_NFC_ST21NFCB_I2C is not set | # CONFIG_NFC_ST21NFCB_I2C is not set | ||||||
| # CONFIG_NFC_NXP_NCI is not set | # CONFIG_NFC_NXP_NCI is not set | ||||||
| # CONFIG_NFC_NCI_SPI is not set | # CONFIG_NFC_NCI_SPI is not set | ||||||
|  | # CONFIG_NFC_NCI_UART is not set | ||||||
|  | # CONFIG_NFC_ST_NCI is not set | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # | # | ||||||
| @ -2009,6 +2030,7 @@ CONFIG_BT_HCIBTUSB=m | |||||||
| # Disable the BT_HCIUSB driver. | # Disable the BT_HCIUSB driver. | ||||||
| # It sucks more power than BT_HCIBTUSB which has the same functionality. | # It sucks more power than BT_HCIBTUSB which has the same functionality. | ||||||
| CONFIG_BT_HCIBTUSB_BCM=y | CONFIG_BT_HCIBTUSB_BCM=y | ||||||
|  | CONFIG_BT_HCIBTUSB_RTL=y | ||||||
| CONFIG_BT_HCIUART=m | CONFIG_BT_HCIUART=m | ||||||
| CONFIG_BT_HCIUART_H4=y | CONFIG_BT_HCIUART_H4=y | ||||||
| CONFIG_BT_HCIUART_BCSP=y | CONFIG_BT_HCIUART_BCSP=y | ||||||
| @ -2158,6 +2180,7 @@ CONFIG_GIGASET_M105=m | |||||||
| # Input device support | # Input device support | ||||||
| # | # | ||||||
| CONFIG_INPUT=y | CONFIG_INPUT=y | ||||||
|  | CONFIG_INPUT_LEDS=y | ||||||
| CONFIG_INPUT_FF_MEMLESS=m | CONFIG_INPUT_FF_MEMLESS=m | ||||||
| 
 | 
 | ||||||
| # | # | ||||||
| @ -2192,6 +2215,7 @@ CONFIG_INPUT_CMA3000=m | |||||||
| CONFIG_INPUT_CMA3000_I2C=m | CONFIG_INPUT_CMA3000_I2C=m | ||||||
| CONFIG_INPUT_IDEAPAD_SLIDEBAR=m | CONFIG_INPUT_IDEAPAD_SLIDEBAR=m | ||||||
| # CONFIG_INPUT_DRV260X_HAPTICS is not set | # CONFIG_INPUT_DRV260X_HAPTICS is not set | ||||||
|  | # CONFIG_INPUT_DRV2665_HAPTICS is not set | ||||||
| # CONFIG_INPUT_DRV2667_HAPTICS is not set | # CONFIG_INPUT_DRV2667_HAPTICS is not set | ||||||
| 
 | 
 | ||||||
| # | # | ||||||
| @ -2612,6 +2636,7 @@ CONFIG_CHARGER_SMB347=m | |||||||
| CONFIG_SENSORS_SMSC47M1=m | CONFIG_SENSORS_SMSC47M1=m | ||||||
| CONFIG_SENSORS_SMSC47M192=m | CONFIG_SENSORS_SMSC47M192=m | ||||||
| CONFIG_SENSORS_SMSC47B397=m | CONFIG_SENSORS_SMSC47B397=m | ||||||
|  | CONFIG_SENSORS_TC74=m | ||||||
| CONFIG_SENSORS_THMC50=m | CONFIG_SENSORS_THMC50=m | ||||||
| CONFIG_SENSORS_TMP401=m | CONFIG_SENSORS_TMP401=m | ||||||
| CONFIG_APDS9802ALS=m | CONFIG_APDS9802ALS=m | ||||||
| @ -4310,6 +4335,7 @@ CONFIG_F2FS_FS_POSIX_ACL=y | |||||||
| CONFIG_F2FS_FS_SECURITY=y | CONFIG_F2FS_FS_SECURITY=y | ||||||
| # CONFIG_F2FS_CHECK_FS is not set | # CONFIG_F2FS_CHECK_FS is not set | ||||||
| # CONFIG_F2FS_IO_TRACE is not set | # CONFIG_F2FS_IO_TRACE is not set | ||||||
|  | # CONFIG_F2FS_FS_ENCRYPTION is not set | ||||||
| 
 | 
 | ||||||
| # | # | ||||||
| # Network File Systems | # Network File Systems | ||||||
| @ -4672,6 +4698,15 @@ CONFIG_CRYPTO_DEV_HIFN_795X=m | |||||||
| CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y | CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y | ||||||
| CONFIG_CRYPTO_PCRYPT=m | CONFIG_CRYPTO_PCRYPT=m | ||||||
| CONFIG_CRYPTO_USER=m | CONFIG_CRYPTO_USER=m | ||||||
|  | CONFIG_CRYPTO_RSA=m | ||||||
|  | CONFIG_CRYPTO_CHACHA20POLY1305=m | ||||||
|  | CONFIG_CRYPTO_ECHAINIV=m | ||||||
|  | CONFIG_CRYPTO_POLY1305=m | ||||||
|  | CONFIG_CRYPTO_CHACHA20=m | ||||||
|  | CONFIG_CRYPTO_842=m | ||||||
|  | CONFIG_CRYPTO_DRBG_HASH=y | ||||||
|  | CONFIG_CRYPTO_DRBG_CTR=y | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -5093,6 +5128,10 @@ CONFIG_APM_POWER=m | |||||||
| # CONFIG_CHARGER_BQ2415X is not set | # CONFIG_CHARGER_BQ2415X is not set | ||||||
| # CONFIG_CHARGER_BQ24190 is not set | # CONFIG_CHARGER_BQ24190 is not set | ||||||
| # CONFIG_CHARGER_BQ24735 is not set | # CONFIG_CHARGER_BQ24735 is not set | ||||||
|  | # CONFIG_CHARGER_BQ24257 is not set | ||||||
|  | # CONFIG_CHARGER_BQ25890 is not set | ||||||
|  | # CONFIG_CHARGER_RT9455 is not set | ||||||
|  | 
 | ||||||
| CONFIG_POWER_RESET=y | CONFIG_POWER_RESET=y | ||||||
| # CONFIG_POWER_RESET_LTC2952 is not set | # CONFIG_POWER_RESET_LTC2952 is not set | ||||||
| # CONFIG_POWER_RESET_SYSCON is not set | # CONFIG_POWER_RESET_SYSCON is not set | ||||||
| @ -5308,12 +5347,16 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60 | |||||||
| CONFIG_RCU_TORTURE_TEST=m | CONFIG_RCU_TORTURE_TEST=m | ||||||
| # CONFIG_RCU_TORTURE_TEST_SLOW_INIT is not set | # CONFIG_RCU_TORTURE_TEST_SLOW_INIT is not set | ||||||
| CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 | CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 | ||||||
|  | # CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT is not set | ||||||
|  | # CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP is not set | ||||||
| # CONFIG_RCU_TRACE is not set | # CONFIG_RCU_TRACE is not set | ||||||
|  | # CONFIG_RCU_EQS_DEBUG is not set | ||||||
| # CONFIG_RCU_CPU_STALL_INFO is not set | # CONFIG_RCU_CPU_STALL_INFO is not set | ||||||
| # CONFIG_TASKS_RCU is not set | # CONFIG_TASKS_RCU is not set | ||||||
| # CONFIG_RCU_USER_QS is not set | # CONFIG_RCU_USER_QS is not set | ||||||
| CONFIG_RCU_KTHREAD_PRIO=0 | CONFIG_RCU_KTHREAD_PRIO=0 | ||||||
| CONFIG_SPARSE_RCU_POINTER=y | CONFIG_SPARSE_RCU_POINTER=y | ||||||
|  | # CONFIG_RCU_EXPERT is not set | ||||||
| 
 | 
 | ||||||
| # CONFIG_LIVEPATCH is not set | # CONFIG_LIVEPATCH is not set | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -282,6 +282,7 @@ CONFIG_SWIOTLB=y | |||||||
| # CONFIG_RDS is not set | # CONFIG_RDS is not set | ||||||
| 
 | 
 | ||||||
| CONFIG_PPC_DISABLE_WERROR=y | CONFIG_PPC_DISABLE_WERROR=y | ||||||
|  | # CONFIG_STRICT_MM_TYPECHECKS is not set | ||||||
| 
 | 
 | ||||||
| # CONFIG_XILINX_LL_TEMAC is not set | # CONFIG_XILINX_LL_TEMAC is not set | ||||||
| # CONFIG_XILINX_EMACLITE is not set | # CONFIG_XILINX_EMACLITE is not set | ||||||
|  | |||||||
| @ -11,6 +11,8 @@ CONFIG_PPC_MAPLE=y | |||||||
| CONFIG_PPC_PSERIES=y | CONFIG_PPC_PSERIES=y | ||||||
| CONFIG_PPC_PMAC=y | CONFIG_PPC_PMAC=y | ||||||
| CONFIG_PPC_POWERNV=y | CONFIG_PPC_POWERNV=y | ||||||
|  | CONFIG_OPAL_PRD=m | ||||||
|  | CONFIG_MTD_POWERNV_FLASH=m | ||||||
| CONFIG_SENSORS_IBMPOWERNV=y | CONFIG_SENSORS_IBMPOWERNV=y | ||||||
| CONFIG_HW_RANDOM_POWERNV=m | CONFIG_HW_RANDOM_POWERNV=m | ||||||
| CONFIG_POWERNV_CPUFREQ=m | CONFIG_POWERNV_CPUFREQ=m | ||||||
| @ -171,6 +173,9 @@ CONFIG_CRYPTO_DEV_NX=y | |||||||
| CONFIG_CRYPTO_842=m | CONFIG_CRYPTO_842=m | ||||||
| CONFIG_CRYPTO_DEV_NX_ENCRYPT=m | CONFIG_CRYPTO_DEV_NX_ENCRYPT=m | ||||||
| CONFIG_CRYPTO_DEV_NX_COMPRESS=m | CONFIG_CRYPTO_DEV_NX_COMPRESS=m | ||||||
|  | CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m | ||||||
|  | CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m | ||||||
|  | CONFIG_CRYPTO_DEV_NX_COMPRESS_CRYPTO=m | ||||||
| CONFIG_CRYPTO_DEV_VMX=y | CONFIG_CRYPTO_DEV_VMX=y | ||||||
| CONFIG_CRYPTO_DEV_VMX_ENCRYPT=y | CONFIG_CRYPTO_DEV_VMX_ENCRYPT=y | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -6,6 +6,8 @@ CONFIG_POWER7_CPU=y | |||||||
| CONFIG_PPC_PSERIES=y | CONFIG_PPC_PSERIES=y | ||||||
| # CONFIG_PPC_PMAC is not set | # CONFIG_PPC_PMAC is not set | ||||||
| CONFIG_PPC_POWERNV=y | CONFIG_PPC_POWERNV=y | ||||||
|  | CONFIG_OPAL_PRD=m | ||||||
|  | CONFIG_MTD_POWERNV_FLASH=m | ||||||
| CONFIG_HW_RANDOM_POWERNV=m | CONFIG_HW_RANDOM_POWERNV=m | ||||||
| CONFIG_SENSORS_IBMPOWERNV=y | CONFIG_SENSORS_IBMPOWERNV=y | ||||||
| CONFIG_POWERNV_CPUFREQ=m | CONFIG_POWERNV_CPUFREQ=m | ||||||
| @ -161,6 +163,9 @@ CONFIG_CRYPTO_DEV_NX=y | |||||||
| CONFIG_CRYPTO_842=m | CONFIG_CRYPTO_842=m | ||||||
| CONFIG_CRYPTO_DEV_NX_ENCRYPT=m | CONFIG_CRYPTO_DEV_NX_ENCRYPT=m | ||||||
| CONFIG_CRYPTO_DEV_NX_COMPRESS=m | CONFIG_CRYPTO_DEV_NX_COMPRESS=m | ||||||
|  | CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m | ||||||
|  | CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m | ||||||
|  | CONFIG_CRYPTO_DEV_NX_COMPRESS_CRYPTO=m | ||||||
| CONFIG_CRYPTO_DEV_VMX=y | CONFIG_CRYPTO_DEV_VMX=y | ||||||
| CONFIG_CRYPTO_DEV_VMX_ENCRYPT=y | CONFIG_CRYPTO_DEV_VMX_ENCRYPT=y | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -554,3 +554,6 @@ CONFIG_VMXNET3=m | |||||||
| CONFIG_VFIO_PCI_VGA=y | CONFIG_VFIO_PCI_VGA=y | ||||||
| 
 | 
 | ||||||
| # CONFIG_NTB is not set | # CONFIG_NTB is not set | ||||||
|  | 
 | ||||||
|  | # CONFIG_X86_DEBUG_FPU is not set | ||||||
|  | # CONFIG_PUNIT_ATOM_DEBUG is not set | ||||||
|  | |||||||
| @ -177,6 +177,7 @@ CONFIG_SFC=m | |||||||
| CONFIG_SFC_MCDI_MON=y | CONFIG_SFC_MCDI_MON=y | ||||||
| CONFIG_SFC_SRIOV=y | CONFIG_SFC_SRIOV=y | ||||||
| CONFIG_SFC_MTD=y | CONFIG_SFC_MTD=y | ||||||
|  | # CONFIG_SFC_MCDI_LOGGING is not set | ||||||
| # Override MTD stuff because SFC_MTD needs it | # Override MTD stuff because SFC_MTD needs it | ||||||
| CONFIG_MTD_BLOCK=m | CONFIG_MTD_BLOCK=m | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -9,10 +9,10 @@ Upstream-status: Fedora mustard | |||||||
|  1 file changed, 2 insertions(+), 2 deletions(-) |  1 file changed, 2 insertions(+), 2 deletions(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/init/Kconfig b/init/Kconfig
 | diff --git a/init/Kconfig b/init/Kconfig
 | ||||||
| index 1c9c8e500a48..6d00970e220e 100644
 | index f3e3a0d45d40..41765c00d633 100644
 | ||||||
| --- a/init/Kconfig
 | --- a/init/Kconfig
 | ||||||
| +++ b/init/Kconfig
 | +++ b/init/Kconfig
 | ||||||
| @@ -1144,7 +1144,7 @@ config DEBUG_BLK_CGROUP
 | @@ -1130,7 +1130,7 @@ config DEBUG_BLK_CGROUP
 | ||||||
|  endif # CGROUPS |  endif # CGROUPS | ||||||
|   |   | ||||||
|  config CHECKPOINT_RESTORE |  config CHECKPOINT_RESTORE | ||||||
| @ -21,7 +21,7 @@ index 1c9c8e500a48..6d00970e220e 100644 | |||||||
|  	default n |  	default n | ||||||
|  	help |  	help | ||||||
|  	  Enables additional kernel features in a sake of checkpoint/restore. |  	  Enables additional kernel features in a sake of checkpoint/restore. | ||||||
| @@ -1155,7 +1155,7 @@ config CHECKPOINT_RESTORE
 | @@ -1141,7 +1141,7 @@ config CHECKPOINT_RESTORE
 | ||||||
|  	  If unsure, say N here. |  	  If unsure, say N here. | ||||||
|   |   | ||||||
|  menuconfig NAMESPACES |  menuconfig NAMESPACES | ||||||
|  | |||||||
| @ -12,10 +12,10 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> | |||||||
|  2 files changed, 3 insertions(+) |  2 files changed, 3 insertions(+) | ||||||
| 
 | 
 | ||||||
| diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
 | diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
 | ||||||
| index 88dad730e858..d99c8c38914f 100644
 | index d3071ca120eb..9bcd51050511 100644
 | ||||||
| --- a/arch/x86/kernel/setup.c
 | --- a/arch/x86/kernel/setup.c
 | ||||||
| +++ b/arch/x86/kernel/setup.c
 | +++ b/arch/x86/kernel/setup.c
 | ||||||
| @@ -1158,7 +1158,9 @@ void __init setup_arch(char **cmdline_p)
 | @@ -1163,7 +1163,9 @@ void __init setup_arch(char **cmdline_p)
 | ||||||
|   |   | ||||||
|  #ifdef CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE |  #ifdef CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE | ||||||
|  	if (boot_params.secure_boot) { |  	if (boot_params.secure_boot) { | ||||||
| @ -26,10 +26,10 @@ index 88dad730e858..d99c8c38914f 100644 | |||||||
|  #endif |  #endif | ||||||
|   |   | ||||||
| diff --git a/include/linux/efi.h b/include/linux/efi.h
 | diff --git a/include/linux/efi.h b/include/linux/efi.h
 | ||||||
| index af5be0368dec..aa4ee20ec8bb 100644
 | index 5f19efe4eb3f..13a3a411c65f 100644
 | ||||||
| --- a/include/linux/efi.h
 | --- a/include/linux/efi.h
 | ||||||
| +++ b/include/linux/efi.h
 | +++ b/include/linux/efi.h
 | ||||||
| @@ -943,6 +943,7 @@ extern int __init efi_setup_pcdp_console(char *);
 | @@ -958,6 +958,7 @@ extern int __init efi_setup_pcdp_console(char *);
 | ||||||
|  #define EFI_PARAVIRT		6	/* Access is via a paravirt interface */ |  #define EFI_PARAVIRT		6	/* Access is via a paravirt interface */ | ||||||
|  #define EFI_ARCH_1		7	/* First arch-specific bit */ |  #define EFI_ARCH_1		7	/* First arch-specific bit */ | ||||||
|  #define EFI_DBG			8	/* Print additional debug info at runtime */ |  #define EFI_DBG			8	/* Print additional debug info at runtime */ | ||||||
|  | |||||||
| @ -1,780 +0,0 @@ | |||||||
| From: Peter Jones <pjones@redhat.com> |  | ||||||
| Date: Tue, 18 Nov 2014 10:18:22 -0500 |  | ||||||
| Subject: [PATCH] efi: Add esrt support. |  | ||||||
| 
 |  | ||||||
| Add sysfs files for the EFI System Resource Table (ESRT) under |  | ||||||
| /sys/firmware/efi/esrt and for each EFI System Resource Entry under |  | ||||||
| entries/ as a subdir. |  | ||||||
| 
 |  | ||||||
| The EFI System Resource Table (ESRT) provides a read-only catalog of |  | ||||||
| system components for which the system accepts firmware upgrades via |  | ||||||
| UEFI's "Capsule Update" feature.  This module allows userland utilities |  | ||||||
| to evaluate what firmware updates can be applied to this system, and |  | ||||||
| potentially arrange for those updates to occur. |  | ||||||
| 
 |  | ||||||
| The ESRT is described as part of the UEFI specification, in version 2.5 |  | ||||||
| which should be available from http://uefi.org/specifications in early |  | ||||||
| 2015.  If you're a member of the UEFI Forum, information about its |  | ||||||
| addition to the standard is available as UEFI Mantis 1090. |  | ||||||
| 
 |  | ||||||
| For some hardware platforms, additional restrictions may be found at |  | ||||||
| http://msdn.microsoft.com/en-us/library/windows/hardware/jj128256.aspx , |  | ||||||
| and additional documentation may be found at |  | ||||||
| http://download.microsoft.com/download/5/F/5/5F5D16CD-2530-4289-8019-94C6A20BED3C/windows-uefi-firmware-update-platform.docx |  | ||||||
| . |  | ||||||
| 
 |  | ||||||
| Signed-off-by: Peter Jones <pjones@redhat.com> |  | ||||||
| ---
 |  | ||||||
|  Documentation/ABI/testing/sysfs-firmware-efi-esrt |  81 ++++ |  | ||||||
|  arch/x86/platform/efi/efi.c                       |   2 + |  | ||||||
|  drivers/firmware/efi/Makefile                     |   2 +- |  | ||||||
|  drivers/firmware/efi/efi.c                        |  82 +++- |  | ||||||
|  drivers/firmware/efi/esrt.c                       | 464 ++++++++++++++++++++++ |  | ||||||
|  include/linux/efi.h                               |   8 + |  | ||||||
|  6 files changed, 637 insertions(+), 2 deletions(-) |  | ||||||
|  create mode 100644 Documentation/ABI/testing/sysfs-firmware-efi-esrt |  | ||||||
|  create mode 100644 drivers/firmware/efi/esrt.c |  | ||||||
| 
 |  | ||||||
| diff --git a/Documentation/ABI/testing/sysfs-firmware-efi-esrt b/Documentation/ABI/testing/sysfs-firmware-efi-esrt
 |  | ||||||
| new file mode 100644 |  | ||||||
| index 000000000000..6e431d1a4e79
 |  | ||||||
| --- /dev/null
 |  | ||||||
| +++ b/Documentation/ABI/testing/sysfs-firmware-efi-esrt
 |  | ||||||
| @@ -0,0 +1,81 @@
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	Provides userland access to read the EFI System Resource Table
 |  | ||||||
| +		(ESRT), a catalog of firmware for which can be updated with
 |  | ||||||
| +		the UEFI UpdateCapsule mechanism described in section 7.5 of
 |  | ||||||
| +		the UEFI Standard.
 |  | ||||||
| +Users:		fwupdate - https://github.com/rhinstaller/fwupdate
 |  | ||||||
| +
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/fw_resource_count
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	The number of entries in the ESRT
 |  | ||||||
| +
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/fw_resource_count_max
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	The maximum number of entries that /could/ be registered
 |  | ||||||
| +		in the allocation the table is currently in.  This is
 |  | ||||||
| +		really only useful to the system firmware itself.
 |  | ||||||
| +
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/fw_resource_version
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	The version of the ESRT structure provided by the firmware.
 |  | ||||||
| +
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/entries/entry$N/
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	Each ESRT entry is identified by a GUID, and each gets a
 |  | ||||||
| +		subdirectory under entries/ .
 |  | ||||||
| +		example: /sys/firmware/efi/esrt/entries/entry0/
 |  | ||||||
| +
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/entries/entry$N/fw_type
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	What kind of firmware entry this is:
 |  | ||||||
| +		0 - Unknown
 |  | ||||||
| +		1 - System Firmware
 |  | ||||||
| +		2 - Device Firmware
 |  | ||||||
| +		3 - UEFI Driver
 |  | ||||||
| +
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/entries/entry$N/fw_class
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	This is the entry's guid, and will match the directory name.
 |  | ||||||
| +
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/entries/entry$N/fw_version
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	The version of the firmware currently installed.  This is a
 |  | ||||||
| +		32-bit unsigned integer.
 |  | ||||||
| +
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/entries/entry$N/lowest_supported_fw_version
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	The lowest version of the firmware that can be installed.
 |  | ||||||
| +
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/entries/entry$N/capsule_flags
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	Flags that must be passed to UpdateCapsule()
 |  | ||||||
| +
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/entries/entry$N/last_attempt_version
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	The last firmware version for which an update was attempted.
 |  | ||||||
| +
 |  | ||||||
| +What:		/sys/firmware/efi/esrt/entries/entry$N/last_attempt_status
 |  | ||||||
| +Date:		February 2015
 |  | ||||||
| +Contact:	Peter Jones <pjones@redhat.com>
 |  | ||||||
| +Description:	The result of the last firmware update attempt for the
 |  | ||||||
| +		firmware resource entry.
 |  | ||||||
| +		0 - Success
 |  | ||||||
| +		1 - Insufficient resources
 |  | ||||||
| +		2 - Incorrect version
 |  | ||||||
| +		3 - Invalid format
 |  | ||||||
| +		4 - Authentication error
 |  | ||||||
| +		5 - AC power event
 |  | ||||||
| +		6 - Battery power event
 |  | ||||||
| +
 |  | ||||||
| diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
 |  | ||||||
| index 02744df576d5..3b984c3aa1b0 100644
 |  | ||||||
| --- a/arch/x86/platform/efi/efi.c
 |  | ||||||
| +++ b/arch/x86/platform/efi/efi.c
 |  | ||||||
| @@ -501,6 +501,8 @@ void __init efi_init(void)
 |  | ||||||
|   |  | ||||||
|  	if (efi_enabled(EFI_DBG)) |  | ||||||
|  		print_efi_memmap(); |  | ||||||
| +
 |  | ||||||
| +	efi_esrt_init();
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  void __init efi_late_init(void) |  | ||||||
| diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile
 |  | ||||||
| index d8be608a9f3b..26eabbc55341 100644
 |  | ||||||
| --- a/drivers/firmware/efi/Makefile
 |  | ||||||
| +++ b/drivers/firmware/efi/Makefile
 |  | ||||||
| @@ -1,7 +1,7 @@
 |  | ||||||
|  # |  | ||||||
|  # Makefile for linux kernel |  | ||||||
|  # |  | ||||||
| -obj-$(CONFIG_EFI)			+= efi.o vars.o reboot.o
 |  | ||||||
| +obj-$(CONFIG_EFI)			+= efi.o esrt.o vars.o reboot.o
 |  | ||||||
|  obj-$(CONFIG_EFI_VARS)			+= efivars.o |  | ||||||
|  obj-$(CONFIG_EFI_VARS_PSTORE)		+= efi-pstore.o |  | ||||||
|  obj-$(CONFIG_UEFI_CPER)			+= cper.o |  | ||||||
| diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
 |  | ||||||
| index 3061bb8629dc..48b4c356740f 100644
 |  | ||||||
| --- a/drivers/firmware/efi/efi.c
 |  | ||||||
| +++ b/drivers/firmware/efi/efi.c
 |  | ||||||
| @@ -39,6 +39,7 @@ struct efi __read_mostly efi = {
 |  | ||||||
|  	.fw_vendor  = EFI_INVALID_TABLE_ADDR, |  | ||||||
|  	.runtime    = EFI_INVALID_TABLE_ADDR, |  | ||||||
|  	.config_table  = EFI_INVALID_TABLE_ADDR, |  | ||||||
| +	.esrt       = EFI_INVALID_TABLE_ADDR,
 |  | ||||||
|  }; |  | ||||||
|  EXPORT_SYMBOL(efi); |  | ||||||
|   |  | ||||||
| @@ -64,7 +65,7 @@ static int __init parse_efi_cmdline(char *str)
 |  | ||||||
|  } |  | ||||||
|  early_param("efi", parse_efi_cmdline); |  | ||||||
|   |  | ||||||
| -static struct kobject *efi_kobj;
 |  | ||||||
| +struct kobject *efi_kobj;
 |  | ||||||
|  static struct kobject *efivars_kobj; |  | ||||||
|   |  | ||||||
|  /* |  | ||||||
| @@ -232,6 +233,84 @@ err_put:
 |  | ||||||
|   |  | ||||||
|  subsys_initcall(efisubsys_init); |  | ||||||
|   |  | ||||||
| +/*
 |  | ||||||
| + * Find the efi memory descriptor for a given physical address.  Given a
 |  | ||||||
| + * physicall address, determine if it exists within an EFI Memory Map entry,
 |  | ||||||
| + * and if so, populate the supplied memory descriptor with the appropriate
 |  | ||||||
| + * data.
 |  | ||||||
| + */
 |  | ||||||
| +int __init efi_mem_desc_lookup(u64 phys_addr, efi_memory_desc_t *out_md)
 |  | ||||||
| +{
 |  | ||||||
| +	struct efi_memory_map *map = efi.memmap;
 |  | ||||||
| +	void *p, *e;
 |  | ||||||
| +
 |  | ||||||
| +	if (!efi_enabled(EFI_MEMMAP)) {
 |  | ||||||
| +		pr_err_once("EFI_MEMMAP is not enabled.\n");
 |  | ||||||
| +		return -EINVAL;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	if (!map) {
 |  | ||||||
| +		pr_err_once("efi.memmap is not set.\n");
 |  | ||||||
| +		return -EINVAL;
 |  | ||||||
| +	}
 |  | ||||||
| +	if (!out_md) {
 |  | ||||||
| +		pr_err_once("out_md is null.\n");
 |  | ||||||
| +		return -EINVAL;
 |  | ||||||
| +        }
 |  | ||||||
| +	if (WARN_ON_ONCE(!map->phys_map))
 |  | ||||||
| +		return -EINVAL;
 |  | ||||||
| +	if (WARN_ON_ONCE(map->nr_map == 0) || WARN_ON_ONCE(map->desc_size == 0))
 |  | ||||||
| +		return -EINVAL;
 |  | ||||||
| +
 |  | ||||||
| +	e = map->phys_map + map->nr_map * map->desc_size;
 |  | ||||||
| +	for (p = map->phys_map; p < e; p += map->desc_size) {
 |  | ||||||
| +		efi_memory_desc_t *md;
 |  | ||||||
| +		u64 size;
 |  | ||||||
| +		u64 end;
 |  | ||||||
| +
 |  | ||||||
| +		/*
 |  | ||||||
| +		 * If a driver calls this after efi_free_boot_services,
 |  | ||||||
| +		 * ->map will be NULL, and the target may also not be mapped.
 |  | ||||||
| +		 * So just always get our own virtual map on the CPU.
 |  | ||||||
| +		 *
 |  | ||||||
| +		 */
 |  | ||||||
| +		md = early_memremap((phys_addr_t)p, sizeof (*md));
 |  | ||||||
| +		if (!md) {
 |  | ||||||
| +			pr_err_once("early_memremap(%p, %zu) failed.\n",
 |  | ||||||
| +				    p, sizeof (*md));
 |  | ||||||
| +			return -ENOMEM;
 |  | ||||||
| +		}
 |  | ||||||
| +
 |  | ||||||
| +		if (!(md->attribute & EFI_MEMORY_RUNTIME) &&
 |  | ||||||
| +		    md->type != EFI_BOOT_SERVICES_DATA &&
 |  | ||||||
| +		    md->type != EFI_RUNTIME_SERVICES_DATA) {
 |  | ||||||
| +			early_memunmap(md, sizeof (*md));
 |  | ||||||
| +			continue;
 |  | ||||||
| +		}
 |  | ||||||
| +
 |  | ||||||
| +		size = md->num_pages << EFI_PAGE_SHIFT;
 |  | ||||||
| +		end = md->phys_addr + size;
 |  | ||||||
| +		if (phys_addr >= md->phys_addr && phys_addr < end) {
 |  | ||||||
| +			memcpy(out_md, md, sizeof(*out_md));
 |  | ||||||
| +			early_memunmap(md, sizeof (*md));
 |  | ||||||
| +			return 0;
 |  | ||||||
| +		}
 |  | ||||||
| +
 |  | ||||||
| +		early_memunmap(md, sizeof (*md));
 |  | ||||||
| +	}
 |  | ||||||
| +	pr_err_once("requested map not found.\n");
 |  | ||||||
| +	return -ENOENT;
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +/*
 |  | ||||||
| + * Calculate the highest address of an efi memory descriptor.
 |  | ||||||
| + */
 |  | ||||||
| +u64 __init efi_mem_desc_end(efi_memory_desc_t *md)
 |  | ||||||
| +{
 |  | ||||||
| +	u64 size = md->num_pages << EFI_PAGE_SHIFT;
 |  | ||||||
| +	u64 end = md->phys_addr + size;
 |  | ||||||
| +	return end;
 |  | ||||||
| +}
 |  | ||||||
|   |  | ||||||
|  /* |  | ||||||
|   * We can't ioremap data in EFI boot services RAM, because we've already mapped |  | ||||||
| @@ -274,6 +353,7 @@ static __initdata efi_config_table_type_t common_tables[] = {
 |  | ||||||
|  	{SMBIOS_TABLE_GUID, "SMBIOS", &efi.smbios}, |  | ||||||
|  	{SMBIOS3_TABLE_GUID, "SMBIOS 3.0", &efi.smbios3}, |  | ||||||
|  	{UGA_IO_PROTOCOL_GUID, "UGA", &efi.uga}, |  | ||||||
| +	{EFI_SYSTEM_RESOURCE_TABLE_GUID, "ESRT", &efi.esrt},
 |  | ||||||
|  	{NULL_GUID, NULL, NULL}, |  | ||||||
|  }; |  | ||||||
|   |  | ||||||
| diff --git a/drivers/firmware/efi/esrt.c b/drivers/firmware/efi/esrt.c
 |  | ||||||
| new file mode 100644 |  | ||||||
| index 000000000000..20c0cbdb1c60
 |  | ||||||
| --- /dev/null
 |  | ||||||
| +++ b/drivers/firmware/efi/esrt.c
 |  | ||||||
| @@ -0,0 +1,464 @@
 |  | ||||||
| +/*
 |  | ||||||
| + * esrt.c
 |  | ||||||
| + *
 |  | ||||||
| + * This module exports EFI System Resource Table (ESRT) entries into userspace
 |  | ||||||
| + * through the sysfs file system. The ESRT provides a read-only catalog of
 |  | ||||||
| + * system components for which the system accepts firmware upgrades via UEFI's
 |  | ||||||
| + * "Capsule Update" feature. This module allows userland utilities to evaluate
 |  | ||||||
| + * what firmware updates can be applied to this system, and potentially arrange
 |  | ||||||
| + * for those updates to occur.
 |  | ||||||
| + *
 |  | ||||||
| + * Data is currently found below /sys/firmware/efi/esrt/...
 |  | ||||||
| + */
 |  | ||||||
| +#define pr_fmt(fmt) "esrt: " fmt
 |  | ||||||
| +
 |  | ||||||
| +#include <linux/capability.h>
 |  | ||||||
| +#include <linux/device.h>
 |  | ||||||
| +#include <linux/efi.h>
 |  | ||||||
| +#include <linux/init.h>
 |  | ||||||
| +#include <linux/kernel.h>
 |  | ||||||
| +#include <linux/kobject.h>
 |  | ||||||
| +#include <linux/list.h>
 |  | ||||||
| +#include <linux/memblock.h>
 |  | ||||||
| +#include <linux/module.h>
 |  | ||||||
| +#include <linux/slab.h>
 |  | ||||||
| +#include <linux/types.h>
 |  | ||||||
| +
 |  | ||||||
| +#include <asm/io.h>
 |  | ||||||
| +#include <asm/early_ioremap.h>
 |  | ||||||
| +
 |  | ||||||
| +struct efi_system_resource_entry_v1 {
 |  | ||||||
| +	efi_guid_t	fw_class;
 |  | ||||||
| +	u32		fw_type;
 |  | ||||||
| +	u32		fw_version;
 |  | ||||||
| +	u32		lowest_supported_fw_version;
 |  | ||||||
| +	u32		capsule_flags;
 |  | ||||||
| +	u32		last_attempt_version;
 |  | ||||||
| +	u32		last_attempt_status;
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +/*
 |  | ||||||
| + * _count and _version are what they seem like.  _max is actually just
 |  | ||||||
| + * accounting info for the firmware when creating the table; it should never
 |  | ||||||
| + * have been exposed to us.  To wit, the spec says:
 |  | ||||||
| + * The maximum number of resource array entries that can be within the
 |  | ||||||
| + * table without reallocating the table, must not be zero.
 |  | ||||||
| + * Since there's no guidance about what that means in terms of memory layout,
 |  | ||||||
| + * it means nothing to us.
 |  | ||||||
| + */
 |  | ||||||
| +struct efi_system_resource_table {
 |  | ||||||
| +	u32	fw_resource_count;
 |  | ||||||
| +	u32	fw_resource_count_max;
 |  | ||||||
| +	u64	fw_resource_version;
 |  | ||||||
| +	u8	entries[];
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +static phys_addr_t esrt_data;
 |  | ||||||
| +static size_t esrt_data_size;
 |  | ||||||
| +
 |  | ||||||
| +static struct efi_system_resource_table *esrt;
 |  | ||||||
| +
 |  | ||||||
| +struct esre_entry {
 |  | ||||||
| +	union {
 |  | ||||||
| +		struct efi_system_resource_entry_v1 *esre1;
 |  | ||||||
| +	} esre;
 |  | ||||||
| +
 |  | ||||||
| +	struct kobject kobj;
 |  | ||||||
| +	struct list_head list;
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +/* global list of esre_entry. */
 |  | ||||||
| +static LIST_HEAD(entry_list);
 |  | ||||||
| +
 |  | ||||||
| +/* entry attribute */
 |  | ||||||
| +struct esre_attribute {
 |  | ||||||
| +	struct attribute attr;
 |  | ||||||
| +	ssize_t (*show)(struct esre_entry *entry, char *buf);
 |  | ||||||
| +	ssize_t (*store)(struct esre_entry *entry,
 |  | ||||||
| +			 const char *buf, size_t count);
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +static struct esre_entry *to_entry(struct kobject *kobj)
 |  | ||||||
| +{
 |  | ||||||
| +	return container_of(kobj, struct esre_entry, kobj);
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +static struct esre_attribute *to_attr(struct attribute *attr)
 |  | ||||||
| +{
 |  | ||||||
| +	return container_of(attr, struct esre_attribute, attr);
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +static ssize_t esre_attr_show(struct kobject *kobj,
 |  | ||||||
| +			      struct attribute *_attr, char *buf)
 |  | ||||||
| +{
 |  | ||||||
| +	struct esre_entry *entry = to_entry(kobj);
 |  | ||||||
| +	struct esre_attribute *attr = to_attr(_attr);
 |  | ||||||
| +
 |  | ||||||
| +	/* Don't tell normal users what firmware versions we've got... */
 |  | ||||||
| +	if (!capable(CAP_SYS_ADMIN))
 |  | ||||||
| +		return -EACCES;
 |  | ||||||
| +
 |  | ||||||
| +	return attr->show(entry, buf);
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +static const struct sysfs_ops esre_attr_ops = {
 |  | ||||||
| +	.show = esre_attr_show,
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +/* Generic ESRT Entry ("ESRE") support. */
 |  | ||||||
| +static ssize_t esre_fw_class_show(struct esre_entry *entry, char *buf)
 |  | ||||||
| +{
 |  | ||||||
| +	char *str = buf;
 |  | ||||||
| +
 |  | ||||||
| +	efi_guid_to_str(&entry->esre.esre1->fw_class, str);
 |  | ||||||
| +	str += strlen(str);
 |  | ||||||
| +	str += sprintf(str, "\n");
 |  | ||||||
| +
 |  | ||||||
| +	return str - buf;
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +static struct esre_attribute esre_fw_class = __ATTR(fw_class, 0400,
 |  | ||||||
| +	esre_fw_class_show, NULL);
 |  | ||||||
| +
 |  | ||||||
| +#define esre_attr_decl(name, size, fmt) \
 |  | ||||||
| +static ssize_t esre_##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)
 |  | ||||||
| +
 |  | ||||||
| +esre_attr_decl(fw_type, 32, "%u");
 |  | ||||||
| +esre_attr_decl(fw_version, 32, "%u");
 |  | ||||||
| +esre_attr_decl(lowest_supported_fw_version, 32, "%u");
 |  | ||||||
| +esre_attr_decl(capsule_flags, 32, "0x%x");
 |  | ||||||
| +esre_attr_decl(last_attempt_version, 32, "%u");
 |  | ||||||
| +esre_attr_decl(last_attempt_status, 32, "%u");
 |  | ||||||
| +
 |  | ||||||
| +static struct attribute *esre1_attrs[] = {
 |  | ||||||
| +	&esre_fw_class.attr,
 |  | ||||||
| +	&esre_fw_type.attr,
 |  | ||||||
| +	&esre_fw_version.attr,
 |  | ||||||
| +	&esre_lowest_supported_fw_version.attr,
 |  | ||||||
| +	&esre_capsule_flags.attr,
 |  | ||||||
| +	&esre_last_attempt_version.attr,
 |  | ||||||
| +	&esre_last_attempt_status.attr,
 |  | ||||||
| +	NULL
 |  | ||||||
| +};
 |  | ||||||
| +static void esre_release(struct kobject *kobj)
 |  | ||||||
| +{
 |  | ||||||
| +	struct esre_entry *entry = to_entry(kobj);
 |  | ||||||
| +
 |  | ||||||
| +	list_del(&entry->list);
 |  | ||||||
| +	kfree(entry);
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +static struct kobj_type esre1_ktype = {
 |  | ||||||
| +	.release = esre_release,
 |  | ||||||
| +	.sysfs_ops = &esre_attr_ops,
 |  | ||||||
| +	.default_attrs = esre1_attrs,
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +
 |  | ||||||
| +static struct kobject *esrt_kobj;
 |  | ||||||
| +static struct kset *esrt_kset;
 |  | ||||||
| +
 |  | ||||||
| +static int esre_create_sysfs_entry(void *esre, int entry_num)
 |  | ||||||
| +{
 |  | ||||||
| +	int rc = 0;
 |  | ||||||
| +	struct esre_entry *entry;
 |  | ||||||
| +	char name[20];
 |  | ||||||
| +
 |  | ||||||
| +	entry = kzalloc(sizeof(*entry), GFP_KERNEL);
 |  | ||||||
| +	if (!entry)
 |  | ||||||
| +		return -ENOMEM;
 |  | ||||||
| +
 |  | ||||||
| +	sprintf(name, "entry%d", entry_num);
 |  | ||||||
| +
 |  | ||||||
| +	entry->kobj.kset = esrt_kset;
 |  | ||||||
| +
 |  | ||||||
| +	if (esrt->fw_resource_version == 1) {
 |  | ||||||
| +		entry->esre.esre1 = esre;
 |  | ||||||
| +		rc = kobject_init_and_add(&entry->kobj, &esre1_ktype, NULL,
 |  | ||||||
| +					  "%s", name);
 |  | ||||||
| +	}
 |  | ||||||
| +	if (rc) {
 |  | ||||||
| +		kfree(entry);
 |  | ||||||
| +		return rc;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	list_add_tail(&entry->list, &entry_list);
 |  | ||||||
| +	return 0;
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +/* 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, \
 |  | ||||||
| +				  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)
 |  | ||||||
| +
 |  | ||||||
| +esrt_attr_decl(fw_resource_count, 32, "%u");
 |  | ||||||
| +esrt_attr_decl(fw_resource_count_max, 32, "%u");
 |  | ||||||
| +esrt_attr_decl(fw_resource_version, 64, "%llu");
 |  | ||||||
| +
 |  | ||||||
| +static struct attribute *esrt_attrs[] = {
 |  | ||||||
| +	&esrt_fw_resource_count.attr,
 |  | ||||||
| +	&esrt_fw_resource_count_max.attr,
 |  | ||||||
| +	&esrt_fw_resource_version.attr,
 |  | ||||||
| +	NULL,
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +static inline int esrt_table_exists(void)
 |  | ||||||
| +{
 |  | ||||||
| +	if (!efi_enabled(EFI_CONFIG_TABLES))
 |  | ||||||
| +		return 0;
 |  | ||||||
| +	if (efi.esrt == EFI_INVALID_TABLE_ADDR)
 |  | ||||||
| +		return 0;
 |  | ||||||
| +	return 1;
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +static umode_t esrt_attr_is_visible(struct kobject *kobj,
 |  | ||||||
| +				    struct attribute *attr, int n)
 |  | ||||||
| +{
 |  | ||||||
| +	if (!esrt_table_exists())
 |  | ||||||
| +		return 0;
 |  | ||||||
| +	return attr->mode;
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +static struct attribute_group esrt_attr_group = {
 |  | ||||||
| +	.attrs = esrt_attrs,
 |  | ||||||
| +	.is_visible = esrt_attr_is_visible,
 |  | ||||||
| +};
 |  | ||||||
| +
 |  | ||||||
| +/*
 |  | ||||||
| + * remap the table, copy it to kmalloced pages, and unmap it.
 |  | ||||||
| + */
 |  | ||||||
| +void __init efi_esrt_init(void)
 |  | ||||||
| +{
 |  | ||||||
| +	void *va;
 |  | ||||||
| +	struct efi_system_resource_table tmpesrt;
 |  | ||||||
| +	struct efi_system_resource_entry_v1 *v1_entries;
 |  | ||||||
| +	size_t size, max, entry_size, entries_size;
 |  | ||||||
| +	efi_memory_desc_t md;
 |  | ||||||
| +	int rc;
 |  | ||||||
| +
 |  | ||||||
| +	pr_debug("esrt-init: loading.\n");
 |  | ||||||
| +	if (!esrt_table_exists())
 |  | ||||||
| +		return;
 |  | ||||||
| +
 |  | ||||||
| +	rc = efi_mem_desc_lookup(efi.esrt, &md);
 |  | ||||||
| +	if (rc < 0) {
 |  | ||||||
| +		pr_err("ESRT header is not in the memory map.\n");
 |  | ||||||
| +		return;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	max = efi_mem_desc_end(&md);
 |  | ||||||
| +	if (max < efi.esrt) {
 |  | ||||||
| +		pr_err("EFI memory descriptor is invalid. (esrt: %p max: %p)\n",
 |  | ||||||
| +		       (void *)efi.esrt, (void *)max);
 |  | ||||||
| +		return;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	size = sizeof(*esrt);
 |  | ||||||
| +	max -= efi.esrt;
 |  | ||||||
| +
 |  | ||||||
| +	if (max < size) {
 |  | ||||||
| +		pr_err("ESRT header doen't fit on single memory map entry. (size: %zu max: %zu)\n",
 |  | ||||||
| +		       size, max);
 |  | ||||||
| +		return;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	va = early_memremap(efi.esrt, size);
 |  | ||||||
| +	if (!va) {
 |  | ||||||
| +		pr_err("early_memremap(%p, %zu) failed.\n", (void *)efi.esrt,
 |  | ||||||
| +		       size);
 |  | ||||||
| +		return;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	memcpy(&tmpesrt, va, sizeof(tmpesrt));
 |  | ||||||
| +
 |  | ||||||
| +	if (tmpesrt.fw_resource_version == 1) {
 |  | ||||||
| +		entry_size = sizeof (*v1_entries);
 |  | ||||||
| +	} else {
 |  | ||||||
| +		pr_err("Unsupported ESRT version %lld.\n",
 |  | ||||||
| +		       tmpesrt.fw_resource_version);
 |  | ||||||
| +		return;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	if (tmpesrt.fw_resource_count > 0 && max - size < entry_size) {
 |  | ||||||
| +		pr_err("ESRT memory map entry can only hold the header. (max: %zu size: %zu)\n",
 |  | ||||||
| +		       max - size, entry_size);
 |  | ||||||
| +		goto err_memunmap;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	/*
 |  | ||||||
| +	 * The format doesn't really give us any boundary to test here,
 |  | ||||||
| +	 * so I'm making up 128 as the max number of individually updatable
 |  | ||||||
| +	 * components we support.
 |  | ||||||
| +	 * 128 should be pretty excessive, but there's still some chance
 |  | ||||||
| +	 * somebody will do that someday and we'll need to raise this.
 |  | ||||||
| +	 */
 |  | ||||||
| +	if (tmpesrt.fw_resource_count > 128) {
 |  | ||||||
| +		pr_err("ESRT says fw_resource_count has very large value %d.\n",
 |  | ||||||
| +		       tmpesrt.fw_resource_count);
 |  | ||||||
| +		goto err_memunmap;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	/*
 |  | ||||||
| +	 * We know it can't be larger than N * sizeof() here, and N is limited
 |  | ||||||
| +	 * by the previous test to a small number, so there's no overflow.
 |  | ||||||
| +	 */
 |  | ||||||
| +	entries_size = tmpesrt.fw_resource_count * entry_size;
 |  | ||||||
| +	if (max < size + entries_size) {
 |  | ||||||
| +		pr_err("ESRT does not fit on single memory map entry (size: %zu max: %zu)\n",
 |  | ||||||
| +		       size, max);
 |  | ||||||
| +		goto err_memunmap;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	/* remap it with our (plausible) new pages */
 |  | ||||||
| +	early_memunmap(va, size);
 |  | ||||||
| +	size += entries_size;
 |  | ||||||
| +	va = early_memremap(efi.esrt, size);
 |  | ||||||
| +	if (!va) {
 |  | ||||||
| +		pr_err("early_memremap(%p, %zu) failed.\n", (void *)efi.esrt,
 |  | ||||||
| +		       size);
 |  | ||||||
| +		return;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	esrt_data = (phys_addr_t)efi.esrt;
 |  | ||||||
| +	esrt_data_size = size;
 |  | ||||||
| +
 |  | ||||||
| +	pr_info("Reserving ESRT space from %p to %p.\n", (void *)esrt_data,
 |  | ||||||
| +		(char *)esrt_data + size);
 |  | ||||||
| +	memblock_reserve(esrt_data, esrt_data_size);
 |  | ||||||
| +
 |  | ||||||
| +	pr_debug("esrt-init: loaded.\n");
 |  | ||||||
| +err_memunmap:
 |  | ||||||
| +	early_memunmap(va, size);
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +static int __init register_entries(void)
 |  | ||||||
| +{
 |  | ||||||
| +	struct efi_system_resource_entry_v1 *v1_entries = (void *)esrt->entries;
 |  | ||||||
| +	int i, rc;
 |  | ||||||
| +
 |  | ||||||
| +	if (!esrt_table_exists())
 |  | ||||||
| +		return 0;
 |  | ||||||
| +
 |  | ||||||
| +	for (i = 0; i < le32_to_cpu(esrt->fw_resource_count); i++) {
 |  | ||||||
| +		void *entry;
 |  | ||||||
| +		if (esrt->fw_resource_version == 1) {
 |  | ||||||
| +			entry = &v1_entries[i];
 |  | ||||||
| +		}
 |  | ||||||
| +		rc = esre_create_sysfs_entry(entry, i);
 |  | ||||||
| +		if (rc < 0) {
 |  | ||||||
| +			pr_err("ESRT entry creation failed with error %d.\n",
 |  | ||||||
| +			       rc);
 |  | ||||||
| +			return rc;
 |  | ||||||
| +		}
 |  | ||||||
| +	}
 |  | ||||||
| +	return 0;
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +static void cleanup_entry_list(void)
 |  | ||||||
| +{
 |  | ||||||
| +	struct esre_entry *entry, *next;
 |  | ||||||
| +
 |  | ||||||
| +	list_for_each_entry_safe(entry, next, &entry_list, list) {
 |  | ||||||
| +		kobject_put(&entry->kobj);
 |  | ||||||
| +	}
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +static int __init esrt_sysfs_init(void)
 |  | ||||||
| +{
 |  | ||||||
| +	int error;
 |  | ||||||
| +	struct efi_system_resource_table __iomem *ioesrt;
 |  | ||||||
| +
 |  | ||||||
| +	pr_debug("esrt-sysfs: loading.\n");
 |  | ||||||
| +	if (!esrt_data || !esrt_data_size)
 |  | ||||||
| +		return -ENOSYS;
 |  | ||||||
| +
 |  | ||||||
| +	ioesrt = ioremap(esrt_data, esrt_data_size);
 |  | ||||||
| +	if (!ioesrt) {
 |  | ||||||
| +		pr_err("ioremap(%p, %zu) failed.\n", (void *)esrt_data,
 |  | ||||||
| +		       esrt_data_size);
 |  | ||||||
| +		return -ENOMEM;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	esrt = kmalloc(esrt_data_size, GFP_KERNEL);
 |  | ||||||
| +	if (!esrt) {
 |  | ||||||
| +		pr_err("kmalloc failed. (wanted %zu bytes)\n", esrt_data_size);
 |  | ||||||
| +		iounmap(ioesrt);
 |  | ||||||
| +		return -ENOMEM;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	memcpy_fromio(esrt, ioesrt, esrt_data_size);
 |  | ||||||
| +
 |  | ||||||
| +	esrt_kobj = kobject_create_and_add("esrt", efi_kobj);
 |  | ||||||
| +	if (!esrt_kobj) {
 |  | ||||||
| +		pr_err("Firmware table registration failed.\n");
 |  | ||||||
| +		error = -ENOMEM;
 |  | ||||||
| +		goto err;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	error = sysfs_create_group(esrt_kobj, &esrt_attr_group);
 |  | ||||||
| +	if (error) {
 |  | ||||||
| +		pr_err("Sysfs attribute export failed with error %d.\n",
 |  | ||||||
| +		       error);
 |  | ||||||
| +		goto err_remove_esrt;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	esrt_kset = kset_create_and_add("entries", NULL, esrt_kobj);
 |  | ||||||
| +	if (!esrt_kset) {
 |  | ||||||
| +		pr_err("kset creation failed.\n");
 |  | ||||||
| +		error = -ENOMEM;
 |  | ||||||
| +		goto err_remove_group;
 |  | ||||||
| +	}
 |  | ||||||
| +
 |  | ||||||
| +	error = register_entries();
 |  | ||||||
| +	if (error)
 |  | ||||||
| +		goto err_cleanup_list;
 |  | ||||||
| +
 |  | ||||||
| +	memblock_remove(esrt_data, esrt_data_size);
 |  | ||||||
| +
 |  | ||||||
| +	pr_debug("esrt-sysfs: loaded.\n");
 |  | ||||||
| +
 |  | ||||||
| +	return 0;
 |  | ||||||
| +err_cleanup_list:
 |  | ||||||
| +	cleanup_entry_list();
 |  | ||||||
| +	kset_unregister(esrt_kset);
 |  | ||||||
| +err_remove_group:
 |  | ||||||
| +	sysfs_remove_group(esrt_kobj, &esrt_attr_group);
 |  | ||||||
| +err_remove_esrt:
 |  | ||||||
| +	kobject_put(esrt_kobj);
 |  | ||||||
| +err:
 |  | ||||||
| +	kfree(esrt);
 |  | ||||||
| +	esrt = NULL;
 |  | ||||||
| +	return error;
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +static void __exit esrt_sysfs_exit(void)
 |  | ||||||
| +{
 |  | ||||||
| +	pr_debug("esrt-sysfs: unloading.\n");
 |  | ||||||
| +	cleanup_entry_list();
 |  | ||||||
| +	kset_unregister(esrt_kset);
 |  | ||||||
| +	sysfs_remove_group(esrt_kobj, &esrt_attr_group);
 |  | ||||||
| +	kfree(esrt);
 |  | ||||||
| +	esrt = NULL;
 |  | ||||||
| +	kobject_del(esrt_kobj);
 |  | ||||||
| +	kobject_put(esrt_kobj);
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +module_init(esrt_sysfs_init);
 |  | ||||||
| +module_exit(esrt_sysfs_exit);
 |  | ||||||
| +
 |  | ||||||
| +MODULE_AUTHOR("Peter Jones <pjones@redhat.com>");
 |  | ||||||
| +MODULE_DESCRIPTION("EFI System Resource Table support");
 |  | ||||||
| +MODULE_LICENSE("GPL");
 |  | ||||||
| diff --git a/include/linux/efi.h b/include/linux/efi.h
 |  | ||||||
| index 9cc069579351..fa3546989ab0 100644
 |  | ||||||
| --- a/include/linux/efi.h
 |  | ||||||
| +++ b/include/linux/efi.h
 |  | ||||||
| @@ -583,6 +583,9 @@ void efi_native_runtime_setup(void);
 |  | ||||||
|  #define EFI_FILE_INFO_ID \ |  | ||||||
|      EFI_GUID(  0x9576e92, 0x6d3f, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b ) |  | ||||||
|   |  | ||||||
| +#define EFI_SYSTEM_RESOURCE_TABLE_GUID \
 |  | ||||||
| +    EFI_GUID(  0xb122a263, 0x3661, 0x4f68, 0x99, 0x29, 0x78, 0xf8, 0xb0, 0xd6, 0x21, 0x80 )
 |  | ||||||
| +
 |  | ||||||
|  #define EFI_FILE_SYSTEM_GUID \ |  | ||||||
|      EFI_GUID(  0x964e5b22, 0x6459, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b ) |  | ||||||
|   |  | ||||||
| @@ -849,6 +852,7 @@ extern struct efi {
 |  | ||||||
|  	unsigned long fw_vendor;	/* fw_vendor */ |  | ||||||
|  	unsigned long runtime;		/* runtime table */ |  | ||||||
|  	unsigned long config_table;	/* config tables */ |  | ||||||
| +	unsigned long esrt;		/* ESRT table */
 |  | ||||||
|  	efi_get_time_t *get_time; |  | ||||||
|  	efi_set_time_t *set_time; |  | ||||||
|  	efi_get_wakeup_time_t *get_wakeup_time; |  | ||||||
| @@ -901,6 +905,7 @@ static inline efi_status_t efi_query_variable_store(u32 attributes, unsigned lon
 |  | ||||||
|  #endif |  | ||||||
|  extern void __iomem *efi_lookup_mapped_addr(u64 phys_addr); |  | ||||||
|  extern int efi_config_init(efi_config_table_type_t *arch_tables); |  | ||||||
| +extern void __init efi_esrt_init(void);
 |  | ||||||
|  extern int efi_config_parse_tables(void *config_tables, int count, int sz, |  | ||||||
|  				   efi_config_table_type_t *arch_tables); |  | ||||||
|  extern u64 efi_get_iobase (void); |  | ||||||
| @@ -908,12 +913,15 @@ extern u32 efi_mem_type (unsigned long phys_addr);
 |  | ||||||
|  extern u64 efi_mem_attributes (unsigned long phys_addr); |  | ||||||
|  extern u64 efi_mem_attribute (unsigned long phys_addr, unsigned long size); |  | ||||||
|  extern int __init efi_uart_console_only (void); |  | ||||||
| +extern u64 efi_mem_desc_end(efi_memory_desc_t *md);
 |  | ||||||
| +extern int efi_mem_desc_lookup(u64 phys_addr, efi_memory_desc_t *out_md);
 |  | ||||||
|  extern void efi_initialize_iomem_resources(struct resource *code_resource, |  | ||||||
|  		struct resource *data_resource, struct resource *bss_resource); |  | ||||||
|  extern void efi_get_time(struct timespec *now); |  | ||||||
|  extern void efi_reserve_boot_services(void); |  | ||||||
|  extern int efi_get_fdt_params(struct efi_fdt_params *params, int verbose); |  | ||||||
|  extern struct efi_memory_map memmap; |  | ||||||
| +extern struct kobject *efi_kobj;
 |  | ||||||
|   |  | ||||||
|  extern int efi_reboot_quirk_mode; |  | ||||||
|  extern bool efi_poweroff_required(void); |  | ||||||
| @ -11,7 +11,7 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> | |||||||
|  1 file changed, 2 insertions(+), 1 deletion(-) |  1 file changed, 2 insertions(+), 1 deletion(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
 | diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
 | ||||||
| index 6a8f880e213f..d3c21e9d267c 100644
 | index 39645abe44e3..c334ecdc0506 100644
 | ||||||
| --- a/arch/x86/Kconfig
 | --- a/arch/x86/Kconfig
 | ||||||
| +++ b/arch/x86/Kconfig
 | +++ b/arch/x86/Kconfig
 | ||||||
| @@ -1698,7 +1698,8 @@ config EFI_MIXED
 | @@ -1698,7 +1698,8 @@ config EFI_MIXED
 | ||||||
|  | |||||||
| @ -16,10 +16,10 @@ Upstream-status: Fedora mustard | |||||||
|  3 files changed, 2 insertions(+), 9 deletions(-) |  3 files changed, 2 insertions(+), 9 deletions(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
 | diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
 | ||||||
| index 3d874eca7104..deab7897b01f 100644
 | index 30b7bbfdc558..95863902627f 100644
 | ||||||
| --- a/drivers/base/power/main.c
 | --- a/drivers/base/power/main.c
 | ||||||
| +++ b/drivers/base/power/main.c
 | +++ b/drivers/base/power/main.c
 | ||||||
| @@ -122,8 +122,6 @@ void device_pm_unlock(void)
 | @@ -123,8 +123,6 @@ void device_pm_unlock(void)
 | ||||||
|   */ |   */ | ||||||
|  void device_pm_add(struct device *dev) |  void device_pm_add(struct device *dev) | ||||||
|  { |  { | ||||||
| @ -41,7 +41,7 @@ index cb5ece77fd7d..4022b75eaad7 100644 | |||||||
|  	} |  	} | ||||||
|   |   | ||||||
| diff --git a/net/can/af_can.c b/net/can/af_can.c
 | diff --git a/net/can/af_can.c b/net/can/af_can.c
 | ||||||
| index 32d710eaf1fc..af4a20b86ee7 100644
 | index 7933e62a7318..96a911003af7 100644
 | ||||||
| --- a/net/can/af_can.c
 | --- a/net/can/af_can.c
 | ||||||
| +++ b/net/can/af_can.c
 | +++ b/net/can/af_can.c
 | ||||||
| @@ -155,13 +155,9 @@ static int can_create(struct net *net, struct socket *sock, int protocol,
 | @@ -155,13 +155,9 @@ static int can_create(struct net *net, struct socket *sock, int protocol,
 | ||||||
|  | |||||||
| @ -15,15 +15,15 @@ Signed-off-by: Roland McGrath <roland@redhat.com> | |||||||
|  arch/powerpc/kernel/vdso64/Makefile | 3 ++- |  arch/powerpc/kernel/vdso64/Makefile | 3 ++- | ||||||
|  arch/s390/kernel/vdso32/Makefile    | 3 ++- |  arch/s390/kernel/vdso32/Makefile    | 3 ++- | ||||||
|  arch/s390/kernel/vdso64/Makefile    | 3 ++- |  arch/s390/kernel/vdso64/Makefile    | 3 ++- | ||||||
|  arch/x86/vdso/Makefile              | 5 +++-- |  arch/x86/entry/vdso/Makefile        | 5 +++-- | ||||||
|  scripts/link-vmlinux.sh             | 4 ++++ |  scripts/link-vmlinux.sh             | 4 ++++ | ||||||
|  7 files changed, 17 insertions(+), 7 deletions(-) |  7 files changed, 17 insertions(+), 7 deletions(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
 | diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
 | ||||||
| index ff3bddea482d..d8a439dd6351 100644
 | index f6fe17d88da5..eb6ddbf37f30 100644
 | ||||||
| --- a/arch/arm64/kernel/vdso/Makefile
 | --- a/arch/arm64/kernel/vdso/Makefile
 | ||||||
| +++ b/arch/arm64/kernel/vdso/Makefile
 | +++ b/arch/arm64/kernel/vdso/Makefile
 | ||||||
| @@ -48,7 +48,8 @@ $(obj-vdso): %.o: %.S FORCE
 | @@ -52,7 +52,8 @@ $(obj-vdso): %.o: %.S FORCE
 | ||||||
|   |   | ||||||
|  # Actual build commands |  # Actual build commands | ||||||
|  quiet_cmd_vdsold = VDSOL   $@ |  quiet_cmd_vdsold = VDSOL   $@ | ||||||
| @ -89,10 +89,10 @@ index 2a8ddfd12a5b..452ca53561fe 100644 | |||||||
|  quiet_cmd_vdso64as = VDSO64A $@ |  quiet_cmd_vdso64as = VDSO64A $@ | ||||||
|        cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $< |        cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $< | ||||||
|   |   | ||||||
| diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
 | diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile
 | ||||||
| index e97032069f88..9ea82f444dea 100644
 | index e97032069f88..9ea82f444dea 100644
 | ||||||
| --- a/arch/x86/vdso/Makefile
 | --- a/arch/x86/entry/vdso/Makefile
 | ||||||
| +++ b/arch/x86/vdso/Makefile
 | +++ b/arch/x86/entry/vdso/Makefile
 | ||||||
| @@ -172,8 +172,9 @@ $(vdso32-images:%=$(obj)/%.dbg): $(obj)/vdso32-%.so.dbg: FORCE \
 | @@ -172,8 +172,9 @@ $(vdso32-images:%=$(obj)/%.dbg): $(obj)/vdso32-%.so.dbg: FORCE \
 | ||||||
|  quiet_cmd_vdso = VDSO    $@ |  quiet_cmd_vdso = VDSO    $@ | ||||||
|        cmd_vdso = $(CC) -nostdlib -o $@ \ |        cmd_vdso = $(CC) -nostdlib -o $@ \ | ||||||
|  | |||||||
							
								
								
									
										296
									
								
								kernel.spec
									
									
									
									
									
								
							
							
						
						
									
										296
									
								
								kernel.spec
									
									
									
									
									
								
							| @ -6,7 +6,7 @@ Summary: The Linux kernel | |||||||
| # For a stable, released kernel, released_kernel should be 1. For rawhide | # For a stable, released kernel, released_kernel should be 1. For rawhide | ||||||
| # and/or a kernel built from an rc or git snapshot, released_kernel should | # and/or a kernel built from an rc or git snapshot, released_kernel should | ||||||
| # be 0. | # be 0. | ||||||
| %global released_kernel 1 | %global released_kernel 0 | ||||||
| 
 | 
 | ||||||
| # Sign modules on x86.  Make sure the config files match this setting if more | # Sign modules on x86.  Make sure the config files match this setting if more | ||||||
| # architectures are added. | # architectures are added. | ||||||
| @ -67,7 +67,7 @@ Summary: The Linux kernel | |||||||
| # The rc snapshot level | # The rc snapshot level | ||||||
| %define rcrev 0 | %define rcrev 0 | ||||||
| # The git snapshot level | # The git snapshot level | ||||||
| %define gitrev 0 | %define gitrev 1 | ||||||
| # Set rpm version accordingly | # Set rpm version accordingly | ||||||
| %define rpmversion 4.%{upstream_sublevel}.0 | %define rpmversion 4.%{upstream_sublevel}.0 | ||||||
| %endif | %endif | ||||||
| @ -486,140 +486,124 @@ Patch05: kbuild-AFTER_LINK.patch | |||||||
| 
 | 
 | ||||||
| %if !%{nopatches} | %if !%{nopatches} | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| # Git trees. | # Git trees. | ||||||
| 
 | 
 | ||||||
| # Standalone patches | # Standalone patches | ||||||
| 
 | 
 | ||||||
| Patch450: input-kill-stupid-messages.patch | Patch451: lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch | ||||||
| Patch452: no-pcspkr-modalias.patch |  | ||||||
| 
 | 
 | ||||||
| Patch470: die-floppy-die.patch | Patch452: amd-xgbe-a0-Add-support-for-XGBE-on-A0.patch | ||||||
| 
 | 
 | ||||||
| Patch500: Revert-Revert-ACPI-video-change-acpi-video-brightnes.patch | Patch453: amd-xgbe-phy-a0-Add-support-for-XGBE-PHY-on-A0.patch | ||||||
| 
 | 
 | ||||||
| Patch510: input-silence-i8042-noise.patch | Patch454: arm64-avoid-needing-console-to-enable-serial-console.patch | ||||||
| Patch530: silence-fbcon-logo.patch |  | ||||||
| 
 | 
 | ||||||
| Patch600: lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch | Patch455: usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch | ||||||
| 
 | 
 | ||||||
| #rhbz 1126580 | Patch456: arm64-acpi-drop-expert-patch.patch | ||||||
| Patch601: Kbuild-Add-an-option-to-enable-GCC-VTA.patch |  | ||||||
| 
 | 
 | ||||||
| Patch800: crash-driver.patch | Patch457: ARM-tegra-usb-no-reset.patch | ||||||
| 
 | 
 | ||||||
| # crypto/ | Patch458: arm-dts-am335x-boneblack-lcdc-add-panel-info.patch | ||||||
| 
 | 
 | ||||||
| # secure boot | Patch459: arm-dts-am335x-boneblack-add-cpu0-opp-points.patch | ||||||
| Patch1000: Add-secure_modules-call.patch |  | ||||||
| Patch1001: PCI-Lock-down-BAR-access-when-module-security-is-ena.patch |  | ||||||
| Patch1002: x86-Lock-down-IO-port-access-when-module-security-is.patch |  | ||||||
| Patch1003: ACPI-Limit-access-to-custom_method.patch |  | ||||||
| Patch1004: asus-wmi-Restrict-debugfs-interface-when-module-load.patch |  | ||||||
| Patch1005: Restrict-dev-mem-and-dev-kmem-when-module-loading-is.patch |  | ||||||
| Patch1006: acpi-Ignore-acpi_rsdp-kernel-parameter-when-module-l.patch |  | ||||||
| Patch1007: kexec-Disable-at-runtime-if-the-kernel-enforces-modu.patch |  | ||||||
| Patch1008: x86-Restrict-MSR-access-when-module-loading-is-restr.patch |  | ||||||
| Patch1009: Add-option-to-automatically-enforce-module-signature.patch |  | ||||||
| Patch1010: efi-Disable-secure-boot-if-shim-is-in-insecure-mode.patch |  | ||||||
| Patch1011: efi-Make-EFI_SECURE_BOOT_SIG_ENFORCE-depend-on-EFI.patch |  | ||||||
| Patch1012: efi-Add-EFI_SECURE_BOOT-bit.patch |  | ||||||
| Patch1013: hibernate-Disable-in-a-signed-modules-environment.patch |  | ||||||
| 
 | 
 | ||||||
| Patch1014: Add-EFI-signature-data-types.patch | Patch460: arm-dts-am335x-bone-common-enable-and-use-i2c2.patch | ||||||
| Patch1015: Add-an-EFI-signature-blob-parser-and-key-loader.patch |  | ||||||
| Patch1016: KEYS-Add-a-system-blacklist-keyring.patch |  | ||||||
| Patch1017: MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch |  | ||||||
| Patch1018: MODSIGN-Support-not-importing-certs-from-db.patch |  | ||||||
| 
 | 
 | ||||||
| Patch1019: Add-sysrq-option-to-disable-secure-boot-mode.patch | Patch461: arm-dts-am335x-bone-common-setup-default-pinmux-http.patch | ||||||
| 
 | 
 | ||||||
| # esrt | Patch462: arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch | ||||||
| Patch1020: efi-Add-esrt-support.patch |  | ||||||
| 
 | 
 | ||||||
| # virt + ksm patches | Patch463: pinctrl-pinctrl-single-must-be-initialized-early.patch | ||||||
| 
 | 
 | ||||||
| # DRM | Patch464: arm-i.MX6-Utilite-device-dtb.patch | ||||||
| 
 | 
 | ||||||
| # nouveau + drm fixes | Patch465: arm-highbank-l2-reverts.patch | ||||||
| # intel drm is all merged upstream |  | ||||||
| Patch1826: drm-i915-hush-check-crtc-state.patch |  | ||||||
| 
 | 
 | ||||||
| # Quiet boot fixes | Patch466: Revert-Revert-ACPI-video-change-acpi-video-brightnes.patch | ||||||
| 
 | 
 | ||||||
| # fs fixes | Patch467: input-kill-stupid-messages.patch | ||||||
| 
 | 
 | ||||||
| # NFSv4 | Patch468: die-floppy-die.patch | ||||||
| 
 | 
 | ||||||
| # patches headed upstream | Patch469: no-pcspkr-modalias.patch | ||||||
| Patch12016: disable-i8042-check-on-apple-mac.patch |  | ||||||
| 
 | 
 | ||||||
| Patch14010: lis3-improve-handling-of-null-rate.patch | Patch470: input-silence-i8042-noise.patch | ||||||
| 
 | 
 | ||||||
| Patch15000: watchdog-Disable-watchdog-on-virtual-machines.patch | Patch471: silence-fbcon-logo.patch | ||||||
| 
 | 
 | ||||||
| # PPC | Patch472: Kbuild-Add-an-option-to-enable-GCC-VTA.patch | ||||||
| 
 | 
 | ||||||
| # ARM64 | Patch473: crash-driver.patch | ||||||
| Patch16000: amd-xgbe-a0-Add-support-for-XGBE-on-A0.patch |  | ||||||
| Patch16001: amd-xgbe-phy-a0-Add-support-for-XGBE-PHY-on-A0.patch |  | ||||||
| Patch16002: arm64-avoid-needing-console-to-enable-serial-console.patch |  | ||||||
| Patch16003: usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch |  | ||||||
| Patch16004: arm64-acpi-drop-expert.patch |  | ||||||
| 
 | 
 | ||||||
| # ARMv7 | Patch474: Add-secure_modules-call.patch | ||||||
| Patch16020: ARM-tegra-usb-no-reset.patch |  | ||||||
| Patch16021: arm-dts-am335x-boneblack-lcdc-add-panel-info.patch |  | ||||||
| Patch16022: arm-dts-am335x-boneblack-add-cpu0-opp-points.patch |  | ||||||
| Patch16023: arm-dts-am335x-bone-common-enable-and-use-i2c2.patch |  | ||||||
| Patch16024: arm-dts-am335x-bone-common-setup-default-pinmux-http.patch |  | ||||||
| Patch16025: arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch |  | ||||||
| Patch16026: pinctrl-pinctrl-single-must-be-initialized-early.patch |  | ||||||
| 
 | 
 | ||||||
| Patch16028: arm-i.MX6-Utilite-device-dtb.patch | Patch475: PCI-Lock-down-BAR-access-when-module-security-is-ena.patch | ||||||
| 
 | 
 | ||||||
| Patch16030: arm-highbank-l2-reverts.patch | Patch476: x86-Lock-down-IO-port-access-when-module-security-is.patch | ||||||
| 
 | 
 | ||||||
| #rhbz 754518 | Patch477: ACPI-Limit-access-to-custom_method.patch | ||||||
| Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch |  | ||||||
| 
 | 
 | ||||||
| # https://fedoraproject.org/wiki/Features/Checkpoint_Restore | Patch478: asus-wmi-Restrict-debugfs-interface-when-module-load.patch | ||||||
| Patch21242: criu-no-expert.patch |  | ||||||
| 
 | 
 | ||||||
| #rhbz 892811 | Patch479: Restrict-dev-mem-and-dev-kmem-when-module-loading-is.patch | ||||||
| Patch21247: ath9k-rx-dma-stop-check.patch |  | ||||||
| 
 | 
 | ||||||
| #CVE-2015-2150 rhbz 1196266 1200397 | Patch480: acpi-Ignore-acpi_rsdp-kernel-parameter-when-module-l.patch | ||||||
| Patch26175: xen-pciback-Don-t-disable-PCI_COMMAND-on-PCI-device-.patch |  | ||||||
| 
 | 
 | ||||||
| #rhbz 1212230 | Patch481: kexec-Disable-at-runtime-if-the-kernel-enforces-modu.patch | ||||||
| Patch26176: Input-synaptics-pin-3-touches-when-the-firmware-repo.patch |  | ||||||
| 
 | 
 | ||||||
| #rhbz 1210857 | Patch482: x86-Restrict-MSR-access-when-module-loading-is-restr.patch | ||||||
| Patch26192: blk-loop-avoid-too-many-pending-per-work-IO.patch |  | ||||||
| 
 | 
 | ||||||
| #rhbz 1220118 | Patch483: Add-option-to-automatically-enforce-module-signature.patch | ||||||
| Patch26202: media-Fix-regression-in-some-more-dib0700-based-devi.patch |  | ||||||
| 
 | 
 | ||||||
| Patch26203: v4l-uvcvideo-Fix-incorrect-bandwidth-with-Chicony-de.patch | Patch484: efi-Disable-secure-boot-if-shim-is-in-insecure-mode.patch | ||||||
| 
 | 
 | ||||||
| #rhbz 1217249 | Patch485: efi-Make-EFI_SECURE_BOOT_SIG_ENFORCE-depend-on-EFI.patch | ||||||
| Patch26214: acpi_video-Add-enable_native_backlight-quirk-for-Mac.patch |  | ||||||
| 
 | 
 | ||||||
| #rhbz 1225563 | Patch486: efi-Add-EFI_SECURE_BOOT-bit.patch | ||||||
| Patch26215: HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch |  | ||||||
| 
 | 
 | ||||||
| #rhbz 1133378 | Patch487: hibernate-Disable-in-a-signed-modules-environment.patch | ||||||
| Patch26219: firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch |  | ||||||
| 
 | 
 | ||||||
| #rhbz 1226743 | Patch488: Add-EFI-signature-data-types.patch | ||||||
| Patch26221: drm-i915-turn-off-wc-mmaps.patch |  | ||||||
| 
 | 
 | ||||||
| # CVE-2015-XXXX rhbz 1230770 1230774 | Patch489: Add-an-EFI-signature-blob-parser-and-key-loader.patch | ||||||
| Patch26231: kvm-x86-fix-kvm_apic_has_events-to-check-for-NULL-po.patch | 
 | ||||||
|  | Patch490: KEYS-Add-a-system-blacklist-keyring.patch | ||||||
|  | 
 | ||||||
|  | Patch491: MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch | ||||||
|  | 
 | ||||||
|  | Patch492: MODSIGN-Support-not-importing-certs-from-db.patch | ||||||
|  | 
 | ||||||
|  | Patch493: Add-sysrq-option-to-disable-secure-boot-mode.patch | ||||||
|  | 
 | ||||||
|  | Patch494: drm-i915-hush-check-crtc-state.patch | ||||||
|  | 
 | ||||||
|  | Patch495: disable-i8042-check-on-apple-mac.patch | ||||||
|  | 
 | ||||||
|  | Patch496: lis3-improve-handling-of-null-rate.patch | ||||||
|  | 
 | ||||||
|  | Patch497: watchdog-Disable-watchdog-on-virtual-machines.patch | ||||||
|  | 
 | ||||||
|  | Patch498: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch | ||||||
|  | 
 | ||||||
|  | Patch499: criu-no-expert.patch | ||||||
|  | 
 | ||||||
|  | Patch500: ath9k-rx-dma-stop-check.patch | ||||||
|  | 
 | ||||||
|  | Patch501: xen-pciback-Don-t-disable-PCI_COMMAND-on-PCI-device-.patch | ||||||
|  | 
 | ||||||
|  | Patch502: Input-synaptics-pin-3-touches-when-the-firmware-repo.patch | ||||||
|  | 
 | ||||||
|  | Patch503: blk-loop-avoid-too-many-pending-work-IO.patch | ||||||
|  | 
 | ||||||
|  | Patch504: media-Fix-regression-in-some-more-dib0700-based-devi.patch | ||||||
|  | 
 | ||||||
|  | Patch505: v4l-uvcvideo-Fix-incorrect-bandwidth-with-Chicony-de.patch | ||||||
|  | 
 | ||||||
|  | Patch506: firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch | ||||||
|  | 
 | ||||||
|  | Patch507: drm-i915-turn-off-wc-mmaps.patch | ||||||
| 
 | 
 | ||||||
| # rhbz 1227891 |  | ||||||
| Patch26250: HID-rmi-Disable-populating-F30-when-the-touchpad-has.patch |  | ||||||
| 
 | 
 | ||||||
| # END OF PATCH DEFINITIONS | # END OF PATCH DEFINITIONS | ||||||
| 
 | 
 | ||||||
| @ -1182,183 +1166,122 @@ done | |||||||
| 
 | 
 | ||||||
| ApplyPatch kbuild-AFTER_LINK.patch | ApplyPatch kbuild-AFTER_LINK.patch | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| %if !%{nopatches} | %if !%{nopatches} | ||||||
| 
 | 
 | ||||||
| # Architecture patches |  | ||||||
| # x86(-64) |  | ||||||
| ApplyPatch lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch | ApplyPatch lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch | ||||||
| 
 | 
 | ||||||
| # PPC |  | ||||||
| 
 |  | ||||||
| # ARM64 |  | ||||||
| ApplyPatch amd-xgbe-a0-Add-support-for-XGBE-on-A0.patch | ApplyPatch amd-xgbe-a0-Add-support-for-XGBE-on-A0.patch | ||||||
| ApplyPatch amd-xgbe-phy-a0-Add-support-for-XGBE-PHY-on-A0.patch |  | ||||||
| ApplyPatch arm64-avoid-needing-console-to-enable-serial-console.patch |  | ||||||
| ApplyPatch usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch |  | ||||||
| ApplyPatch arm64-acpi-drop-expert.patch |  | ||||||
| 
 | 
 | ||||||
| # | ApplyPatch amd-xgbe-phy-a0-Add-support-for-XGBE-PHY-on-A0.patch | ||||||
| # ARM | 
 | ||||||
| # | ApplyPatch arm64-avoid-needing-console-to-enable-serial-console.patch | ||||||
|  | 
 | ||||||
|  | ApplyPatch usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch | ||||||
|  | 
 | ||||||
|  | ApplyPatch arm64-acpi-drop-expert-patch.patch | ||||||
|  | 
 | ||||||
| ApplyPatch ARM-tegra-usb-no-reset.patch | ApplyPatch ARM-tegra-usb-no-reset.patch | ||||||
| 
 | 
 | ||||||
| ApplyPatch arm-dts-am335x-boneblack-lcdc-add-panel-info.patch | ApplyPatch arm-dts-am335x-boneblack-lcdc-add-panel-info.patch | ||||||
|  | 
 | ||||||
| ApplyPatch arm-dts-am335x-boneblack-add-cpu0-opp-points.patch | ApplyPatch arm-dts-am335x-boneblack-add-cpu0-opp-points.patch | ||||||
|  | 
 | ||||||
| ApplyPatch arm-dts-am335x-bone-common-enable-and-use-i2c2.patch | ApplyPatch arm-dts-am335x-bone-common-enable-and-use-i2c2.patch | ||||||
|  | 
 | ||||||
| ApplyPatch arm-dts-am335x-bone-common-setup-default-pinmux-http.patch | ApplyPatch arm-dts-am335x-bone-common-setup-default-pinmux-http.patch | ||||||
|  | 
 | ||||||
| ApplyPatch arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch | ApplyPatch arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch | ||||||
|  | 
 | ||||||
| ApplyPatch pinctrl-pinctrl-single-must-be-initialized-early.patch | ApplyPatch pinctrl-pinctrl-single-must-be-initialized-early.patch | ||||||
| 
 | 
 | ||||||
| ApplyPatch arm-i.MX6-Utilite-device-dtb.patch | ApplyPatch arm-i.MX6-Utilite-device-dtb.patch | ||||||
| 
 | 
 | ||||||
| ApplyPatch arm-highbank-l2-reverts.patch | ApplyPatch arm-highbank-l2-reverts.patch | ||||||
| 
 | 
 | ||||||
| # |  | ||||||
| # bugfixes to drivers and filesystems |  | ||||||
| # |  | ||||||
| 
 |  | ||||||
| # ext4 |  | ||||||
| 
 |  | ||||||
| # xfs |  | ||||||
| 
 |  | ||||||
| # btrfs |  | ||||||
| 
 |  | ||||||
| # eCryptfs |  | ||||||
| 
 |  | ||||||
| # NFSv4 |  | ||||||
| 
 |  | ||||||
| # USB |  | ||||||
| 
 |  | ||||||
| # WMI |  | ||||||
| 
 |  | ||||||
| # ACPI |  | ||||||
| 
 |  | ||||||
| # |  | ||||||
| # PCI |  | ||||||
| # |  | ||||||
| 
 |  | ||||||
| # |  | ||||||
| # SCSI Bits. |  | ||||||
| # |  | ||||||
| 
 |  | ||||||
| # ACPI |  | ||||||
| 
 |  | ||||||
| ApplyPatch Revert-Revert-ACPI-video-change-acpi-video-brightnes.patch | ApplyPatch Revert-Revert-ACPI-video-change-acpi-video-brightnes.patch | ||||||
| 
 | 
 | ||||||
| # ALSA |  | ||||||
| 
 |  | ||||||
| # Networking |  | ||||||
| 
 |  | ||||||
| # Misc fixes |  | ||||||
| # The input layer spews crap no-one cares about. |  | ||||||
| ApplyPatch input-kill-stupid-messages.patch | ApplyPatch input-kill-stupid-messages.patch | ||||||
| 
 | 
 | ||||||
| # stop floppy.ko from autoloading during udev... |  | ||||||
| ApplyPatch die-floppy-die.patch | ApplyPatch die-floppy-die.patch | ||||||
| 
 | 
 | ||||||
| ApplyPatch no-pcspkr-modalias.patch | ApplyPatch no-pcspkr-modalias.patch | ||||||
| 
 | 
 | ||||||
| # Silence some useless messages that still get printed with 'quiet' |  | ||||||
| ApplyPatch input-silence-i8042-noise.patch | ApplyPatch input-silence-i8042-noise.patch | ||||||
| 
 | 
 | ||||||
| # Make fbcon not show the penguins with 'quiet' |  | ||||||
| ApplyPatch silence-fbcon-logo.patch | ApplyPatch silence-fbcon-logo.patch | ||||||
| 
 | 
 | ||||||
| # Changes to upstream defaults. |  | ||||||
| #rhbz 1126580 |  | ||||||
| ApplyPatch Kbuild-Add-an-option-to-enable-GCC-VTA.patch | ApplyPatch Kbuild-Add-an-option-to-enable-GCC-VTA.patch | ||||||
| 
 | 
 | ||||||
| # /dev/crash driver. |  | ||||||
| ApplyPatch crash-driver.patch | ApplyPatch crash-driver.patch | ||||||
| 
 | 
 | ||||||
| # crypto/ |  | ||||||
| 
 |  | ||||||
| # secure boot |  | ||||||
| ApplyPatch Add-secure_modules-call.patch | ApplyPatch Add-secure_modules-call.patch | ||||||
|  | 
 | ||||||
| ApplyPatch PCI-Lock-down-BAR-access-when-module-security-is-ena.patch | ApplyPatch PCI-Lock-down-BAR-access-when-module-security-is-ena.patch | ||||||
|  | 
 | ||||||
| ApplyPatch x86-Lock-down-IO-port-access-when-module-security-is.patch | ApplyPatch x86-Lock-down-IO-port-access-when-module-security-is.patch | ||||||
|  | 
 | ||||||
| ApplyPatch ACPI-Limit-access-to-custom_method.patch | ApplyPatch ACPI-Limit-access-to-custom_method.patch | ||||||
|  | 
 | ||||||
| ApplyPatch asus-wmi-Restrict-debugfs-interface-when-module-load.patch | ApplyPatch asus-wmi-Restrict-debugfs-interface-when-module-load.patch | ||||||
|  | 
 | ||||||
| ApplyPatch Restrict-dev-mem-and-dev-kmem-when-module-loading-is.patch | ApplyPatch Restrict-dev-mem-and-dev-kmem-when-module-loading-is.patch | ||||||
|  | 
 | ||||||
| ApplyPatch acpi-Ignore-acpi_rsdp-kernel-parameter-when-module-l.patch | ApplyPatch acpi-Ignore-acpi_rsdp-kernel-parameter-when-module-l.patch | ||||||
|  | 
 | ||||||
| ApplyPatch kexec-Disable-at-runtime-if-the-kernel-enforces-modu.patch | ApplyPatch kexec-Disable-at-runtime-if-the-kernel-enforces-modu.patch | ||||||
|  | 
 | ||||||
| ApplyPatch x86-Restrict-MSR-access-when-module-loading-is-restr.patch | ApplyPatch x86-Restrict-MSR-access-when-module-loading-is-restr.patch | ||||||
|  | 
 | ||||||
| ApplyPatch Add-option-to-automatically-enforce-module-signature.patch | ApplyPatch Add-option-to-automatically-enforce-module-signature.patch | ||||||
|  | 
 | ||||||
| ApplyPatch efi-Disable-secure-boot-if-shim-is-in-insecure-mode.patch | ApplyPatch efi-Disable-secure-boot-if-shim-is-in-insecure-mode.patch | ||||||
|  | 
 | ||||||
| ApplyPatch efi-Make-EFI_SECURE_BOOT_SIG_ENFORCE-depend-on-EFI.patch | ApplyPatch efi-Make-EFI_SECURE_BOOT_SIG_ENFORCE-depend-on-EFI.patch | ||||||
|  | 
 | ||||||
| ApplyPatch efi-Add-EFI_SECURE_BOOT-bit.patch | ApplyPatch efi-Add-EFI_SECURE_BOOT-bit.patch | ||||||
|  | 
 | ||||||
| ApplyPatch hibernate-Disable-in-a-signed-modules-environment.patch | ApplyPatch hibernate-Disable-in-a-signed-modules-environment.patch | ||||||
| 
 | 
 | ||||||
| ApplyPatch Add-EFI-signature-data-types.patch | ApplyPatch Add-EFI-signature-data-types.patch | ||||||
|  | 
 | ||||||
| ApplyPatch Add-an-EFI-signature-blob-parser-and-key-loader.patch | ApplyPatch Add-an-EFI-signature-blob-parser-and-key-loader.patch | ||||||
|  | 
 | ||||||
| ApplyPatch KEYS-Add-a-system-blacklist-keyring.patch | ApplyPatch KEYS-Add-a-system-blacklist-keyring.patch | ||||||
|  | 
 | ||||||
| ApplyPatch MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch | ApplyPatch MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch | ||||||
|  | 
 | ||||||
| ApplyPatch MODSIGN-Support-not-importing-certs-from-db.patch | ApplyPatch MODSIGN-Support-not-importing-certs-from-db.patch | ||||||
| 
 | 
 | ||||||
| ApplyPatch Add-sysrq-option-to-disable-secure-boot-mode.patch | ApplyPatch Add-sysrq-option-to-disable-secure-boot-mode.patch | ||||||
| 
 | 
 | ||||||
| ApplyPatch efi-Add-esrt-support.patch |  | ||||||
| 
 |  | ||||||
| # Assorted Virt Fixes |  | ||||||
| 
 |  | ||||||
| # DRM core |  | ||||||
| 
 |  | ||||||
| # Nouveau DRM |  | ||||||
| 
 |  | ||||||
| # Intel DRM |  | ||||||
| ApplyPatch drm-i915-hush-check-crtc-state.patch | ApplyPatch drm-i915-hush-check-crtc-state.patch | ||||||
| 
 | 
 | ||||||
| # Radeon DRM |  | ||||||
| 
 |  | ||||||
| # Patches headed upstream |  | ||||||
| ApplyPatch disable-i8042-check-on-apple-mac.patch | ApplyPatch disable-i8042-check-on-apple-mac.patch | ||||||
| 
 | 
 | ||||||
| ApplyPatch lis3-improve-handling-of-null-rate.patch | ApplyPatch lis3-improve-handling-of-null-rate.patch | ||||||
| 
 | 
 | ||||||
| # Disable watchdog on virtual machines. |  | ||||||
| ApplyPatch watchdog-Disable-watchdog-on-virtual-machines.patch | ApplyPatch watchdog-Disable-watchdog-on-virtual-machines.patch | ||||||
| 
 | 
 | ||||||
| #rhbz 754518 |  | ||||||
| ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch | ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch | ||||||
| 
 | 
 | ||||||
| # https://fedoraproject.org/wiki/Features/Checkpoint_Restore |  | ||||||
| ApplyPatch criu-no-expert.patch | ApplyPatch criu-no-expert.patch | ||||||
| 
 | 
 | ||||||
| #rhbz 892811 |  | ||||||
| ApplyPatch ath9k-rx-dma-stop-check.patch | ApplyPatch ath9k-rx-dma-stop-check.patch | ||||||
| 
 | 
 | ||||||
| #CVE-2015-2150 rhbz 1196266 1200397 |  | ||||||
| ApplyPatch xen-pciback-Don-t-disable-PCI_COMMAND-on-PCI-device-.patch | ApplyPatch xen-pciback-Don-t-disable-PCI_COMMAND-on-PCI-device-.patch | ||||||
| 
 | 
 | ||||||
| #rhbz 1212230 |  | ||||||
| ApplyPatch Input-synaptics-pin-3-touches-when-the-firmware-repo.patch | ApplyPatch Input-synaptics-pin-3-touches-when-the-firmware-repo.patch | ||||||
| 
 | 
 | ||||||
| #rhbz 1210857 | ApplyPatch blk-loop-avoid-too-many-pending-work-IO.patch | ||||||
| ApplyPatch blk-loop-avoid-too-many-pending-per-work-IO.patch |  | ||||||
| 
 | 
 | ||||||
| #rhbz 1220118 |  | ||||||
| ApplyPatch media-Fix-regression-in-some-more-dib0700-based-devi.patch | ApplyPatch media-Fix-regression-in-some-more-dib0700-based-devi.patch | ||||||
| 
 | 
 | ||||||
| ApplyPatch v4l-uvcvideo-Fix-incorrect-bandwidth-with-Chicony-de.patch | ApplyPatch v4l-uvcvideo-Fix-incorrect-bandwidth-with-Chicony-de.patch | ||||||
| 
 | 
 | ||||||
| #rhbz 1217249 |  | ||||||
| ApplyPatch acpi_video-Add-enable_native_backlight-quirk-for-Mac.patch |  | ||||||
| 
 |  | ||||||
| #rhbz 1225563 |  | ||||||
| ApplyPatch HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch |  | ||||||
| 
 |  | ||||||
| #rhbz 1133378 |  | ||||||
| ApplyPatch firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch | ApplyPatch firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch | ||||||
| 
 | 
 | ||||||
| #rhbz 1226743 |  | ||||||
| ApplyPatch drm-i915-turn-off-wc-mmaps.patch | ApplyPatch drm-i915-turn-off-wc-mmaps.patch | ||||||
| 
 | 
 | ||||||
| # CVE-2015-XXXX rhbz 1230770 1230774 |  | ||||||
| ApplyPatch kvm-x86-fix-kvm_apic_has_events-to-check-for-NULL-po.patch |  | ||||||
| 
 |  | ||||||
| #rhbz 1227891 |  | ||||||
| ApplyPatch HID-rmi-Disable-populating-F30-when-the-touchpad-has.patch |  | ||||||
| 
 | 
 | ||||||
| # END OF PATCH APPLICATIONS | # END OF PATCH APPLICATIONS | ||||||
| 
 | 
 | ||||||
| @ -2224,6 +2147,9 @@ fi | |||||||
| # | # | ||||||
| #  | #  | ||||||
| %changelog | %changelog | ||||||
|  | * Thu Jun 25 2015 Josh Boyer <jwboyer@fedoraproject.org> | ||||||
|  | - Linux v4.1-5596-gaefbef10e3ae | ||||||
|  | 
 | ||||||
| * Mon Jun 22 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.1.0-1 | * Mon Jun 22 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.1.0-1 | ||||||
| - Linux v4.1 | - Linux v4.1 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,25 +0,0 @@ | |||||||
| From: Paolo Bonzini <pbonzini@redhat.com> |  | ||||||
| Date: Thu, 4 Jun 2015 10:18:22 +0200 |  | ||||||
| Subject: [PATCH] kvm: x86: fix kvm_apic_has_events to check for NULL pointer |  | ||||||
| 
 |  | ||||||
| Malicious (or egregiously buggy) userspace can trigger it, but it |  | ||||||
| should never happen in normal operation. |  | ||||||
| 
 |  | ||||||
| Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |  | ||||||
| ---
 |  | ||||||
|  arch/x86/kvm/lapic.h | 2 +- |  | ||||||
|  1 file changed, 1 insertion(+), 1 deletion(-) |  | ||||||
| 
 |  | ||||||
| diff --git a/arch/x86/kvm/lapic.h b/arch/x86/kvm/lapic.h
 |  | ||||||
| index 9d28383fc1e7..c4ea87eedf8a 100644
 |  | ||||||
| --- a/arch/x86/kvm/lapic.h
 |  | ||||||
| +++ b/arch/x86/kvm/lapic.h
 |  | ||||||
| @@ -150,7 +150,7 @@ static inline bool kvm_apic_vid_enabled(struct kvm *kvm)
 |  | ||||||
|   |  | ||||||
|  static inline bool kvm_apic_has_events(struct kvm_vcpu *vcpu) |  | ||||||
|  { |  | ||||||
| -	return vcpu->arch.apic->pending_events;
 |  | ||||||
| +	return kvm_vcpu_has_lapic(vcpu) && vcpu->arch.apic->pending_events;
 |  | ||||||
|  } |  | ||||||
|   |  | ||||||
|  bool kvm_apic_pending_eoi(struct kvm_vcpu *vcpu, int vector); |  | ||||||
| @ -19,10 +19,10 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> | |||||||
|  1 file changed, 2 insertions(+), 1 deletion(-) |  1 file changed, 2 insertions(+), 1 deletion(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/lib/Kconfig b/lib/Kconfig
 | diff --git a/lib/Kconfig b/lib/Kconfig
 | ||||||
| index 601965a948e8..028213cf0e4d 100644
 | index 34e332b8d326..7f0fb38d001f 100644
 | ||||||
| --- a/lib/Kconfig
 | --- a/lib/Kconfig
 | ||||||
| +++ b/lib/Kconfig
 | +++ b/lib/Kconfig
 | ||||||
| @@ -390,7 +390,8 @@ config CHECK_SIGNATURE
 | @@ -396,7 +396,8 @@ config CHECK_SIGNATURE
 | ||||||
|  	bool |  	bool | ||||||
|   |   | ||||||
|  config CPUMASK_OFFSTACK |  config CPUMASK_OFFSTACK | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ exercise left to the reader. | |||||||
|  1 file changed, 11 insertions(+), 1 deletion(-) |  1 file changed, 11 insertions(+), 1 deletion(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
 | diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
 | ||||||
| index 13b45f297727..f84ce0135c38 100644
 | index b2de09d3b1a0..bced65ec07cc 100644
 | ||||||
| --- a/drivers/pinctrl/pinctrl-single.c
 | --- a/drivers/pinctrl/pinctrl-single.c
 | ||||||
| +++ b/drivers/pinctrl/pinctrl-single.c
 | +++ b/drivers/pinctrl/pinctrl-single.c
 | ||||||
| @@ -2025,7 +2025,17 @@ static struct platform_driver pcs_driver = {
 | @@ -2025,7 +2025,17 @@ static struct platform_driver pcs_driver = {
 | ||||||
|  | |||||||
| @ -9,7 +9,7 @@ Upstream-status: Fedora mustard (might be worth dropping...) | |||||||
|  1 file changed, 6 insertions(+), 1 deletion(-) |  1 file changed, 6 insertions(+), 1 deletion(-) | ||||||
| 
 | 
 | ||||||
| diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
 | diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
 | ||||||
| index 7f9d65fe4fd9..371e2cb79c11 100644
 | index 3b2fcb4fada0..f0f9e8574303 100644
 | ||||||
| --- a/drivers/scsi/sd.c
 | --- a/drivers/scsi/sd.c
 | ||||||
| +++ b/drivers/scsi/sd.c
 | +++ b/drivers/scsi/sd.c
 | ||||||
| @@ -2717,13 +2717,18 @@ static int sd_try_extended_inquiry(struct scsi_device *sdp)
 | @@ -2717,13 +2717,18 @@ static int sd_try_extended_inquiry(struct scsi_device *sdp)
 | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								sources
									
									
									
									
									
								
							| @ -1,2 +1,3 @@ | |||||||
| fe9dc0f6729f36400ea81aa41d614c37  linux-4.1.tar.xz | fe9dc0f6729f36400ea81aa41d614c37  linux-4.1.tar.xz | ||||||
| 5b4d0e18c713a479a7b4c1aa53a7432b  perf-man-4.1.tar.gz | 84e34c2f58901edcc5c840fe9893c02e  perf-man-4.1.tar.gz | ||||||
|  | 424d9767af06f914a4dccd5421a64f6d  patch-4.1-git1.xz | ||||||
|  | |||||||
| @ -20,18 +20,18 @@ Signed-off-by: Dave Jones <davej@redhat.com> | |||||||
|  1 file changed, 29 insertions(+) |  1 file changed, 29 insertions(+) | ||||||
| 
 | 
 | ||||||
| diff --git a/kernel/watchdog.c b/kernel/watchdog.c
 | diff --git a/kernel/watchdog.c b/kernel/watchdog.c
 | ||||||
| index 581a68a04c64..18b609d3360a 100644
 | index a6ffa43f2993..b378b762844a 100644
 | ||||||
| --- a/kernel/watchdog.c
 | --- a/kernel/watchdog.c
 | ||||||
| +++ b/kernel/watchdog.c
 | +++ b/kernel/watchdog.c
 | ||||||
| @@ -19,6 +19,7 @@
 | @@ -20,6 +20,7 @@
 | ||||||
|  #include <linux/sysctl.h> |  | ||||||
|  #include <linux/smpboot.h> |  #include <linux/smpboot.h> | ||||||
|  #include <linux/sched/rt.h> |  #include <linux/sched/rt.h> | ||||||
|  |  #include <linux/tick.h> | ||||||
| +#include <linux/dmi.h>
 | +#include <linux/dmi.h>
 | ||||||
|   |   | ||||||
|  #include <asm/irq_regs.h> |  #include <asm/irq_regs.h> | ||||||
|  #include <linux/kvm_para.h> |  #include <linux/kvm_para.h> | ||||||
| @@ -148,6 +149,32 @@ static int __init softlockup_all_cpu_backtrace_setup(char *str)
 | @@ -155,6 +156,32 @@ static int __init softlockup_all_cpu_backtrace_setup(char *str)
 | ||||||
|  __setup("softlockup_all_cpu_backtrace=", softlockup_all_cpu_backtrace_setup); |  __setup("softlockup_all_cpu_backtrace=", softlockup_all_cpu_backtrace_setup); | ||||||
|  #endif |  #endif | ||||||
|   |   | ||||||
| @ -64,7 +64,7 @@ index 581a68a04c64..18b609d3360a 100644 | |||||||
|  /* |  /* | ||||||
|   * Hard-lockup warnings should be triggered after just a few seconds. Soft- |   * Hard-lockup warnings should be triggered after just a few seconds. Soft- | ||||||
|   * lockups can have false positives under extreme conditions. So we generally |   * lockups can have false positives under extreme conditions. So we generally | ||||||
| @@ -883,6 +910,8 @@ out:
 | @@ -928,6 +955,8 @@ int proc_watchdog_cpumask(struct ctl_table *table, int write,
 | ||||||
|   |   | ||||||
|  void __init lockup_detector_init(void) |  void __init lockup_detector_init(void) | ||||||
|  { |  { | ||||||
| @ -72,4 +72,4 @@ index 581a68a04c64..18b609d3360a 100644 | |||||||
| +
 | +
 | ||||||
|  	set_sample_period(); |  	set_sample_period(); | ||||||
|   |   | ||||||
|  	if (watchdog_enabled) |  #ifdef CONFIG_NO_HZ_FULL | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user