diff mbox

hw/acpi: fix GSI links UID

Message ID 1457869229-9989-1-git-send-email-marcel@redhat.com
State New
Headers show

Commit Message

Marcel Apfelbaum March 13, 2016, 11:40 a.m. UTC
According to the ACPI spec, each UID must be unique.
Use the irq number as UID for GSI links.

Suggested-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
---

Hi,

This patch was tested with Windows XP/2003/2012R2/7/10 and Fedora.

Thanks,
Marcel
    
 hw/i386/acpi-build.c | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

Comments

Igor Mammedov March 14, 2016, 9:43 a.m. UTC | #1
On Sun, 13 Mar 2016 13:40:29 +0200
Marcel Apfelbaum <marcel@redhat.com> wrote:

> According to the ACPI spec, each UID must be unique.
> Use the irq number as UID for GSI links.
> 
> Suggested-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
> ---
> 
> Hi,
> 
> This patch was tested with Windows XP/2003/2012R2/7/10 and Fedora.
tested it with RHEL6/7

Reviewed-by: Igor Mammedov <imammedo@redhat.com>


> 
> Thanks,
> Marcel
>     
>  hw/i386/acpi-build.c | 20 ++++++++------------
>  1 file changed, 8 insertions(+), 12 deletions(-)
> 
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index adbf354..83e031d 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -1748,18 +1748,14 @@ static void build_q35_pci0_int(Aml *table)
>      aml_append(sb_scope, build_link_dev("LNKG", 6, aml_name("PRQG")));
>      aml_append(sb_scope, build_link_dev("LNKH", 7, aml_name("PRQH")));
>  
> -    /*
> -     * TODO: UID probably shouldn't be the same for GSIx devices
> -     * but that's how it was in original ASL so keep it for now
> -     */
> -    aml_append(sb_scope, build_gsi_link_dev("GSIA", 0, 0x10));
> -    aml_append(sb_scope, build_gsi_link_dev("GSIB", 0, 0x11));
> -    aml_append(sb_scope, build_gsi_link_dev("GSIC", 0, 0x12));
> -    aml_append(sb_scope, build_gsi_link_dev("GSID", 0, 0x13));
> -    aml_append(sb_scope, build_gsi_link_dev("GSIE", 0, 0x14));
> -    aml_append(sb_scope, build_gsi_link_dev("GSIF", 0, 0x15));
> -    aml_append(sb_scope, build_gsi_link_dev("GSIG", 0, 0x16));
> -    aml_append(sb_scope, build_gsi_link_dev("GSIH", 0, 0x17));
> +    aml_append(sb_scope, build_gsi_link_dev("GSIA", 0x10, 0x10));
> +    aml_append(sb_scope, build_gsi_link_dev("GSIB", 0x11, 0x11));
> +    aml_append(sb_scope, build_gsi_link_dev("GSIC", 0x12, 0x12));
> +    aml_append(sb_scope, build_gsi_link_dev("GSID", 0x13, 0x13));
> +    aml_append(sb_scope, build_gsi_link_dev("GSIE", 0x14, 0x14));
> +    aml_append(sb_scope, build_gsi_link_dev("GSIF", 0x15, 0x15));
> +    aml_append(sb_scope, build_gsi_link_dev("GSIG", 0x16, 0x16));
> +    aml_append(sb_scope, build_gsi_link_dev("GSIH", 0x17, 0x17));
>  
>      aml_append(table, sb_scope);
>  }
Paolo Bonzini March 15, 2016, 5:27 p.m. UTC | #2
On 13/03/2016 12:40, Marcel Apfelbaum wrote:
> According to the ACPI spec, each UID must be unique.
> Use the irq number as UID for GSI links.
> 
> Suggested-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>

This causes a warning from acpi-test.  The diff is

2720c2720
<             Name (_UID, Zero)  // _UID: Unique ID
---
>             Name (_UID, 0x10)  // _UID: Unique ID
2747c2747
<             Name (_UID, Zero)  // _UID: Unique ID
---
>             Name (_UID, 0x11)  // _UID: Unique ID
2774c2774
<             Name (_UID, Zero)  // _UID: Unique ID
---
>             Name (_UID, 0x12)  // _UID: Unique ID
2801c2801
<             Name (_UID, Zero)  // _UID: Unique ID
---
>             Name (_UID, 0x13)  // _UID: Unique ID
2828c2828
<             Name (_UID, Zero)  // _UID: Unique ID
---
>             Name (_UID, 0x14)  // _UID: Unique ID
2855c2855
<             Name (_UID, Zero)  // _UID: Unique ID
---
>             Name (_UID, 0x15)  // _UID: Unique ID
2882c2882
<             Name (_UID, Zero)  // _UID: Unique ID
---
>             Name (_UID, 0x16)  // _UID: Unique ID
2909c2909
<             Name (_UID, Zero)  // _UID: Unique ID
---
>             Name (_UID, 0x17)  // _UID: Unique ID

I think you should have updated tests/acpi-test-data.

Paolo
Marcel Apfelbaum March 16, 2016, 12:17 p.m. UTC | #3
On 03/15/2016 07:27 PM, Paolo Bonzini wrote:
>
>
> On 13/03/2016 12:40, Marcel Apfelbaum wrote:
>> According to the ACPI spec, each UID must be unique.
>> Use the irq number as UID for GSI links.
>>
>> Suggested-by: Michael S. Tsirkin <mst@redhat.com>
>> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
>
> This causes a warning from acpi-test.  The diff is
>
> 2720c2720
> <             Name (_UID, Zero)  // _UID: Unique ID
> ---
>>              Name (_UID, 0x10)  // _UID: Unique ID
> 2747c2747
> <             Name (_UID, Zero)  // _UID: Unique ID
> ---
>>              Name (_UID, 0x11)  // _UID: Unique ID
> 2774c2774
> <             Name (_UID, Zero)  // _UID: Unique ID
> ---
>>              Name (_UID, 0x12)  // _UID: Unique ID
> 2801c2801
> <             Name (_UID, Zero)  // _UID: Unique ID
> ---
>>              Name (_UID, 0x13)  // _UID: Unique ID
> 2828c2828
> <             Name (_UID, Zero)  // _UID: Unique ID
> ---
>>              Name (_UID, 0x14)  // _UID: Unique ID
> 2855c2855
> <             Name (_UID, Zero)  // _UID: Unique ID
> ---
>>              Name (_UID, 0x15)  // _UID: Unique ID
> 2882c2882
> <             Name (_UID, Zero)  // _UID: Unique ID
> ---
>>              Name (_UID, 0x16)  // _UID: Unique ID
> 2909c2909
> <             Name (_UID, Zero)  // _UID: Unique ID
> ---
>>              Name (_UID, 0x17)  // _UID: Unique ID
>
> I think you should have updated tests/acpi-test-data.

Thanks Paolo, you are right.

I am "used to" Michael updating the test data on his pull request.
I can send an update myself, it will have to wait a few days.

Thanks,
Marcel

>
> Paolo
>
Michael S. Tsirkin March 16, 2016, 2:03 p.m. UTC | #4
On Wed, Mar 16, 2016 at 02:17:04PM +0200, Marcel Apfelbaum wrote:
> On 03/15/2016 07:27 PM, Paolo Bonzini wrote:
> >
> >
> >On 13/03/2016 12:40, Marcel Apfelbaum wrote:
> >>According to the ACPI spec, each UID must be unique.
> >>Use the irq number as UID for GSI links.
> >>
> >>Suggested-by: Michael S. Tsirkin <mst@redhat.com>
> >>Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
> >
> >This causes a warning from acpi-test.  The diff is
> >
> >2720c2720
> ><             Name (_UID, Zero)  // _UID: Unique ID
> >---
> >>             Name (_UID, 0x10)  // _UID: Unique ID
> >2747c2747
> ><             Name (_UID, Zero)  // _UID: Unique ID
> >---
> >>             Name (_UID, 0x11)  // _UID: Unique ID
> >2774c2774
> ><             Name (_UID, Zero)  // _UID: Unique ID
> >---
> >>             Name (_UID, 0x12)  // _UID: Unique ID
> >2801c2801
> ><             Name (_UID, Zero)  // _UID: Unique ID
> >---
> >>             Name (_UID, 0x13)  // _UID: Unique ID
> >2828c2828
> ><             Name (_UID, Zero)  // _UID: Unique ID
> >---
> >>             Name (_UID, 0x14)  // _UID: Unique ID
> >2855c2855
> ><             Name (_UID, Zero)  // _UID: Unique ID
> >---
> >>             Name (_UID, 0x15)  // _UID: Unique ID
> >2882c2882
> ><             Name (_UID, Zero)  // _UID: Unique ID
> >---
> >>             Name (_UID, 0x16)  // _UID: Unique ID
> >2909c2909
> ><             Name (_UID, Zero)  // _UID: Unique ID
> >---
> >>             Name (_UID, 0x17)  // _UID: Unique ID
> >
> >I think you should have updated tests/acpi-test-data.
> 
> Thanks Paolo, you are right.
> 
> I am "used to" Michael updating the test data on his pull request.
> I can send an update myself, it will have to wait a few days.
> 
> Thanks,
> Marcel
> 
> >
> >Paolo
> >

True, I forgot to include this in the pull request.
Fixed, upstream is fine now.

Thanks for the reminder!
diff mbox

Patch

diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index adbf354..83e031d 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -1748,18 +1748,14 @@  static void build_q35_pci0_int(Aml *table)
     aml_append(sb_scope, build_link_dev("LNKG", 6, aml_name("PRQG")));
     aml_append(sb_scope, build_link_dev("LNKH", 7, aml_name("PRQH")));
 
-    /*
-     * TODO: UID probably shouldn't be the same for GSIx devices
-     * but that's how it was in original ASL so keep it for now
-     */
-    aml_append(sb_scope, build_gsi_link_dev("GSIA", 0, 0x10));
-    aml_append(sb_scope, build_gsi_link_dev("GSIB", 0, 0x11));
-    aml_append(sb_scope, build_gsi_link_dev("GSIC", 0, 0x12));
-    aml_append(sb_scope, build_gsi_link_dev("GSID", 0, 0x13));
-    aml_append(sb_scope, build_gsi_link_dev("GSIE", 0, 0x14));
-    aml_append(sb_scope, build_gsi_link_dev("GSIF", 0, 0x15));
-    aml_append(sb_scope, build_gsi_link_dev("GSIG", 0, 0x16));
-    aml_append(sb_scope, build_gsi_link_dev("GSIH", 0, 0x17));
+    aml_append(sb_scope, build_gsi_link_dev("GSIA", 0x10, 0x10));
+    aml_append(sb_scope, build_gsi_link_dev("GSIB", 0x11, 0x11));
+    aml_append(sb_scope, build_gsi_link_dev("GSIC", 0x12, 0x12));
+    aml_append(sb_scope, build_gsi_link_dev("GSID", 0x13, 0x13));
+    aml_append(sb_scope, build_gsi_link_dev("GSIE", 0x14, 0x14));
+    aml_append(sb_scope, build_gsi_link_dev("GSIF", 0x15, 0x15));
+    aml_append(sb_scope, build_gsi_link_dev("GSIG", 0x16, 0x16));
+    aml_append(sb_scope, build_gsi_link_dev("GSIH", 0x17, 0x17));
 
     aml_append(table, sb_scope);
 }