Avi Kivity wrote: > > Other than these minor issues, the patch looks fine.
Here is the rebased one.
If gsi/level is not enough, then following patch can fix this. But not
sure so far.
thx,eddie
against: cfc329b216bc3e54fe1107e8f714c7b3bc133224
drivers/kvm/Makefile | 2
drivers/kvm/i8259.c | 440
+++++++++++++++++++++++++++++++++++++++++++++++++
drivers/kvm/irq.c | 59 ++++++
drivers/kvm/irq.h | 64 +++++++
drivers/kvm/kvm.h | 12 +
drivers/kvm/kvm_main.c | 46 ++++-
drivers/kvm/svm.c | 55 +++++-
drivers/kvm/vmx.c | 83 ++++++++-
include/linux/kvm.h | 14 +
9 files changed, 749 insertions(+), 26 deletions(-)
diff --git a/user/kvmctl.c b/user/kvmctl.c
index b9c9f2b..2713c82 100644
--- a/user/kvmctl.c
+++ b/user/kvmctl.c
@@ -425,7 +425,8 @@ int kvm_set_irq_level(kvm_context_t kvm, int irq,
int level)
if (!kvm->irqchip_in_kernel)
return 0;
event.level = level;
- event.gsi = irq;
+ event.pin = irq % 8;
+ event.chip = irq / 8;
r = ioctl(kvm->vm_fd, KVM_IRQ_LINE, &event);
if (r == -1)
perror("kvm_set_irq_level");
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index 02bf208..642b3cd 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -2875,9 +2875,9 @@ static long kvm_vm_ioctl(struct file *filp,
if (copy_from_user(&irq_event, argp, sizeof irq_event))
goto out;
if (irqchip_in_kernel(kvm)) {
- if (irq_event.gsi < 16)
+ if (irq_event.chip < 2)
kvm_pic_set_irq(pic_irqchip(kvm),
- irq_event.gsi,
+ irq_event.chip * 8 +
irq_event.pin,
irq_event.level);
/* TODO: IOAPIC */
r = 0;
diff --git a/include/linux/kvm.h b/include/linux/kvm.h
index 1d1270a..d27dbca 100644
--- a/include/linux/kvm.h
+++ b/include/linux/kvm.h
@@ -43,7 +43,8 @@ struct kvm_memory_alias {
/* for KVM_SET_IRQ_LEVEL */
struct kvm_irq_level {
- __u32 gsi;
+ __u16 chip;
+ __u16 pin;
__u32 level;
};
pic-kernel-v26.patch.rebase
Description: pic-kernel-v26.patch.rebase
pic-user-v26.patch.rebase
Description: pic-user-v26.patch.rebase
------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/
_______________________________________________ kvm-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/kvm-devel
