{
int i, ret;
u64 feature_XOR;
- u64 features = conf->use_features;
+ u64 features, features_backup;
+
+ /* TODO: field use_features1 is not used*/
+ features_backup = features = conf->use_features0;
features &= feature_mask;
feature_XOR = features ^ feature_inst;
}
f_mask = ~(1 << i);
feature_inst = (feature_inst & f_mask) |
- (conf->use_features & ~f_mask);
+ (features_backup & ~f_mask);
}
features >>= 1;
return -EINVAL;
}
- conf.use_features = 0;
+ conf.use_features0 = 0;
+ conf.use_features1 = 0;
ret = set_config(&conf);
if (ret)
printk("Cannot set config, ret = %d\n", ret);
struct conf_data *create_conf_data(struct msg_buf *mb)
{
struct conf_data *conf;
- u64 uf;
+ u64 use_features0, use_features1;
u32 stp, dmp;
print_parse_debug("conf_data:\n");
print_parse_debug("features:");
- if (get_u64(mb, &uf)) {
+ if (get_u64(mb, &use_features0)) {
+ print_err("failed to read use_features\n");
+ return NULL;
+ }
+
+ if (get_u64(mb, &use_features1)) {
print_err("failed to read use_features\n");
return NULL;
}
return NULL;
}
- conf->use_features = uf;
+ conf->use_features0 = use_features0;
+ conf->use_features1 = use_features1;
conf->sys_trace_period = stp;
conf->data_msg_period = dmp;