{
int ver = vc_get_version();
vc_vci_t conf = vc_get_vci();
+ int linux_ver = vc_get_kernel();
if (ver==-1) return false;
if (conf==(vc_vci_t)-1) conf = 0;
case vcFEATURE_SCHED : return ver >= 0x00020000; // todo
case vcFEATURE_VNET : return ver >= 0x00020001;
case vcFEATURE_PERSISTENT : return ver >= 0x00020002;
- case vcFEATURE_VSTAT : return ver >= 0x00020103;
+ case vcFEATURE_VSTAT : return ver >= 0x00020103 && ver < 0x00020306;
case vcFEATURE_PPTAG : return conf & VC_VCI_PPTAG;
case vcFEATURE_SPACES : return conf & VC_VCI_SPACES;
case vcFEATURE_PIVOT_ROOT : return ver >= 0x00020304;
case vcFEATURE_PIDSPACE : return false;
case vcFEATURE_MEMCG : return ver >= 0x00020306 && conf & VC_VCI_MEMCG;
case vcFEATURE_DYNAMIC : return ver < 0x00020300 || !(conf & VC_VCI_NO_DYNAMIC);
+ case vcFEATURE_BME : return linux_ver < 0x0002061a;
default : assert(false);
}