diff --git a/debian/changelog b/debian/changelog index df5869d3b..f978aa3d8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,22 @@ -linux-2.6 (3.2.18-2) UNRELEASED; urgency=low +linux-2.6 (3.2.19-1) UNRELEASED; urgency=low + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.19 + - hpsa: Fix problem with MSA2xxx devices (Closes: #661057) + - IB/core: Fix mismatch between locked and pinned pages + - iommu: Fix off by one in dmar_get_fault_reason() + - vfs: make AIO use the proper rw_verify_area() area helpers + - HID: logitech: read all 32 bits of report type bitfield (Closes: #671292) + - USB: Remove races in devio.c + - ext{3,4}: Fix error handling on inode bitmap corruption + - uvcvideo: Fix ENUMINPUT handling + - dl2k: Clean up rio_ioctl (CVE-2012-2313) + - [x86] MCE: Fix vm86 handling for 32bit mce handler + - [x86] mce: Fix check for processor context when machine check was taken. + - ethtool: Null-terminate filename passed to ethtool_ops::flash_device + - NFSv4: Fix buffer overflows in ACL support (CVE-2012-2375) + + Avoid reading past buffer when calling GETACL + + Avoid beyond bounds copy while caching ACL [ Ben Hutchings ] * be2net: Backport most changes up to Linux 3.5-rc1, thanks to diff --git a/debian/patches/bugfix/all/ethtool-null-terminate-filename-passed-to.patch b/debian/patches/bugfix/all/ethtool-null-terminate-filename-passed-to.patch deleted file mode 100644 index 22b472be7..000000000 --- a/debian/patches/bugfix/all/ethtool-null-terminate-filename-passed-to.patch +++ /dev/null @@ -1,53 +0,0 @@ -From: Ben Hutchings -Date: Wed, 1 Feb 2012 09:32:25 +0000 -Subject: [PATCH] ethtool: Null-terminate filename passed to - ethtool_ops::flash_device - -commit 786f528119722f564a22ad953411374e06116333 upstream. - -The parameters for ETHTOOL_FLASHDEV include a filename, which ought to -be null-terminated. Currently the only driver that implements -ethtool_ops::flash_device attempts to add a null terminator if -necessary, but does it wrongly. Do it in the ethtool core instead. - -Signed-off-by: Ben Hutchings -Signed-off-by: David S. Miller ---- - drivers/net/ethernet/emulex/benet/be_ethtool.c | 6 +----- - net/core/ethtool.c | 2 ++ - 2 files changed, 3 insertions(+), 5 deletions(-) - -diff --git a/drivers/net/ethernet/emulex/benet/be_ethtool.c b/drivers/net/ethernet/emulex/benet/be_ethtool.c -index 6db6b6a..802e5dd 100644 ---- a/drivers/net/ethernet/emulex/benet/be_ethtool.c -+++ b/drivers/net/ethernet/emulex/benet/be_ethtool.c -@@ -716,12 +716,8 @@ static int - be_do_flash(struct net_device *netdev, struct ethtool_flash *efl) - { - struct be_adapter *adapter = netdev_priv(netdev); -- char file_name[ETHTOOL_FLASH_MAX_FILENAME]; - -- file_name[ETHTOOL_FLASH_MAX_FILENAME - 1] = 0; -- strcpy(file_name, efl->data); -- -- return be_load_fw(adapter, file_name); -+ return be_load_fw(adapter, efl->data); - } - - static int -diff --git a/net/core/ethtool.c b/net/core/ethtool.c -index 369b418..3f79db1 100644 ---- a/net/core/ethtool.c -+++ b/net/core/ethtool.c -@@ -1190,6 +1190,8 @@ static noinline_for_stack int ethtool_flash_device(struct net_device *dev, - if (!dev->ethtool_ops->flash_device) - return -EOPNOTSUPP; - -+ efl.data[ETHTOOL_FLASH_MAX_FILENAME - 1] = 0; -+ - return dev->ethtool_ops->flash_device(dev, &efl); - } - --- -1.7.10 - diff --git a/debian/patches/bugfix/all/kvm-ensure-all-vcpus-are-consistent-with-in-kernel-irqchip.patch b/debian/patches/bugfix/all/kvm-ensure-all-vcpus-are-consistent-with-in-kernel-irqchip.patch deleted file mode 100644 index 3059ac98e..000000000 --- a/debian/patches/bugfix/all/kvm-ensure-all-vcpus-are-consistent-with-in-kernel-irqchip.patch +++ /dev/null @@ -1,107 +0,0 @@ -From: Avi Kivity -Date: Mon, 5 Mar 2012 14:23:29 +0200 -Subject: [PATCH] KVM: Ensure all vcpus are consistent with in-kernel irqchip - settings - -commit 3e515705a1f46beb1c942bb8043c16f8ac7b1e9e upstream. - -If some vcpus are created before KVM_CREATE_IRQCHIP, then -irqchip_in_kernel() and vcpu->arch.apic will be inconsistent, leading -to potential NULL pointer dereferences. - -Fix by: -- ensuring that no vcpus are installed when KVM_CREATE_IRQCHIP is called -- ensuring that a vcpu has an apic if it is installed after KVM_CREATE_IRQCHIP - -This is somewhat long winded because vcpu->arch.apic is created without -kvm->lock held. - -Based on earlier patch by Michael Ellerman. - -Signed-off-by: Michael Ellerman -Signed-off-by: Avi Kivity ---- - arch/ia64/kvm/kvm-ia64.c | 5 +++++ - arch/x86/kvm/x86.c | 8 ++++++++ - include/linux/kvm_host.h | 7 +++++++ - virt/kvm/kvm_main.c | 4 ++++ - 4 files changed, 24 insertions(+) - -diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c -index d8ddbba..f5104b7 100644 ---- a/arch/ia64/kvm/kvm-ia64.c -+++ b/arch/ia64/kvm/kvm-ia64.c -@@ -1172,6 +1172,11 @@ out: - - #define PALE_RESET_ENTRY 0x80000000ffffffb0UL - -+bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu) -+{ -+ return irqchip_in_kernel(vcpu->kcm) == (vcpu->arch.apic != NULL); -+} -+ - int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu) - { - struct kvm_vcpu *v; -diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index 03a1fd4..9477dc6 100644 ---- a/arch/x86/kvm/x86.c -+++ b/arch/x86/kvm/x86.c -@@ -3199,6 +3199,9 @@ long kvm_arch_vm_ioctl(struct file *filp, - r = -EEXIST; - if (kvm->arch.vpic) - goto create_irqchip_unlock; -+ r = -EINVAL; -+ if (atomic_read(&kvm->online_vcpus)) -+ goto create_irqchip_unlock; - r = -ENOMEM; - vpic = kvm_create_pic(kvm); - if (vpic) { -@@ -6107,6 +6110,11 @@ void kvm_arch_check_processor_compat(void *rtn) - kvm_x86_ops->check_processor_compatibility(rtn); - } - -+bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu) -+{ -+ return irqchip_in_kernel(vcpu->kvm) == (vcpu->arch.apic != NULL); -+} -+ - int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu) - { - struct page *page; -diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h -index 355e445..e42d85a 100644 ---- a/include/linux/kvm_host.h -+++ b/include/linux/kvm_host.h -@@ -805,6 +805,13 @@ static inline bool kvm_vcpu_is_bsp(struct kvm_vcpu *vcpu) - { - return vcpu->kvm->bsp_vcpu_id == vcpu->vcpu_id; - } -+ -+bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu); -+ -+#else -+ -+static inline bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu) { return true; } -+ - #endif - - #ifdef __KVM_HAVE_DEVICE_ASSIGNMENT -diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c -index e4431ad..94e148e 100644 ---- a/virt/kvm/kvm_main.c -+++ b/virt/kvm/kvm_main.c -@@ -1651,6 +1651,10 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, u32 id) - goto vcpu_destroy; - - mutex_lock(&kvm->lock); -+ if (!kvm_vcpu_compatible(vcpu)) { -+ r = -EINVAL; -+ goto unlock_vcpu_destroy; -+ } - if (atomic_read(&kvm->online_vcpus) == KVM_MAX_VCPUS) { - r = -EINVAL; - goto unlock_vcpu_destroy; --- -1.7.10 - diff --git a/debian/patches/bugfix/all/kvm-lock-slots_lock-around-device-assignment.patch b/debian/patches/bugfix/all/kvm-lock-slots_lock-around-device-assignment.patch deleted file mode 100644 index 8c23d61db..000000000 --- a/debian/patches/bugfix/all/kvm-lock-slots_lock-around-device-assignment.patch +++ /dev/null @@ -1,80 +0,0 @@ -From: Alex Williamson -Date: Tue, 17 Apr 2012 21:46:44 -0600 -Subject: [PATCH] KVM: lock slots_lock around device assignment - -commit 21a1416a1c945c5aeaeaf791b63c64926018eb77 upstream. - -As pointed out by Jason Baron, when assigning a device to a guest -we first set the iommu domain pointer, which enables mapping -and unmapping of memory slots to the iommu. This leaves a window -where this path is enabled, but we haven't synchronized the iommu -mappings to the existing memory slots. Thus a slot being removed -at that point could send us down unexpected code paths removing -non-existent pinnings and iommu mappings. Take the slots_lock -around creating the iommu domain and initial mappings as well as -around iommu teardown to avoid this race. - -Signed-off-by: Alex Williamson -Signed-off-by: Marcelo Tosatti ---- - virt/kvm/iommu.c | 23 +++++++++++++++-------- - 1 file changed, 15 insertions(+), 8 deletions(-) - -diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c -index fec1723..e9fff98 100644 ---- a/virt/kvm/iommu.c -+++ b/virt/kvm/iommu.c -@@ -240,9 +240,13 @@ int kvm_iommu_map_guest(struct kvm *kvm) - return -ENODEV; - } - -+ mutex_lock(&kvm->slots_lock); -+ - kvm->arch.iommu_domain = iommu_domain_alloc(&pci_bus_type); -- if (!kvm->arch.iommu_domain) -- return -ENOMEM; -+ if (!kvm->arch.iommu_domain) { -+ r = -ENOMEM; -+ goto out_unlock; -+ } - - if (!allow_unsafe_assigned_interrupts && - !iommu_domain_has_cap(kvm->arch.iommu_domain, -@@ -253,17 +257,16 @@ int kvm_iommu_map_guest(struct kvm *kvm) - " module option.\n", __func__); - iommu_domain_free(kvm->arch.iommu_domain); - kvm->arch.iommu_domain = NULL; -- return -EPERM; -+ r = -EPERM; -+ goto out_unlock; - } - - r = kvm_iommu_map_memslots(kvm); - if (r) -- goto out_unmap; -- -- return 0; -+ kvm_iommu_unmap_memslots(kvm); - --out_unmap: -- kvm_iommu_unmap_memslots(kvm); -+out_unlock: -+ mutex_unlock(&kvm->slots_lock); - return r; - } - -@@ -340,7 +343,11 @@ int kvm_iommu_unmap_guest(struct kvm *kvm) - if (!domain) - return 0; - -+ mutex_lock(&kvm->slots_lock); - kvm_iommu_unmap_memslots(kvm); -+ kvm->arch.iommu_domain = NULL; -+ mutex_unlock(&kvm->slots_lock); -+ - iommu_domain_free(domain); - return 0; - } --- -1.7.10 - diff --git a/debian/patches/bugfix/all/kvm-mmu_notifier-flush-tlbs-before-releasing-mmu_lock.patch b/debian/patches/bugfix/all/kvm-mmu_notifier-flush-tlbs-before-releasing-mmu_lock.patch deleted file mode 100644 index 00c6c7b65..000000000 --- a/debian/patches/bugfix/all/kvm-mmu_notifier-flush-tlbs-before-releasing-mmu_lock.patch +++ /dev/null @@ -1,85 +0,0 @@ -From: Marcelo Tosatti -Date: Fri, 18 May 2012 17:58:45 -0300 -Subject: KVM: mmu_notifier: Flush TLBs before releasing mmu_lock - -From: Takuya Yoshikawa - -(cherry picked from commit 565f3be2174611f364405bbea2d86e153c2e7e78 - -Other threads may process the same page in that small window and skip -TLB flush and then return before these functions do flush. - -Signed-off-by: Takuya Yoshikawa -Signed-off-by: Marcelo Tosatti -Signed-off-by: Avi Kivity -Signed-off-by: Ben Hutchings ---- - virt/kvm/kvm_main.c | 19 ++++++++++--------- - 1 files changed, 10 insertions(+), 9 deletions(-) - -diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c -index e401c1b..9ffac2e 100644 ---- a/virt/kvm/kvm_main.c -+++ b/virt/kvm/kvm_main.c -@@ -289,15 +289,15 @@ static void kvm_mmu_notifier_invalidate_page(struct mmu_notifier *mn, - */ - idx = srcu_read_lock(&kvm->srcu); - spin_lock(&kvm->mmu_lock); -+ - kvm->mmu_notifier_seq++; - need_tlb_flush = kvm_unmap_hva(kvm, address) | kvm->tlbs_dirty; -- spin_unlock(&kvm->mmu_lock); -- srcu_read_unlock(&kvm->srcu, idx); -- - /* we've to flush the tlb before the pages can be freed */ - if (need_tlb_flush) - kvm_flush_remote_tlbs(kvm); - -+ spin_unlock(&kvm->mmu_lock); -+ srcu_read_unlock(&kvm->srcu, idx); - } - - static void kvm_mmu_notifier_change_pte(struct mmu_notifier *mn, -@@ -335,12 +335,12 @@ static void kvm_mmu_notifier_invalidate_range_start(struct mmu_notifier *mn, - for (; start < end; start += PAGE_SIZE) - need_tlb_flush |= kvm_unmap_hva(kvm, start); - need_tlb_flush |= kvm->tlbs_dirty; -- spin_unlock(&kvm->mmu_lock); -- srcu_read_unlock(&kvm->srcu, idx); -- - /* we've to flush the tlb before the pages can be freed */ - if (need_tlb_flush) - kvm_flush_remote_tlbs(kvm); -+ -+ spin_unlock(&kvm->mmu_lock); -+ srcu_read_unlock(&kvm->srcu, idx); - } - - static void kvm_mmu_notifier_invalidate_range_end(struct mmu_notifier *mn, -@@ -378,13 +378,14 @@ static int kvm_mmu_notifier_clear_flush_young(struct mmu_notifier *mn, - - idx = srcu_read_lock(&kvm->srcu); - spin_lock(&kvm->mmu_lock); -- young = kvm_age_hva(kvm, address); -- spin_unlock(&kvm->mmu_lock); -- srcu_read_unlock(&kvm->srcu, idx); - -+ young = kvm_age_hva(kvm, address); - if (young) - kvm_flush_remote_tlbs(kvm); - -+ spin_unlock(&kvm->mmu_lock); -+ srcu_read_unlock(&kvm->srcu, idx); -+ - return young; - } - --- -1.7.6.4 - --- -To unsubscribe from this list: send the line "unsubscribe stable" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html - - diff --git a/debian/patches/bugfix/s390/kvm-s390-do-store-status-after-handling-stop_on_stop-bit.patch b/debian/patches/bugfix/s390/kvm-s390-do-store-status-after-handling-stop_on_stop-bit.patch deleted file mode 100644 index 82c8a6bb2..000000000 --- a/debian/patches/bugfix/s390/kvm-s390-do-store-status-after-handling-stop_on_stop-bit.patch +++ /dev/null @@ -1,71 +0,0 @@ -From: Marcelo Tosatti -Date: Fri, 18 May 2012 17:58:50 -0300 -Subject: KVM: s390: do store status after handling STOP_ON_STOP bit - -From: Jens Freimann - -(cherry picked from commit 9e0d5473e2f0ba2d2fe9dab9408edef3060b710e) - -In handle_stop() handle the stop bit before doing the store status as -described for "Stop and Store Status" in the Principles of Operation. -We have to give up the local_int.lock before calling kvm store status -since it calls gmap_fault() which might sleep. Since local_int.lock -only protects local_int.* and not guest memory we can give up the lock. - -Signed-off-by: Jens Freimann -Signed-off-by: Christian Borntraeger -Signed-off-by: Marcelo Tosatti -Signed-off-by: Avi Kivity -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Ben Hutchings ---- - arch/s390/kvm/intercept.c | 20 ++++++++++++-------- - 1 files changed, 12 insertions(+), 8 deletions(-) - -diff --git a/arch/s390/kvm/intercept.c b/arch/s390/kvm/intercept.c -index 0243454..a5f6eff 100644 ---- a/arch/s390/kvm/intercept.c -+++ b/arch/s390/kvm/intercept.c -@@ -133,13 +133,6 @@ static int handle_stop(struct kvm_vcpu *vcpu) - - vcpu->stat.exit_stop_request++; - spin_lock_bh(&vcpu->arch.local_int.lock); -- if (vcpu->arch.local_int.action_bits & ACTION_STORE_ON_STOP) { -- vcpu->arch.local_int.action_bits &= ~ACTION_STORE_ON_STOP; -- rc = kvm_s390_vcpu_store_status(vcpu, -- KVM_S390_STORE_STATUS_NOADDR); -- if (rc >= 0) -- rc = -EOPNOTSUPP; -- } - - if (vcpu->arch.local_int.action_bits & ACTION_RELOADVCPU_ON_STOP) { - vcpu->arch.local_int.action_bits &= ~ACTION_RELOADVCPU_ON_STOP; -@@ -155,7 +148,18 @@ static int handle_stop(struct kvm_vcpu *vcpu) - rc = -EOPNOTSUPP; - } - -- spin_unlock_bh(&vcpu->arch.local_int.lock); -+ if (vcpu->arch.local_int.action_bits & ACTION_STORE_ON_STOP) { -+ vcpu->arch.local_int.action_bits &= ~ACTION_STORE_ON_STOP; -+ /* store status must be called unlocked. Since local_int.lock -+ * only protects local_int.* and not guest memory we can give -+ * up the lock here */ -+ spin_unlock_bh(&vcpu->arch.local_int.lock); -+ rc = kvm_s390_vcpu_store_status(vcpu, -+ KVM_S390_STORE_STATUS_NOADDR); -+ if (rc >= 0) -+ rc = -EOPNOTSUPP; -+ } else -+ spin_unlock_bh(&vcpu->arch.local_int.lock); - return rc; - } - --- -1.7.6.4 - --- -To unsubscribe from this list: send the line "unsubscribe stable" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html - - diff --git a/debian/patches/bugfix/s390/kvm-s390-sanitize-fpc-registers-for-kvm_set_fpu.patch b/debian/patches/bugfix/s390/kvm-s390-sanitize-fpc-registers-for-kvm_set_fpu.patch deleted file mode 100644 index 9cab1c80e..000000000 --- a/debian/patches/bugfix/s390/kvm-s390-sanitize-fpc-registers-for-kvm_set_fpu.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Marcelo Tosatti -Date: Fri, 18 May 2012 17:58:51 -0300 -Subject: KVM: s390: Sanitize fpc registers for KVM_SET_FPU - -From: Christian Borntraeger - -(cherry picked from commit 851755871c1f3184f4124c466e85881f17fa3226) - -commit 7eef87dc99e419b1cc051e4417c37e4744d7b661 (KVM: s390: fix -register setting) added a load of the floating point control register -to the KVM_SET_FPU path. Lets make sure that the fpc is valid. - -Signed-off-by: Christian Borntraeger -Signed-off-by: Marcelo Tosatti -Signed-off-by: Avi Kivity -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Ben Hutchings ---- - arch/s390/kvm/kvm-s390.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c -index d1c44573..d3cb86c 100644 ---- a/arch/s390/kvm/kvm-s390.c -+++ b/arch/s390/kvm/kvm-s390.c -@@ -418,7 +418,7 @@ int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu, - int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) - { - memcpy(&vcpu->arch.guest_fpregs.fprs, &fpu->fprs, sizeof(fpu->fprs)); -- vcpu->arch.guest_fpregs.fpc = fpu->fpc; -+ vcpu->arch.guest_fpregs.fpc = fpu->fpc & FPC_VALID_MASK; - restore_fp_regs(&vcpu->arch.guest_fpregs); - return 0; - } --- -1.7.6.4 - --- -To unsubscribe from this list: send the line "unsubscribe stable" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html - - diff --git a/debian/patches/bugfix/x86/kvm-nvmx-fix-erroneous-exception-bitmap-check.patch b/debian/patches/bugfix/x86/kvm-nvmx-fix-erroneous-exception-bitmap-check.patch deleted file mode 100644 index fd839a0d6..000000000 --- a/debian/patches/bugfix/x86/kvm-nvmx-fix-erroneous-exception-bitmap-check.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Marcelo Tosatti -Date: Fri, 18 May 2012 17:58:48 -0300 -Subject: KVM: nVMX: Fix erroneous exception bitmap check - -From: Nadav Har'El - -(cherry picked from commit 9587190107d0c0cbaccbf7bf6b0245d29095a9ae) - -The code which checks whether to inject a pagefault to L1 or L2 (in -nested VMX) was wrong, incorrect in how it checked the PF_VECTOR bit. -Thanks to Dan Carpenter for spotting this. - -Signed-off-by: Nadav Har'El -Reported-by: Dan Carpenter -Signed-off-by: Avi Kivity -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Ben Hutchings ---- - arch/x86/kvm/vmx.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c -index 4ea7678..7ac5993 100644 ---- a/arch/x86/kvm/vmx.c -+++ b/arch/x86/kvm/vmx.c -@@ -1677,7 +1677,7 @@ static int nested_pf_handled(struct kvm_vcpu *vcpu) - struct vmcs12 *vmcs12 = get_vmcs12(vcpu); - - /* TODO: also check PFEC_MATCH/MASK, not just EB.PF. */ -- if (!(vmcs12->exception_bitmap & PF_VECTOR)) -+ if (!(vmcs12->exception_bitmap & (1u << PF_VECTOR))) - return 0; - - nested_vmx_vmexit(vcpu); --- -1.7.6.4 - --- -To unsubscribe from this list: send the line "unsubscribe stable" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html - - diff --git a/debian/patches/bugfix/x86/kvm-vmx-vmx_set_cr0-expects-kvm-srcu-locked.patch b/debian/patches/bugfix/x86/kvm-vmx-vmx_set_cr0-expects-kvm-srcu-locked.patch deleted file mode 100644 index e68e23368..000000000 --- a/debian/patches/bugfix/x86/kvm-vmx-vmx_set_cr0-expects-kvm-srcu-locked.patch +++ /dev/null @@ -1,40 +0,0 @@ -From: Marcelo Tosatti -Date: Fri, 18 May 2012 17:58:49 -0300 -Subject: KVM: VMX: vmx_set_cr0 expects kvm->srcu locked - -(cherry picked from commit 7a4f5ad051e02139a9f1c0f7f4b1acb88915852b) - -vmx_set_cr0 is called from vcpu run context, therefore it expects -kvm->srcu to be held (for setting up the real-mode TSS). - -Signed-off-by: Marcelo Tosatti -Signed-off-by: Avi Kivity -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Ben Hutchings ---- - arch/x86/kvm/vmx.c | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c -index 7ac5993..7315488 100644 ---- a/arch/x86/kvm/vmx.c -+++ b/arch/x86/kvm/vmx.c -@@ -3915,7 +3915,9 @@ static int vmx_vcpu_reset(struct kvm_vcpu *vcpu) - vmcs_write16(VIRTUAL_PROCESSOR_ID, vmx->vpid); - - vmx->vcpu.arch.cr0 = X86_CR0_NW | X86_CR0_CD | X86_CR0_ET; -+ vcpu->srcu_idx = srcu_read_lock(&vcpu->kvm->srcu); - vmx_set_cr0(&vmx->vcpu, kvm_read_cr0(vcpu)); /* enter rmode */ -+ srcu_read_unlock(&vcpu->kvm->srcu, vcpu->srcu_idx); - vmx_set_cr4(&vmx->vcpu, 0); - vmx_set_efer(&vmx->vcpu, 0); - vmx_fpu_activate(&vmx->vcpu); --- -1.7.6.4 - --- -To unsubscribe from this list: send the line "unsubscribe stable" in -the body of a message to majordomo@vger.kernel.org -More majordomo info at http://vger.kernel.org/majordomo-info.html - - diff --git a/debian/patches/debian/mmc-Avoid-ABI-change-in-3.2.19.patch b/debian/patches/debian/mmc-Avoid-ABI-change-in-3.2.19.patch new file mode 100644 index 000000000..b6654de89 --- /dev/null +++ b/debian/patches/debian/mmc-Avoid-ABI-change-in-3.2.19.patch @@ -0,0 +1,34 @@ +From: Ben Hutchings +Date: Thu, 31 May 2012 04:04:55 +0100 +Subject: [PATCH] mmc: Avoid ABI change in 3.2.19 + +--- + include/linux/mmc/host.h | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h +index deb6282..20caeb0 100644 +--- a/include/linux/mmc/host.h ++++ b/include/linux/mmc/host.h +@@ -303,7 +303,6 @@ struct mmc_host { + + unsigned int sdio_irqs; + struct task_struct *sdio_irq_thread; +- bool sdio_irq_pending; + atomic_t sdio_irq_thread_abort; + + mmc_pm_flag_t pm_flags; /* requested pm features */ +@@ -315,6 +314,10 @@ struct mmc_host { + #ifdef CONFIG_REGULATOR + bool regulator_enabled; /* regulator state */ + #endif ++#if !(defined(__GENKSYMS__) && defined(CONFIG_REGULATOR)) ++ /* Use the hole after regulator_enabled to avoid an ABI change */ ++ bool sdio_irq_pending; ++#endif + + struct dentry *debugfs_root; + +-- +1.7.10 + diff --git a/debian/patches/features/all/rt/revert-workqueue-skip-nr_running-sanity-check-in-wor.patch b/debian/patches/features/all/rt/revert-workqueue-skip-nr_running-sanity-check-in-wor.patch new file mode 100644 index 000000000..8dec2548c --- /dev/null +++ b/debian/patches/features/all/rt/revert-workqueue-skip-nr_running-sanity-check-in-wor.patch @@ -0,0 +1,35 @@ +From: Ben Hutchings +Date: Thu, 31 May 2012 02:58:44 +0100 +Subject: [PATCH] Revert "workqueue: skip nr_running sanity check in + worker_enter_idle() if trustee is active" + +This reverts commit 5d79c6f64a904afc92a329f80abe693e3ae105fe. +It conflicts with, and appears to be unnecessary for, the PREEMPT_RT +series. +--- + kernel/workqueue.c | 9 ++------- + 1 file changed, 2 insertions(+), 7 deletions(-) + +diff --git a/kernel/workqueue.c b/kernel/workqueue.c +index 7947e16..bb425b1 100644 +--- a/kernel/workqueue.c ++++ b/kernel/workqueue.c +@@ -1215,13 +1215,8 @@ static void worker_enter_idle(struct worker *worker) + } else + wake_up_all(&gcwq->trustee_wait); + +- /* +- * Sanity check nr_running. Because trustee releases gcwq->lock +- * between setting %WORKER_ROGUE and zapping nr_running, the +- * warning may trigger spuriously. Check iff trustee is idle. +- */ +- WARN_ON_ONCE(gcwq->trustee_state == TRUSTEE_DONE && +- gcwq->nr_workers == gcwq->nr_idle && ++ /* sanity check nr_running */ ++ WARN_ON_ONCE(gcwq->nr_workers == gcwq->nr_idle && + atomic_read(get_gcwq_nr_running(gcwq->cpu))); + } + +-- +1.7.10 + diff --git a/debian/patches/features/all/wacom/0004-Input-wacom-relax-Bamboo-stylus-ID-check.patch b/debian/patches/features/all/wacom/0004-Input-wacom-relax-Bamboo-stylus-ID-check.patch deleted file mode 100644 index b2f78555c..000000000 --- a/debian/patches/features/all/wacom/0004-Input-wacom-relax-Bamboo-stylus-ID-check.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: Chris Bagwell -Date: Wed, 26 Oct 2011 22:28:34 -0700 -Subject: Input: wacom - relax Bamboo stylus ID check - -commit c5981411f60c31f0dff6f0f98d2d3711384badaf upstream. - -Bit 0x02 always means tip versus eraser. Bit 0x01 is something related -to version of stylus and different values are starting to be used. - -Relaxing proximity check is required to be used with 3rd generation -Bamboo Pen and Touch tablets. - -Signed-off-by: Chris Bagwell -Acked-by: Ping Cheng -Signed-off-by: Dmitry Torokhov -Signed-off-by: Jonathan Nieder ---- - drivers/input/tablet/wacom_wac.c | 7 +------ - 1 file changed, 1 insertion(+), 6 deletions(-) - -diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c -index 2ee47d01a3b4..f00c70e1adb0 100644 ---- a/drivers/input/tablet/wacom_wac.c -+++ b/drivers/input/tablet/wacom_wac.c -@@ -843,12 +843,7 @@ static int wacom_bpt_pen(struct wacom_wac *wacom) - unsigned char *data = wacom->data; - int prox = 0, x = 0, y = 0, p = 0, d = 0, pen = 0, btn1 = 0, btn2 = 0; - -- /* -- * Similar to Graphire protocol, data[1] & 0x20 is proximity and -- * data[1] & 0x18 is tool ID. 0x30 is safety check to ignore -- * 2 unused tool ID's. -- */ -- prox = (data[1] & 0x30) == 0x30; -+ prox = (data[1] & 0x20) == 0x20; - - /* - * All reports shared between PEN and RUBBER tool must be --- -1.7.10.1 - diff --git a/debian/patches/series/base b/debian/patches/series/base index 520a90397..6ec769faf 100644 --- a/debian/patches/series/base +++ b/debian/patches/series/base @@ -189,23 +189,14 @@ + debian/skbuff-avoid-ABI-change-in-3.2.17.patch + debian/usb-hcd-avoid-ABI-change-in-3.2.17.patch + debian/fork-avoid-ABI-change-in-3.2.18.patch ++ debian/mmc-Avoid-ABI-change-in-3.2.19.patch + bugfix/all/ext4-Report-max_batch_time-option-correctly.patch -# KVM fixes queued for 3.2.19 -+ bugfix/all/kvm-mmu_notifier-flush-tlbs-before-releasing-mmu_lock.patch -+ bugfix/all/kvm-ensure-all-vcpus-are-consistent-with-in-kernel-irqchip.patch -+ bugfix/all/kvm-lock-slots_lock-around-device-assignment.patch -+ bugfix/x86/kvm-nvmx-fix-erroneous-exception-bitmap-check.patch -+ bugfix/x86/kvm-vmx-vmx_set_cr0-expects-kvm-srcu-locked.patch -+ bugfix/s390/kvm-s390-do-store-status-after-handling-stop_on_stop-bit.patch -+ bugfix/s390/kvm-s390-sanitize-fpc-registers-for-kvm_set_fpu.patch - # Update wacom driver to 3.5ish + features/all/wacom/0001-Input-wacom-cleanup-feature-report-for-bamboos.patch + features/all/wacom/0002-Input-wacom-remove-unused-bamboo-HID-parsing.patch + features/all/wacom/0003-Input-wacom-add-some-comments-to-wacom_parse_hid.patch -+ features/all/wacom/0004-Input-wacom-relax-Bamboo-stylus-ID-check.patch + features/all/wacom/0005-Input-wacom-read-3rd-gen-Bamboo-Touch-HID-data.patch + features/all/wacom/0006-Input-wacom-3rd-gen-Bamboo-P-Touch-packet-support.patch + features/all/wacom/0007-Input-wacom-ignore-unwanted-bamboo-packets.patch @@ -234,7 +225,6 @@ + features/all/rt2x00-add-rt5372-chipset-support.patch + bugfix/all/acpi-battery-only-refresh-the-sysfs-files-when-pertinent.patch -+ bugfix/all/ethtool-null-terminate-filename-passed-to.patch # Update be2net driver to 3.5ish + features/all/be2net/0001-sweep-the-floors-and-convert-some-.get_drvinfo-routi.patch diff --git a/debian/patches/series/base-extra b/debian/patches/series/base-extra index 490c4dd57..dbe4f961f 100644 --- a/debian/patches/series/base-extra +++ b/debian/patches/series/base-extra @@ -222,6 +222,7 @@ + features/all/rt/0223-workqueue-use-get-cpu-light.patch.patch featureset=rt + features/all/rt/0224-epoll.patch.patch featureset=rt + features/all/rt/0225-mm-vmalloc.patch.patch featureset=rt ++ features/all/rt/revert-workqueue-skip-nr_running-sanity-check-in-wor.patch featureset=rt + features/all/rt/0226-workqueue-Fix-cpuhotplug-trainwreck.patch featureset=rt + features/all/rt/0227-workqueue-Fix-PF_THREAD_BOUND-abuse.patch featureset=rt + features/all/rt/0228-workqueue-Use-get_cpu_light-in-flush_gcwq.patch featureset=rt