On Fri, 2017-10-06 at 11:52 -0700, Dan Williams wrote:
> On Thu, Oct 5, 2017 at 6:53 PM, Vishal Verma <vishal.l.ve...@intel.com
> > wrote:
> > From: Dave Jiang <dave.ji...@intel.com>
> > 
> > From: Dave Jiang <dave.ji...@intel.com>
> > 
> > nfit_test needs to use the poison list manipulation code as well.
> > Make
> > it more generic and in the process rename poison to badrange, and
> > move
> > all the related helpers to a new file.
> > 
> > Signed-off-by: Dave Jiang <dave.ji...@intel.com>
> > [vishal: add a missed include in bus.c for the new badrange
> > functions]
> > Signed-off-by: Vishal Verma <vishal.l.ve...@intel.com>
> > ---
> >  drivers/acpi/nfit/core.c  |   2 +-
> >  drivers/acpi/nfit/mce.c   |   2 +-
> >  drivers/nvdimm/Makefile   |   1 +
> >  drivers/nvdimm/badrange.c | 294
> > ++++++++++++++++++++++++++++++++++++++++++++++
> >  drivers/nvdimm/bus.c      |  24 ++--
> >  drivers/nvdimm/core.c     | 260 +--------------------------------
> > -------
> >  drivers/nvdimm/nd-core.h  |   3 +-
> >  drivers/nvdimm/nd.h       |   6 -
> >  include/linux/libnvdimm.h |  21 +++-
> >  9 files changed, 331 insertions(+), 282 deletions(-)
> >  create mode 100644 drivers/nvdimm/badrange.c
> > 
> > diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
> > index a3ecd5e..4b157f8 100644
> > --- a/drivers/acpi/nfit/core.c
> > +++ b/drivers/acpi/nfit/core.c
> > @@ -2240,7 +2240,7 @@ static int ars_status_process_records(struct
> > acpi_nfit_desc *acpi_desc,
> >                 if (ars_status->out_length
> >                                 < 44 + sizeof(struct nd_ars_record)
> > * (i + 1))
> >                         break;
> > -               rc = nvdimm_bus_add_poison(nvdimm_bus,
> > +               rc = nvdimm_bus_add_badrange(nvdimm_bus,
> >                                 ars_status->records[i].err_address,
> >                                 ars_status->records[i].length);
> >                 if (rc)
> > diff --git a/drivers/acpi/nfit/mce.c b/drivers/acpi/nfit/mce.c
> > index feeb95d..b929214 100644
> > --- a/drivers/acpi/nfit/mce.c
> > +++ b/drivers/acpi/nfit/mce.c
> > @@ -67,7 +67,7 @@ static int nfit_handle_mce(struct notifier_block
> > *nb, unsigned long val,
> >                         continue;
> > 
> >                 /* If this fails due to an -ENOMEM, there is little
> > we can do */
> > -               nvdimm_bus_add_poison(acpi_desc->nvdimm_bus,
> > +               nvdimm_bus_add_badrange(acpi_desc->nvdimm_bus,
> >                                 ALIGN(mce->addr, L1_CACHE_BYTES),
> >                                 L1_CACHE_BYTES);
> >                 nvdimm_region_notify(nfit_spa->nd_region,
> > diff --git a/drivers/nvdimm/Makefile b/drivers/nvdimm/Makefile
> > index 909554c..ca6d325 100644
> > --- a/drivers/nvdimm/Makefile
> > +++ b/drivers/nvdimm/Makefile
> > @@ -20,6 +20,7 @@ libnvdimm-y += region_devs.o
> >  libnvdimm-y += region.o
> >  libnvdimm-y += namespace_devs.o
> >  libnvdimm-y += label.o
> > +libnvdimm-y += badrange.o
> >  libnvdimm-$(CONFIG_ND_CLAIM) += claim.o
> >  libnvdimm-$(CONFIG_BTT) += btt_devs.o
> >  libnvdimm-$(CONFIG_NVDIMM_PFN) += pfn_devs.o
> > diff --git a/drivers/nvdimm/badrange.c b/drivers/nvdimm/badrange.c
> > new file mode 100644
> > index 0000000..6ad782f
> > --- /dev/null
> > +++ b/drivers/nvdimm/badrange.c
> > @@ -0,0 +1,294 @@
> > +/*
> > + * Copyright(c) 2017 Intel Corporation. All rights reserved.
> > + *
> > + * This program is free software; you can redistribute it and/or
> > modify
> > + * it under the terms of version 2 of the GNU General Public
> > License as
> > + * published by the Free Software Foundation.
> > + *
> > + * This program is distributed in the hope that it will be useful,
> > but
> > + * WITHOUT ANY WARRANTY; without even the implied warranty of
> > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> > GNU
> > + * General Public License for more details.
> > + */
> > +#include <linux/libnvdimm.h>
> > +#include <linux/badblocks.h>
> > +#include <linux/export.h>
> > +#include <linux/module.h>
> > +#include <linux/blkdev.h>
> > +#include <linux/device.h>
> > +#include <linux/ctype.h>
> > +#include <linux/ndctl.h>
> > +#include <linux/mutex.h>
> > +#include <linux/slab.h>
> > +#include <linux/io.h>
> > +#include "nd-core.h"
> > +#include "nd.h"
> > +
> > +void badrange_init(struct badrange *badrange)
> > +{
> > +       INIT_LIST_HEAD(&badrange->list);
> > +       spin_lock_init(&badrange->lock);
> > +}
> > +EXPORT_SYMBOL_GPL(badrange_init);
> > +
> > +static void append_badrange_entry(struct badrange *badrange,
> > +               struct badrange_entry *be, u64 addr, u64 length)
> > +{
> > +       lockdep_assert_held(&badrange->lock);
> > +       be->start = addr;
> > +       be->length = length;
> > +       list_add_tail(&be->list, &badrange->list);
> > +}
> 
> Small nit, can we rename the instance variable from 'be' to 'bre'?
> 'be' triggers all my 'big endian' neurons to fire. Other than that,
> looks good.

Yep done.
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to