Re: [PATCH] libnvdimm: fix btt vs clear poison locking

2017-04-11 Thread Dan Williams
On Tue, Apr 11, 2017 at 1:08 PM, Jeff Moyer wrote: > Dan Williams writes: > >> As a minimal fix, disable error clearing when the BTT is enabled. For >> the final fix a larger rework of the poison list locking is needed. > >> @@ -243,7 +243,15 @@ static int nsio_rw_bytes(struct nd_namespace_common

Re: [PATCH] libnvdimm: fix btt vs clear poison locking

2017-04-11 Thread Jeff Moyer
Dan Williams writes: > As a minimal fix, disable error clearing when the BTT is enabled. For > the final fix a larger rework of the poison list locking is needed. > @@ -243,7 +243,15 @@ static int nsio_rw_bytes(struct nd_namespace_common > *ndns, > } > > if (unlikely(is_bad_pmem(&

[PATCH] libnvdimm: fix btt vs clear poison locking

2017-04-07 Thread Dan Williams
The following warning results from holding a lane spinlock, preempt_disable(), or the btt map spinlock and then trying to take the reconfig_mutex to walk the poison list and potentially add new entries. BUG: sleeping function called from invalid context at kernel/locking/mutex.c:747 in_atomic()