diff mbox

libnvdimm: fix the clear-error check in nsio_rw_bytes

Message ID 20170701003252.13171-2-vishal.l.verma@intel.com (mailing list archive)
State Accepted
Commit 7e5a21dfe552
Headers show

Commit Message

Verma, Vishal L July 1, 2017, 12:32 a.m. UTC
A leftover from the 'bandaid' fix that disabled BTT error clearing in
rw_bytes resulted in an incorrect check. After we converted these checks
over to use the NVDIMM_IO_ATOMIC flag, the ndns->claim check was both
redundant, and incorrect. Remove it.

Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
---
 drivers/nvdimm/claim.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Dan Williams July 1, 2017, 1:39 a.m. UTC | #1
On Fri, Jun 30, 2017 at 5:32 PM, Vishal Verma <vishal.l.verma@intel.com> wrote:
> A leftover from the 'bandaid' fix that disabled BTT error clearing in
> rw_bytes resulted in an incorrect check. After we converted these checks
> over to use the NVDIMM_IO_ATOMIC flag, the ndns->claim check was both
> redundant, and incorrect. Remove it.
>
> Cc: Dave Jiang <dave.jiang@intel.com>
> Cc: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
> ---
>  drivers/nvdimm/claim.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/nvdimm/claim.c b/drivers/nvdimm/claim.c
> index 8d23f68..f8ad92b 100644
> --- a/drivers/nvdimm/claim.c
> +++ b/drivers/nvdimm/claim.c
> @@ -289,8 +289,7 @@ static int nsio_rw_bytes(struct nd_namespace_common *ndns,
>                  * work around this collision.
>                  */
>                 if (IS_ALIGNED(offset, 512) && IS_ALIGNED(size, 512)
> -                               && !(flags & NVDIMM_IO_ATOMIC)
> -                               && !ndns->claim) {
> +                               && !(flags & NVDIMM_IO_ATOMIC)) {

Should this also go to -stable otherwise we won't clear errors on pmem
devices claimed by 'pfn' instances, right?
Vishal Verma July 2, 2017, 5:22 a.m. UTC | #2
On Fri, 2017-06-30 at 18:39 -0700, Dan Williams wrote:
> On Fri, Jun 30, 2017 at 5:32 PM, Vishal Verma <vishal.l.verma@intel.c
> om> wrote:
> > A leftover from the 'bandaid' fix that disabled BTT error clearing
> > in
> > rw_bytes resulted in an incorrect check. After we converted these
> > checks
> > over to use the NVDIMM_IO_ATOMIC flag, the ndns->claim check was
> > both
> > redundant, and incorrect. Remove it.
> > 
> > Cc: Dave Jiang <dave.jiang@intel.com>
> > Cc: Dan Williams <dan.j.williams@intel.com>
> > Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
> > ---
> >  drivers/nvdimm/claim.c | 3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> > 
> > diff --git a/drivers/nvdimm/claim.c b/drivers/nvdimm/claim.c
> > index 8d23f68..f8ad92b 100644
> > --- a/drivers/nvdimm/claim.c
> > +++ b/drivers/nvdimm/claim.c
> > @@ -289,8 +289,7 @@ static int nsio_rw_bytes(struct
> > nd_namespace_common *ndns,
> >                  * work around this collision.
> >                  */
> >                 if (IS_ALIGNED(offset, 512) && IS_ALIGNED(size,
> > 512)
> > -                               && !(flags & NVDIMM_IO_ATOMIC)
> > -                               && !ndns->claim) {
> > +                               && !(flags & NVDIMM_IO_ATOMIC)) {
> 
> Should this also go to -stable otherwise we won't clear errors on
> pmem
> devices claimed by 'pfn' instances, right?

Yes I think it should..
Should I just resend with stable CC'd?

> _______________________________________________
> Linux-nvdimm mailing list
> Linux-nvdimm@lists.01.org
> https://lists.01.org/mailman/listinfo/linux-nvdimm
diff mbox

Patch

diff --git a/drivers/nvdimm/claim.c b/drivers/nvdimm/claim.c
index 8d23f68..f8ad92b 100644
--- a/drivers/nvdimm/claim.c
+++ b/drivers/nvdimm/claim.c
@@ -289,8 +289,7 @@  static int nsio_rw_bytes(struct nd_namespace_common *ndns,
 		 * work around this collision.
 		 */
 		if (IS_ALIGNED(offset, 512) && IS_ALIGNED(size, 512)
-				&& !(flags & NVDIMM_IO_ATOMIC)
-				&& !ndns->claim) {
+				&& !(flags & NVDIMM_IO_ATOMIC)) {
 			long cleared;
 
 			cleared = nvdimm_clear_poison(&ndns->dev,