l_mg 167 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 189 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->gc_lock); l_mg 194 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->gc_lock); l_mg 200 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->gc_lock); l_mg 410 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 421 drivers/lightnvm/pblk-core.c move_list = &l_mg->gc_werr_list; l_mg 427 drivers/lightnvm/pblk-core.c move_list = &l_mg->gc_full_list; l_mg 432 drivers/lightnvm/pblk-core.c move_list = &l_mg->gc_high_list; l_mg 437 drivers/lightnvm/pblk-core.c move_list = &l_mg->gc_mid_list; l_mg 442 drivers/lightnvm/pblk-core.c move_list = &l_mg->gc_low_list; l_mg 447 drivers/lightnvm/pblk-core.c move_list = &l_mg->gc_empty_list; l_mg 455 drivers/lightnvm/pblk-core.c move_list = &l_mg->corrupt_list; l_mg 919 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg, l_mg 924 drivers/lightnvm/pblk-core.c lockdep_assert_held(&l_mg->free_lock); l_mg 927 drivers/lightnvm/pblk-core.c meta_line = find_first_zero_bit(&l_mg->meta_bitmap, PBLK_DATA_LINES); l_mg 929 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 931 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 935 drivers/lightnvm/pblk-core.c set_bit(meta_line, &l_mg->meta_bitmap); l_mg 938 drivers/lightnvm/pblk-core.c line->smeta = l_mg->sline_meta[meta_line]; l_mg 939 drivers/lightnvm/pblk-core.c line->emeta = l_mg->eline_meta[meta_line]; l_mg 957 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 969 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 976 drivers/lightnvm/pblk-core.c list_add_tail(&line->list, &l_mg->bad_list); l_mg 977 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1037 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1039 drivers/lightnvm/pblk-core.c line->map_bitmap = mempool_alloc(l_mg->bitmap_pool, GFP_KERNEL); l_mg 1046 drivers/lightnvm/pblk-core.c line->invalid_bitmap = mempool_alloc(l_mg->bitmap_pool, GFP_KERNEL); l_mg 1048 drivers/lightnvm/pblk-core.c mempool_free(line->map_bitmap, l_mg->bitmap_pool); l_mg 1065 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1076 drivers/lightnvm/pblk-core.c bitmap_shift_left(l_mg->bb_aux, l_mg->bb_template, off, l_mg 1078 drivers/lightnvm/pblk-core.c bitmap_or(line->map_bitmap, line->map_bitmap, l_mg->bb_aux, l_mg 1124 drivers/lightnvm/pblk-core.c list_add_tail(&line->list, &l_mg->bad_list); l_mg 1211 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1214 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 1215 drivers/lightnvm/pblk-core.c l_mg->data_line = line; l_mg 1220 drivers/lightnvm/pblk-core.c list_add(&line->list, &l_mg->free_list); l_mg 1221 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1224 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1239 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 1240 drivers/lightnvm/pblk-core.c list_add(&line->list, &l_mg->free_list); l_mg 1241 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1248 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1250 drivers/lightnvm/pblk-core.c mempool_free(line->map_bitmap, l_mg->bitmap_pool); l_mg 1269 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1271 drivers/lightnvm/pblk-core.c mempool_free(line->map_bitmap, l_mg->bitmap_pool); l_mg 1272 drivers/lightnvm/pblk-core.c mempool_free(line->invalid_bitmap, l_mg->bitmap_pool); l_mg 1279 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1284 drivers/lightnvm/pblk-core.c lockdep_assert_held(&l_mg->free_lock); l_mg 1287 drivers/lightnvm/pblk-core.c if (list_empty(&l_mg->free_list)) { l_mg 1292 drivers/lightnvm/pblk-core.c line = list_first_entry(&l_mg->free_list, struct pblk_line, list); l_mg 1294 drivers/lightnvm/pblk-core.c l_mg->nr_free_lines--; l_mg 1304 drivers/lightnvm/pblk-core.c list_add_tail(&line->list, &l_mg->bad_list); l_mg 1314 drivers/lightnvm/pblk-core.c list_add(&line->list, &l_mg->bad_list); l_mg 1317 drivers/lightnvm/pblk-core.c list_add(&line->list, &l_mg->corrupt_list); l_mg 1321 drivers/lightnvm/pblk-core.c list_add(&line->list, &l_mg->free_list); l_mg 1322 drivers/lightnvm/pblk-core.c l_mg->nr_free_lines++; l_mg 1333 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1337 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 1340 drivers/lightnvm/pblk-core.c l_mg->data_line = NULL; l_mg 1341 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1353 drivers/lightnvm/pblk-core.c l_mg->data_line = retry_line; l_mg 1354 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1373 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1376 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 1379 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1383 drivers/lightnvm/pblk-core.c line->seq_nr = l_mg->d_seq_nr++; l_mg 1385 drivers/lightnvm/pblk-core.c l_mg->data_line = line; l_mg 1387 drivers/lightnvm/pblk-core.c pblk_line_setup_metadata(line, l_mg, &pblk->lm); l_mg 1390 drivers/lightnvm/pblk-core.c l_mg->data_next = pblk_line_get(pblk); l_mg 1391 drivers/lightnvm/pblk-core.c if (!l_mg->data_next) { l_mg 1398 drivers/lightnvm/pblk-core.c l_mg->data_next = NULL; l_mg 1400 drivers/lightnvm/pblk-core.c l_mg->data_next->seq_nr = l_mg->d_seq_nr++; l_mg 1401 drivers/lightnvm/pblk-core.c l_mg->data_next->type = PBLK_LINETYPE_DATA; l_mg 1403 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1455 drivers/lightnvm/pblk-core.c lockdep_assert_held(&pblk->l_mg.free_lock); l_mg 1464 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1469 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->close_lock); l_mg 1470 drivers/lightnvm/pblk-core.c if (list_empty(&l_mg->emeta_list)) { l_mg 1471 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->close_lock); l_mg 1475 drivers/lightnvm/pblk-core.c list_cut_position(&list, &l_mg->emeta_list, l_mg->emeta_list.prev); l_mg 1476 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->close_lock); l_mg 1499 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1502 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 1505 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1510 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1527 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1529 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 1532 drivers/lightnvm/pblk-core.c l_mg->data_line = NULL; l_mg 1533 drivers/lightnvm/pblk-core.c l_mg->data_next = NULL; l_mg 1534 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1545 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1549 drivers/lightnvm/pblk-core.c new = l_mg->data_next; l_mg 1553 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 1554 drivers/lightnvm/pblk-core.c cur = l_mg->data_line; l_mg 1555 drivers/lightnvm/pblk-core.c l_mg->data_line = new; l_mg 1557 drivers/lightnvm/pblk-core.c pblk_line_setup_metadata(new, l_mg, &pblk->lm); l_mg 1558 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1596 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 1597 drivers/lightnvm/pblk-core.c l_mg->data_next = pblk_line_get(pblk); l_mg 1598 drivers/lightnvm/pblk-core.c if (!l_mg->data_next) { l_mg 1604 drivers/lightnvm/pblk-core.c l_mg->data_next = NULL; l_mg 1606 drivers/lightnvm/pblk-core.c l_mg->data_next->seq_nr = l_mg->d_seq_nr++; l_mg 1607 drivers/lightnvm/pblk-core.c l_mg->data_next->type = PBLK_LINETYPE_DATA; l_mg 1609 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1617 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1644 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 1645 drivers/lightnvm/pblk-core.c list_add_tail(&line->list, &l_mg->free_list); l_mg 1646 drivers/lightnvm/pblk-core.c l_mg->nr_free_lines++; l_mg 1647 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1722 drivers/lightnvm/pblk-core.c return pblk->l_mg.data_line; l_mg 1728 drivers/lightnvm/pblk-core.c return pblk->l_mg.data_next; l_mg 1747 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1756 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->free_lock); l_mg 1757 drivers/lightnvm/pblk-core.c WARN_ON(!test_and_clear_bit(line->meta_line, &l_mg->meta_bitmap)); l_mg 1758 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->free_lock); l_mg 1760 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->gc_lock); l_mg 1767 drivers/lightnvm/pblk-core.c mempool_free(line->map_bitmap, l_mg->bitmap_pool); l_mg 1782 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->gc_lock); l_mg 1790 drivers/lightnvm/pblk-core.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1797 drivers/lightnvm/pblk-core.c memcpy(emeta_to_vsc(pblk, emeta_buf), l_mg->vsc_list, lm->vsc_list_len); l_mg 1819 drivers/lightnvm/pblk-core.c spin_lock(&l_mg->close_lock); l_mg 1828 drivers/lightnvm/pblk-core.c list_add_tail(&line->list, &l_mg->emeta_list); l_mg 1830 drivers/lightnvm/pblk-core.c spin_unlock(&l_mg->close_lock); l_mg 64 drivers/lightnvm/pblk-gc.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 67 drivers/lightnvm/pblk-gc.c spin_lock(&l_mg->gc_lock); l_mg 83 drivers/lightnvm/pblk-gc.c spin_unlock(&l_mg->gc_lock); l_mg 409 drivers/lightnvm/pblk-gc.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 414 drivers/lightnvm/pblk-gc.c spin_lock(&l_mg->gc_lock); l_mg 415 drivers/lightnvm/pblk-gc.c if (list_empty(&l_mg->gc_full_list)) { l_mg 416 drivers/lightnvm/pblk-gc.c spin_unlock(&l_mg->gc_lock); l_mg 420 drivers/lightnvm/pblk-gc.c line = list_first_entry(&l_mg->gc_full_list, l_mg 431 drivers/lightnvm/pblk-gc.c spin_unlock(&l_mg->gc_lock); l_mg 446 drivers/lightnvm/pblk-gc.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 460 drivers/lightnvm/pblk-gc.c group_list = l_mg->gc_lists[gc_group++]; l_mg 463 drivers/lightnvm/pblk-gc.c spin_lock(&l_mg->gc_lock); l_mg 467 drivers/lightnvm/pblk-gc.c spin_unlock(&l_mg->gc_lock); l_mg 479 drivers/lightnvm/pblk-gc.c spin_unlock(&l_mg->gc_lock); l_mg 537 drivers/lightnvm/pblk-init.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 540 drivers/lightnvm/pblk-init.c kfree(l_mg->bb_template); l_mg 541 drivers/lightnvm/pblk-init.c kfree(l_mg->bb_aux); l_mg 542 drivers/lightnvm/pblk-init.c kfree(l_mg->vsc_list); l_mg 545 drivers/lightnvm/pblk-init.c kfree(l_mg->sline_meta[i]); l_mg 546 drivers/lightnvm/pblk-init.c kvfree(l_mg->eline_meta[i]->buf); l_mg 547 drivers/lightnvm/pblk-init.c kfree(l_mg->eline_meta[i]); l_mg 550 drivers/lightnvm/pblk-init.c mempool_destroy(l_mg->bitmap_pool); l_mg 551 drivers/lightnvm/pblk-init.c kmem_cache_destroy(l_mg->bitmap_cache); l_mg 554 drivers/lightnvm/pblk-init.c static void pblk_line_meta_free(struct pblk_line_mgmt *l_mg, l_mg 569 drivers/lightnvm/pblk-init.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 573 drivers/lightnvm/pblk-init.c for (i = 0; i < l_mg->nr_lines; i++) { l_mg 577 drivers/lightnvm/pblk-init.c pblk_line_meta_free(l_mg, line); l_mg 623 drivers/lightnvm/pblk-init.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 639 drivers/lightnvm/pblk-init.c lm->emeta_sec[3] = DIV_ROUND_UP(l_mg->nr_lines * sizeof(u32), l_mg 643 drivers/lightnvm/pblk-init.c lm->vsc_list_len = l_mg->nr_lines * sizeof(u32); l_mg 651 drivers/lightnvm/pblk-init.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 692 drivers/lightnvm/pblk-init.c sec_meta = (lm->smeta_sec + lm->emeta_sec[0]) * l_mg->nr_free_lines; l_mg 754 drivers/lightnvm/pblk-init.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 763 drivers/lightnvm/pblk-init.c line->vsc = &l_mg->vsc_list[line_id]; l_mg 772 drivers/lightnvm/pblk-init.c list_add_tail(&line->list, &l_mg->bad_list); l_mg 777 drivers/lightnvm/pblk-init.c list_add_tail(&line->list, &l_mg->free_list); l_mg 778 drivers/lightnvm/pblk-init.c l_mg->nr_free_lines++; l_mg 820 drivers/lightnvm/pblk-init.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 824 drivers/lightnvm/pblk-init.c l_mg->nr_lines = geo->num_chk; l_mg 825 drivers/lightnvm/pblk-init.c l_mg->log_line = l_mg->data_line = NULL; l_mg 826 drivers/lightnvm/pblk-init.c l_mg->l_seq_nr = l_mg->d_seq_nr = 0; l_mg 827 drivers/lightnvm/pblk-init.c l_mg->nr_free_lines = 0; l_mg 828 drivers/lightnvm/pblk-init.c bitmap_zero(&l_mg->meta_bitmap, PBLK_DATA_LINES); l_mg 830 drivers/lightnvm/pblk-init.c INIT_LIST_HEAD(&l_mg->free_list); l_mg 831 drivers/lightnvm/pblk-init.c INIT_LIST_HEAD(&l_mg->corrupt_list); l_mg 832 drivers/lightnvm/pblk-init.c INIT_LIST_HEAD(&l_mg->bad_list); l_mg 833 drivers/lightnvm/pblk-init.c INIT_LIST_HEAD(&l_mg->gc_full_list); l_mg 834 drivers/lightnvm/pblk-init.c INIT_LIST_HEAD(&l_mg->gc_high_list); l_mg 835 drivers/lightnvm/pblk-init.c INIT_LIST_HEAD(&l_mg->gc_mid_list); l_mg 836 drivers/lightnvm/pblk-init.c INIT_LIST_HEAD(&l_mg->gc_low_list); l_mg 837 drivers/lightnvm/pblk-init.c INIT_LIST_HEAD(&l_mg->gc_empty_list); l_mg 838 drivers/lightnvm/pblk-init.c INIT_LIST_HEAD(&l_mg->gc_werr_list); l_mg 840 drivers/lightnvm/pblk-init.c INIT_LIST_HEAD(&l_mg->emeta_list); l_mg 842 drivers/lightnvm/pblk-init.c l_mg->gc_lists[0] = &l_mg->gc_werr_list; l_mg 843 drivers/lightnvm/pblk-init.c l_mg->gc_lists[1] = &l_mg->gc_high_list; l_mg 844 drivers/lightnvm/pblk-init.c l_mg->gc_lists[2] = &l_mg->gc_mid_list; l_mg 845 drivers/lightnvm/pblk-init.c l_mg->gc_lists[3] = &l_mg->gc_low_list; l_mg 847 drivers/lightnvm/pblk-init.c spin_lock_init(&l_mg->free_lock); l_mg 848 drivers/lightnvm/pblk-init.c spin_lock_init(&l_mg->close_lock); l_mg 849 drivers/lightnvm/pblk-init.c spin_lock_init(&l_mg->gc_lock); l_mg 851 drivers/lightnvm/pblk-init.c l_mg->vsc_list = kcalloc(l_mg->nr_lines, sizeof(__le32), GFP_KERNEL); l_mg 852 drivers/lightnvm/pblk-init.c if (!l_mg->vsc_list) l_mg 855 drivers/lightnvm/pblk-init.c l_mg->bb_template = kzalloc(lm->sec_bitmap_len, GFP_KERNEL); l_mg 856 drivers/lightnvm/pblk-init.c if (!l_mg->bb_template) l_mg 859 drivers/lightnvm/pblk-init.c l_mg->bb_aux = kzalloc(lm->sec_bitmap_len, GFP_KERNEL); l_mg 860 drivers/lightnvm/pblk-init.c if (!l_mg->bb_aux) l_mg 867 drivers/lightnvm/pblk-init.c l_mg->sline_meta[i] = kmalloc(lm->smeta_len, GFP_KERNEL); l_mg 868 drivers/lightnvm/pblk-init.c if (!l_mg->sline_meta[i]) l_mg 872 drivers/lightnvm/pblk-init.c l_mg->bitmap_cache = kmem_cache_create("pblk_lm_bitmap", l_mg 874 drivers/lightnvm/pblk-init.c if (!l_mg->bitmap_cache) l_mg 878 drivers/lightnvm/pblk-init.c l_mg->bitmap_pool = mempool_create_slab_pool(PBLK_DATA_LINES * 2, l_mg 879 drivers/lightnvm/pblk-init.c l_mg->bitmap_cache); l_mg 880 drivers/lightnvm/pblk-init.c if (!l_mg->bitmap_pool) l_mg 900 drivers/lightnvm/pblk-init.c l_mg->eline_meta[i] = emeta; l_mg 903 drivers/lightnvm/pblk-init.c for (i = 0; i < l_mg->nr_lines; i++) l_mg 904 drivers/lightnvm/pblk-init.c l_mg->vsc_list[i] = cpu_to_le32(EMPTY_ENTRY); l_mg 908 drivers/lightnvm/pblk-init.c bitmap_set(l_mg->bb_template, i, geo->ws_opt); l_mg 914 drivers/lightnvm/pblk-init.c kvfree(l_mg->eline_meta[i]->buf); l_mg 915 drivers/lightnvm/pblk-init.c kfree(l_mg->eline_meta[i]); l_mg 918 drivers/lightnvm/pblk-init.c mempool_destroy(l_mg->bitmap_pool); l_mg 920 drivers/lightnvm/pblk-init.c kmem_cache_destroy(l_mg->bitmap_cache); l_mg 923 drivers/lightnvm/pblk-init.c kfree(l_mg->sline_meta[i]); l_mg 924 drivers/lightnvm/pblk-init.c kfree(l_mg->bb_aux); l_mg 926 drivers/lightnvm/pblk-init.c kfree(l_mg->bb_template); l_mg 928 drivers/lightnvm/pblk-init.c kfree(l_mg->vsc_list); l_mg 996 drivers/lightnvm/pblk-init.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 1020 drivers/lightnvm/pblk-init.c pblk->lines = kcalloc(l_mg->nr_lines, sizeof(struct pblk_line), l_mg 1027 drivers/lightnvm/pblk-init.c for (i = 0; i < l_mg->nr_lines; i++) { l_mg 1055 drivers/lightnvm/pblk-init.c pblk_line_meta_free(l_mg, &pblk->lines[i]); l_mg 1253 drivers/lightnvm/pblk-init.c geo->all_luns, pblk->l_mg.nr_lines, l_mg 96 drivers/lightnvm/pblk-recovery.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 102 drivers/lightnvm/pblk-recovery.c spin_lock(&l_mg->free_lock); l_mg 113 drivers/lightnvm/pblk-recovery.c spin_unlock(&l_mg->free_lock); l_mg 654 drivers/lightnvm/pblk-recovery.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 668 drivers/lightnvm/pblk-recovery.c spin_lock(&l_mg->free_lock); l_mg 669 drivers/lightnvm/pblk-recovery.c meta_line = find_first_zero_bit(&l_mg->meta_bitmap, PBLK_DATA_LINES); l_mg 670 drivers/lightnvm/pblk-recovery.c set_bit(meta_line, &l_mg->meta_bitmap); l_mg 671 drivers/lightnvm/pblk-recovery.c smeta = l_mg->sline_meta[meta_line]; l_mg 672 drivers/lightnvm/pblk-recovery.c emeta = l_mg->eline_meta[meta_line]; l_mg 674 drivers/lightnvm/pblk-recovery.c spin_unlock(&l_mg->free_lock); l_mg 677 drivers/lightnvm/pblk-recovery.c for (i = 0; i < l_mg->nr_lines; i++) { l_mg 729 drivers/lightnvm/pblk-recovery.c spin_lock(&l_mg->free_lock); l_mg 730 drivers/lightnvm/pblk-recovery.c if (line->seq_nr >= l_mg->d_seq_nr) l_mg 731 drivers/lightnvm/pblk-recovery.c l_mg->d_seq_nr = line->seq_nr + 1; l_mg 732 drivers/lightnvm/pblk-recovery.c l_mg->nr_free_lines--; l_mg 733 drivers/lightnvm/pblk-recovery.c spin_unlock(&l_mg->free_lock); l_mg 747 drivers/lightnvm/pblk-recovery.c spin_lock(&l_mg->free_lock); l_mg 749 drivers/lightnvm/pblk-recovery.c &l_mg->meta_bitmap)); l_mg 750 drivers/lightnvm/pblk-recovery.c spin_unlock(&l_mg->free_lock); l_mg 797 drivers/lightnvm/pblk-recovery.c spin_lock(&l_mg->gc_lock); l_mg 799 drivers/lightnvm/pblk-recovery.c spin_unlock(&l_mg->gc_lock); l_mg 801 drivers/lightnvm/pblk-recovery.c mempool_free(line->map_bitmap, l_mg->bitmap_pool); l_mg 824 drivers/lightnvm/pblk-recovery.c spin_lock(&l_mg->free_lock); l_mg 826 drivers/lightnvm/pblk-recovery.c &l_mg->meta_bitmap)); l_mg 827 drivers/lightnvm/pblk-recovery.c spin_unlock(&l_mg->free_lock); l_mg 829 drivers/lightnvm/pblk-recovery.c spin_lock(&l_mg->free_lock); l_mg 830 drivers/lightnvm/pblk-recovery.c l_mg->data_line = data_line; l_mg 832 drivers/lightnvm/pblk-recovery.c l_mg->data_next = pblk_line_get(pblk); l_mg 833 drivers/lightnvm/pblk-recovery.c if (l_mg->data_next) { l_mg 834 drivers/lightnvm/pblk-recovery.c l_mg->data_next->seq_nr = l_mg->d_seq_nr++; l_mg 835 drivers/lightnvm/pblk-recovery.c l_mg->data_next->type = PBLK_LINETYPE_DATA; l_mg 838 drivers/lightnvm/pblk-recovery.c spin_unlock(&l_mg->free_lock); l_mg 842 drivers/lightnvm/pblk-recovery.c pblk_line_erase(pblk, l_mg->data_next); l_mg 858 drivers/lightnvm/pblk-recovery.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 862 drivers/lightnvm/pblk-recovery.c spin_lock(&l_mg->free_lock); l_mg 863 drivers/lightnvm/pblk-recovery.c line = l_mg->data_line; l_mg 865 drivers/lightnvm/pblk-recovery.c spin_unlock(&l_mg->free_lock); l_mg 215 drivers/lightnvm/pblk-rl.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 221 drivers/lightnvm/pblk-rl.c sec_meta = (lm->smeta_sec + lm->emeta_sec[0]) * l_mg->nr_free_lines; l_mg 169 drivers/lightnvm/pblk-sysfs.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 183 drivers/lightnvm/pblk-sysfs.c spin_lock(&l_mg->free_lock); l_mg 184 drivers/lightnvm/pblk-sysfs.c cur_data = (l_mg->data_line) ? l_mg->data_line->id : -1; l_mg 185 drivers/lightnvm/pblk-sysfs.c cur_log = (l_mg->log_line) ? l_mg->log_line->id : -1; l_mg 186 drivers/lightnvm/pblk-sysfs.c nr_free_lines = l_mg->nr_free_lines; l_mg 188 drivers/lightnvm/pblk-sysfs.c list_for_each_entry(line, &l_mg->free_list, list) l_mg 190 drivers/lightnvm/pblk-sysfs.c spin_unlock(&l_mg->free_lock); l_mg 192 drivers/lightnvm/pblk-sysfs.c spin_lock(&l_mg->close_lock); l_mg 193 drivers/lightnvm/pblk-sysfs.c list_for_each_entry(line, &l_mg->emeta_list, list) l_mg 195 drivers/lightnvm/pblk-sysfs.c spin_unlock(&l_mg->close_lock); l_mg 197 drivers/lightnvm/pblk-sysfs.c spin_lock(&l_mg->gc_lock); l_mg 198 drivers/lightnvm/pblk-sysfs.c list_for_each_entry(line, &l_mg->gc_full_list, list) { l_mg 207 drivers/lightnvm/pblk-sysfs.c list_for_each_entry(line, &l_mg->gc_high_list, list) { l_mg 216 drivers/lightnvm/pblk-sysfs.c list_for_each_entry(line, &l_mg->gc_mid_list, list) { l_mg 225 drivers/lightnvm/pblk-sysfs.c list_for_each_entry(line, &l_mg->gc_low_list, list) { l_mg 234 drivers/lightnvm/pblk-sysfs.c list_for_each_entry(line, &l_mg->gc_empty_list, list) { l_mg 243 drivers/lightnvm/pblk-sysfs.c list_for_each_entry(line, &l_mg->gc_werr_list, list) { l_mg 252 drivers/lightnvm/pblk-sysfs.c list_for_each_entry(line, &l_mg->bad_list, list) l_mg 254 drivers/lightnvm/pblk-sysfs.c list_for_each_entry(line, &l_mg->corrupt_list, list) l_mg 256 drivers/lightnvm/pblk-sysfs.c spin_unlock(&l_mg->gc_lock); l_mg 258 drivers/lightnvm/pblk-sysfs.c spin_lock(&l_mg->free_lock); l_mg 259 drivers/lightnvm/pblk-sysfs.c if (l_mg->data_line) { l_mg 260 drivers/lightnvm/pblk-sysfs.c cur_sec = l_mg->data_line->cur_sec; l_mg 261 drivers/lightnvm/pblk-sysfs.c msecs = l_mg->data_line->left_msecs; l_mg 262 drivers/lightnvm/pblk-sysfs.c vsc = le32_to_cpu(*l_mg->data_line->vsc); l_mg 263 drivers/lightnvm/pblk-sysfs.c sec_in_line = l_mg->data_line->sec_in_line; l_mg 264 drivers/lightnvm/pblk-sysfs.c meta_weight = bitmap_weight(&l_mg->meta_bitmap, l_mg 267 drivers/lightnvm/pblk-sysfs.c spin_lock(&l_mg->data_line->lock); l_mg 268 drivers/lightnvm/pblk-sysfs.c if (l_mg->data_line->map_bitmap) l_mg 269 drivers/lightnvm/pblk-sysfs.c map_weight = bitmap_weight(l_mg->data_line->map_bitmap, l_mg 273 drivers/lightnvm/pblk-sysfs.c spin_unlock(&l_mg->data_line->lock); l_mg 275 drivers/lightnvm/pblk-sysfs.c spin_unlock(&l_mg->free_lock); l_mg 293 drivers/lightnvm/pblk-sysfs.c l_mg->nr_lines); l_mg 371 drivers/lightnvm/pblk-write.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 406 drivers/lightnvm/pblk-write.c spin_lock(&l_mg->close_lock); l_mg 410 drivers/lightnvm/pblk-write.c spin_unlock(&l_mg->close_lock); l_mg 424 drivers/lightnvm/pblk-write.c spin_lock(&l_mg->close_lock); l_mg 427 drivers/lightnvm/pblk-write.c spin_unlock(&l_mg->close_lock); l_mg 473 drivers/lightnvm/pblk-write.c struct pblk_line_mgmt *l_mg = &pblk->l_mg; l_mg 476 drivers/lightnvm/pblk-write.c spin_lock(&l_mg->close_lock); l_mg 477 drivers/lightnvm/pblk-write.c if (list_empty(&l_mg->emeta_list)) { l_mg 478 drivers/lightnvm/pblk-write.c spin_unlock(&l_mg->close_lock); l_mg 481 drivers/lightnvm/pblk-write.c meta_line = list_first_entry(&l_mg->emeta_list, struct pblk_line, list); l_mg 483 drivers/lightnvm/pblk-write.c spin_unlock(&l_mg->close_lock); l_mg 486 drivers/lightnvm/pblk-write.c spin_unlock(&l_mg->close_lock); l_mg 601 drivers/lightnvm/pblk.h struct pblk_line_mgmt l_mg; /* Line management */