On Mon, 2008-02-25 at 17:34 +0800, Zhang, Xiantao wrote:
> From: Xiantao Zhang <[EMAIL PROTECTED]>
> Date: Mon, 25 Feb 2008 17:11:43 +0800
> Subject: [PATCH] kvm: Using kzalloc to avoid allocating kvm_regs from
> kernel stack.
>
> Since the size of struct kvm_regs maybe too big to allocate from kernel
> stack,
> here use kzalloc to allocate it.
> Signed-off-by: Xiantao Zhang <[EMAIL PROTECTED]>
> ---
> virt/kvm/kvm_main.c | 15 ++++++++-------
> 1 files changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
> index cf6df51..5348538 100644
> --- a/virt/kvm/kvm_main.c
> +++ b/virt/kvm/kvm_main.c
> @@ -806,25 +806,26 @@ static long kvm_vcpu_ioctl(struct file *filp,
> r = kvm_arch_vcpu_ioctl_run(vcpu, vcpu->run);
> break;
> case KVM_GET_REGS: {
> - struct kvm_regs kvm_regs;
> + struct kvm_regs *kvm_regs;
>
> - memset(&kvm_regs, 0, sizeof kvm_regs);
> - r = kvm_arch_vcpu_ioctl_get_regs(vcpu, &kvm_regs);
> + kvm_regs = kzalloc(sizeof(struct kvm_regs), GFP_KERNEL);
> + r = kvm_arch_vcpu_ioctl_get_regs(vcpu, kvm_regs);
> if (r)
> goto out;
> r = -EFAULT;
> - if (copy_to_user(argp, &kvm_regs, sizeof kvm_regs))
> + if (copy_to_user(argp, kvm_regs, sizeof(struct
> kvm_regs)))
> goto out;
> r = 0;
> break;
> }
> case KVM_SET_REGS: {
> - struct kvm_regs kvm_regs;
> + struct kvm_regs *kvm_regs;
>
> + kvm_regs = kzalloc(sizeof(struct kvm_regs), GFP_KERNEL);
> r = -EFAULT;
> - if (copy_from_user(&kvm_regs, argp, sizeof kvm_regs))
> + if (copy_from_user(kvm_regs, argp, sizeof(struct
> kvm_regs)))
> goto out;
> - r = kvm_arch_vcpu_ioctl_set_regs(vcpu, &kvm_regs);
> + r = kvm_arch_vcpu_ioctl_set_regs(vcpu, kvm_regs);
> if (r)
> goto out;
> r = 0;
Where is this freed?
--
Hollis Blanchard
IBM Linux Technology Center
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel