diff --git a/debian/changelog b/debian/changelog index 32d20366f..ebb606343 100644 --- a/debian/changelog +++ b/debian/changelog @@ -30,7 +30,6 @@ linux (4.4.5-1) UNRELEASED; urgency=medium - [x86] drm/amdgpu/gfx8: specify which engine to wait before vm flush - [x86] drm/amdgpu: return from atombios_dp_get_dpcd only when error - libata: fix HDIO_GET_32BIT ioctl - - libata: Align ata_device's id on a cacheline - writeback: flush inode cgroup wb switches instead of pinning super_block - Adding Intel Lewisburg device IDs for SATA - [arm64] vmemmap: use virtual projection of linear region @@ -72,6 +71,8 @@ linux (4.4.5-1) UNRELEASED; urgency=medium [ Ben Hutchings ] * [x86] drm/i915: Fix oops caused by fbdev initialization failure + * module: Fix ABI change in 4.4.5 + * Revert "libata: Align ata_device's id on a cacheline" to avoid ABI change [ Ian Campbell ] * [arm64] Enable ARCH_HISI (Hisilicon) and the set of currently available diff --git a/debian/patches/debian/module-fix-abi-change-in-4.4.5.patch b/debian/patches/debian/module-fix-abi-change-in-4.4.5.patch new file mode 100644 index 000000000..57711a297 --- /dev/null +++ b/debian/patches/debian/module-fix-abi-change-in-4.4.5.patch @@ -0,0 +1,40 @@ +From: Ben Hutchings +Date: Mon, 14 Mar 2016 23:20:37 +0000 +Subject: module: Fix ABI change in 4.4.5 +Forwarded: not-needed + +Move the new kallsyms fields in struct module to the end and hide +them from genksyms. Restore the old fields but leave them zeroed - +nothing outside the module loader and /proc/kallsyms implementation +should be, or appears to be, using them. + +--- +--- a/include/linux/module.h ++++ b/include/linux/module.h +@@ -417,9 +417,10 @@ struct module { + #endif + + #ifdef CONFIG_KALLSYMS +- /* Protected by RCU and/or module_mutex: use rcu_dereference() */ +- struct mod_kallsyms *kallsyms; +- struct mod_kallsyms core_kallsyms; ++ /* bwh: Old kallsyms state; now just padding for ABI compat */ ++ Elf_Sym *symtab, *core_symtab; ++ unsigned int num_symtab, core_num_syms; ++ char *strtab, *core_strtab; + + /* Section attributes */ + struct module_sect_attrs *sect_attrs; +@@ -482,6 +483,12 @@ struct module { + ctor_fn_t *ctors; + unsigned int num_ctors; + #endif ++ ++#if defined(CONFIG_KALLSYMS) && !defined(__GENKSYMS__) ++ /* Protected by RCU and/or module_mutex: use rcu_dereference() */ ++ struct mod_kallsyms *kallsyms; ++ struct mod_kallsyms core_kallsyms; ++#endif + } ____cacheline_aligned; + #ifndef MODULE_ARCH_INIT + #define MODULE_ARCH_INIT {} diff --git a/debian/patches/debian/revert-libata-align-ata_device-s-id-on-a-cacheline.patch b/debian/patches/debian/revert-libata-align-ata_device-s-id-on-a-cacheline.patch new file mode 100644 index 000000000..bb4f8403c --- /dev/null +++ b/debian/patches/debian/revert-libata-align-ata_device-s-id-on-a-cacheline.patch @@ -0,0 +1,24 @@ +From: Ben Hutchings +Date: Mon, 14 Mar 2016 17:47:16 +0000 +Subject: Revert "libata: Align ata_device's id on a cacheline" +Forwarded: not-needed + +This reverts commit cea2cbff57c5b65375adb6fe65612c10a7301327, which +was commit 4ee34ea3a12396f35b26d90a094c75db95080baa upstream. It's a +real fix but we've lived with the problem for many years and it +doesn't seem worth breaking ABI to fix it right now. +--- + include/linux/libata.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/include/linux/libata.h ++++ b/include/linux/libata.h +@@ -718,7 +718,7 @@ struct ata_device { + union { + u16 id[ATA_ID_WORDS]; /* IDENTIFY xxx DEVICE data */ + u32 gscr[SATA_PMP_GSCR_DWORDS]; /* PMP GSCR block */ +- } ____cacheline_aligned; ++ }; + + /* DEVSLP Timing Variables from Identify Device Data Log */ + u8 devslp_timing[ATA_LOG_DEVSLP_SIZE]; diff --git a/debian/patches/series b/debian/patches/series index 5c5814eea..51d58160a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -135,3 +135,5 @@ debian/ipv6-fix-abi-change-in-4.4.4.patch bugfix/all/revert-drm-radeon-call-hpd_irq_event-on-resume.patch bugfix/powerpc/powerpc-fix-dedotify-for-binutils-2.26.patch bugfix/x86/drm-i915-Fix-oops-caused-by-fbdev-initialization-fai.patch +debian/revert-libata-align-ata_device-s-id-on-a-cacheline.patch +debian/module-fix-abi-change-in-4.4.5.patch