在 2018年11月22日 15:42, Dave Young 写道:
> On 11/15/18 at 05:55pm, Lianbo Jiang wrote:
>> The upstream kernel can not accurately add the e820 reserved type to
>> kdump krenel e820 table.
>>
>> Kdump uses walk_iomem_res_desc() to iterate io resources, then adds
>> the matched resource ranges to the e820 table for kdump kernel. But,
>> when convert the e820 type into the iores descriptor, several e820
>> types are converted to 'IORES_DESC_NONE' in this function e820_type
>> _to_iores_desc(). So the walk_iomem_res_desc() will get unnecessary
>> types(such as E820_TYPE_RAM/E820_TYPE_UNUSABLE/E820_TYPE_KERN) when
>> walk through io resources by the descriptor 'IORES_DESC_NONE'.
>>
>> This patch adds the new I/O resource descriptor 'IORES_DESC_RESERVED'
>> for the iomem resources search interfaces. It is helpful to exactly
>> match the reserved resource ranges when walking through iomem resources.
>>
>> Suggested-by: Dave Young <[email protected]>
>> Signed-off-by: Lianbo Jiang <[email protected]>
>> ---
>> Changes since v5:
>> 1. Improve the patch log
>>
>> Changes since v6:
>> 1. Modify this patch, and add the new I/O resource descriptor
>>    'IORES_DESC_RESERVED' for the iomem resources search interfaces.
>> 2. Improve patch log.
>>
>>  arch/x86/kernel/e820.c | 2 +-
>>  include/linux/ioport.h | 1 +
>>  2 files changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
>> index 50895c2f937d..57fafdafb860 100644
>> --- a/arch/x86/kernel/e820.c
>> +++ b/arch/x86/kernel/e820.c
>> @@ -1048,10 +1048,10 @@ static unsigned long __init 
>> e820_type_to_iores_desc(struct e820_entry *entry)
>>      case E820_TYPE_NVS:             return IORES_DESC_ACPI_NV_STORAGE;
>>      case E820_TYPE_PMEM:            return IORES_DESC_PERSISTENT_MEMORY;
>>      case E820_TYPE_PRAM:            return 
>> IORES_DESC_PERSISTENT_MEMORY_LEGACY;
>> +    case E820_TYPE_RESERVED:        return IORES_DESC_RESERVED;
>>      case E820_TYPE_RESERVED_KERN:   /* Fall-through: */
>>      case E820_TYPE_RAM:             /* Fall-through: */
>>      case E820_TYPE_UNUSABLE:        /* Fall-through: */
>> -    case E820_TYPE_RESERVED:        /* Fall-through: */
>>      default:                        return IORES_DESC_NONE;
>>      }
>>  }
>> diff --git a/include/linux/ioport.h b/include/linux/ioport.h
>> index da0ebaec25f0..6ed59de48bd5 100644
>> --- a/include/linux/ioport.h
>> +++ b/include/linux/ioport.h
>> @@ -133,6 +133,7 @@ enum {
>>      IORES_DESC_PERSISTENT_MEMORY_LEGACY     = 5,
>>      IORES_DESC_DEVICE_PRIVATE_MEMORY        = 6,
>>      IORES_DESC_DEVICE_PUBLIC_MEMORY         = 7,
>> +    IORES_DESC_RESERVED                     = 8,
>>  };
> 
> There more works for a new iores desc. Originally IORES_DESC_NONE
> is assumed to include reserved e820 type so all code path relates to
> IORES_DESC_NONE should be carefully checked and ensure they still work after
> your changes.
> 

Thanks for your reminder.

I'm checking it, and also will resend v7 later. Please ignore this patch.

Regards,
Lianbo

>>  
>>  /* helpers to define resources */
>> -- 
>> 2.17.1
>>
>>
>> _______________________________________________
>> kexec mailing list
>> [email protected]
>> http://lists.infradead.org/mailman/listinfo/kexec
> 
> Thanks
> Dave
> 

_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to