spapr_events: drop bogus cell from "interrupt-ranges" property

Message ID 151254821213.27903.10774600450833875601.stgit@bahia.lan
State New
Headers show
Series
  • spapr_events: drop bogus cell from "interrupt-ranges" property
Related show

Commit Message

Greg Kurz Dec. 6, 2017, 8:16 a.m.
According to LoPAPR 1.1 B.6.12, the "/event-sources" node has an "interrupt-
ranges" property, the format of which is described in B.6.9.1.2 as follows:

“interrupt-ranges”
 Standard property name that defines the interrupt number(s) and range(s)
 handled by this unit.

 prop-encoded-array: List of (int-number, range) specifications.

 Int-number is encoded as with encode-int.
 Range is encoded as with encode-int.

 The first entry in this list shall contain the int-number associated with
 the first “reg” property entry. The int-num-ber is the value representing
 the interrupt source as would appear in the PowerPC External Interrupt
 Architecture XISR. The range shall be the number of sequential interrupt
 numbers which this unit can generate.

There's no such thing as a cell count at the end of the array, like the
one introduced by commit ffbb1705a33d in QEMU 2.8. It doesn't seem it had
any impact on existing guests and I couldn't find any related workaround
in linux. So, let's just drop the bogus lines.

Signed-off-by: Greg Kurz <groug@kaod.org>
---
 hw/ppc/spapr_events.c |    3 ---
 1 file changed, 3 deletions(-)

Comments

David Gibson Dec. 6, 2017, 8:47 a.m. | #1
On Wed, Dec 06, 2017 at 09:16:52AM +0100, Greg Kurz wrote:
1;5002;0c> According to LoPAPR 1.1 B.6.12, the "/event-sources" node has an "interrupt-
> ranges" property, the format of which is described in B.6.9.1.2 as follows:
> 
> “interrupt-ranges”
>  Standard property name that defines the interrupt number(s) and range(s)
>  handled by this unit.
> 
>  prop-encoded-array: List of (int-number, range) specifications.
> 
>  Int-number is encoded as with encode-int.
>  Range is encoded as with encode-int.
> 
>  The first entry in this list shall contain the int-number associated with
>  the first “reg” property entry. The int-num-ber is the value representing
>  the interrupt source as would appear in the PowerPC External Interrupt
>  Architecture XISR. The range shall be the number of sequential interrupt
>  numbers which this unit can generate.
> 
> There's no such thing as a cell count at the end of the array, like the
> one introduced by commit ffbb1705a33d in QEMU 2.8. It doesn't seem it had
> any impact on existing guests and I couldn't find any related workaround
> in linux. So, let's just drop the bogus lines.
> 
> Signed-off-by: Greg Kurz <groug@kaod.org>

That does indeed seem bogus.  Applied to ppc-for-2.12.

> ---
>  hw/ppc/spapr_events.c |    3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
> index c7a64e6b8dd3..86836f0626dc 100644
> --- a/hw/ppc/spapr_events.c
> +++ b/hw/ppc/spapr_events.c
> @@ -292,9 +292,6 @@ void spapr_dt_events(sPAPRMachineState *spapr, void *fdt)
>          irq_ranges[count++] = cpu_to_be32(1);
>      }
>  
> -    irq_ranges[count] = cpu_to_be32(count);
> -    count++;
> -
>      _FDT((fdt_setprop(fdt, event_sources, "interrupt-controller", NULL, 0)));
>      _FDT((fdt_setprop_cell(fdt, event_sources, "#interrupt-cells", 2)));
>      _FDT((fdt_setprop(fdt, event_sources, "interrupt-ranges",
>

Patch

diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
index c7a64e6b8dd3..86836f0626dc 100644
--- a/hw/ppc/spapr_events.c
+++ b/hw/ppc/spapr_events.c
@@ -292,9 +292,6 @@  void spapr_dt_events(sPAPRMachineState *spapr, void *fdt)
         irq_ranges[count++] = cpu_to_be32(1);
     }
 
-    irq_ranges[count] = cpu_to_be32(count);
-    count++;
-
     _FDT((fdt_setprop(fdt, event_sources, "interrupt-controller", NULL, 0)));
     _FDT((fdt_setprop_cell(fdt, event_sources, "#interrupt-cells", 2)));
     _FDT((fdt_setprop(fdt, event_sources, "interrupt-ranges",