|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC 15/35] ARM64 / ACPI: Define ACPI_IRQ_MODEL_GIC needed for arm
On Wed, 4 Feb 2015, parth.dixit@xxxxxxxxxx wrote:
> From: Naresh Bhat <naresh.bhat@xxxxxxxxxx>
>
> Needed because ARM64 uses GIC which is defined in ACPI 5.0 spec.
>
> Signed-off-by: Al Stone <al.stone@xxxxxxxxxx>
> Signed-off-by: Hanjun Guo <hanjun.guo@xxxxxxxxxx>
> Signed-off-by: Naresh Bhat <naresh.bhat@xxxxxxxxxx>
> ---
> xen/arch/arm/arm64/acpi/arm-core.c | 6 ++-
> xen/drivers/acpi/tables.c | 95
> ++++++++++++++++++++------------------
> 2 files changed, 55 insertions(+), 46 deletions(-)
>
> diff --git a/xen/arch/arm/arm64/acpi/arm-core.c
> b/xen/arch/arm/arm64/acpi/arm-core.c
> index 84b0032..cc11fce 100644
> --- a/xen/arch/arm/arm64/acpi/arm-core.c
> +++ b/xen/arch/arm/arm64/acpi/arm-core.c
> @@ -55,7 +55,11 @@ int acpi_psci_use_hvc;
> /* available_cpus means enabled cpu in MADT */
> static int available_cpus;
>
> -enum acpi_irq_model_id acpi_irq_model = ACPI_IRQ_MODEL_PLATFORM;
> +/*
> + * Since we're on ARM, the default interrupt routing model
> + * clearly has to be GIC.
> + */
> +enum acpi_irq_model_id acpi_irq_model = ACPI_IRQ_MODEL_GIC;
>
> struct acpi_arm_root acpi_arm_rsdp_info; /* info about RSDP from FDT */
>
> diff --git a/xen/drivers/acpi/tables.c b/xen/drivers/acpi/tables.c
> index 5314f0b..ad680f8 100644
> --- a/xen/drivers/acpi/tables.c
> +++ b/xen/drivers/acpi/tables.c
> @@ -244,60 +244,65 @@ acpi_parse_entries(unsigned long table_size,
> struct acpi_table_header *table_header,
> int entry_id, unsigned int max_entries)
> {
> - struct acpi_subtable_header *entry;
> - int count = 0;
> - unsigned long table_end;
> + struct acpi_subtable_header *entry;
> + int count = 0;
> + unsigned long table_end;
>
> - if (acpi_disabled)
> - return -ENODEV;
> + if ( acpi_disabled )
> + return -ENODEV;
>
> - if (!handler)
> - return -EINVAL;
> + if ( !handler )
> + return -EINVAL;
>
> - if (!table_size)
> - return -EINVAL;
> + if ( !table_size )
> + return -EINVAL;
>
> - if (!table_header) {
> - printk("Table header not present\n");
> - return -ENODEV;
> - }
> + if ( !table_header )
> + {
> + printk("Table header not present\n");
> + return -ENODEV;
> + }
>
> - table_end = (unsigned long)table_header + table_header->length;
> + table_end = (unsigned long)table_header + table_header->length;
>
> - /* Parse all entries looking for a match. */
> + /* Parse all entries looking for a match. */
All these changes shouldn't be here.
As you are introducing this function in one of the previous patches, you
should have the indentation right in the first place.
> - entry = (struct acpi_subtable_header *)
> - ((unsigned long)table_header + table_size);
> -
> - while (((unsigned long)entry) + sizeof(struct acpi_subtable_header) <
> - table_end) {
> - if (entry->type == entry_id
> - && (!max_entries || count++ < max_entries))
> - if (handler(entry, table_end)) {
> - count = -EINVAL;
> - goto err;
> - }
> -
> - /*
> - * If entry->length is 0, break from this loop to avoid
> - * infinite loop.
> - */
> - if (entry->length == 0) {
> - printk("[0x%02x] Invalid zero length\n", entry_id);
> - count = -EINVAL;
> - goto err;
> - }
> -
> - entry = (struct acpi_subtable_header *)
> - ((unsigned long)entry + entry->length);
> - }
> + entry = (struct acpi_subtable_header *)
> + ((unsigned long)table_header + table_size);
> +
> + while ( ( (unsigned long)entry ) + sizeof(struct acpi_subtable_header) <
> + table_end)
> + {
> + if ( entry->type == entry_id
> + && ( !max_entries || count++ < max_entries ) )
> + if ( handler(entry, table_end) )
> + {
> + count = -EINVAL;
> + goto err;
> + }
>
> - if (max_entries && count > max_entries) {
> - printk("[0x%02x] ignored %i entries of %i found\n",
> - entry_id, count - max_entries, count);
> + /*
> + * If entry->length is 0, break from this loop to avoid
> + * infinite loop.
> + */
> + if ( entry->length == 0 )
> + {
> + printk("[0x%02x] Invalid zero length\n", entry_id);
> + count = -EINVAL;
> + goto err;
> }
>
> -err:
> + entry = (struct acpi_subtable_header *)
> + ((unsigned long)entry + entry->length);
> + }
> +
> + if ( max_entries && count > max_entries )
> + {
> + printk("[0x%02x] ignored %i entries of %i found\n",
> + entry_id, count - max_entries, count);
> + }
> +
> + err:
> return count;
> }
With all these indentation changes I cannot tell if you made any other
changes in this patch. Please remove all the indentation changes.
> @@ -394,7 +399,7 @@ int __init acpi_table_parse(char *id, acpi_table_handler
> handler)
> return 1;
> }
>
> -/*
> +/*
> * The BIOS is supposed to supply a single APIC/MADT,
> * but some report two. Provide a knob to use either.
> * (don't you wish instance 0 and 1 were not the same?)
> --
> 1.9.1
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |