lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Wed, 26 Aug 2015 00:16:06 +0000
From:	"Williams, Dan J" <dan.j.williams@...el.com>
To:	"torvalds@...ux-foundation.org" <torvalds@...ux-foundation.org>
CC:	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"linux-nvdimm@...ts.01.org" <linux-nvdimm@...ts.01.org>,
	"linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>
Subject: [GIT PULL] libnvdimm fix for 4.2

Hi Linus please pull from...

  git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fixes

...to receive a single fix for the nd_blk driver.

The effect of getting the width of this register read wrong is that all
I/O fails when the read returns non-zero.  Given the availability of
ACPI 6 NFIT enabled platforms, this could reasonably wait to come in
during the 4.3 merge window with a tag for 4.2-stable.  Otherwise, this
makes the 4.2 kernel fully functional with devices that conform to the
mmio-block-apertures defined in the ACPI 6 NFIT (NVDIMM Firmware
Interface Table).

Full changelog and diffstat below.

---


The following changes since commit cbfe8fa6cd672011c755c3cd85c9ffd4e2d10a6f:

  Linux 4.2-rc4 (2015-07-26 12:26:21 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fixes

for you to fetch changes up to de4a196c02a2a2631b516d90da6e8d052ccb07e8:

  nfit, nd_blk: BLK status register is only 32 bits (2015-08-25 19:42:01 -0400)

----------------------------------------------------------------
Ross Zwisler (1):
      nfit, nd_blk: BLK status register is only 32 bits

 drivers/acpi/nfit.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

---

commit de4a196c02a2a2631b516d90da6e8d052ccb07e8
Author: Ross Zwisler <ross.zwisler@...ux.intel.com>
Date:   Thu Aug 20 16:27:38 2015 -0600

    nfit, nd_blk: BLK status register is only 32 bits
    
    Only read 32 bits for the BLK status register in read_blk_stat().
    
    The format and size of this register is defined in the
    "NVDIMM Driver Writer's guide":
    
    http://pmem.io/documents/NVDIMM_Driver_Writers_Guide.pdf
    
    Signed-off-by: Ross Zwisler <ross.zwisler@...ux.intel.com>
    Reported-by: Nicholas Moulin <nicholas.w.moulin@...ux.intel.com>
    Tested-by: Nicholas Moulin <nicholas.w.moulin@...ux.intel.com>
    Reviewed-by: Jeff Moyer <jmoyer@...hat.com>
    Signed-off-by: Dan Williams <dan.j.williams@...el.com>

diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c
index 628a42c41ab1..bb29e56276bd 100644
--- a/drivers/acpi/nfit.c
+++ b/drivers/acpi/nfit.c
@@ -1024,7 +1024,7 @@ static void wmb_blk(struct nfit_blk *nfit_blk)
 		wmb_pmem();
 }
 
-static u64 read_blk_stat(struct nfit_blk *nfit_blk, unsigned int bw)
+static u32 read_blk_stat(struct nfit_blk *nfit_blk, unsigned int bw)
 {
 	struct nfit_blk_mmio *mmio = &nfit_blk->mmio[DCR];
 	u64 offset = nfit_blk->stat_offset + mmio->size * bw;
@@ -1032,7 +1032,7 @@ static u64 read_blk_stat(struct nfit_blk *nfit_blk, unsigned int bw)
 	if (mmio->num_lines)
 		offset = to_interleave_offset(offset, mmio);
 
-	return readq(mmio->base + offset);
+	return readl(mmio->base + offset);
 }
 
 static void write_blk_ctl(struct nfit_blk *nfit_blk, unsigned int bw,

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ