Message ID | 20170904084825.22172-1-vaibhav@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 8512bffd6226fea259f94fd23fc3b62ffe64baa1 |
Headers | show |
Series | [v2] cxl: Set the valid bit in PE for dedicated mode | expand |
Le 04/09/2017 à 10:48, Vaibhav Jain a écrit : > Make sure to set the valid-bit in software-state field of the > populated PE. This was earlier missing for dedicated mode AFUs, hence > was causing a PSL freeze when the AFU was activated. > > Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com> > --- > Changelog: > > v2 -> Removed a call to smp_wmb() after setting the bit [Michael Ellerman] > --- Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> > > drivers/misc/cxl/native.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/misc/cxl/native.c b/drivers/misc/cxl/native.c > index 4a82c313cf71..75df74d59527 100644 > --- a/drivers/misc/cxl/native.c > +++ b/drivers/misc/cxl/native.c > @@ -897,6 +897,14 @@ int cxl_attach_dedicated_process_psl9(struct cxl_context *ctx, u64 wed, u64 amr) > if (ctx->afu->adapter->native->sl_ops->update_dedicated_ivtes) > afu->adapter->native->sl_ops->update_dedicated_ivtes(ctx); > > + ctx->elem->software_state = cpu_to_be32(CXL_PE_SOFTWARE_STATE_V); > + /* > + * Ideally we should do a wmb() here to make sure the changes to the > + * PE are visible to the card before we call afu_enable. > + * On ppc64 though all mmios are preceded by a 'sync' instruction hence > + * we dont dont need one here. > + */ > + > result = cxl_ops->afu_reset(afu); > if (result) > return result; >
Acked-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> On 04/09/17 18:48, Vaibhav Jain wrote: > Make sure to set the valid-bit in software-state field of the > populated PE. This was earlier missing for dedicated mode AFUs, hence > was causing a PSL freeze when the AFU was activated. > > Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com> > --- > Changelog: > > v2 -> Removed a call to smp_wmb() after setting the bit [Michael Ellerman] > --- > > drivers/misc/cxl/native.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/misc/cxl/native.c b/drivers/misc/cxl/native.c > index 4a82c313cf71..75df74d59527 100644 > --- a/drivers/misc/cxl/native.c > +++ b/drivers/misc/cxl/native.c > @@ -897,6 +897,14 @@ int cxl_attach_dedicated_process_psl9(struct cxl_context *ctx, u64 wed, u64 amr) > if (ctx->afu->adapter->native->sl_ops->update_dedicated_ivtes) > afu->adapter->native->sl_ops->update_dedicated_ivtes(ctx); > > + ctx->elem->software_state = cpu_to_be32(CXL_PE_SOFTWARE_STATE_V); > + /* > + * Ideally we should do a wmb() here to make sure the changes to the > + * PE are visible to the card before we call afu_enable. > + * On ppc64 though all mmios are preceded by a 'sync' instruction hence > + * we dont dont need one here. > + */ > + > result = cxl_ops->afu_reset(afu); > if (result) > return result; >
On Mon, 2017-09-04 at 08:48:25 UTC, Vaibhav Jain wrote: > Make sure to set the valid-bit in software-state field of the > populated PE. This was earlier missing for dedicated mode AFUs, hence > was causing a PSL freeze when the AFU was activated. > > Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com> > Acked-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> > Acked-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/8512bffd6226fea259f94fd23fc3b6 cheers
diff --git a/drivers/misc/cxl/native.c b/drivers/misc/cxl/native.c index 4a82c313cf71..75df74d59527 100644 --- a/drivers/misc/cxl/native.c +++ b/drivers/misc/cxl/native.c @@ -897,6 +897,14 @@ int cxl_attach_dedicated_process_psl9(struct cxl_context *ctx, u64 wed, u64 amr) if (ctx->afu->adapter->native->sl_ops->update_dedicated_ivtes) afu->adapter->native->sl_ops->update_dedicated_ivtes(ctx); + ctx->elem->software_state = cpu_to_be32(CXL_PE_SOFTWARE_STATE_V); + /* + * Ideally we should do a wmb() here to make sure the changes to the + * PE are visible to the card before we call afu_enable. + * On ppc64 though all mmios are preceded by a 'sync' instruction hence + * we dont dont need one here. + */ + result = cxl_ops->afu_reset(afu); if (result) return result;
Make sure to set the valid-bit in software-state field of the populated PE. This was earlier missing for dedicated mode AFUs, hence was causing a PSL freeze when the AFU was activated. Signed-off-by: Vaibhav Jain <vaibhav@linux.vnet.ibm.com> --- Changelog: v2 -> Removed a call to smp_wmb() after setting the bit [Michael Ellerman] --- drivers/misc/cxl/native.c | 8 ++++++++ 1 file changed, 8 insertions(+)