That is to say, don't support a domain assigns a device to itself or detachs
a device from itself.
Signed-off-by: Chao Gao <chao.gao@intel.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
break;
case XEN_DOMCTL_assign_device:
+ /* Don't support self-assignment of devices. */
+ if ( d == current->domain )
+ {
+ ret = -EINVAL;
+ break;
+ }
+
ret = -ENODEV;
if ( domctl->u.assign_device.dev != XEN_DOMCTL_DEV_PCI )
break;
break;
case XEN_DOMCTL_deassign_device:
+ /* Don't support self-deassignment of devices. */
+ if ( d == current->domain )
+ {
+ ret = -EINVAL;
+ break;
+ }
+
ret = -ENODEV;
if ( domctl->u.assign_device.dev != XEN_DOMCTL_DEV_PCI )
break;