Re: [PATCH v4 1/1] KVM: trigger uevents when creating or destroying a VM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Claudio,

[auto build test ERROR on kvm/linux-next]
[also build test ERROR on v4.12 next-20170711]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Claudio-Imbrenda/KVM-trigger-uevents-when-creating-or-destroying-a-VM/20170712-023748
base:   https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
config: x86_64-allyesdebian (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   arch/x86/kvm/../../../virt/kvm/kvm_main.c: In function 'kvm_uevent_notify_change':
>> arch/x86/kvm/../../../virt/kvm/kvm_main.c:3892:24: error: 'struct mm_struct' has no member named 'owner'
     if (kvm->mm && kvm->mm->owner) {
                           ^~
   arch/x86/kvm/../../../virt/kvm/kvm_main.c:3893:40: error: 'struct mm_struct' has no member named 'owner'
      add_uevent_var(env, "PID=%d", kvm->mm->owner->pid);
                                           ^~

vim +3892 arch/x86/kvm/../../../virt/kvm/kvm_main.c

  3864	
  3865	static void kvm_uevent_notify_change(unsigned int type, struct kvm *kvm)
  3866	{
  3867		struct kobj_uevent_env *env;
  3868		char *tmp, *pathbuf = NULL;
  3869		unsigned long long created, active;
  3870	
  3871		if (!kvm_dev.this_device || !kvm)
  3872			return;
  3873	
  3874		spin_lock(&kvm_lock);
  3875		if (type == KVM_EVENT_CREATE_VM) {
  3876			kvm_createvm_count++;
  3877			kvm_active_vms++;
  3878		} else if (type == KVM_EVENT_DESTROY_VM) {
  3879			kvm_active_vms--;
  3880		}
  3881		created = kvm_createvm_count;
  3882		active = kvm_active_vms;
  3883		spin_unlock(&kvm_lock);
  3884	
  3885		env = kzalloc(sizeof(*env), GFP_KERNEL);
  3886		if (!env)
  3887			return;
  3888	
  3889		add_uevent_var(env, "CREATED=%llu", created);
  3890		add_uevent_var(env, "COUNT=%llu", active);
  3891	
> 3892		if (kvm->mm && kvm->mm->owner) {
  3893			add_uevent_var(env, "PID=%d", kvm->mm->owner->pid);
  3894		} else if (kvm->debugfs_dentry) {
  3895			char p[ITOA_MAX_LEN];
  3896	
  3897			snprintf(p, sizeof(p), "%s", kvm->debugfs_dentry->d_name.name);
  3898			tmp = strchrnul(p + 1, '-');
  3899			*tmp = '\0';
  3900			add_uevent_var(env, "PID=%s", p);
  3901		}
  3902	
  3903		if (type == KVM_EVENT_CREATE_VM)
  3904			add_uevent_var(env, "EVENT=create");
  3905		else if (type == KVM_EVENT_DESTROY_VM)
  3906			add_uevent_var(env, "EVENT=destroy");
  3907	
  3908		if (kvm->debugfs_dentry) {
  3909			pathbuf = kmalloc(PATH_MAX, GFP_KERNEL);
  3910			if (pathbuf) {
  3911				/* sizeof counts the final '\0' */
  3912				int len = sizeof("STATS_PATH=") - 1;
  3913				const char *pvar = "STATS_PATH=";
  3914	
  3915				tmp = dentry_path_raw(kvm->debugfs_dentry,
  3916						      pathbuf + len,
  3917						      PATH_MAX - len);
  3918				if (!IS_ERR(tmp)) {
  3919					memcpy(tmp - len, pvar, len);
  3920					env->envp[env->envp_idx++] = tmp - len;
  3921				}
  3922			}
  3923		}
  3924		/* no need for checks, since we are adding at most only 5 keys */
  3925		env->envp[env->envp_idx++] = NULL;
  3926		kobject_uevent_env(&kvm_dev.this_device->kobj, KOBJ_CHANGE, env->envp);
  3927		kfree(env);
  3928		kfree(pathbuf);
  3929	}
  3930	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux