Lines Matching refs:pnum
38 static int ubi_io_read(struct ubi_scan_info *ubi, void *buf, int pnum, in ubi_io_read() argument
41 return ubi->read(pnum + ubi->peb_offset, from, len, buf); in ubi_io_read()
49 static int ubi_io_read_vid_hdr(struct ubi_scan_info *ubi, int pnum, in ubi_io_read_vid_hdr() argument
56 if (test_bit(pnum, ubi->corrupt)) in ubi_io_read_vid_hdr()
61 if (test_and_set_bit(pnum, ubi->scanned)) in ubi_io_read_vid_hdr()
64 res = ubi_io_read(ubi, vh, pnum, ubi->vid_offset, sizeof(*vh)); in ubi_io_read_vid_hdr()
70 ubi_dbg("Skipping bad or unreadable block %d", pnum); in ubi_io_read_vid_hdr()
72 generic_set_bit(pnum, ubi->corrupt); in ubi_io_read_vid_hdr()
79 generic_set_bit(pnum, ubi->corrupt); in ubi_io_read_vid_hdr()
82 ubi_msg("Bad magic in block 0%d %08x", pnum, magic); in ubi_io_read_vid_hdr()
89 ubi_msg("Bad CRC in block 0%d", pnum); in ubi_io_read_vid_hdr()
90 generic_set_bit(pnum, ubi->corrupt); in ubi_io_read_vid_hdr()
94 ubi_dbg("RV: pnum: %i sqnum %llu", pnum, be64_to_cpu(vh->sqnum)); in ubi_io_read_vid_hdr()
126 u32 pnum, u32 lnum) in ubi_add_peb_to_vol() argument
140 pnum, vol_id, lnum, !!test_bit(lnum, vi->found), in ubi_add_peb_to_vol()
141 !!test_bit(pnum, ubi->scanned)); in ubi_add_peb_to_vol()
163 *ltp = pnum; in ubi_add_peb_to_vol()
172 *ltp = pnum; in ubi_add_peb_to_vol()
177 vol_id, lnum, cur_pnum, be64_to_cpu(cur->sqnum), pnum, in ubi_add_peb_to_vol()
184 *ltp = pnum; in ubi_add_peb_to_vol()
186 *ltp = pnum; in ubi_add_peb_to_vol()
195 u32 pnum) in ubi_scan_vid_hdr() argument
200 if (ubi_io_is_bad(ubi, pnum)) in ubi_scan_vid_hdr()
203 res = ubi_io_read_vid_hdr(ubi, pnum, vh, 0); in ubi_scan_vid_hdr()
223 return ubi_add_peb_to_vol(ubi, vh, vol_id, pnum, lnum); in ubi_scan_vid_hdr()
226 static int assign_aeb_to_av(struct ubi_scan_info *ubi, u32 pnum, u32 lnum, in assign_aeb_to_av() argument
231 if (ubi_io_is_bad(ubi, pnum)) in assign_aeb_to_av()
243 vh = ubi->blockinfo + pnum; in assign_aeb_to_av()
245 return ubi_scan_vid_hdr(ubi, vh, pnum); in assign_aeb_to_av()
251 u32 pnum; in scan_pool() local
257 pnum = be32_to_cpu(pebs[i]); in scan_pool()
259 if (ubi_io_is_bad(ubi, pnum)) { in scan_pool()
260 ubi_err("FM: Bad PEB in fastmap pool! %u", pnum); in scan_pool()
264 vh = ubi->blockinfo + pnum; in scan_pool()
269 ubi_scan_vid_hdr(ubi, vh, pnum); in scan_pool()
374 generic_set_bit(be32_to_cpu(fmec->pnum), ubi->fm_used); in ubi_attach_fastmap()
429 int pnum = be32_to_cpu(fm_eba->pnum[j]); in ubi_attach_fastmap() local
431 if ((int)be32_to_cpu(fm_eba->pnum[j]) < 0) in ubi_attach_fastmap()
434 if (!__test_and_clear_bit(pnum, ubi->fm_used)) in ubi_attach_fastmap()
445 ret = assign_aeb_to_av(ubi, pnum, j, vol_id, in ubi_attach_fastmap()
499 int i, used_blocks, pnum, ret = 0; in ubi_scan_fastmap() local
545 pnum = be32_to_cpu(fmsb->block_loc[i]); in ubi_scan_fastmap()
547 if (ubi_io_is_bad(ubi, pnum)) { in ubi_scan_fastmap()
554 ret = ubi_io_read_ec_hdr(ubi, pnum, ech, 0); in ubi_scan_fastmap()
557 i, pnum); in ubi_scan_fastmap()
578 ret = ubi_io_read_vid_hdr(ubi, pnum, vh, 0); in ubi_scan_fastmap()
581 i, pnum); in ubi_scan_fastmap()
589 if (pnum == fm_anchor) in ubi_scan_fastmap()
590 memcpy(vh, ubi->blockinfo + pnum, sizeof(*fm)); in ubi_scan_fastmap()
615 ret = ubi_io_read(ubi, ubi->fm_buf + (ubi->leb_size * i), pnum, in ubi_scan_fastmap()
619 "err: %i)", i, pnum, ret); in ubi_scan_fastmap()
669 unsigned int pnum; in ipl_scan() local
675 for (pnum = 0; pnum < UBI_FM_MAX_START; pnum++) { in ipl_scan()
676 res = ubi_scan_vid_hdr(ubi, ubi->blockinfo + pnum, pnum); in ipl_scan()
696 if (!ubi_scan_fastmap(ubi, NULL, pnum)) in ipl_scan()
703 pnum = 0; in ipl_scan()
711 for (; pnum < ubi->peb_count; pnum++) in ipl_scan()
712 ubi_scan_vid_hdr(ubi, ubi->blockinfo + pnum, pnum); in ipl_scan()
723 u32 pnum, crc, dlen; in ubi_load_block() local
735 pnum = vi->lebs_to_pebs[lnum]; in ubi_load_block()
737 ubi_dbg("Load vol %u LEB %u PEB %u", vol_id, lnum, pnum); in ubi_load_block()
739 if (ubi_io_is_bad(ubi, pnum)) { in ubi_load_block()
740 ubi_warn("Corrupted mapping block %d PB %d\n", lnum, pnum); in ubi_load_block()
744 if (test_bit(pnum, ubi->corrupt)) in ubi_load_block()
750 vh = ubi->blockinfo + pnum; in ubi_load_block()
752 if (!test_bit(pnum, ubi->scanned)) { in ubi_load_block()
754 lnum, pnum); in ubi_load_block()
755 if (ubi_rescan_fm_vid_hdr(ubi, vh, pnum, vol_id, lnum)) in ubi_load_block()
766 generic_set_bit(pnum, ubi->corrupt); in ubi_load_block()
780 ubi_io_read(ubi, laddr, pnum, ubi->leb_start, dlen); in ubi_load_block()
787 lnum, pnum); in ubi_load_block()
788 generic_set_bit(pnum, ubi->corrupt); in ubi_load_block()
796 ubi_dbg("Find replacement for LEB %u PEB %u", lnum, pnum); in ubi_load_block()
800 for (pnum = 0; pnum < ubi->peb_count; pnum++) { in ubi_load_block()
801 struct ubi_vid_hdr *tmp = ubi->blockinfo + pnum; in ubi_load_block()
805 if (test_bit(pnum, ubi->corrupt)) in ubi_load_block()
811 if (!test_bit(pnum, ubi->scanned)) { in ubi_load_block()
813 vol_id, lnum, pnum); in ubi_load_block()
814 if (ubi_rescan_fm_vid_hdr(ubi, tmp, pnum, vol_id, lnum)) in ubi_load_block()
835 pnum = vrepl - ubi->blockinfo; in ubi_load_block()
836 vi->lebs_to_pebs[lnum] = pnum; in ubi_load_block()
837 ubi_dbg("Trying PEB %u for LEB %u", pnum, lnum); in ubi_load_block()