Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 3160499aacb81f6735941eb4c372d87a > files > 331

kvm-83-164.el5_5.30.src.rpm

From 1ff40f1aa0b11ff0a4d4c8d3560faa724e3dca01 Mon Sep 17 00:00:00 2001
From: Don Dutile <ddutile@redhat.com>
Date: Mon, 15 Mar 2010 15:18:37 -0300
Subject: [PATCH 2/2] Backport KVM: fix irq_source_id size verification

RH-Author: Don Dutile <ddutile@redhat.com>
Message-id: <patch-7758-clone-for-rhel55-rhel55>
Patchwork-id: 8386
O-Subject: [RHEL5.6 PATCH KVM] Backport KVM: fix irq_source_id size verification
Bugzilla: 579863
RH-Acked-by: Juan Quintela <quintela@redhat.com>
RH-Acked-by: Gleb Natapov <gleb@redhat.com>
RH-Acked-by: Marcelo Tosatti <mtosatti@redhat.com>

BZ 520572

Backport of:
commit cd5a2685de4a642fd0bd763e8c19711ef08dbe27
Author: Marcelo Tosatti <mtosatti@redhat.com>
Date:   Sat Oct 17 22:47:23 2009 -0300

    KVM: fix irq_source_id size verification

    find_first_zero_bit works with bit numbers, not bytes.

    Fixes

    https://sourceforge.net/tracker/?func=detail&aid=2847560&group_id=180599&a

    Reported-by: "Xu, Jiajun" <jiajun.xu@intel.com>
    Cc: stable@kernel.org
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>

Tested by BZ reporter as fixing the problem.

Built brew rpm located at:
http://people.redhat.com/~ddutile/rhel5/bz520572/
(this is the rpm tested by reporter).

Please review and ack.

- Don

ps -- if approved for 5.6, it is recommended that this be flagged & backported to 5.5-z.
>From 4ca6d17539cc350d4ac2b8a9ea4c0ea54346bfde Mon Sep 17 00:00:00 2001
From: Donald Dutile <ddutile@redhat.com>
Date: Wed, 3 Mar 2010 19:50:29 -0500
Subject: [PATCH] KVM: fix irq_source_id size verification

Backport from upstream for bz 547025.
---
 virt/kvm/irq_comm.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 virt/kvm/irq_comm.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/virt/kvm/irq_comm.c b/virt/kvm/irq_comm.c
index f45c30d..5414bad 100644
--- a/virt/kvm/irq_comm.c
+++ b/virt/kvm/irq_comm.c
@@ -230,10 +230,9 @@ void kvm_unregister_irq_ack_notifier(struct kvm_irq_ack_notifier *kian)
 int kvm_request_irq_source_id(struct kvm *kvm)
 {
 	unsigned long *bitmap = &kvm->arch.irq_sources_bitmap;
-	int irq_source_id = find_first_zero_bit(bitmap,
-				sizeof(kvm->arch.irq_sources_bitmap));
+	int irq_source_id = find_first_zero_bit(bitmap, BITS_PER_LONG);
 
-	if (irq_source_id >= sizeof(kvm->arch.irq_sources_bitmap)) {
+	if (irq_source_id >= BITS_PER_LONG) {
 		printk(KERN_WARNING "kvm: exhaust allocatable IRQ sources!\n");
 		return -EFAULT;
 	}
@@ -251,7 +250,7 @@ void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id)
 	ASSERT(irq_source_id != KVM_USERSPACE_IRQ_SOURCE_ID);
 
 	if (irq_source_id < 0 ||
-	    irq_source_id >= sizeof(kvm->arch.irq_sources_bitmap)) {
+	    irq_source_id >= BITS_PER_LONG) {
 		printk(KERN_ERR "kvm: IRQ source ID out of range!\n");
 		return;
 	}
-- 
1.7.0.3