Update to 3.2.19
Drop patches included in it. Defer an ABI change in mmc for now. For the PREEMPT_RT featureset, revert one conflicting change in 3.2.19. svn path=/dists/sid/linux-2.6/; revision=19047
This commit is contained in:
parent
ca018e7e12
commit
681f694b3a
|
@ -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 ]
|
[ Ben Hutchings ]
|
||||||
* be2net: Backport most changes up to Linux 3.5-rc1, thanks to
|
* be2net: Backport most changes up to Linux 3.5-rc1, thanks to
|
||||||
|
|
|
@ -1,53 +0,0 @@
|
||||||
From: Ben Hutchings <bhutchings@solarflare.com>
|
|
||||||
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 <bhutchings@solarflare.com>
|
|
||||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
|
@ -1,107 +0,0 @@
|
||||||
From: Avi Kivity <avi@redhat.com>
|
|
||||||
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 <michael@ellerman.id.au>
|
|
||||||
Signed-off-by: Avi Kivity <avi@redhat.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
|
@ -1,80 +0,0 @@
|
||||||
From: Alex Williamson <alex.williamson@redhat.com>
|
|
||||||
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 <alex.williamson@redhat.com>
|
|
||||||
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
|
@ -1,85 +0,0 @@
|
||||||
From: Marcelo Tosatti <mtosatti@redhat.com>
|
|
||||||
Date: Fri, 18 May 2012 17:58:45 -0300
|
|
||||||
Subject: KVM: mmu_notifier: Flush TLBs before releasing mmu_lock
|
|
||||||
|
|
||||||
From: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
|
|
||||||
|
|
||||||
(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 <yoshikawa.takuya@oss.ntt.co.jp>
|
|
||||||
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
|
|
||||||
Signed-off-by: Avi Kivity <avi@redhat.com>
|
|
||||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
|
@ -1,71 +0,0 @@
|
||||||
From: Marcelo Tosatti <mtosatti@redhat.com>
|
|
||||||
Date: Fri, 18 May 2012 17:58:50 -0300
|
|
||||||
Subject: KVM: s390: do store status after handling STOP_ON_STOP bit
|
|
||||||
|
|
||||||
From: Jens Freimann <jfrei@linux.vnet.ibm.com>
|
|
||||||
|
|
||||||
(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 <jfrei@linux.vnet.ibm.com>
|
|
||||||
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
|
|
||||||
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
|
|
||||||
Signed-off-by: Avi Kivity <avi@redhat.com>
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
From: Marcelo Tosatti <mtosatti@redhat.com>
|
|
||||||
Date: Fri, 18 May 2012 17:58:51 -0300
|
|
||||||
Subject: KVM: s390: Sanitize fpc registers for KVM_SET_FPU
|
|
||||||
|
|
||||||
From: Christian Borntraeger <borntraeger@de.ibm.com>
|
|
||||||
|
|
||||||
(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 <borntraeger@de.ibm.com>
|
|
||||||
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
|
|
||||||
Signed-off-by: Avi Kivity <avi@redhat.com>
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
From: Marcelo Tosatti <mtosatti@redhat.com>
|
|
||||||
Date: Fri, 18 May 2012 17:58:48 -0300
|
|
||||||
Subject: KVM: nVMX: Fix erroneous exception bitmap check
|
|
||||||
|
|
||||||
From: Nadav Har'El <nyh@math.technion.ac.il>
|
|
||||||
|
|
||||||
(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 <nyh@il.ibm.com>
|
|
||||||
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
|
|
||||||
Signed-off-by: Avi Kivity <avi@redhat.com>
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
From: Marcelo Tosatti <mtosatti@redhat.com>
|
|
||||||
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 <mtosatti@redhat.com>
|
|
||||||
Signed-off-by: Avi Kivity <avi@redhat.com>
|
|
||||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
||||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
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
|
||||||
|
|
35
debian/patches/features/all/rt/revert-workqueue-skip-nr_running-sanity-check-in-wor.patch
vendored
Normal file
35
debian/patches/features/all/rt/revert-workqueue-skip-nr_running-sanity-check-in-wor.patch
vendored
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
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
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
From: Chris Bagwell <chris@cnpbagwell.com>
|
|
||||||
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 <chris@cnpbagwell.com>
|
|
||||||
Acked-by: Ping Cheng <pingc@wacom.com>
|
|
||||||
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
|
|
||||||
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
|
@ -189,23 +189,14 @@
|
||||||
+ debian/skbuff-avoid-ABI-change-in-3.2.17.patch
|
+ debian/skbuff-avoid-ABI-change-in-3.2.17.patch
|
||||||
+ debian/usb-hcd-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/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
|
+ 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
|
# Update wacom driver to 3.5ish
|
||||||
+ features/all/wacom/0001-Input-wacom-cleanup-feature-report-for-bamboos.patch
|
+ 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/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/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/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/0006-Input-wacom-3rd-gen-Bamboo-P-Touch-packet-support.patch
|
||||||
+ features/all/wacom/0007-Input-wacom-ignore-unwanted-bamboo-packets.patch
|
+ features/all/wacom/0007-Input-wacom-ignore-unwanted-bamboo-packets.patch
|
||||||
|
@ -234,7 +225,6 @@
|
||||||
+ features/all/rt2x00-add-rt5372-chipset-support.patch
|
+ features/all/rt2x00-add-rt5372-chipset-support.patch
|
||||||
|
|
||||||
+ bugfix/all/acpi-battery-only-refresh-the-sysfs-files-when-pertinent.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
|
# Update be2net driver to 3.5ish
|
||||||
+ features/all/be2net/0001-sweep-the-floors-and-convert-some-.get_drvinfo-routi.patch
|
+ features/all/be2net/0001-sweep-the-floors-and-convert-some-.get_drvinfo-routi.patch
|
||||||
|
|
|
@ -222,6 +222,7 @@
|
||||||
+ features/all/rt/0223-workqueue-use-get-cpu-light.patch.patch featureset=rt
|
+ 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/0224-epoll.patch.patch featureset=rt
|
||||||
+ features/all/rt/0225-mm-vmalloc.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/0226-workqueue-Fix-cpuhotplug-trainwreck.patch featureset=rt
|
||||||
+ features/all/rt/0227-workqueue-Fix-PF_THREAD_BOUND-abuse.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
|
+ features/all/rt/0228-workqueue-Use-get_cpu_light-in-flush_gcwq.patch featureset=rt
|
||||||
|
|
Loading…
Reference in New Issue