On 02/11/2024 4:33 pm, Daniel P. Smith wrote:
> On 10/28/24 05:18, Andrew Cooper wrote:
>> @@ -831,7 +818,15 @@ static int __init early_microcode_load(struct
>> boot_info *bi)
>>       size_t size;
>>       struct microcode_patch *patch;
>>   -    microcode_grab_module(bi);
>> +    if ( ucode_mod_idx < 0 )
>> +        ucode_mod_idx += bi->nr_modules;
>> +    if ( ucode_mod_idx <= 0 || ucode_mod_idx >= bi->nr_modules ||
>> +         !__test_and_clear_bit(ucode_mod_idx, bi->module_map) )
>> +        goto scan;
>> +    ucode_mod = *bi->mods[ucode_mod_idx].mod;
>> + scan:
>> +    if ( ucode_scan )
>> +        microcode_scan_module(bi);
>>         if ( !ucode_mod.mod_end && !ucode_blob.size )
>>           return 0;
>
> Just a suggestion, but would it be useful to add a comment to explain
> the three conditions of ucode_mod_idx that are being handled before
> scanning is attempted?

The already did that, but it's in the next patch, which also rearranges
this block massively.

~Andrew

Reply via email to