[PATCH v3 25/62] acpi/table: Introduce acpi_get_entry to get specified entry

Shannon Zhao zhaoshenglong at huawei.com
Mon Nov 23 23:48:56 PST 2015



On 2015/11/24 15:22, Jan Beulich wrote:
>>>> On 24.11.15 at 04:08, <zhaoshenglong at huawei.com> wrote:
>> On 2015/11/24 0:59, Jan Beulich wrote:
>>>>>> On 17.11.15 at 10:40, <shannon.zhao at linaro.org> wrote:
>>>> +	if ( !table_header )
>>>> +	{
>>>> +		printk("Table header not present\n");
>>>> +		return NULL;
>>>> +	}
>>>> +
>>>> +	table_end = (unsigned long)table_header + table_header->length;
>>>
>>> So here you use ->length, ...
>>>
>>>> +	/* Parse all entries looking for a match. */
>>>> +	entry = (struct acpi_subtable_header *)
>>>> +	    ((unsigned long)table_header + table_size);
>>>
>>> ... but here table_size. Why?
>>>
>> Here it just skips the main table size at the beginning. Then it could
>> point to the start of sub-table.
>> For example, to MADT table, the table_size is sizeof(struct
>> acpi_table_madt).
> 
> Well, but for one then the parameter name is kind of wrong, and
> second - is it really reasonable for the caller to tell the function?
>  
I think the caller knows which table it wants to parse and could
calculate the size. But within this function, there is no clue to get
the main table size.

Thanks,
-- 
Shannon




More information about the linux-arm-kernel mailing list