Lines Matching full:lane
208 static int btt_log_group_read(struct arena_info *arena, u32 lane, in btt_log_group_read() argument
212 arena->logoff + (lane * LOG_GRP_SIZE), log, in btt_log_group_read()
329 static int btt_log_read(struct arena_info *arena, u32 lane, in btt_log_read() argument
336 ret = btt_log_group_read(arena, lane, &log); in btt_log_read()
343 "log corruption (%d): lane %d seq [%d, %d]\n", in btt_log_read()
344 old_ent, lane, log.ent[arena->log_index[0]].seq, in btt_log_read()
363 static int __btt_log_write(struct arena_info *arena, u32 lane, in __btt_log_write() argument
372 ns_off = arena->logoff + (lane * LOG_GRP_SIZE) + in __btt_log_write()
384 static int btt_flog_write(struct arena_info *arena, u32 lane, u32 sub, in btt_flog_write() argument
389 ret = __btt_log_write(arena, lane, sub, ent, NVDIMM_IO_ATOMIC); in btt_flog_write()
394 arena->freelist[lane].sub = 1 - arena->freelist[lane].sub; in btt_flog_write()
395 if (++(arena->freelist[lane].seq) == 4) in btt_flog_write()
396 arena->freelist[lane].seq = 1; in btt_flog_write()
398 arena->freelist[lane].has_err = 1; in btt_flog_write()
399 arena->freelist[lane].block = ent_lba(le32_to_cpu(ent->old_map)); in btt_flog_write()
507 static int arena_clear_freelist_error(struct arena_info *arena, u32 lane) in arena_clear_freelist_error() argument
511 if (arena->freelist[lane].has_err) { in arena_clear_freelist_error()
513 u32 lba = arena->freelist[lane].block; in arena_clear_freelist_error()
529 arena->freelist[lane].has_err = 0; in arena_clear_freelist_error()
674 * lane never got used and it is still in log_set_indices()
1198 u32 lane = 0, premap, postmap; in btt_read_pg() local
1203 lane = nd_region_acquire_lane(btt->nd_region); in btt_read_pg()
1235 arena->rtt[lane] = RTT_VALID | postmap; in btt_read_pg()
1272 arena->rtt[lane] = RTT_INVALID; in btt_read_pg()
1273 nd_region_release_lane(btt->nd_region, lane); in btt_read_pg()
1283 arena->rtt[lane] = RTT_INVALID; in btt_read_pg()
1285 nd_region_release_lane(btt->nd_region, lane); in btt_read_pg()
1310 u32 premap = 0, old_postmap, new_postmap, lane = 0, i; in btt_write_pg() local
1319 lane = nd_region_acquire_lane(btt->nd_region); in btt_write_pg()
1331 if (btt_is_badblock(btt, arena, arena->freelist[lane].block)) in btt_write_pg()
1332 arena->freelist[lane].has_err = 1; in btt_write_pg()
1335 || arena->freelist[lane].has_err) { in btt_write_pg()
1336 nd_region_release_lane(btt->nd_region, lane); in btt_write_pg()
1338 ret = arena_clear_freelist_error(arena, lane); in btt_write_pg()
1342 /* OK to acquire a different lane/free block */ in btt_write_pg()
1346 new_postmap = arena->freelist[lane].block; in btt_write_pg()
1385 log.seq = cpu_to_le32(arena->freelist[lane].seq); in btt_write_pg()
1386 sub = arena->freelist[lane].sub; in btt_write_pg()
1387 ret = btt_flog_write(arena, lane, sub, &log); in btt_write_pg()
1397 nd_region_release_lane(btt->nd_region, lane); in btt_write_pg()
1400 ret = arena_clear_freelist_error(arena, lane); in btt_write_pg()
1415 nd_region_release_lane(btt->nd_region, lane); in btt_write_pg()