> -----Original Message----- > From: linux-kernel-ow...@vger.kernel.org [mailto:linux-kernel- > ow...@vger.kernel.org] On Behalf Of Luck, Tony > Sent: Wednesday, June 21, 2017 12:54 PM > To: Naoya Horiguchi <n-horigu...@ah.jp.nec.com> > Cc: Borislav Petkov <b...@suse.de>; Dave Hansen <dave.han...@intel.com>; > x...@kernel.org; linux...@kvack.org; linux-kernel@vger.kernel.org
(adding linux-nvdimm list in this reply) > Subject: Re: [PATCH] mm/hwpoison: Clear PRESENT bit for kernel 1:1 > mappings of poison pages > > On Wed, Jun 21, 2017 at 02:12:27AM +0000, Naoya Horiguchi wrote: > > > We had better have a reverse operation of this to cancel the unmapping > > when unpoisoning? > > When we have unpoisoning, we can add something. We don't seem to have > an inverse function for "set_memory_np" to just flip the _PRESENT bit > back on again. But it would be trivial to write a set_memory_pp(). > > Since we'd be doing this after the poison has been cleared, we wouldn't > need to play games with the address. We'd just use: > > set_memory_pp((unsigned long)pfn_to_kaddr(pfn), 1); > > -Tony Persistent memory does have unpoisoning and would require this inverse operation - see drivers/nvdimm/pmem.c pmem_clear_poison() and core.c nvdimm_clear_poison(). --- Robert Elliott, HPE Persistent Memory