mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-23 05:56:14 -04:00
drm/amdgpu: change if condition for bad channel bitmap update
The amdgpu_ras_eeprom_control.bad_channel_bitmap is u32 type, but the channel index could be larger than 32. For the ASICs whose channel number is more than 32, the amdgpu_dpm_send_hbm_bad_channel_flag interface is not supported, so we simply bypass channel bitmap update under this condition. v2: replace sizeof with BITS_PER_TYPE, we should check bit number instead of byte number. Signed-off-by: Tao Zhou <tao.zhou1@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -616,7 +616,8 @@ amdgpu_ras_eeprom_append_table(struct amdgpu_ras_eeprom_control *control,
|
||||
__encode_table_record_to_buf(control, &record[i], pp);
|
||||
|
||||
/* update bad channel bitmap */
|
||||
if (!(control->bad_channel_bitmap & (1 << record[i].mem_channel))) {
|
||||
if ((record[i].mem_channel < BITS_PER_TYPE(control->bad_channel_bitmap)) &&
|
||||
!(control->bad_channel_bitmap & (1 << record[i].mem_channel))) {
|
||||
control->bad_channel_bitmap |= 1 << record[i].mem_channel;
|
||||
con->update_channel_flag = true;
|
||||
}
|
||||
@@ -969,7 +970,8 @@ int amdgpu_ras_eeprom_read(struct amdgpu_ras_eeprom_control *control,
|
||||
__decode_table_record_from_buf(control, &record[i], pp);
|
||||
|
||||
/* update bad channel bitmap */
|
||||
if (!(control->bad_channel_bitmap & (1 << record[i].mem_channel))) {
|
||||
if ((record[i].mem_channel < BITS_PER_TYPE(control->bad_channel_bitmap)) &&
|
||||
!(control->bad_channel_bitmap & (1 << record[i].mem_channel))) {
|
||||
control->bad_channel_bitmap |= 1 << record[i].mem_channel;
|
||||
con->update_channel_flag = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user