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

From: [email-masked] (Shannon Zhao)
Date: Tue, 24 Nov 2015 15:48:56 +0800

On 2015/11/24 15:22, Jan Beulich wrote:
>>>> On 24.11.15 at 04:08, <[email-masked]> wrote:
>> On 2015/11/24 0:59, Jan Beulich wrote:
>>>>>> On 17.11.15 at 10:40, <[email-masked]> 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