Message ID | 20180202210036.3153-1-toshi.kani@hpe.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 23fbd7c70aec |
Headers | show |
On Fri, Feb 2, 2018 at 1:00 PM, Toshi Kani <toshi.kani@hpe.com> wrote: > A NULL pointer reference kernel bug was observed when > acpi_nfit_add_dimm() called in acpi_nfit_register_dimms() > failed. This error path does not set nfit_mem->nvdimm, but > the 2nd list_for_each_entry() loop in the function assumes > it's always set. Add a check to nfit_mem->nvdimm. > > Signed-off-by: Toshi Kani <toshi.kani@hpe.com> > Cc: Dan Williams <dan.j.williams@intel.com> > Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net> > --- > drivers/acpi/nfit/core.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c > index abeb4df4f22e..b28ce440a06f 100644 > --- a/drivers/acpi/nfit/core.c > +++ b/drivers/acpi/nfit/core.c > @@ -1867,6 +1867,9 @@ static int acpi_nfit_register_dimms(struct acpi_nfit_desc *acpi_desc) > struct kernfs_node *nfit_kernfs; > > nvdimm = nfit_mem->nvdimm; > + if (!nvdimm) > + continue; > + > nfit_kernfs = sysfs_get_dirent(nvdimm_kobj(nvdimm)->sd, "nfit"); > if (nfit_kernfs) > nfit_mem->flags_attr = sysfs_get_dirent(nfit_kernfs, Yes, I assume this also needs: Cc: <stable@vger.kernel.org> Fixes: ba9c8dd3c222 ("acpi, nfit: add dimm device notification support")
On Fri, 2018-02-02 at 12:31 -0800, Dan Williams wrote: > On Fri, Feb 2, 2018 at 1:00 PM, Toshi Kani <toshi.kani@hpe.com> wrote: > > A NULL pointer reference kernel bug was observed when > > acpi_nfit_add_dimm() called in acpi_nfit_register_dimms() > > failed. This error path does not set nfit_mem->nvdimm, but > > the 2nd list_for_each_entry() loop in the function assumes > > it's always set. Add a check to nfit_mem->nvdimm. > > > > Signed-off-by: Toshi Kani <toshi.kani@hpe.com> > > Cc: Dan Williams <dan.j.williams@intel.com> > > Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net> > > --- > > drivers/acpi/nfit/core.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c > > index abeb4df4f22e..b28ce440a06f 100644 > > --- a/drivers/acpi/nfit/core.c > > +++ b/drivers/acpi/nfit/core.c > > @@ -1867,6 +1867,9 @@ static int acpi_nfit_register_dimms(struct acpi_nfit_desc *acpi_desc) > > struct kernfs_node *nfit_kernfs; > > > > nvdimm = nfit_mem->nvdimm; > > + if (!nvdimm) > > + continue; > > + > > nfit_kernfs = sysfs_get_dirent(nvdimm_kobj(nvdimm)->sd, "nfit"); > > if (nfit_kernfs) > > nfit_mem->flags_attr = sysfs_get_dirent(nfit_kernfs, > > Yes, I assume this also needs: > > Cc: <stable@vger.kernel.org> > Fixes: ba9c8dd3c222 ("acpi, nfit: add dimm device notification support") Right. Thanks! -Toshi
diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c index abeb4df4f22e..b28ce440a06f 100644 --- a/drivers/acpi/nfit/core.c +++ b/drivers/acpi/nfit/core.c @@ -1867,6 +1867,9 @@ static int acpi_nfit_register_dimms(struct acpi_nfit_desc *acpi_desc) struct kernfs_node *nfit_kernfs; nvdimm = nfit_mem->nvdimm; + if (!nvdimm) + continue; + nfit_kernfs = sysfs_get_dirent(nvdimm_kobj(nvdimm)->sd, "nfit"); if (nfit_kernfs) nfit_mem->flags_attr = sysfs_get_dirent(nfit_kernfs,
A NULL pointer reference kernel bug was observed when acpi_nfit_add_dimm() called in acpi_nfit_register_dimms() failed. This error path does not set nfit_mem->nvdimm, but the 2nd list_for_each_entry() loop in the function assumes it's always set. Add a check to nfit_mem->nvdimm. Signed-off-by: Toshi Kani <toshi.kani@hpe.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net> --- drivers/acpi/nfit/core.c | 3 +++ 1 file changed, 3 insertions(+)