Commit c5828150 authored by Alastair D'Silva's avatar Alastair D'Silva Committed by Michael Ellerman

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 7a0d85d3.
Signed-off-by: default avatarAlastair D'Silva <alastair@d-silva.org>
Acked-by: default avatarAndrew Donnellan <andrew.donnellan@au1.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 7dea6f2f
...@@ -324,7 +324,6 @@ int cxl_start_context(struct cxl_context *ctx, u64 wed, ...@@ -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) ...@@ -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 { ...@@ -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 ...@@ -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) ...@@ -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) ...@@ -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); ...@@ -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.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment