int amd64_set_mtrr(struct proc *p, void *args, register_t *retval) { int error, n; struct amd64_set_mtrr_args ua; if (mtrr_funcs == NULL) return ENOSYS; error = suser(p, 0); if (error != 0) return error; error = copyin(args, &ua, sizeof ua); if (error != 0) return error; error = copyin(ua.n, &n, sizeof n); if (error != 0) return error; error = mtrr_set(ua.mtrrp, &n, p, MTRR_GETSET_USER); if (n != 0) mtrr_commit(); copyout(&n, ua.n, sizeof n); return error; }
int init_cache_f_r(void) { #if CONFIG_IS_ENABLED(X86_32BIT_INIT) && !defined(CONFIG_HAVE_FSP) int ret; ret = mtrr_commit(false); /* If MTRR MSR is not implemented by the processor, just ignore it */ if (ret && ret != -ENOSYS) return ret; #endif /* Initialise the CPU cache(s) */ return init_cache(); }