Re: Linux 4.4.11
diff --git a/Makefile b/Makefile index 5b5f462f834c..aad86274b61b 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ VERSION = 4 PATCHLEVEL = 4 -SUBLEVEL = 10 +SUBLEVEL = 11 EXTRAVERSION = NAME = Blurry Fish Butt diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi index 0827d594b1f0..cd0cd5fd09a3 100644 --- a/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/arch/arm/boot/dts/at91sam9x5.dtsi @@ -106,7 +106,7 @@ pmc: pmc@fc00 { compatible = "atmel,at91sam9x5-pmc", "syscon"; - reg = <0xfc00 0x100>; + reg = <0xfc00 0x200>; interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; interrupt-controller; #address-cells = <1>; diff --git a/arch/s390/include/asm/mmu.h b/arch/s390/include/asm/mmu.h index d29ad9545b41..081b2ad99d73 100644 --- a/arch/s390/include/asm/mmu.h +++ b/arch/s390/include/asm/mmu.h @@ -11,7 +11,7 @@ typedef struct { spinlock_t list_lock; struct list_head pgtable_list; struct list_head gmap_list; - unsigned long asce_bits; + unsigned long asce; unsigned long asce_limit; unsigned long vdso_base; /* The mmu context allocates 4K page tables. */ diff --git a/arch/s390/include/asm/mmu_context.h b/arch/s390/include/asm/mmu_context.h index e485817f7b1a..22877c9440ea 100644 --- a/arch/s390/include/asm/mmu_context.h +++ b/arch/s390/include/asm/mmu_context.h @@ -26,12 +26,28 @@ static inline int init_new_context(struct task_struct *tsk, mm->context.has_pgste = 0; mm->context.use_skey = 0; #endif - if (mm->context.asce_limit == 0) { + switch (mm->context.asce_limit) { + case 1UL << 42: + /* +* forked 3-level task, fall through to set new asce with new +* mm->pgd +*/ + case 0: /* context created by exec, set asce limit to 4TB */ - mm->context.asce_bits = _ASCE_TABLE_LENGTH | - _ASCE_USER_BITS | _ASCE_TYPE_REGION3; mm->context.asce_limit = STACK_TOP_MAX; - } else if (mm->context.asce_limit == (1UL << 31)) { + mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH | + _ASCE_USER_BITS | _ASCE_TYPE_REGION3; + break; + case 1UL << 53: + /* forked 4-level task, set new asce with new mm->pgd */ + mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH | + _ASCE_USER_BITS | _ASCE_TYPE_REGION2; + break; + case 1UL << 31: + /* forked 2-level compat task, set new asce with new mm->pgd */ + mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH | + _ASCE_USER_BITS | _ASCE_TYPE_SEGMENT; + /* pgd_alloc() did not increase mm->nr_pmds */ mm_inc_nr_pmds(mm); } crst_table_init((unsigned long *) mm->pgd, pgd_entry_type(mm)); @@ -42,7 +58,7 @@ static inline int init_new_context(struct task_struct *tsk, static inline void set_user_asce(struct mm_struct *mm) { - S390_lowcore.user_asce = mm->context.asce_bits | __pa(mm->pgd); + S390_lowcore.user_asce = mm->context.asce; if (current->thread.mm_segment.ar4) __ctl_load(S390_lowcore.user_asce, 7, 7); set_cpu_flag(CIF_ASCE); @@ -71,7 +87,7 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, { int cpu = smp_processor_id(); - S390_lowcore.user_asce = next->context.asce_bits | __pa(next->pgd); + S390_lowcore.user_asce = next->context.asce; if (prev == next) return; if (MACHINE_HAS_TLB_LC) diff --git a/arch/s390/include/asm/pgalloc.h b/arch/s390/include/asm/pgalloc.h index d7cc79fb6191..5991cdcb5b40 100644 --- a/arch/s390/include/asm/pgalloc.h +++ b/arch/s390/include/asm/pgalloc.h @@ -56,8 +56,8 @@ static inline unsigned long pgd_entry_type(struct mm_struct *mm) return _REGION2_ENTRY_EMPTY; } -int crst_table_upgrade(struct mm_struct *, unsigned long limit); -void crst_table_downgrade(struct mm_struct *, unsigned long limit); +int crst_table_upgrade(struct mm_struct *); +void crst_table_downgrade(struct mm_struct *); static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address) { diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h index b16c3d0a1b9f..c1ea67db8404 100644 --- a/arch/s390/include/asm/processor.h +++ b/arch/s390/include/asm/processor.h @@ -163,7 +163,7 @@ extern __vector128 init_task_fpu_regs[__NUM_VXRS]; regs->psw.mask = PSW_USER_BITS | PSW_MASK_BA; \ regs->psw.addr = new_psw | PSW_ADDR_AMODE; \
Re: Linux 4.4.11
diff --git a/Makefile b/Makefile index 5b5f462f834c..aad86274b61b 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ VERSION = 4 PATCHLEVEL = 4 -SUBLEVEL = 10 +SUBLEVEL = 11 EXTRAVERSION = NAME = Blurry Fish Butt diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi index 0827d594b1f0..cd0cd5fd09a3 100644 --- a/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/arch/arm/boot/dts/at91sam9x5.dtsi @@ -106,7 +106,7 @@ pmc: pmc@fc00 { compatible = "atmel,at91sam9x5-pmc", "syscon"; - reg = <0xfc00 0x100>; + reg = <0xfc00 0x200>; interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; interrupt-controller; #address-cells = <1>; diff --git a/arch/s390/include/asm/mmu.h b/arch/s390/include/asm/mmu.h index d29ad9545b41..081b2ad99d73 100644 --- a/arch/s390/include/asm/mmu.h +++ b/arch/s390/include/asm/mmu.h @@ -11,7 +11,7 @@ typedef struct { spinlock_t list_lock; struct list_head pgtable_list; struct list_head gmap_list; - unsigned long asce_bits; + unsigned long asce; unsigned long asce_limit; unsigned long vdso_base; /* The mmu context allocates 4K page tables. */ diff --git a/arch/s390/include/asm/mmu_context.h b/arch/s390/include/asm/mmu_context.h index e485817f7b1a..22877c9440ea 100644 --- a/arch/s390/include/asm/mmu_context.h +++ b/arch/s390/include/asm/mmu_context.h @@ -26,12 +26,28 @@ static inline int init_new_context(struct task_struct *tsk, mm->context.has_pgste = 0; mm->context.use_skey = 0; #endif - if (mm->context.asce_limit == 0) { + switch (mm->context.asce_limit) { + case 1UL << 42: + /* +* forked 3-level task, fall through to set new asce with new +* mm->pgd +*/ + case 0: /* context created by exec, set asce limit to 4TB */ - mm->context.asce_bits = _ASCE_TABLE_LENGTH | - _ASCE_USER_BITS | _ASCE_TYPE_REGION3; mm->context.asce_limit = STACK_TOP_MAX; - } else if (mm->context.asce_limit == (1UL << 31)) { + mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH | + _ASCE_USER_BITS | _ASCE_TYPE_REGION3; + break; + case 1UL << 53: + /* forked 4-level task, set new asce with new mm->pgd */ + mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH | + _ASCE_USER_BITS | _ASCE_TYPE_REGION2; + break; + case 1UL << 31: + /* forked 2-level compat task, set new asce with new mm->pgd */ + mm->context.asce = __pa(mm->pgd) | _ASCE_TABLE_LENGTH | + _ASCE_USER_BITS | _ASCE_TYPE_SEGMENT; + /* pgd_alloc() did not increase mm->nr_pmds */ mm_inc_nr_pmds(mm); } crst_table_init((unsigned long *) mm->pgd, pgd_entry_type(mm)); @@ -42,7 +58,7 @@ static inline int init_new_context(struct task_struct *tsk, static inline void set_user_asce(struct mm_struct *mm) { - S390_lowcore.user_asce = mm->context.asce_bits | __pa(mm->pgd); + S390_lowcore.user_asce = mm->context.asce; if (current->thread.mm_segment.ar4) __ctl_load(S390_lowcore.user_asce, 7, 7); set_cpu_flag(CIF_ASCE); @@ -71,7 +87,7 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, { int cpu = smp_processor_id(); - S390_lowcore.user_asce = next->context.asce_bits | __pa(next->pgd); + S390_lowcore.user_asce = next->context.asce; if (prev == next) return; if (MACHINE_HAS_TLB_LC) diff --git a/arch/s390/include/asm/pgalloc.h b/arch/s390/include/asm/pgalloc.h index d7cc79fb6191..5991cdcb5b40 100644 --- a/arch/s390/include/asm/pgalloc.h +++ b/arch/s390/include/asm/pgalloc.h @@ -56,8 +56,8 @@ static inline unsigned long pgd_entry_type(struct mm_struct *mm) return _REGION2_ENTRY_EMPTY; } -int crst_table_upgrade(struct mm_struct *, unsigned long limit); -void crst_table_downgrade(struct mm_struct *, unsigned long limit); +int crst_table_upgrade(struct mm_struct *); +void crst_table_downgrade(struct mm_struct *); static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long address) { diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h index b16c3d0a1b9f..c1ea67db8404 100644 --- a/arch/s390/include/asm/processor.h +++ b/arch/s390/include/asm/processor.h @@ -163,7 +163,7 @@ extern __vector128 init_task_fpu_regs[__NUM_VXRS]; regs->psw.mask = PSW_USER_BITS | PSW_MASK_BA; \ regs->psw.addr = new_psw | PSW_ADDR_AMODE; \
Linux 4.4.11
/route.c |2 net/llc/af_llc.c |1 net/netfilter/nf_conntrack_core.c |4 net/openvswitch/actions.c | 12 +- net/openvswitch/vport-netdev.c |2 net/openvswitch/vport.h|7 - net/packet/af_packet.c |1 net/sched/sch_api.c|8 + net/sched/sch_cbq.c| 12 -- net/sched/sch_choke.c |6 - net/sched/sch_codel.c | 10 +- net/sched/sch_drr.c|9 -- net/sched/sch_dsmark.c | 11 -- net/sched/sch_fq.c |4 net/sched/sch_fq_codel.c | 17 ++-- net/sched/sch_generic.c|5 - net/sched/sch_hfsc.c |9 -- net/sched/sch_hhf.c| 10 +- net/sched/sch_htb.c| 24 ++--- net/sched/sch_multiq.c | 16 +-- net/sched/sch_netem.c | 74 ++--- net/sched/sch_pie.c|5 - net/sched/sch_prio.c | 15 +-- net/sched/sch_qfq.c|9 -- net/sched/sch_red.c| 10 -- net/sched/sch_sfb.c| 10 -- net/sched/sch_sfq.c| 16 ++- net/sched/sch_tbf.c| 15 +-- net/vmw_vsock/af_vsock.c | 21 - net/x25/x25_facilities.c |1 samples/bpf/trace_output_kern.c|1 sound/pci/hda/hda_sysfs.c |8 - sound/pci/hda/patch_realtek.c | 13 +++ sound/usb/quirks.c |3 tools/lib/traceevent/parse-filter.c|4 108 files changed, 844 insertions(+), 480 deletions(-) Al Viro (2): atomic_open(): fix the handling of create_error get_rock_ridge_filename(): handle malformed NM entries Alexander Shishkin (1): perf/core: Disable the event on a truncated AUX record Alexei Starovoitov (4): bpf/verifier: reject invalid LD_ABS | BPF_DW instruction bpf: fix refcnt overflow bpf: fix check_map_func_compatibility logic samples/bpf: fix trace_output example Arindam Nath (1): drm/radeon: fix DP link training issue with second 4K monitor Ben Hutchings (3): atl2: Disable unimplemented scatter/gather feature spi: spi-ti-qspi: Fix FLEN and WLEN settings if bits_per_word is overridden spi: spi-ti-qspi: Handle truncated frames properly Bjørn Mork (1): cdc_mbim: apply "NDP to end" quirk to all Huawei devices Boris Brezillon (1): ARM: dts: at91: sam9x5: Fix the memory range assigned to the PMC Chris Friesen (1): route: do not cache fib route info on local routes with oif Daniel Borkmann (2): net: use skb_postpush_rcsum instead of own implementations vlan: pull on __vlan_insert_tag error path and fix csum correction Daniel Jurgens (1): net/mlx4_en: Fix endianness bug in IPV6 csum calculation Daniel Vetter (1): drm/i915: Bail out of pipe config compute loop on LPT David S. Miller (1): decnet: Do not build routes to devices without decnet private data. Eric Dumazet (2): net/mlx4_en: fix spurious timestamping callbacks tcp: refresh skb timestamp at retransmit time Gerald Schaefer (1): s390/mm: fix asce_bits handling with dynamic pagetable levels Greg Kroah-Hartman (1): Linux 4.4.11 Hans de Goede (1): regulator: axp20x: Fix axp22x ldo_io voltage ranges Herbert Xu (2): crypto: hash - Fix page length clamping in hash walk crypto: testmgr - Use kmalloc memory for RSA input Ian Campbell (1): VSOCK: do not disconnect socket when peer has shutdown SEND only Imre Deak (1): drm/i915/bdw: Add missing delay during L3 SQC credit programming Jack Pham (1): regmap: spmi: Fix regmap_spmi_ext_read in multi-byte case Jann Horn (1): bpf: fix double-fdput in replace_map_fd_with_map_ptr() Jarkko Nikula (1): spi: pxa2xx: Do not detect number of enabled chip selects on Intel SPT Jiri Benc (1): gre: do not pull header in ICMP error processing Johannes Thumshirn (1): qla1280: Don't allocate 512kb of host tags Junxiao Bi (2): ocfs2: revert using ocfs2_acl_chmod to avoid inode cluster lock hang ocfs2: fix posix_acl_create deadlock Kaho Ng (1): ALSA: hda - Fix white noise on Asus UX501VW headset Kangjie Lu (3): net: fix infoleak in llc net: fix infoleak in rtnetlink net: fix a kerne
Linux 4.4.11
/route.c |2 net/llc/af_llc.c |1 net/netfilter/nf_conntrack_core.c |4 net/openvswitch/actions.c | 12 +- net/openvswitch/vport-netdev.c |2 net/openvswitch/vport.h|7 - net/packet/af_packet.c |1 net/sched/sch_api.c|8 + net/sched/sch_cbq.c| 12 -- net/sched/sch_choke.c |6 - net/sched/sch_codel.c | 10 +- net/sched/sch_drr.c|9 -- net/sched/sch_dsmark.c | 11 -- net/sched/sch_fq.c |4 net/sched/sch_fq_codel.c | 17 ++-- net/sched/sch_generic.c|5 - net/sched/sch_hfsc.c |9 -- net/sched/sch_hhf.c| 10 +- net/sched/sch_htb.c| 24 ++--- net/sched/sch_multiq.c | 16 +-- net/sched/sch_netem.c | 74 ++--- net/sched/sch_pie.c|5 - net/sched/sch_prio.c | 15 +-- net/sched/sch_qfq.c|9 -- net/sched/sch_red.c| 10 -- net/sched/sch_sfb.c| 10 -- net/sched/sch_sfq.c| 16 ++- net/sched/sch_tbf.c| 15 +-- net/vmw_vsock/af_vsock.c | 21 - net/x25/x25_facilities.c |1 samples/bpf/trace_output_kern.c|1 sound/pci/hda/hda_sysfs.c |8 - sound/pci/hda/patch_realtek.c | 13 +++ sound/usb/quirks.c |3 tools/lib/traceevent/parse-filter.c|4 108 files changed, 844 insertions(+), 480 deletions(-) Al Viro (2): atomic_open(): fix the handling of create_error get_rock_ridge_filename(): handle malformed NM entries Alexander Shishkin (1): perf/core: Disable the event on a truncated AUX record Alexei Starovoitov (4): bpf/verifier: reject invalid LD_ABS | BPF_DW instruction bpf: fix refcnt overflow bpf: fix check_map_func_compatibility logic samples/bpf: fix trace_output example Arindam Nath (1): drm/radeon: fix DP link training issue with second 4K monitor Ben Hutchings (3): atl2: Disable unimplemented scatter/gather feature spi: spi-ti-qspi: Fix FLEN and WLEN settings if bits_per_word is overridden spi: spi-ti-qspi: Handle truncated frames properly Bjørn Mork (1): cdc_mbim: apply "NDP to end" quirk to all Huawei devices Boris Brezillon (1): ARM: dts: at91: sam9x5: Fix the memory range assigned to the PMC Chris Friesen (1): route: do not cache fib route info on local routes with oif Daniel Borkmann (2): net: use skb_postpush_rcsum instead of own implementations vlan: pull on __vlan_insert_tag error path and fix csum correction Daniel Jurgens (1): net/mlx4_en: Fix endianness bug in IPV6 csum calculation Daniel Vetter (1): drm/i915: Bail out of pipe config compute loop on LPT David S. Miller (1): decnet: Do not build routes to devices without decnet private data. Eric Dumazet (2): net/mlx4_en: fix spurious timestamping callbacks tcp: refresh skb timestamp at retransmit time Gerald Schaefer (1): s390/mm: fix asce_bits handling with dynamic pagetable levels Greg Kroah-Hartman (1): Linux 4.4.11 Hans de Goede (1): regulator: axp20x: Fix axp22x ldo_io voltage ranges Herbert Xu (2): crypto: hash - Fix page length clamping in hash walk crypto: testmgr - Use kmalloc memory for RSA input Ian Campbell (1): VSOCK: do not disconnect socket when peer has shutdown SEND only Imre Deak (1): drm/i915/bdw: Add missing delay during L3 SQC credit programming Jack Pham (1): regmap: spmi: Fix regmap_spmi_ext_read in multi-byte case Jann Horn (1): bpf: fix double-fdput in replace_map_fd_with_map_ptr() Jarkko Nikula (1): spi: pxa2xx: Do not detect number of enabled chip selects on Intel SPT Jiri Benc (1): gre: do not pull header in ICMP error processing Johannes Thumshirn (1): qla1280: Don't allocate 512kb of host tags Junxiao Bi (2): ocfs2: revert using ocfs2_acl_chmod to avoid inode cluster lock hang ocfs2: fix posix_acl_create deadlock Kaho Ng (1): ALSA: hda - Fix white noise on Asus UX501VW headset Kangjie Lu (3): net: fix infoleak in llc net: fix infoleak in rtnetlink net: fix a kerne