Lines Matching refs:bps
1691 struct ras_badpage **bps, unsigned int *count);
1748 struct ras_badpage *bps = NULL; in amdgpu_ras_sysfs_badpages_read() local
1753 if (amdgpu_ras_badpages_read(adev, &bps, &bps_count)) in amdgpu_ras_sysfs_badpages_read()
1759 bps[start].bp, in amdgpu_ras_sysfs_badpages_read()
1760 bps[start].size, in amdgpu_ras_sysfs_badpages_read()
1761 amdgpu_ras_badpage_flags_str(bps[start].flags)); in amdgpu_ras_sysfs_badpages_read()
1763 kfree(bps); in amdgpu_ras_sysfs_badpages_read()
2545 struct ras_badpage **bps, unsigned int *count) in amdgpu_ras_badpages_read() argument
2552 if (!con || !con->eh_data || !bps || !count) in amdgpu_ras_badpages_read()
2558 *bps = NULL; in amdgpu_ras_badpages_read()
2563 *bps = kmalloc(sizeof(struct ras_badpage) * data->count, GFP_KERNEL); in amdgpu_ras_badpages_read()
2564 if (!*bps) { in amdgpu_ras_badpages_read()
2570 (*bps)[i] = (struct ras_badpage){ in amdgpu_ras_badpages_read()
2571 .bp = data->bps[i].retired_page, in amdgpu_ras_badpages_read()
2576 data->bps[i].retired_page << AMDGPU_GPU_PAGE_SHIFT); in amdgpu_ras_badpages_read()
2578 (*bps)[i].flags = AMDGPU_RAS_RETIRE_PAGE_PENDING; in amdgpu_ras_badpages_read()
2580 (*bps)[i].flags = AMDGPU_RAS_RETIRE_PAGE_FAULT; in amdgpu_ras_badpages_read()
2719 void *bps = kmalloc(align_space * sizeof(*data->bps), GFP_KERNEL); in amdgpu_ras_realloc_eh_data_space() local
2721 if (!bps) { in amdgpu_ras_realloc_eh_data_space()
2725 if (data->bps) { in amdgpu_ras_realloc_eh_data_space()
2726 memcpy(bps, data->bps, in amdgpu_ras_realloc_eh_data_space()
2727 data->count * sizeof(*data->bps)); in amdgpu_ras_realloc_eh_data_space()
2728 kfree(data->bps); in amdgpu_ras_realloc_eh_data_space()
2731 data->bps = bps; in amdgpu_ras_realloc_eh_data_space()
2737 struct eeprom_table_record *bps, in amdgpu_ras_mca2pa_by_idx() argument
2752 addr_in.ma.err_addr = bps->address; in amdgpu_ras_mca2pa_by_idx()
2754 addr_in.ma.ch_inst = bps->mem_channel; in amdgpu_ras_mca2pa_by_idx()
2766 struct eeprom_table_record *bps, in amdgpu_ras_mca2pa() argument
2779 die_id = adev->umc.ras->get_die_id_from_pa(adev, bps->address, in amdgpu_ras_mca2pa()
2780 bps->retired_page << AMDGPU_GPU_PAGE_SHIFT); in amdgpu_ras_mca2pa()
2789 addr_in.ma.err_addr = bps->address; in amdgpu_ras_mca2pa()
2790 addr_in.ma.ch_inst = bps->mem_channel; in amdgpu_ras_mca2pa()
2791 addr_in.ma.umc_inst = bps->mcumc_id; in amdgpu_ras_mca2pa()
2803 struct eeprom_table_record *bps, int count) in __amdgpu_ras_restore_bad_pages() argument
2811 bps[j].retired_page << AMDGPU_GPU_PAGE_SHIFT)) in __amdgpu_ras_restore_bad_pages()
2819 amdgpu_ras_reserve_page(adev, bps[j].retired_page); in __amdgpu_ras_restore_bad_pages()
2821 memcpy(&data->bps[data->count], &(bps[j]), in __amdgpu_ras_restore_bad_pages()
2831 struct eeprom_table_record *bps, struct ras_err_data *err_data, in __amdgpu_ras_convert_rec_array_from_rom() argument
2837 save_nps = (bps[0].retired_page >> UMC_NPS_SHIFT) & UMC_NPS_MASK; in __amdgpu_ras_convert_rec_array_from_rom()
2841 memcpy(err_data->err_addr, bps, in __amdgpu_ras_convert_rec_array_from_rom()
2847 bps[i].retired_page &= ~(UMC_NPS_MASK << UMC_NPS_SHIFT); in __amdgpu_ras_convert_rec_array_from_rom()
2852 bps[0].retired_page << AMDGPU_GPU_PAGE_SHIFT)) in __amdgpu_ras_convert_rec_array_from_rom()
2855 if (amdgpu_ras_mca2pa_by_idx(adev, &bps[0], err_data)) in __amdgpu_ras_convert_rec_array_from_rom()
2859 if (amdgpu_ras_mca2pa(adev, &bps[0], err_data)) { in __amdgpu_ras_convert_rec_array_from_rom()
2861 memcpy(err_data->err_addr, bps, in __amdgpu_ras_convert_rec_array_from_rom()
2873 struct eeprom_table_record *bps, struct ras_err_data *err_data, in __amdgpu_ras_convert_rec_from_rom() argument
2878 save_nps = (bps->retired_page >> UMC_NPS_SHIFT) & UMC_NPS_MASK; in __amdgpu_ras_convert_rec_from_rom()
2879 bps->retired_page &= ~(UMC_NPS_MASK << UMC_NPS_SHIFT); in __amdgpu_ras_convert_rec_from_rom()
2883 bps->retired_page << AMDGPU_GPU_PAGE_SHIFT)) in __amdgpu_ras_convert_rec_from_rom()
2886 if (amdgpu_ras_mca2pa_by_idx(adev, bps, err_data)) in __amdgpu_ras_convert_rec_from_rom()
2895 struct eeprom_table_record *bps, int pages, bool from_rom) in amdgpu_ras_add_bad_pages() argument
2905 if (!con || !con->eh_data || !bps || pages <= 0) in amdgpu_ras_add_bad_pages()
2926 if ((bps[i].address == bps[i + 1].address) && in amdgpu_ras_add_bad_pages()
2927 (bps[i].mem_channel == bps[i + 1].mem_channel)) { in amdgpu_ras_add_bad_pages()
2930 &bps[i], &err_data, nps); in amdgpu_ras_add_bad_pages()
2943 &bps[i], &err_data, nps); in amdgpu_ras_add_bad_pages()
2948 ret = __amdgpu_ras_restore_bad_pages(adev, bps, pages); in amdgpu_ras_add_bad_pages()
2995 &data->bps[bad_page_num], save_count)) { in amdgpu_ras_save_bad_pages()
3002 &data->bps[bad_page_num + in amdgpu_ras_save_bad_pages()
3024 struct eeprom_table_record *bps; in amdgpu_ras_load_bad_pages() local
3031 bps = kcalloc(control->ras_num_recs, sizeof(*bps), GFP_KERNEL); in amdgpu_ras_load_bad_pages()
3032 if (!bps) in amdgpu_ras_load_bad_pages()
3035 ret = amdgpu_ras_eeprom_read(control, bps, control->ras_num_recs); in amdgpu_ras_load_bad_pages()
3042 if ((bps[i].address == bps[i + 1].address) && in amdgpu_ras_load_bad_pages()
3043 (bps[i].mem_channel == bps[i + 1].mem_channel)) { in amdgpu_ras_load_bad_pages()
3068 ret = amdgpu_ras_add_bad_pages(adev, bps, control->ras_num_recs, true); in amdgpu_ras_load_bad_pages()
3072 kfree(bps); in amdgpu_ras_load_bad_pages()
3084 if (addr == data->bps[i].retired_page) in amdgpu_ras_check_bad_page_unlock()
3552 kfree((*data)->bps); in amdgpu_ras_recovery_init()
3603 kfree(data->bps); in amdgpu_ras_recovery_fini()