diff --git a/debian/changelog b/debian/changelog index b45df7516..3adee5722 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -linux (4.9.8-1) UNRELEASED; urgency=medium +linux (4.9.9-1) UNRELEASED; urgency=medium * New upstream stable update: https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.7 @@ -16,8 +16,6 @@ linux (4.9.8-1) UNRELEASED; urgency=medium - mm, page_alloc: fix fast-path race with cpuset update or removal - mm, page_alloc: move cpuset seqcount checking to slowpath - mm, page_alloc: fix premature OOM when racing with cpuset mems update - - [armhf,arm64] vring: Force use of DMA API for ARM-based systems with - legacy devices - userns: Make ucounts lock irq-safe - sysctl: fix proc_doulongvec_ms_jiffies_minmax() - xfs: prevent quotacheck from overloading inode lru @@ -106,6 +104,62 @@ linux (4.9.8-1) UNRELEASED; urgency=medium - xfs: extsize hints are not unlikely in xfs_bmap_btalloc - xfs: clear _XBF_PAGES from buffers when readahead page - xfs: fix bmv_count confusion w/ shared extents + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.9.9 + - PCI/ASPM: Handle PCI-to-PCIe bridges as roots of PCIe hierarchies + - ext4: validate s_first_meta_bg at mount time + - [x86] efi: Always map the first physical page into the EFI pagetables + - [arm64] efi/fdt: Avoid FDT manipulation after ExitBootServices() + (Closes: #853170) + - HID: cp2112: fix sleep-while-atomic + - HID: cp2112: fix gpio-callback error handling + - [x86] pinctrl: baytrail: Add missing spinlock usage in + byt_gpio_irq_handler + - [x86] drm/amdgpu/si: fix crash on headless asics + - drm/nouveau/disp/gt215: Fix HDA ELD handling (thus, HDMI audio) on gt215 + - drm/nouveau/nv1a,nv1f/disp: fix memory clock rate retrieval + - crypto: api - Clear CRYPTO_ALG_DEAD bit before registering an alg + - crypto: arm64/aes-blk - honour iv_out requirement in CBC and CTR modes + - perf/core: Fix use-after-free bug + - perf/core: Fix PERF_RECORD_MMAP2 prot/flags for anonymous memory + - ata: sata_mv:- Handle return value of devm_ioremap. + - libata: apply MAX_SEC_1024 to all CX1-JB*-HP devices + - libata: Fix ATA request sense + - [powerpc*] eeh: Fix wrong flag passed to eeh_unfreeze_pe() + - [powerpc*] Add missing error check to prom_find_boot_cpu() + - [powerpc*] mm: Use the correct pointer when setting a 2MB pte + - NFSD: Fix a null reference case in find_or_create_lock_stateid() + - svcrpc: fix oops in absence of krb5 module + - zswap: disable changing params if init fails + - cifs: initialize file_info_lock + - mm/memory_hotplug.c: check start_pfn in test_pages_in_a_zone() + - base/memory, hotplug: fix a kernel oops in show_valid_zones() + - mm, fs: check for fatal signals in do_generic_file_read() + - tracing: Fix hwlat kthread migration + - can: bcm: fix hrtimer/tasklet termination in bcm op removal + - cgroup: don't online subsystems before cgroup_name/path() are operational + - mmc: sdhci: Ignore unexpected CARD_INT interrupts + - vhost: fix initialization for vq->is_le + - [armhf] regulator: axp20x: AXP806: Fix dcdcb being set instead of dcdce + - percpu-refcount: fix reference leak during percpu-atomic transition + - [x86] pinctrl: baytrail: Debounce register is one per community + - [x86] pinctrl: intel: merrifield: Add missed check in mrfld_config_set() + - iwlwifi: fix double hyphen in MODULE_FIRMWARE for 8000 + - iwlwifi: mvm: avoid crash on restart w/o reserved queues + - HID: usbhid: Quirk a AMI virtual mouse and keyboard with ALWAYS_POLL + - HID: hid-lg: Fix immediate disconnection of Logitech Rumblepad 2 + - HID: wacom: Fix poor prox handling in 'wacom_pl_irq' + - [x86] perf/intel/uncore: Clean up hotplug conversion fallout + - [armhf] dmaengine: cppi41: Fix runtime PM timeouts with USB mass storage + - [armhf] dmaengine: cppi41: Fix oops in cppi41_runtime_resume + - [x86] KVM: do not save guest-unsupported XSAVE state + - USB: Add quirk for WORLDE easykey.25 MIDI keyboard + - usb: musb: Fix host mode error -71 regression + - usb: gadget: f_fs: Assorted buffer overflow checks. + - irqdomain: Avoid activating interrupts more than once + - [x86] irq: Make irq activate operations symmetric + - iw_cxgb4: set correct FetchBurstMax for QPs + - fs: break out of iomap_file_buffered_write on fatal signals + - [x86] drm/i915/execlists: Reset RING registers upon resume [ Ben Hutchings ] * Bump ABI to 2 @@ -137,10 +191,6 @@ linux (4.9.8-1) UNRELEASED; urgency=medium series * [armel] ARM: orion5x: fix Makefile for linkstation-lschl.dtb - [ Riku Voipio ] - * [arm64] Revert "efi/libstub/arm*: Pass latest memory map to the kernel" - (Closes: #853170) - -- Ben Hutchings Fri, 27 Jan 2017 18:14:31 +0000 linux (4.9.6-3) unstable; urgency=medium diff --git a/debian/patches/bugfix/arm64/efi-libstub-arm-pass-latest-memory-map-to-the.patch b/debian/patches/bugfix/arm64/efi-libstub-arm-pass-latest-memory-map-to-the.patch deleted file mode 100644 index 07f161d9e..000000000 --- a/debian/patches/bugfix/arm64/efi-libstub-arm-pass-latest-memory-map-to-the.patch +++ /dev/null @@ -1,200 +0,0 @@ -From 1816e2e5003836a142056957f7a813d846eba992 Mon Sep 17 00:00:00 2001 -From: Riku Voipio -Date: Wed, 1 Feb 2017 13:37:49 +0200 -Subject: [PATCH] Revert "efi/libstub/arm*: Pass latest memory map to the - kernel" - -This reverts commit 74ce3fd64bc44f89856ff57bf684882dc098f93b. ---- - drivers/firmware/efi/libstub/efistub.h | 8 ++++ - drivers/firmware/efi/libstub/fdt.c | 87 ++++++++++++---------------------- - 2 files changed, 39 insertions(+), 56 deletions(-) - -diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h -index fac67992bede..ee49cd23ee63 100644 ---- a/drivers/firmware/efi/libstub/efistub.h -+++ b/drivers/firmware/efi/libstub/efistub.h -@@ -30,6 +30,14 @@ efi_status_t efi_file_close(void *handle); - - unsigned long get_dram_base(efi_system_table_t *sys_table_arg); - -+efi_status_t update_fdt(efi_system_table_t *sys_table, void *orig_fdt, -+ unsigned long orig_fdt_size, -+ void *fdt, int new_fdt_size, char *cmdline_ptr, -+ u64 initrd_addr, u64 initrd_size, -+ efi_memory_desc_t *memory_map, -+ unsigned long map_size, unsigned long desc_size, -+ u32 desc_ver); -+ - efi_status_t allocate_new_fdt_and_exit_boot(efi_system_table_t *sys_table, - void *handle, - unsigned long *new_fdt_addr, -diff --git a/drivers/firmware/efi/libstub/fdt.c b/drivers/firmware/efi/libstub/fdt.c -index 921dfa047202..a6a93116a8f0 100644 ---- a/drivers/firmware/efi/libstub/fdt.c -+++ b/drivers/firmware/efi/libstub/fdt.c -@@ -16,10 +16,13 @@ - - #include "efistub.h" - --static efi_status_t update_fdt(efi_system_table_t *sys_table, void *orig_fdt, -- unsigned long orig_fdt_size, -- void *fdt, int new_fdt_size, char *cmdline_ptr, -- u64 initrd_addr, u64 initrd_size) -+efi_status_t update_fdt(efi_system_table_t *sys_table, void *orig_fdt, -+ unsigned long orig_fdt_size, -+ void *fdt, int new_fdt_size, char *cmdline_ptr, -+ u64 initrd_addr, u64 initrd_size, -+ efi_memory_desc_t *memory_map, -+ unsigned long map_size, unsigned long desc_size, -+ u32 desc_ver) - { - int node, num_rsv; - int status; -@@ -98,23 +101,25 @@ static efi_status_t update_fdt(efi_system_table_t *sys_table, void *orig_fdt, - if (status) - goto fdt_set_fail; - -- fdt_val64 = U64_MAX; /* placeholder */ -+ fdt_val64 = cpu_to_fdt64((u64)(unsigned long)memory_map); - status = fdt_setprop(fdt, node, "linux,uefi-mmap-start", - &fdt_val64, sizeof(fdt_val64)); - if (status) - goto fdt_set_fail; - -- fdt_val32 = U32_MAX; /* placeholder */ -+ fdt_val32 = cpu_to_fdt32(map_size); - status = fdt_setprop(fdt, node, "linux,uefi-mmap-size", - &fdt_val32, sizeof(fdt_val32)); - if (status) - goto fdt_set_fail; - -+ fdt_val32 = cpu_to_fdt32(desc_size); - status = fdt_setprop(fdt, node, "linux,uefi-mmap-desc-size", - &fdt_val32, sizeof(fdt_val32)); - if (status) - goto fdt_set_fail; - -+ fdt_val32 = cpu_to_fdt32(desc_ver); - status = fdt_setprop(fdt, node, "linux,uefi-mmap-desc-ver", - &fdt_val32, sizeof(fdt_val32)); - if (status) -@@ -143,43 +148,6 @@ static efi_status_t update_fdt(efi_system_table_t *sys_table, void *orig_fdt, - return EFI_LOAD_ERROR; - } - --static efi_status_t update_fdt_memmap(void *fdt, struct efi_boot_memmap *map) --{ -- int node = fdt_path_offset(fdt, "/chosen"); -- u64 fdt_val64; -- u32 fdt_val32; -- int err; -- -- if (node < 0) -- return EFI_LOAD_ERROR; -- -- fdt_val64 = cpu_to_fdt64((unsigned long)*map->map); -- err = fdt_setprop_inplace(fdt, node, "linux,uefi-mmap-start", -- &fdt_val64, sizeof(fdt_val64)); -- if (err) -- return EFI_LOAD_ERROR; -- -- fdt_val32 = cpu_to_fdt32(*map->map_size); -- err = fdt_setprop_inplace(fdt, node, "linux,uefi-mmap-size", -- &fdt_val32, sizeof(fdt_val32)); -- if (err) -- return EFI_LOAD_ERROR; -- -- fdt_val32 = cpu_to_fdt32(*map->desc_size); -- err = fdt_setprop_inplace(fdt, node, "linux,uefi-mmap-desc-size", -- &fdt_val32, sizeof(fdt_val32)); -- if (err) -- return EFI_LOAD_ERROR; -- -- fdt_val32 = cpu_to_fdt32(*map->desc_ver); -- err = fdt_setprop_inplace(fdt, node, "linux,uefi-mmap-desc-ver", -- &fdt_val32, sizeof(fdt_val32)); -- if (err) -- return EFI_LOAD_ERROR; -- -- return EFI_SUCCESS; --} -- - #ifndef EFI_FDT_ALIGN - #define EFI_FDT_ALIGN EFI_PAGE_SIZE - #endif -@@ -275,10 +243,20 @@ efi_status_t allocate_new_fdt_and_exit_boot(efi_system_table_t *sys_table, - goto fail; - } - -+ /* -+ * Now that we have done our final memory allocation (and free) -+ * we can get the memory map key needed for -+ * exit_boot_services(). -+ */ -+ status = efi_get_memory_map(sys_table, &map); -+ if (status != EFI_SUCCESS) -+ goto fail_free_new_fdt; -+ - status = update_fdt(sys_table, - (void *)fdt_addr, fdt_size, - (void *)*new_fdt_addr, new_fdt_size, -- cmdline_ptr, initrd_addr, initrd_size); -+ cmdline_ptr, initrd_addr, initrd_size, -+ memory_map, map_size, desc_size, desc_ver); - - /* Succeeding the first time is the expected case. */ - if (status == EFI_SUCCESS) -@@ -288,16 +266,20 @@ efi_status_t allocate_new_fdt_and_exit_boot(efi_system_table_t *sys_table, - /* - * We need to allocate more space for the new - * device tree, so free existing buffer that is -- * too small. -+ * too small. Also free memory map, as we will need -+ * to get new one that reflects the free/alloc we do -+ * on the device tree buffer. - */ - efi_free(sys_table, new_fdt_size, *new_fdt_addr); -+ sys_table->boottime->free_pool(memory_map); - new_fdt_size += EFI_PAGE_SIZE; - } else { - pr_efi_err(sys_table, "Unable to construct new device tree.\n"); -- goto fail_free_new_fdt; -+ goto fail_free_mmap; - } - } - -+ sys_table->boottime->free_pool(memory_map); - priv.runtime_map = runtime_map; - priv.runtime_entry_count = &runtime_entry_count; - status = efi_exit_boot_services(sys_table, handle, &map, &priv, -@@ -306,16 +288,6 @@ efi_status_t allocate_new_fdt_and_exit_boot(efi_system_table_t *sys_table, - if (status == EFI_SUCCESS) { - efi_set_virtual_address_map_t *svam; - -- status = update_fdt_memmap((void *)*new_fdt_addr, &map); -- if (status != EFI_SUCCESS) { -- /* -- * The kernel won't get far without the memory map, but -- * may still be able to print something meaningful so -- * return success here. -- */ -- return EFI_SUCCESS; -- } -- - /* Install the new virtual address map */ - svam = sys_table->runtime->set_virtual_address_map; - status = svam(runtime_entry_count * desc_size, desc_size, -@@ -347,6 +319,9 @@ efi_status_t allocate_new_fdt_and_exit_boot(efi_system_table_t *sys_table, - - pr_efi_err(sys_table, "Exit boot services failed.\n"); - -+fail_free_mmap: -+ sys_table->boottime->free_pool(memory_map); -+ - fail_free_new_fdt: - efi_free(sys_table, new_fdt_size, *new_fdt_addr); - --- -2.11.0 - diff --git a/debian/patches/series b/debian/patches/series index 76252a558..1f72abd5c 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -47,7 +47,6 @@ debian/fanotify-taint-on-use-of-fanotify_access_permissions.patch # Arch bug fixes bugfix/x86/asoc-intel-select-dw_dmac_core-since-it-s-mandatory.patch -bugfix/arm64/efi-libstub-arm-pass-latest-memory-map-to-the.patch # Arch features features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch