>From ac5d9f038c273f27bea7a54aab6af79b57f56317 Mon Sep 17 00:00:00 2001 From: Raghavendra K T Date: Wed, 30 Oct 2013 18:59:46 +0530 Subject: [PATCH] Return EEXIST on debugfs_create_dir failure in kvm As quoted by Linus, EFAULT means "user passed in an invalid virtual address pointer", which is why the error string is Bad address. But when a debugfs directory creation fails, the above error is not valid. Signed-off-by: Raghavendra K T --- I understand that Tim's patch that renames directory to something like kvm-pv would solve kvm-amd/kvm-intel modules insertion problem. This patch is to address error code change complained by Linus. arch/x86/kernel/kvm.c | 2 +- virt/kvm/kvm_main.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index a0e2a8a..e475fdb 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c @@ -622,7 +622,7 @@ static int __init kvm_spinlock_debugfs(void) d_kvm = kvm_init_debugfs(); if (d_kvm == NULL) - return -ENOMEM; + return -EEXIST; d_spin_debug = debugfs_create_dir("spinlocks", d_kvm); diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index a9dd682..0430853 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -3091,13 +3091,14 @@ static const struct file_operations *stat_fops[] = { static int kvm_init_debug(void) { - int r = -EFAULT; + int r = -EEXIST; struct kvm_stats_debugfs_item *p; kvm_debugfs_dir = debugfs_create_dir("kvm", NULL); if (kvm_debugfs_dir == NULL) goto out; + r = -EFAULT; for (p = debugfs_entries; p->name; ++p) { p->dentry = debugfs_create_file(p->name, 0444, kvm_debugfs_dir, (void *)(long)p->offset, -- 1.7.11.7