Revert "cxl: Add kernel API to allow a context to operate with relocate disabled"
Remove abandonned capi support for the Mellanox CX4.
The symbol 'cxl_set_translation_mode' is never called, so
ctx->real_mode is always false.
This reverts commit 7a0d85d313
.
Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
Acked-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
7dea6f2f05
commit
c582815006
|
@ -324,7 +324,6 @@ int cxl_start_context(struct cxl_context *ctx, u64 wed,
|
||||||
if (task) {
|
if (task) {
|
||||||
ctx->pid = get_task_pid(task, PIDTYPE_PID);
|
ctx->pid = get_task_pid(task, PIDTYPE_PID);
|
||||||
kernel = false;
|
kernel = false;
|
||||||
ctx->real_mode = false;
|
|
||||||
|
|
||||||
/* acquire a reference to the task's mm */
|
/* acquire a reference to the task's mm */
|
||||||
ctx->mm = get_task_mm(current);
|
ctx->mm = get_task_mm(current);
|
||||||
|
@ -388,24 +387,6 @@ void cxl_set_master(struct cxl_context *ctx)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(cxl_set_master);
|
EXPORT_SYMBOL_GPL(cxl_set_master);
|
||||||
|
|
||||||
int cxl_set_translation_mode(struct cxl_context *ctx, bool real_mode)
|
|
||||||
{
|
|
||||||
if (ctx->status == STARTED) {
|
|
||||||
/*
|
|
||||||
* We could potentially update the PE and issue an update LLCMD
|
|
||||||
* to support this, but it doesn't seem to have a good use case
|
|
||||||
* since it's trivial to just create a second kernel context
|
|
||||||
* with different translation modes, so until someone convinces
|
|
||||||
* me otherwise:
|
|
||||||
*/
|
|
||||||
return -EBUSY;
|
|
||||||
}
|
|
||||||
|
|
||||||
ctx->real_mode = real_mode;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(cxl_set_translation_mode);
|
|
||||||
|
|
||||||
/* wrappers around afu_* file ops which are EXPORTED */
|
/* wrappers around afu_* file ops which are EXPORTED */
|
||||||
int cxl_fd_open(struct inode *inode, struct file *file)
|
int cxl_fd_open(struct inode *inode, struct file *file)
|
||||||
{
|
{
|
||||||
|
|
|
@ -613,7 +613,6 @@ struct cxl_context {
|
||||||
bool pe_inserted;
|
bool pe_inserted;
|
||||||
bool master;
|
bool master;
|
||||||
bool kernel;
|
bool kernel;
|
||||||
bool real_mode;
|
|
||||||
bool pending_irq;
|
bool pending_irq;
|
||||||
bool pending_fault;
|
bool pending_fault;
|
||||||
bool pending_afu_err;
|
bool pending_afu_err;
|
||||||
|
|
|
@ -623,9 +623,6 @@ static int guest_attach_process(struct cxl_context *ctx, bool kernel, u64 wed, u
|
||||||
{
|
{
|
||||||
pr_devel("in %s\n", __func__);
|
pr_devel("in %s\n", __func__);
|
||||||
|
|
||||||
if (ctx->real_mode)
|
|
||||||
return -EPERM;
|
|
||||||
|
|
||||||
ctx->kernel = kernel;
|
ctx->kernel = kernel;
|
||||||
if (ctx->afu->current_mode == CXL_MODE_DIRECTED)
|
if (ctx->afu->current_mode == CXL_MODE_DIRECTED)
|
||||||
return attach_afu_directed(ctx, wed, amr);
|
return attach_afu_directed(ctx, wed, amr);
|
||||||
|
|
|
@ -605,6 +605,7 @@ u64 cxl_calculate_sr(bool master, bool kernel, bool real_mode, bool p9)
|
||||||
sr |= CXL_PSL_SR_An_MP;
|
sr |= CXL_PSL_SR_An_MP;
|
||||||
if (mfspr(SPRN_LPCR) & LPCR_TC)
|
if (mfspr(SPRN_LPCR) & LPCR_TC)
|
||||||
sr |= CXL_PSL_SR_An_TC;
|
sr |= CXL_PSL_SR_An_TC;
|
||||||
|
|
||||||
if (kernel) {
|
if (kernel) {
|
||||||
if (!real_mode)
|
if (!real_mode)
|
||||||
sr |= CXL_PSL_SR_An_R;
|
sr |= CXL_PSL_SR_An_R;
|
||||||
|
@ -629,7 +630,7 @@ u64 cxl_calculate_sr(bool master, bool kernel, bool real_mode, bool p9)
|
||||||
|
|
||||||
static u64 calculate_sr(struct cxl_context *ctx)
|
static u64 calculate_sr(struct cxl_context *ctx)
|
||||||
{
|
{
|
||||||
return cxl_calculate_sr(ctx->master, ctx->kernel, ctx->real_mode,
|
return cxl_calculate_sr(ctx->master, ctx->kernel, false,
|
||||||
cxl_is_power9());
|
cxl_is_power9());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -173,14 +173,6 @@ int cxl_afu_reset(struct cxl_context *ctx);
|
||||||
*/
|
*/
|
||||||
void cxl_set_master(struct cxl_context *ctx);
|
void cxl_set_master(struct cxl_context *ctx);
|
||||||
|
|
||||||
/*
|
|
||||||
* Sets the context to use real mode memory accesses to operate with
|
|
||||||
* translation disabled. Note that this only makes sense for kernel contexts
|
|
||||||
* under bare metal, and will not work with virtualisation. May only be
|
|
||||||
* performed on stopped contexts.
|
|
||||||
*/
|
|
||||||
int cxl_set_translation_mode(struct cxl_context *ctx, bool real_mode);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Map and unmap the AFU Problem Space area. The amount and location mapped
|
* Map and unmap the AFU Problem Space area. The amount and location mapped
|
||||||
* depends on if this context is a master or slave.
|
* depends on if this context is a master or slave.
|
||||||
|
|
Loading…
Reference in New Issue