lkml.org 
[lkml]   [2009]   [May]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [KVM PATCH v4 2/2] kvm: add support for irqfd via eventfd-notification interface
Gregory Haskins wrote:
> KVM provides a complete virtual system environment for guests, including
> support for injecting interrupts modeled after the real exception/interrupt
> facilities present on the native platform (such as the IDT on x86).
> Virtual interrupts can come from a variety of sources (emulated devices,
> pass-through devices, etc) but all must be injected to the guest via
> the KVM infrastructure. This patch adds a new mechanism to inject a specific
> interrupt to a guest using a decoupled eventfd mechnanism: Any legal signal
> on the irqfd (using eventfd semantics from either userspace or kernel) will
> translate into an injected interrupt in the guest at the next available
> interrupt window.
>
>
> +struct kvm_irqfd {
> + __u32 gsi;
> + __u32 flags;
> +};
> +
>

Please add some reserved space here.

> +int
> +kvm_irqfd(struct kvm *kvm, int gsi, int flags)
> +{
> + struct _irqfd *irqfd;
> + struct file *file = NULL;
> + int fd = -1;
> + int ret;
> +
> + irqfd = kzalloc(sizeof(*irqfd), GFP_KERNEL);
> + if (!irqfd)
> + return -ENOMEM;
> +
> + irqfd->kvm = kvm;
>

You need to increase the refcount on struct kvm here. Otherwise evil
userspace will create an irqfd, close the vm and vcpu fds, and inject an
interrupt.

Otherwise, looks good.

--
error compiling committee.c: too many arguments to function



\
 
 \ /
  Last update: 2009-05-05 17:47    [W:1.912 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site