diff -u linux-lts-trusty-3.13.0/arch/x86/kvm/emulate.c linux-lts-trusty-3.13.0/arch/x86/kvm/emulate.c --- linux-lts-trusty-3.13.0/arch/x86/kvm/emulate.c +++ linux-lts-trusty-3.13.0/arch/x86/kvm/emulate.c @@ -3533,15 +3533,8 @@ if ((cr4 & X86_CR4_DE) && (dr == 4 || dr == 5)) return emulate_ud(ctxt); - if (check_dr7_gd(ctxt)) { - ulong dr6; - - ctxt->ops->get_dr(ctxt, 6, &dr6); - dr6 &= ~15; - dr6 |= DR6_BD; - ctxt->ops->set_dr(ctxt, 6, dr6); + if (check_dr7_gd(ctxt)) return emulate_db(ctxt); - } return X86EMUL_CONTINUE; } diff -u linux-lts-trusty-3.13.0/arch/x86/kvm/lapic.c linux-lts-trusty-3.13.0/arch/x86/kvm/lapic.c --- linux-lts-trusty-3.13.0/arch/x86/kvm/lapic.c +++ linux-lts-trusty-3.13.0/arch/x86/kvm/lapic.c @@ -1692,9 +1692,6 @@ apic->isr_count = kvm_apic_vid_enabled(vcpu->kvm) ? 1 : count_vectors(apic->regs + APIC_ISR); apic->highest_isr_cache = -1; - if (kvm_x86_ops->hwapic_irr_update) - kvm_x86_ops->hwapic_irr_update(vcpu, - apic_find_highest_irr(apic)); kvm_x86_ops->hwapic_isr_update(vcpu->kvm, apic_find_highest_isr(apic)); kvm_make_request(KVM_REQ_EVENT, vcpu); kvm_rtc_eoi_tracking_restore_one(vcpu); diff -u linux-lts-trusty-3.13.0/arch/x86/kvm/vmx.c linux-lts-trusty-3.13.0/arch/x86/kvm/vmx.c --- linux-lts-trusty-3.13.0/arch/x86/kvm/vmx.c +++ linux-lts-trusty-3.13.0/arch/x86/kvm/vmx.c @@ -6919,9 +6919,6 @@ u16 status; u8 old; - if (vector == -1) - vector = 0; - status = vmcs_read16(GUEST_INTR_STATUS); old = (u8)status & 0xff; if ((u8)vector != old) { @@ -6933,30 +6930,10 @@ static void vmx_hwapic_irr_update(struct kvm_vcpu *vcpu, int max_irr) { - if (!is_guest_mode(vcpu)) { - vmx_set_rvi(max_irr); - return; - } - if (max_irr == -1) return; - /* - * In guest mode. If a vmexit is needed, vmx_check_nested_events - * handles it. - */ - if (nested_exit_on_intr(vcpu)) - return; - - /* - * Else, fall back to pre-APICv interrupt injection since L2 - * is run without virtual interrupt delivery. - */ - if (!kvm_event_needs_reinjection(vcpu) && - vmx_interrupt_allowed(vcpu)) { - kvm_queue_interrupt(vcpu, max_irr, false); - vmx_inject_irq(vcpu); - } + vmx_set_rvi(max_irr); } static void vmx_load_eoi_exitmap(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap) diff -u linux-lts-trusty-3.13.0/debian.master/changelog linux-lts-trusty-3.13.0/debian.master/changelog --- linux-lts-trusty-3.13.0/debian.master/changelog +++ linux-lts-trusty-3.13.0/debian.master/changelog @@ -1,24 +1,10 @@ -linux (3.13.0-111.158) trusty; urgency=low +linux (3.13.0-112.159) trusty; urgency=low - [ Thadeu Lima de Souza Cascardo ] + * CVE-2017-2636 + - TTY: n_hdlc, fix lockdep false positive + - tty: n_hdlc: get rid of racy n_hdlc.tbuf - * Release Tracking Bug - - LP: #1666905 - - [ Andy Whitcroft ] - * Windows guest got 0x5c BSOD when rebooting (LP: #1660519) - - KVM: x86: reset RVI upon system reset - - KVM: x86: Emulator should set DR6 upon GD like real CPU - - * ipv6: fix a refcnt leak with peer addr (LP: #1662096) - - ipv6: fix a refcnt leak with peer addr - - ipv6: use addrconf_get_prefix_route() to remove peer addr - - ipv6: Avoid double dst_free - - * Enable CONFIG_NET_DROP_MONITOR=m in Ubuntu Kernel (LP: #1660634) - - [Config] CONFIG_NET_DROP_MONITOR=m - - -- Thadeu Lima de Souza Cascardo Wed, 22 Feb 2017 10:53:06 -0300 + -- Stefan Bader Fri, 03 Mar 2017 12:27:44 +0100 linux (3.13.0-110.157) trusty; urgency=low diff -u linux-lts-trusty-3.13.0/debian.master/config/annotations linux-lts-trusty-3.13.0/debian.master/config/annotations --- linux-lts-trusty-3.13.0/debian.master/config/annotations +++ linux-lts-trusty-3.13.0/debian.master/config/annotations @@ -1778,7 +1778,7 @@ # Menu: Networking options >> Network packet filtering framework (Netfilter) >> IPv6: Netfilter Configuration # Menu: Networking options >> Network testing -CONFIG_NET_DROP_MONITOR m note +CONFIG_NET_DROP_MONITOR n # Menu: Networking options >> QoS and/or fair queueing CONFIG_NET_SCHED y mark diff -u linux-lts-trusty-3.13.0/debian.master/config/config.common.ubuntu linux-lts-trusty-3.13.0/debian.master/config/config.common.ubuntu --- linux-lts-trusty-3.13.0/debian.master/config/config.common.ubuntu +++ linux-lts-trusty-3.13.0/debian.master/config/config.common.ubuntu @@ -4285,7 +4285,7 @@ CONFIG_NET_CLS_U32=m CONFIG_NET_CORE=y CONFIG_NET_DCCPPROBE=m -CONFIG_NET_DROP_MONITOR=m +# CONFIG_NET_DROP_MONITOR is not set CONFIG_NET_DSA=m CONFIG_NET_DSA_MV88E6060=m CONFIG_NET_DSA_MV88E6123_61_65=m diff -u linux-lts-trusty-3.13.0/debian.trusty/changelog linux-lts-trusty-3.13.0/debian.trusty/changelog --- linux-lts-trusty-3.13.0/debian.trusty/changelog +++ linux-lts-trusty-3.13.0/debian.trusty/changelog @@ -1,24 +1,10 @@ -linux-lts-trusty (3.13.0-111.158~precise1) precise; urgency=low +linux-lts-trusty (3.13.0-112.159~precise1) precise; urgency=low - [ Thadeu Lima de Souza Cascardo ] + * CVE-2017-2636 + - TTY: n_hdlc, fix lockdep false positive + - tty: n_hdlc: get rid of racy n_hdlc.tbuf - * Release Tracking Bug - - LP: #1666909 - - [ Andy Whitcroft ] - * Windows guest got 0x5c BSOD when rebooting (LP: #1660519) - - KVM: x86: reset RVI upon system reset - - KVM: x86: Emulator should set DR6 upon GD like real CPU - - * ipv6: fix a refcnt leak with peer addr (LP: #1662096) - - ipv6: fix a refcnt leak with peer addr - - ipv6: use addrconf_get_prefix_route() to remove peer addr - - ipv6: Avoid double dst_free - - * Enable CONFIG_NET_DROP_MONITOR=m in Ubuntu Kernel (LP: #1660634) - - [Config] CONFIG_NET_DROP_MONITOR=m - - -- Thadeu Lima de Souza Cascardo Wed, 22 Feb 2017 13:47:46 -0300 + -- Stefan Bader Fri, 03 Mar 2017 12:27:44 +0100 linux (3.13.0-110.157) trusty; urgency=low diff -u linux-lts-trusty-3.13.0/debian.trusty/config/annotations linux-lts-trusty-3.13.0/debian.trusty/config/annotations --- linux-lts-trusty-3.13.0/debian.trusty/config/annotations +++ linux-lts-trusty-3.13.0/debian.trusty/config/annotations @@ -1778,7 +1778,7 @@ # Menu: Networking options >> Network packet filtering framework (Netfilter) >> IPv6: Netfilter Configuration # Menu: Networking options >> Network testing -CONFIG_NET_DROP_MONITOR m note +CONFIG_NET_DROP_MONITOR n # Menu: Networking options >> QoS and/or fair queueing CONFIG_NET_SCHED y mark diff -u linux-lts-trusty-3.13.0/debian.trusty/config/config.common.ubuntu linux-lts-trusty-3.13.0/debian.trusty/config/config.common.ubuntu --- linux-lts-trusty-3.13.0/debian.trusty/config/config.common.ubuntu +++ linux-lts-trusty-3.13.0/debian.trusty/config/config.common.ubuntu @@ -4047,7 +4047,7 @@ CONFIG_NET_CLS_U32=m CONFIG_NET_CORE=y CONFIG_NET_DCCPPROBE=m -CONFIG_NET_DROP_MONITOR=m +# CONFIG_NET_DROP_MONITOR is not set CONFIG_NET_DSA=m CONFIG_NET_DSA_MV88E6060=m CONFIG_NET_DSA_MV88E6123_61_65=m diff -u linux-lts-trusty-3.13.0/debian.trusty/control.stub linux-lts-trusty-3.13.0/debian.trusty/control.stub --- linux-lts-trusty-3.13.0/debian.trusty/control.stub +++ linux-lts-trusty-3.13.0/debian.trusty/control.stub @@ -8,7 +8,7 @@ Build-Conflicts: findutils (= 4.4.1-1ubuntu1) Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-precise.git lts-backport-trusty -Package: linux-headers-3.13.0-111 +Package: linux-headers-3.13.0-112 Architecture: all Section: devel Priority: optional @@ -16,7 +16,7 @@ Description: Header files related to Linux kernel version 3.13.0 This package provides kernel header files for version 3.13.0, for sites that want the latest kernel headers. Please read - /usr/share/doc/linux-lts-trusty-headers-3.13.0-111/debian.README.gz for details + /usr/share/doc/linux-lts-trusty-headers-3.13.0-112/debian.README.gz for details #Package: linux-lts-trusty-tools-common #Architecture: all @@ -29,17 +29,17 @@ # version locked tools (such as perf and x86_energy_perf_policy) for # version PGKVER. -Package: linux-lts-trusty-tools-3.13.0-111 +Package: linux-lts-trusty-tools-3.13.0-112 Architecture: i386 amd64 armhf Section: devel Priority: optional Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common -Description: Linux kernel version specific tools for version 3.13.0-111 +Description: Linux kernel version specific tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel version locked tools (such as perf and x86_energy_perf_policy) for - version 3.13.0-111 on + version 3.13.0-112 on 64 bit x86. - You probabally want to install linux-tools-3.13.0-111-. + You probabally want to install linux-tools-3.13.0-112-. #Package: linux-lts-trusty-cloud-tools-common #Architecture: all @@ -53,20 +53,20 @@ # This package provides the architecture independent parts for kernel # version locked tools for cloud tools for version PGKVER. -Package: linux-lts-trusty-cloud-tools-3.13.0-111 +Package: linux-lts-trusty-cloud-tools-3.13.0-112 Architecture: i386 amd64 armhf Section: devel Priority: optional Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common -Description: Linux kernel version specific cloud tools for version 3.13.0-111 +Description: Linux kernel version specific cloud tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel - version locked tools for cloud tools for version 3.13.0-111 on + version locked tools for cloud tools for version 3.13.0-112 on 64 bit x86. - You probabally want to install linux-cloud-tools-3.13.0-111-. + You probabally want to install linux-cloud-tools-3.13.0-112-. -Package: linux-image-3.13.0-111-generic +Package: linux-image-3.13.0-112-generic Architecture: i386 amd64 armhf Section: kernel Priority: optional @@ -75,7 +75,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) Conflicts: hotplug (<< 0.0.20040105-1) Recommends: grub-pc [i386 amd64] | grub-efi-amd64 [i386 amd64] | grub-efi-ia32 [i386 amd64] | grub [i386 amd64] | lilo (>= 19.1) [i386 amd64] | flash-kernel [armhf] -Suggests: fdutils, linux-lts-trusty-doc-3.13.0 | linux-lts-trusty-source-3.13.0, linux-lts-trusty-tools, linux-headers-3.13.0-111-generic +Suggests: fdutils, linux-lts-trusty-doc-3.13.0 | linux-lts-trusty-source-3.13.0, linux-lts-trusty-tools, linux-headers-3.13.0-112-generic Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP This package contains the Linux kernel image for version 3.13.0 on 64 bit x86 SMP. @@ -92,19 +92,19 @@ the linux-generic meta-package, which will ensure that upgrades work correctly, and that supporting packages are also installed. -Package: linux-headers-3.13.0-111-generic +Package: linux-headers-3.13.0-112-generic Architecture: i386 amd64 armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-headers-3.13.0-111, ${shlibs:Depends} +Depends: ${misc:Depends}, linux-headers-3.13.0-112, ${shlibs:Depends} Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP This package provides kernel header files for version 3.13.0 on 64 bit x86 SMP. . This is for sites that want the latest kernel headers. Please read - /usr/share/doc/linux-headers-3.13.0-111/debian.README.gz for details. + /usr/share/doc/linux-headers-3.13.0-112/debian.README.gz for details. -Package: linux-image-3.13.0-111-generic-dbgsym +Package: linux-image-3.13.0-112-generic-dbgsym Architecture: i386 amd64 armhf Section: devel Priority: optional @@ -120,25 +120,25 @@ is uncompressed, and unstripped. This package also includes the unstripped modules. -Package: linux-tools-3.13.0-111-generic +Package: linux-tools-3.13.0-112-generic Architecture: i386 amd64 armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-lts-trusty-tools-3.13.0-111 -Description: Linux kernel version specific tools for version 3.13.0-111 +Depends: ${misc:Depends}, linux-lts-trusty-tools-3.13.0-112 +Description: Linux kernel version specific tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel version locked tools (such as perf and x86_energy_perf_policy) for - version 3.13.0-111 on + version 3.13.0-112 on 64 bit x86. -Package: linux-cloud-tools-3.13.0-111-generic +Package: linux-cloud-tools-3.13.0-112-generic Architecture: i386 amd64 armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-lts-trusty-cloud-tools-3.13.0-111 -Description: Linux kernel version specific cloud tools for version 3.13.0-111 +Depends: ${misc:Depends}, linux-lts-trusty-cloud-tools-3.13.0-112 +Description: Linux kernel version specific cloud tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel - version locked tools for cloud for version 3.13.0-111 on + version locked tools for cloud for version 3.13.0-112 on 64 bit x86. Package: linux-lts-trusty-udebs-generic @@ -150,7 +150,7 @@ This package depends on the all udebs that the kernel build generated, for easier version and migration tracking. -Package: linux-image-3.13.0-111-generic-lpae +Package: linux-image-3.13.0-112-generic-lpae Architecture: armhf Section: kernel Priority: optional @@ -159,7 +159,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) Conflicts: hotplug (<< 0.0.20040105-1) Recommends: flash-kernel [armhf] -Suggests: fdutils, linux-lts-trusty-doc-3.13.0 | linux-lts-trusty-source-3.13.0, linux-lts-trusty-tools, linux-headers-3.13.0-111-generic-lpae +Suggests: fdutils, linux-lts-trusty-doc-3.13.0 | linux-lts-trusty-source-3.13.0, linux-lts-trusty-tools, linux-headers-3.13.0-112-generic-lpae Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP This package contains the Linux kernel image for version 3.13.0 on 64 bit x86 SMP. @@ -176,19 +176,19 @@ the linux-generic-lpae meta-package, which will ensure that upgrades work correctly, and that supporting packages are also installed. -Package: linux-headers-3.13.0-111-generic-lpae +Package: linux-headers-3.13.0-112-generic-lpae Architecture: armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-headers-3.13.0-111, ${shlibs:Depends} +Depends: ${misc:Depends}, linux-headers-3.13.0-112, ${shlibs:Depends} Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP This package provides kernel header files for version 3.13.0 on 64 bit x86 SMP. . This is for sites that want the latest kernel headers. Please read - /usr/share/doc/linux-headers-3.13.0-111/debian.README.gz for details. + /usr/share/doc/linux-headers-3.13.0-112/debian.README.gz for details. -Package: linux-image-3.13.0-111-generic-lpae-dbgsym +Package: linux-image-3.13.0-112-generic-lpae-dbgsym Architecture: armhf Section: devel Priority: optional @@ -204,25 +204,25 @@ is uncompressed, and unstripped. This package also includes the unstripped modules. -Package: linux-tools-3.13.0-111-generic-lpae +Package: linux-tools-3.13.0-112-generic-lpae Architecture: armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-lts-trusty-tools-3.13.0-111 -Description: Linux kernel version specific tools for version 3.13.0-111 +Depends: ${misc:Depends}, linux-lts-trusty-tools-3.13.0-112 +Description: Linux kernel version specific tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel version locked tools (such as perf and x86_energy_perf_policy) for - version 3.13.0-111 on + version 3.13.0-112 on 64 bit x86. -Package: linux-cloud-tools-3.13.0-111-generic-lpae +Package: linux-cloud-tools-3.13.0-112-generic-lpae Architecture: armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-lts-trusty-cloud-tools-3.13.0-111 -Description: Linux kernel version specific cloud tools for version 3.13.0-111 +Depends: ${misc:Depends}, linux-lts-trusty-cloud-tools-3.13.0-112 +Description: Linux kernel version specific cloud tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel - version locked tools for cloud for version 3.13.0-111 on + version locked tools for cloud for version 3.13.0-112 on 64 bit x86. Package: linux-lts-trusty-udebs-generic-lpae diff -u linux-lts-trusty-3.13.0/debian.trusty/d-i/kernel-versions linux-lts-trusty-3.13.0/debian.trusty/d-i/kernel-versions --- linux-lts-trusty-3.13.0/debian.trusty/d-i/kernel-versions +++ linux-lts-trusty-3.13.0/debian.trusty/d-i/kernel-versions @@ -2,18 +2,18 @@ -amd64 3.13.0-111 generic 3.13.0-111-generic - +amd64 3.13.0-112 generic 3.13.0-112-generic - -i386 3.13.0-111 generic 3.13.0-111-generic - +i386 3.13.0-112 generic 3.13.0-112-generic - -armhf 3.13.0-111 generic 3.13.0-111-generic - +armhf 3.13.0-112 generic 3.13.0-112-generic - -armhf 3.13.0-111 generic-lpae 3.13.0-111-generic-lpae - +armhf 3.13.0-112 generic-lpae 3.13.0-112-generic-lpae - -arm64 3.13.0-111 generic 3.13.0-111-generic - +arm64 3.13.0-112 generic 3.13.0-112-generic - -ppc64el 3.13.0-111 generic 3.13.0-111-generic - +ppc64el 3.13.0-112 generic 3.13.0-112-generic - # Ports # arch version flavour installedname suffix bdep -powerpc 3.13.0-111 powerpc-smp 3.13.0-111-powerpc-smp - -powerpc 3.13.0-111 powerpc64-smp 3.13.0-111-powerpc64-smp - -powerpc 3.13.0-111 powerpc-e500 3.13.0-111-powerpc-e500 - -powerpc 3.13.0-111 powerpc-e500mc 3.13.0-111-powerpc-e500mc - +powerpc 3.13.0-112 powerpc-smp 3.13.0-112-powerpc-smp - +powerpc 3.13.0-112 powerpc64-smp 3.13.0-112-powerpc64-smp - +powerpc 3.13.0-112 powerpc-e500 3.13.0-112-powerpc-e500 - +powerpc 3.13.0-112 powerpc-e500mc 3.13.0-112-powerpc-e500mc - diff -u linux-lts-trusty-3.13.0/debian/changelog linux-lts-trusty-3.13.0/debian/changelog --- linux-lts-trusty-3.13.0/debian/changelog +++ linux-lts-trusty-3.13.0/debian/changelog @@ -1,24 +1,10 @@ -linux-lts-trusty (3.13.0-111.158~precise1) precise; urgency=low +linux-lts-trusty (3.13.0-112.159~precise1) precise; urgency=low - [ Thadeu Lima de Souza Cascardo ] + * CVE-2017-2636 + - TTY: n_hdlc, fix lockdep false positive + - tty: n_hdlc: get rid of racy n_hdlc.tbuf - * Release Tracking Bug - - LP: #1666909 - - [ Andy Whitcroft ] - * Windows guest got 0x5c BSOD when rebooting (LP: #1660519) - - KVM: x86: reset RVI upon system reset - - KVM: x86: Emulator should set DR6 upon GD like real CPU - - * ipv6: fix a refcnt leak with peer addr (LP: #1662096) - - ipv6: fix a refcnt leak with peer addr - - ipv6: use addrconf_get_prefix_route() to remove peer addr - - ipv6: Avoid double dst_free - - * Enable CONFIG_NET_DROP_MONITOR=m in Ubuntu Kernel (LP: #1660634) - - [Config] CONFIG_NET_DROP_MONITOR=m - - -- Thadeu Lima de Souza Cascardo Wed, 22 Feb 2017 13:47:46 -0300 + -- Stefan Bader Fri, 03 Mar 2017 12:27:44 +0100 linux (3.13.0-110.157) trusty; urgency=low diff -u linux-lts-trusty-3.13.0/debian/control linux-lts-trusty-3.13.0/debian/control --- linux-lts-trusty-3.13.0/debian/control +++ linux-lts-trusty-3.13.0/debian/control @@ -8,7 +8,7 @@ Build-Conflicts: findutils (= 4.4.1-1ubuntu1) Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-precise.git lts-backport-trusty -Package: linux-headers-3.13.0-111 +Package: linux-headers-3.13.0-112 Architecture: all Section: devel Priority: optional @@ -16,7 +16,7 @@ Description: Header files related to Linux kernel version 3.13.0 This package provides kernel header files for version 3.13.0, for sites that want the latest kernel headers. Please read - /usr/share/doc/linux-lts-trusty-headers-3.13.0-111/debian.README.gz for details + /usr/share/doc/linux-lts-trusty-headers-3.13.0-112/debian.README.gz for details #Package: linux-lts-trusty-tools-common #Architecture: all @@ -29,17 +29,17 @@ # version locked tools (such as perf and x86_energy_perf_policy) for # version PGKVER. -Package: linux-lts-trusty-tools-3.13.0-111 +Package: linux-lts-trusty-tools-3.13.0-112 Architecture: i386 amd64 armhf Section: devel Priority: optional Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common -Description: Linux kernel version specific tools for version 3.13.0-111 +Description: Linux kernel version specific tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel version locked tools (such as perf and x86_energy_perf_policy) for - version 3.13.0-111 on + version 3.13.0-112 on 64 bit x86. - You probabally want to install linux-tools-3.13.0-111-. + You probabally want to install linux-tools-3.13.0-112-. #Package: linux-lts-trusty-cloud-tools-common #Architecture: all @@ -53,20 +53,20 @@ # This package provides the architecture independent parts for kernel # version locked tools for cloud tools for version PGKVER. -Package: linux-lts-trusty-cloud-tools-3.13.0-111 +Package: linux-lts-trusty-cloud-tools-3.13.0-112 Architecture: i386 amd64 armhf Section: devel Priority: optional Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common -Description: Linux kernel version specific cloud tools for version 3.13.0-111 +Description: Linux kernel version specific cloud tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel - version locked tools for cloud tools for version 3.13.0-111 on + version locked tools for cloud tools for version 3.13.0-112 on 64 bit x86. - You probabally want to install linux-cloud-tools-3.13.0-111-. + You probabally want to install linux-cloud-tools-3.13.0-112-. -Package: linux-image-3.13.0-111-generic +Package: linux-image-3.13.0-112-generic Architecture: i386 amd64 armhf Section: kernel Priority: optional @@ -75,7 +75,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) Conflicts: hotplug (<< 0.0.20040105-1) Recommends: grub-pc [i386 amd64] | grub-efi-amd64 [i386 amd64] | grub-efi-ia32 [i386 amd64] | grub [i386 amd64] | lilo (>= 19.1) [i386 amd64] | flash-kernel [armhf] -Suggests: fdutils, linux-lts-trusty-doc-3.13.0 | linux-lts-trusty-source-3.13.0, linux-lts-trusty-tools, linux-headers-3.13.0-111-generic +Suggests: fdutils, linux-lts-trusty-doc-3.13.0 | linux-lts-trusty-source-3.13.0, linux-lts-trusty-tools, linux-headers-3.13.0-112-generic Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP This package contains the Linux kernel image for version 3.13.0 on 64 bit x86 SMP. @@ -92,19 +92,19 @@ the linux-generic meta-package, which will ensure that upgrades work correctly, and that supporting packages are also installed. -Package: linux-headers-3.13.0-111-generic +Package: linux-headers-3.13.0-112-generic Architecture: i386 amd64 armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-headers-3.13.0-111, ${shlibs:Depends} +Depends: ${misc:Depends}, linux-headers-3.13.0-112, ${shlibs:Depends} Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP This package provides kernel header files for version 3.13.0 on 64 bit x86 SMP. . This is for sites that want the latest kernel headers. Please read - /usr/share/doc/linux-headers-3.13.0-111/debian.README.gz for details. + /usr/share/doc/linux-headers-3.13.0-112/debian.README.gz for details. -Package: linux-image-3.13.0-111-generic-dbgsym +Package: linux-image-3.13.0-112-generic-dbgsym Architecture: i386 amd64 armhf Section: devel Priority: optional @@ -120,25 +120,25 @@ is uncompressed, and unstripped. This package also includes the unstripped modules. -Package: linux-tools-3.13.0-111-generic +Package: linux-tools-3.13.0-112-generic Architecture: i386 amd64 armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-lts-trusty-tools-3.13.0-111 -Description: Linux kernel version specific tools for version 3.13.0-111 +Depends: ${misc:Depends}, linux-lts-trusty-tools-3.13.0-112 +Description: Linux kernel version specific tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel version locked tools (such as perf and x86_energy_perf_policy) for - version 3.13.0-111 on + version 3.13.0-112 on 64 bit x86. -Package: linux-cloud-tools-3.13.0-111-generic +Package: linux-cloud-tools-3.13.0-112-generic Architecture: i386 amd64 armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-lts-trusty-cloud-tools-3.13.0-111 -Description: Linux kernel version specific cloud tools for version 3.13.0-111 +Depends: ${misc:Depends}, linux-lts-trusty-cloud-tools-3.13.0-112 +Description: Linux kernel version specific cloud tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel - version locked tools for cloud for version 3.13.0-111 on + version locked tools for cloud for version 3.13.0-112 on 64 bit x86. Package: linux-lts-trusty-udebs-generic @@ -150,7 +150,7 @@ This package depends on the all udebs that the kernel build generated, for easier version and migration tracking. -Package: linux-image-3.13.0-111-generic-lpae +Package: linux-image-3.13.0-112-generic-lpae Architecture: armhf Section: kernel Priority: optional @@ -159,7 +159,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) Conflicts: hotplug (<< 0.0.20040105-1) Recommends: flash-kernel [armhf] -Suggests: fdutils, linux-lts-trusty-doc-3.13.0 | linux-lts-trusty-source-3.13.0, linux-lts-trusty-tools, linux-headers-3.13.0-111-generic-lpae +Suggests: fdutils, linux-lts-trusty-doc-3.13.0 | linux-lts-trusty-source-3.13.0, linux-lts-trusty-tools, linux-headers-3.13.0-112-generic-lpae Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP This package contains the Linux kernel image for version 3.13.0 on 64 bit x86 SMP. @@ -176,19 +176,19 @@ the linux-generic-lpae meta-package, which will ensure that upgrades work correctly, and that supporting packages are also installed. -Package: linux-headers-3.13.0-111-generic-lpae +Package: linux-headers-3.13.0-112-generic-lpae Architecture: armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-headers-3.13.0-111, ${shlibs:Depends} +Depends: ${misc:Depends}, linux-headers-3.13.0-112, ${shlibs:Depends} Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP This package provides kernel header files for version 3.13.0 on 64 bit x86 SMP. . This is for sites that want the latest kernel headers. Please read - /usr/share/doc/linux-headers-3.13.0-111/debian.README.gz for details. + /usr/share/doc/linux-headers-3.13.0-112/debian.README.gz for details. -Package: linux-image-3.13.0-111-generic-lpae-dbgsym +Package: linux-image-3.13.0-112-generic-lpae-dbgsym Architecture: armhf Section: devel Priority: optional @@ -204,25 +204,25 @@ is uncompressed, and unstripped. This package also includes the unstripped modules. -Package: linux-tools-3.13.0-111-generic-lpae +Package: linux-tools-3.13.0-112-generic-lpae Architecture: armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-lts-trusty-tools-3.13.0-111 -Description: Linux kernel version specific tools for version 3.13.0-111 +Depends: ${misc:Depends}, linux-lts-trusty-tools-3.13.0-112 +Description: Linux kernel version specific tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel version locked tools (such as perf and x86_energy_perf_policy) for - version 3.13.0-111 on + version 3.13.0-112 on 64 bit x86. -Package: linux-cloud-tools-3.13.0-111-generic-lpae +Package: linux-cloud-tools-3.13.0-112-generic-lpae Architecture: armhf Section: devel Priority: optional -Depends: ${misc:Depends}, linux-lts-trusty-cloud-tools-3.13.0-111 -Description: Linux kernel version specific cloud tools for version 3.13.0-111 +Depends: ${misc:Depends}, linux-lts-trusty-cloud-tools-3.13.0-112 +Description: Linux kernel version specific cloud tools for version 3.13.0-112 This package provides the architecture dependant parts for kernel - version locked tools for cloud for version 3.13.0-111 on + version locked tools for cloud for version 3.13.0-112 on 64 bit x86. Package: linux-lts-trusty-udebs-generic-lpae diff -u linux-lts-trusty-3.13.0/net/ipv6/addrconf.c linux-lts-trusty-3.13.0/net/ipv6/addrconf.c --- linux-lts-trusty-3.13.0/net/ipv6/addrconf.c +++ linux-lts-trusty-3.13.0/net/ipv6/addrconf.c @@ -4575,15 +4575,20 @@ addrconf_leave_solict(ifp->idev, &ifp->addr); if (!ipv6_addr_any(&ifp->peer_addr)) { struct rt6_info *rt; + struct net_device *dev = ifp->idev->dev; - rt = addrconf_get_prefix_route(&ifp->peer_addr, 128, - ifp->idev->dev, 0, 0); - if (rt) - ip6_del_rt(rt); + rt = rt6_lookup(dev_net(dev), &ifp->peer_addr, NULL, + dev->ifindex, 1); + if (rt) { + dst_hold(&rt->dst); + if (ip6_del_rt(rt)) + dst_free(&rt->dst); + } } dst_hold(&ifp->rt->dst); - ip6_del_rt(ifp->rt); + if (ip6_del_rt(ifp->rt)) + dst_free(&ifp->rt->dst); rt_genid_bump_ipv6(net); break; diff -u linux-lts-trusty-3.13.0/net/ipv6/ip6_fib.c linux-lts-trusty-3.13.0/net/ipv6/ip6_fib.c --- linux-lts-trusty-3.13.0/net/ipv6/ip6_fib.c +++ linux-lts-trusty-3.13.0/net/ipv6/ip6_fib.c @@ -872,10 +872,6 @@ int allow_create = 1; int replace_required = 0; - if (WARN_ON_ONCE((rt->dst.flags & DST_NOCACHE) && - !atomic_read(&rt->dst.__refcnt))) - return -EINVAL; - if (info->nlh) { if (!(info->nlh->nlmsg_flags & NLM_F_CREATE)) allow_create = 0; @@ -968,7 +964,6 @@ fib6_start_gc(info->nl_net, rt); if (!(rt->rt6i_flags & RTF_CACHE)) fib6_prune_clones(info->nl_net, pn, rt); - rt->dst.flags &= ~DST_NOCACHE; } out: @@ -993,8 +988,7 @@ atomic_inc(&pn->leaf->rt6i_ref); } #endif - if (!(rt->dst.flags & DST_NOCACHE)) - dst_free(&rt->dst); + dst_free(&rt->dst); } return err; @@ -1005,8 +999,7 @@ st_failure: if (fn && !(fn->fn_flags & (RTN_RTINFO|RTN_ROOT))) fib6_repair_tree(info->nl_net, fn); - if (!(rt->dst.flags & DST_NOCACHE)) - dst_free(&rt->dst); + dst_free(&rt->dst); return err; #endif } diff -u linux-lts-trusty-3.13.0/net/ipv6/route.c linux-lts-trusty-3.13.0/net/ipv6/route.c --- linux-lts-trusty-3.13.0/net/ipv6/route.c +++ linux-lts-trusty-3.13.0/net/ipv6/route.c @@ -1120,7 +1120,8 @@ if (rt) { if (rt->rt6i_flags & RTF_CACHE) { dst_hold(&rt->dst); - ip6_del_rt(rt); + if (ip6_del_rt(rt)) + dst_free(&rt->dst); } else if (rt->rt6i_node && (rt->rt6i_flags & RTF_DEFAULT)) { rt->rt6i_node->fn_sernum = -1; } @@ -1689,8 +1690,7 @@ struct fib6_table *table; struct net *net = dev_net(rt->dst.dev); - if (rt == net->ipv6.ip6_null_entry || - rt->dst.flags & DST_NOCACHE) { + if (rt == net->ipv6.ip6_null_entry) { err = -ENOENT; goto out; } @@ -2180,7 +2180,6 @@ rt->rt6i_dst.addr = *addr; rt->rt6i_dst.plen = 128; rt->rt6i_table = fib6_get_table(net, RT6_TABLE_LOCAL); - rt->dst.flags |= DST_NOCACHE; atomic_set(&rt->dst.__refcnt, 1); only in patch2: unchanged: --- linux-lts-trusty-3.13.0.orig/drivers/tty/n_hdlc.c +++ linux-lts-trusty-3.13.0/drivers/tty/n_hdlc.c @@ -114,7 +114,7 @@ #define DEFAULT_TX_BUF_COUNT 3 struct n_hdlc_buf { - struct n_hdlc_buf *link; + struct list_head list_item; int count; char buf[1]; }; @@ -122,8 +122,7 @@ #define N_HDLC_BUF_SIZE (sizeof(struct n_hdlc_buf) + maxframe) struct n_hdlc_buf_list { - struct n_hdlc_buf *head; - struct n_hdlc_buf *tail; + struct list_head list; int count; spinlock_t spinlock; }; @@ -136,7 +135,6 @@ * @backup_tty - TTY to use if tty gets closed * @tbusy - reentrancy flag for tx wakeup code * @woke_up - FIXME: describe this field - * @tbuf - currently transmitting tx buffer * @tx_buf_list - list of pending transmit frame buffers * @rx_buf_list - list of received frame buffers * @tx_free_buf_list - list unused transmit frame buffers @@ -149,7 +147,6 @@ struct tty_struct *backup_tty; int tbusy; int woke_up; - struct n_hdlc_buf *tbuf; struct n_hdlc_buf_list tx_buf_list; struct n_hdlc_buf_list rx_buf_list; struct n_hdlc_buf_list tx_free_buf_list; @@ -159,7 +156,8 @@ /* * HDLC buffer list manipulation functions */ -static void n_hdlc_buf_list_init(struct n_hdlc_buf_list *list); +static void n_hdlc_buf_return(struct n_hdlc_buf_list *buf_list, + struct n_hdlc_buf *buf); static void n_hdlc_buf_put(struct n_hdlc_buf_list *list, struct n_hdlc_buf *buf); static struct n_hdlc_buf *n_hdlc_buf_get(struct n_hdlc_buf_list *list); @@ -209,16 +207,9 @@ { struct n_hdlc *n_hdlc = tty2n_hdlc(tty); struct n_hdlc_buf *buf; - unsigned long flags; while ((buf = n_hdlc_buf_get(&n_hdlc->tx_buf_list))) n_hdlc_buf_put(&n_hdlc->tx_free_buf_list, buf); - spin_lock_irqsave(&n_hdlc->tx_buf_list.spinlock, flags); - if (n_hdlc->tbuf) { - n_hdlc_buf_put(&n_hdlc->tx_free_buf_list, n_hdlc->tbuf); - n_hdlc->tbuf = NULL; - } - spin_unlock_irqrestore(&n_hdlc->tx_buf_list.spinlock, flags); } static struct tty_ldisc_ops n_hdlc_ldisc = { @@ -284,7 +275,6 @@ } else break; } - kfree(n_hdlc->tbuf); kfree(n_hdlc); } /* end of n_hdlc_release() */ @@ -403,13 +393,7 @@ n_hdlc->woke_up = 0; spin_unlock_irqrestore(&n_hdlc->tx_buf_list.spinlock, flags); - /* get current transmit buffer or get new transmit */ - /* buffer from list of pending transmit buffers */ - - tbuf = n_hdlc->tbuf; - if (!tbuf) - tbuf = n_hdlc_buf_get(&n_hdlc->tx_buf_list); - + tbuf = n_hdlc_buf_get(&n_hdlc->tx_buf_list); while (tbuf) { if (debuglevel >= DEBUG_LEVEL_INFO) printk("%s(%d)sending frame %p, count=%d\n", @@ -421,7 +405,7 @@ /* rollback was possible and has been done */ if (actual == -ERESTARTSYS) { - n_hdlc->tbuf = tbuf; + n_hdlc_buf_return(&n_hdlc->tx_buf_list, tbuf); break; } /* if transmit error, throw frame away by */ @@ -436,10 +420,7 @@ /* free current transmit buffer */ n_hdlc_buf_put(&n_hdlc->tx_free_buf_list, tbuf); - - /* this tx buffer is done */ - n_hdlc->tbuf = NULL; - + /* wait up sleeping writers */ wake_up_interruptible(&tty->write_wait); @@ -449,10 +430,12 @@ if (debuglevel >= DEBUG_LEVEL_INFO) printk("%s(%d)frame %p pending\n", __FILE__,__LINE__,tbuf); - - /* buffer not accepted by driver */ - /* set this buffer as pending buffer */ - n_hdlc->tbuf = tbuf; + + /* + * the buffer was not accepted by driver, + * return it back into tx queue + */ + n_hdlc_buf_return(&n_hdlc->tx_buf_list, tbuf); break; } } @@ -750,7 +733,8 @@ int error = 0; int count; unsigned long flags; - + struct n_hdlc_buf *buf = NULL; + if (debuglevel >= DEBUG_LEVEL_INFO) printk("%s(%d)n_hdlc_tty_ioctl() called %d\n", __FILE__,__LINE__,cmd); @@ -764,8 +748,10 @@ /* report count of read data available */ /* in next available frame (if any) */ spin_lock_irqsave(&n_hdlc->rx_buf_list.spinlock,flags); - if (n_hdlc->rx_buf_list.head) - count = n_hdlc->rx_buf_list.head->count; + buf = list_first_entry_or_null(&n_hdlc->rx_buf_list.list, + struct n_hdlc_buf, list_item); + if (buf) + count = buf->count; else count = 0; spin_unlock_irqrestore(&n_hdlc->rx_buf_list.spinlock,flags); @@ -777,8 +763,10 @@ count = tty_chars_in_buffer(tty); /* add size of next output frame in queue */ spin_lock_irqsave(&n_hdlc->tx_buf_list.spinlock,flags); - if (n_hdlc->tx_buf_list.head) - count += n_hdlc->tx_buf_list.head->count; + buf = list_first_entry_or_null(&n_hdlc->tx_buf_list.list, + struct n_hdlc_buf, list_item); + if (buf) + count += buf->count; spin_unlock_irqrestore(&n_hdlc->tx_buf_list.spinlock,flags); error = put_user(count, (int __user *)arg); break; @@ -826,14 +814,14 @@ poll_wait(filp, &tty->write_wait, wait); /* set bits for operations that won't block */ - if (n_hdlc->rx_buf_list.head) + if (!list_empty(&n_hdlc->rx_buf_list.list)) mask |= POLLIN | POLLRDNORM; /* readable */ if (test_bit(TTY_OTHER_CLOSED, &tty->flags)) mask |= POLLHUP; if (tty_hung_up_p(filp)) mask |= POLLHUP; if (!tty_is_writelocked(tty) && - n_hdlc->tx_free_buf_list.head) + !list_empty(&n_hdlc->tx_free_buf_list.list)) mask |= POLLOUT | POLLWRNORM; /* writable */ } return mask; @@ -855,11 +843,16 @@ memset(n_hdlc, 0, sizeof(*n_hdlc)); - n_hdlc_buf_list_init(&n_hdlc->rx_free_buf_list); - n_hdlc_buf_list_init(&n_hdlc->tx_free_buf_list); - n_hdlc_buf_list_init(&n_hdlc->rx_buf_list); - n_hdlc_buf_list_init(&n_hdlc->tx_buf_list); - + spin_lock_init(&n_hdlc->rx_free_buf_list.spinlock); + spin_lock_init(&n_hdlc->tx_free_buf_list.spinlock); + spin_lock_init(&n_hdlc->rx_buf_list.spinlock); + spin_lock_init(&n_hdlc->tx_buf_list.spinlock); + + INIT_LIST_HEAD(&n_hdlc->rx_free_buf_list.list); + INIT_LIST_HEAD(&n_hdlc->tx_free_buf_list.list); + INIT_LIST_HEAD(&n_hdlc->rx_buf_list.list); + INIT_LIST_HEAD(&n_hdlc->tx_buf_list.list); + /* allocate free rx buffer list */ for(i=0;ispinlock); -} /* end of n_hdlc_buf_list_init() */ + unsigned long flags; + + spin_lock_irqsave(&buf_list->spinlock, flags); + + list_add(&buf->list_item, &buf_list->list); + buf_list->count++; + + spin_unlock_irqrestore(&buf_list->spinlock, flags); +} /** * n_hdlc_buf_put - add specified HDLC buffer to tail of specified list - * @list - pointer to buffer list + * @buf_list - pointer to buffer list * @buf - pointer to buffer */ -static void n_hdlc_buf_put(struct n_hdlc_buf_list *list, +static void n_hdlc_buf_put(struct n_hdlc_buf_list *buf_list, struct n_hdlc_buf *buf) { unsigned long flags; - spin_lock_irqsave(&list->spinlock,flags); - - buf->link=NULL; - if (list->tail) - list->tail->link = buf; - else - list->head = buf; - list->tail = buf; - (list->count)++; - - spin_unlock_irqrestore(&list->spinlock,flags); - + + spin_lock_irqsave(&buf_list->spinlock, flags); + + list_add_tail(&buf->list_item, &buf_list->list); + buf_list->count++; + + spin_unlock_irqrestore(&buf_list->spinlock, flags); } /* end of n_hdlc_buf_put() */ /** * n_hdlc_buf_get - remove and return an HDLC buffer from list - * @list - pointer to HDLC buffer list + * @buf_list - pointer to HDLC buffer list * * Remove and return an HDLC buffer from the head of the specified HDLC buffer * list. * Returns a pointer to HDLC buffer if available, otherwise %NULL. */ -static struct n_hdlc_buf* n_hdlc_buf_get(struct n_hdlc_buf_list *list) +static struct n_hdlc_buf *n_hdlc_buf_get(struct n_hdlc_buf_list *buf_list) { unsigned long flags; struct n_hdlc_buf *buf; - spin_lock_irqsave(&list->spinlock,flags); - - buf = list->head; + + spin_lock_irqsave(&buf_list->spinlock, flags); + + buf = list_first_entry_or_null(&buf_list->list, + struct n_hdlc_buf, list_item); if (buf) { - list->head = buf->link; - (list->count)--; + list_del(&buf->list_item); + buf_list->count--; } - if (!list->head) - list->tail = NULL; - - spin_unlock_irqrestore(&list->spinlock,flags); + + spin_unlock_irqrestore(&buf_list->spinlock, flags); return buf; - } /* end of n_hdlc_buf_get() */ static char hdlc_banner[] __initdata =