Lines Matching refs:nsio

256 	struct nd_namespace_io *nsio = to_nd_namespace_io(&ndns->dev);  in nsio_rw_bytes()  local
264 if (unlikely(offset + size > nsio->size)) { in nsio_rw_bytes()
270 if (unlikely(is_bad_pmem(&nsio->bb, sector, sz_align))) in nsio_rw_bytes()
272 if (copy_mc_to_kernel(buf, nsio->addr + offset, size) != 0) in nsio_rw_bytes()
277 if (unlikely(is_bad_pmem(&nsio->bb, sector, sz_align))) { in nsio_rw_bytes()
284 nsio->res.start + offset, size); in nsio_rw_bytes()
289 badblocks_clear(&nsio->bb, sector, cleared); in nsio_rw_bytes()
291 arch_invalidate_pmem(nsio->addr + offset, size); in nsio_rw_bytes()
296 memcpy_flushcache(nsio->addr + offset, buf, size); in nsio_rw_bytes()
304 int devm_nsio_enable(struct device *dev, struct nd_namespace_io *nsio, in devm_nsio_enable() argument
307 struct nd_namespace_common *ndns = &nsio->common; in devm_nsio_enable()
309 .start = nsio->res.start, in devm_nsio_enable()
310 .end = nsio->res.end, in devm_nsio_enable()
313 nsio->size = size; in devm_nsio_enable()
316 dev_warn(dev, "could not reserve region %pR\n", &nsio->res); in devm_nsio_enable()
321 if (devm_init_badblocks(dev, &nsio->bb)) in devm_nsio_enable()
323 nvdimm_badblocks_populate(to_nd_region(ndns->dev.parent), &nsio->bb, in devm_nsio_enable()
326 nsio->addr = devm_memremap(dev, range.start, size, ARCH_MEMREMAP_PMEM); in devm_nsio_enable()
328 return PTR_ERR_OR_ZERO(nsio->addr); in devm_nsio_enable()
331 void devm_nsio_disable(struct device *dev, struct nd_namespace_io *nsio) in devm_nsio_disable() argument
333 struct resource *res = &nsio->res; in devm_nsio_disable()
335 devm_memunmap(dev, nsio->addr); in devm_nsio_disable()
336 devm_exit_badblocks(dev, &nsio->bb); in devm_nsio_disable()
337 devm_release_mem_region(dev, res->start, nsio->size); in devm_nsio_disable()