mbox

[PULL,00/22] ppc patch queue 2011-10-30

Message ID 1320006193-15219-1-git-send-email-agraf@suse.de
State New
Headers show

Pull-request

git://repo.or.cz/qemu/agraf.git ppc-next

Message

Alexander Graf Oct. 30, 2011, 8:22 p.m. UTC
Hi Blue,

This is my current patch queue for ppc. Please pull.

Alex


The following changes since commit 375847a6c0330e3de0fd1589eeb5a364692b791e:
  Max Filippov (1):
        MAINTAINERS: update wiki URL and machine names for target-xtensa

are available in the git repository at:

  git://repo.or.cz/qemu/agraf.git ppc-next

Alexander Graf (4):
      PPC: Bump qemu-system-ppc to 64-bit physical address space
      PPC: Disable non-440 CPUs for ppcemb target
      PPC: Fail configure when libfdt is not available
      KVM: PPC: Override host vmx/vsx/dfp only when information known

David Gibson (15):
      pseries: Support SMT systems for KVM Book3S-HV
      pseries: Allow KVM Book3S-HV on PPC970 CPUS
      pseries: Use Book3S-HV TCE acceleration capabilities
      pseries: Update SLOF firmware image
      ppc: Generalize the kvmppc_get_clockfreq() function
      pseries: Add device tree properties for VMX/VSX and DFP under kvm
      pseries: Update SLOF firmware image
      ppc: Remove broken partial PVR matching
      ppc: First cut implementation of -cpu host
      ppc: Add cpu defs for POWER7 revisions 2.1 and 2.3
      pseries: Under kvm use guest cpu = host cpu by default
      ppc: Avoid decrementer related kvm exits
      pseries: Correct vmx/dfp handling in both KVM and TCG cases
      ppc: Fix up usermode only builds
      pseries: Allow writes to KVM accelerated TCE table

Fabien Chouteau (1):
      Set an invalid-bits mask for each SPE instructions

Liu Yu-B13201 (2):
      ppc/e500_pci: Fix code style
      ppc/e500_pci: Fix an array overflow issue

 configure                   |   13 +-
 hw/ppc.c                    |    6 +
 hw/ppce500_pci.c            |   82 ++++++--
 hw/spapr.c                  |   99 +++++++--
 hw/spapr_vio.c              |    8 +-
 hw/spapr_vio.h              |    1 +
 pc-bios/README              |    2 +-
 pc-bios/slof.bin            |  Bin 579072 -> 738744 bytes
 roms/SLOF                   |    2 +-
 target-ppc/cpu.h            |   23 ++-
 target-ppc/helper.c         |   11 +
 target-ppc/kvm.c            |  197 ++++++++++++++++-
 target-ppc/kvm_ppc.h        |   50 +++++
 target-ppc/translate.c      |  500 +++++++++++++++++++++++--------------------
 target-ppc/translate_init.c |   90 ++++----
 15 files changed, 755 insertions(+), 329 deletions(-)

Comments

Alexander Graf Oct. 31, 2011, 4:03 a.m. UTC | #1
On 30.10.2011, at 21:22, Alexander Graf wrote:

> Hi Blue,
> 
> This is my current patch queue for ppc. Please pull.
> 
> Alex
> 
> 
> The following changes since commit 375847a6c0330e3de0fd1589eeb5a364692b791e:
>  Max Filippov (1):
>        MAINTAINERS: update wiki URL and machine names for target-xtensa
> 
> are available in the git repository at:
> 
>  git://repo.or.cz/qemu/agraf.git ppc-next
> 
> Alexander Graf (4):
>      PPC: Bump qemu-system-ppc to 64-bit physical address space
>      PPC: Disable non-440 CPUs for ppcemb target
>      PPC: Fail configure when libfdt is not available
>      KVM: PPC: Override host vmx/vsx/dfp only when information known
> 
> David Gibson (15):
>      pseries: Support SMT systems for KVM Book3S-HV
>      pseries: Allow KVM Book3S-HV on PPC970 CPUS
>      pseries: Use Book3S-HV TCE acceleration capabilities
>      pseries: Update SLOF firmware image
>      ppc: Generalize the kvmppc_get_clockfreq() function
>      pseries: Add device tree properties for VMX/VSX and DFP under kvm
>      pseries: Update SLOF firmware image
>      ppc: Remove broken partial PVR matching
>      ppc: First cut implementation of -cpu host
>      ppc: Add cpu defs for POWER7 revisions 2.1 and 2.3
>      pseries: Under kvm use guest cpu = host cpu by default
>      ppc: Avoid decrementer related kvm exits
>      pseries: Correct vmx/dfp handling in both KVM and TCG cases
>      ppc: Fix up usermode only builds
>      pseries: Allow writes to KVM accelerated TCE table

I added these patches in between as well:

      ppc: Alter CPU state to mask out TCG unimplemented instructions as appropriate
      pseries: Add partial support for PCI


Alex
Blue Swirl Nov. 1, 2011, 9:05 p.m. UTC | #2
Thanks, pulled and reverted libfdt patch.

On Sun, Oct 30, 2011 at 20:22, Alexander Graf <agraf@suse.de> wrote:
> Hi Blue,
>
> This is my current patch queue for ppc. Please pull.
>
> Alex
>
>
> The following changes since commit 375847a6c0330e3de0fd1589eeb5a364692b791e:
>  Max Filippov (1):
>        MAINTAINERS: update wiki URL and machine names for target-xtensa
>
> are available in the git repository at:
>
>  git://repo.or.cz/qemu/agraf.git ppc-next
>
> Alexander Graf (4):
>      PPC: Bump qemu-system-ppc to 64-bit physical address space
>      PPC: Disable non-440 CPUs for ppcemb target
>      PPC: Fail configure when libfdt is not available
>      KVM: PPC: Override host vmx/vsx/dfp only when information known
>
> David Gibson (15):
>      pseries: Support SMT systems for KVM Book3S-HV
>      pseries: Allow KVM Book3S-HV on PPC970 CPUS
>      pseries: Use Book3S-HV TCE acceleration capabilities
>      pseries: Update SLOF firmware image
>      ppc: Generalize the kvmppc_get_clockfreq() function
>      pseries: Add device tree properties for VMX/VSX and DFP under kvm
>      pseries: Update SLOF firmware image
>      ppc: Remove broken partial PVR matching
>      ppc: First cut implementation of -cpu host
>      ppc: Add cpu defs for POWER7 revisions 2.1 and 2.3
>      pseries: Under kvm use guest cpu = host cpu by default
>      ppc: Avoid decrementer related kvm exits
>      pseries: Correct vmx/dfp handling in both KVM and TCG cases
>      ppc: Fix up usermode only builds
>      pseries: Allow writes to KVM accelerated TCE table
>
> Fabien Chouteau (1):
>      Set an invalid-bits mask for each SPE instructions
>
> Liu Yu-B13201 (2):
>      ppc/e500_pci: Fix code style
>      ppc/e500_pci: Fix an array overflow issue
>
>  configure                   |   13 +-
>  hw/ppc.c                    |    6 +
>  hw/ppce500_pci.c            |   82 ++++++--
>  hw/spapr.c                  |   99 +++++++--
>  hw/spapr_vio.c              |    8 +-
>  hw/spapr_vio.h              |    1 +
>  pc-bios/README              |    2 +-
>  pc-bios/slof.bin            |  Bin 579072 -> 738744 bytes
>  roms/SLOF                   |    2 +-
>  target-ppc/cpu.h            |   23 ++-
>  target-ppc/helper.c         |   11 +
>  target-ppc/kvm.c            |  197 ++++++++++++++++-
>  target-ppc/kvm_ppc.h        |   50 +++++
>  target-ppc/translate.c      |  500 +++++++++++++++++++++++--------------------
>  target-ppc/translate_init.c |   90 ++++----
>  15 files changed, 755 insertions(+), 329 deletions(-)
>
Anthony Liguori Nov. 1, 2011, 9:41 p.m. UTC | #3
On 11/01/2011 04:05 PM, Blue Swirl wrote:
> Thanks, pulled and reverted libfdt patch.

Er, this broke the build:

   CC    ppc64-softmmu/spapr_pci.o
/home/anthony/git/qemu/hw/spapr_pci.c: In function ‘find_dev’:
/home/anthony/git/qemu/hw/spapr_pci.c:54:9: error: ‘struct ChildrenHead’ has no 
member named ‘lh_first’
/home/anthony/git/qemu/hw/spapr_pci.c:54:9: error: ‘struct <anonymous>’ has no 
member named ‘le_next’
/home/anthony/git/qemu/hw/spapr_pci.c: In function ‘spapr_populate_pci_devices’:
/home/anthony/git/qemu/hw/spapr_pci.c:400:5: error: ‘struct ChildrenHead’ has no 
member named ‘lh_first’
/home/anthony/git/qemu/hw/spapr_pci.c:400:5: error: ‘struct <anonymous>’ has no 
member named ‘le_next’
make[1]: *** [spapr_pci.o] Error 1
make: *** [subdir-ppc64-softmmu] Error 2

This is from commit:

commit 3384f95c59e5db381cf3e605c8acec71baf0e6b8
Author: David Gibson <david@gibson.dropbear.id.au>
Date:   Sun Oct 30 17:16:46 2011 +0000

     pseries: Add partial support for PCI

And specifically:

         QLIST_FOREACH(qdev, &phb->host_state.bus->qbus.children, sibling) {
             PCIDevice *dev = (PCIDevice *)qdev;
             if (dev->devfn == devfn) {
                 return dev;
             }
         }

QBus::children is a QTAILQ, not a QLIST.

Was this code tested at all?

Regards,

Anthony Liguori

>
> On Sun, Oct 30, 2011 at 20:22, Alexander Graf<agraf@suse.de>  wrote:
>> Hi Blue,
>>
>> This is my current patch queue for ppc. Please pull.
>>
>> Alex
>>
>>
>> The following changes since commit 375847a6c0330e3de0fd1589eeb5a364692b791e:
>>   Max Filippov (1):
>>         MAINTAINERS: update wiki URL and machine names for target-xtensa
>>
>> are available in the git repository at:
>>
>>   git://repo.or.cz/qemu/agraf.git ppc-next
>>
>> Alexander Graf (4):
>>       PPC: Bump qemu-system-ppc to 64-bit physical address space
>>       PPC: Disable non-440 CPUs for ppcemb target
>>       PPC: Fail configure when libfdt is not available
>>       KVM: PPC: Override host vmx/vsx/dfp only when information known
>>
>> David Gibson (15):
>>       pseries: Support SMT systems for KVM Book3S-HV
>>       pseries: Allow KVM Book3S-HV on PPC970 CPUS
>>       pseries: Use Book3S-HV TCE acceleration capabilities
>>       pseries: Update SLOF firmware image
>>       ppc: Generalize the kvmppc_get_clockfreq() function
>>       pseries: Add device tree properties for VMX/VSX and DFP under kvm
>>       pseries: Update SLOF firmware image
>>       ppc: Remove broken partial PVR matching
>>       ppc: First cut implementation of -cpu host
>>       ppc: Add cpu defs for POWER7 revisions 2.1 and 2.3
>>       pseries: Under kvm use guest cpu = host cpu by default
>>       ppc: Avoid decrementer related kvm exits
>>       pseries: Correct vmx/dfp handling in both KVM and TCG cases
>>       ppc: Fix up usermode only builds
>>       pseries: Allow writes to KVM accelerated TCE table
>>
>> Fabien Chouteau (1):
>>       Set an invalid-bits mask for each SPE instructions
>>
>> Liu Yu-B13201 (2):
>>       ppc/e500_pci: Fix code style
>>       ppc/e500_pci: Fix an array overflow issue
>>
>>   configure                   |   13 +-
>>   hw/ppc.c                    |    6 +
>>   hw/ppce500_pci.c            |   82 ++++++--
>>   hw/spapr.c                  |   99 +++++++--
>>   hw/spapr_vio.c              |    8 +-
>>   hw/spapr_vio.h              |    1 +
>>   pc-bios/README              |    2 +-
>>   pc-bios/slof.bin            |  Bin 579072 ->  738744 bytes
>>   roms/SLOF                   |    2 +-
>>   target-ppc/cpu.h            |   23 ++-
>>   target-ppc/helper.c         |   11 +
>>   target-ppc/kvm.c            |  197 ++++++++++++++++-
>>   target-ppc/kvm_ppc.h        |   50 +++++
>>   target-ppc/translate.c      |  500 +++++++++++++++++++++++--------------------
>>   target-ppc/translate_init.c |   90 ++++----
>>   15 files changed, 755 insertions(+), 329 deletions(-)
>>
>
Alexander Graf Nov. 1, 2011, 10:14 p.m. UTC | #4
On 01.11.2011, at 14:41, Anthony Liguori <anthony@codemonkey.ws> wrote:

> On 11/01/2011 04:05 PM, Blue Swirl wrote:
>> Thanks, pulled and reverted libfdt patch.
> 
> Er, this broke the build:
> 
>  CC    ppc64-softmmu/spapr_pci.o
> /home/anthony/git/qemu/hw/spapr_pci.c: In function ‘find_dev’:
> /home/anthony/git/qemu/hw/spapr_pci.c:54:9: error: ‘struct ChildrenHead’ has no member named ‘lh_first’
> /home/anthony/git/qemu/hw/spapr_pci.c:54:9: error: ‘struct <anonymous>’ has no member named ‘le_next’
> /home/anthony/git/qemu/hw/spapr_pci.c: In function ‘spapr_populate_pci_devices’:
> /home/anthony/git/qemu/hw/spapr_pci.c:400:5: error: ‘struct ChildrenHead’ has no member named ‘lh_first’
> /home/anthony/git/qemu/hw/spapr_pci.c:400:5: error: ‘struct <anonymous>’ has no member named ‘le_next’
> make[1]: *** [spapr_pci.o] Error 1
> make: *** [subdir-ppc64-softmmu] Error 2
> 
> This is from commit:
> 
> commit 3384f95c59e5db381cf3e605c8acec71baf0e6b8
> Author: David Gibson <david@gibson.dropbear.id.au>
> Date:   Sun Oct 30 17:16:46 2011 +0000
> 
>    pseries: Add partial support for PCI
> 
> And specifically:
> 
>        QLIST_FOREACH(qdev, &phb->host_state.bus->qbus.children, sibling) {
>            PCIDevice *dev = (PCIDevice *)qdev;
>            if (dev->devfn == devfn) {
>                return dev;
>            }
>        }
> 
> QBus::children is a QTAILQ, not a QLIST.
> 
> Was this code tested at all?

Uh, yeah. Compile and execution tested O_o.

Alex
Anthony Liguori Nov. 1, 2011, 10:16 p.m. UTC | #5
On 11/01/2011 05:14 PM, Alexander Graf wrote:
>> And specifically:
>>
>>         QLIST_FOREACH(qdev,&phb->host_state.bus->qbus.children, sibling) {
>>             PCIDevice *dev = (PCIDevice *)qdev;
>>             if (dev->devfn == devfn) {
>>                 return dev;
>>             }
>>         }
>>
>> QBus::children is a QTAILQ, not a QLIST.
>>
>> Was this code tested at all?
> 
> Uh, yeah. Compile and execution tested O_o.

Do you not have libfdt installed?

Regards,

Anthony Liguori

> 
> Alex
> 
>
Alexander Graf Nov. 1, 2011, 10:28 p.m. UTC | #6
On 01.11.2011, at 15:16, Anthony Liguori <anthony@codemonkey.ws> wrote:

> On 11/01/2011 05:14 PM, Alexander Graf wrote:
>>> And specifically:
>>> 
>>>        QLIST_FOREACH(qdev,&phb->host_state.bus->qbus.children, sibling) {
>>>            PCIDevice *dev = (PCIDevice *)qdev;
>>>            if (dev->devfn == devfn) {
>>>                return dev;
>>>            }
>>>        }
>>> 
>>> QBus::children is a QTAILQ, not a QLIST.
>>> 
>>> Was this code tested at all?
>> 
>> Uh, yeah. Compile and execution tested O_o.
> 
> Do you not have libfdt installed?

I have libfdt installed on all boxes. I also verified that I could see a PCI device in the guest, so the code worked.

Maybe the list type was changed between the pullreq and now?

Alex

> 
> Regards,
> 
> Anthony Liguori
> 
>> 
>> Alex
>> 
>> 
>
Anthony Liguori Nov. 1, 2011, 10:32 p.m. UTC | #7
On 11/01/2011 05:28 PM, Alexander Graf wrote:
>
> On 01.11.2011, at 15:16, Anthony Liguori<anthony@codemonkey.ws>  wrote:
>
>> On 11/01/2011 05:14 PM, Alexander Graf wrote:
>>>> And specifically:
>>>>
>>>>         QLIST_FOREACH(qdev,&phb->host_state.bus->qbus.children, sibling) {
>>>>             PCIDevice *dev = (PCIDevice *)qdev;
>>>>             if (dev->devfn == devfn) {
>>>>                 return dev;
>>>>             }
>>>>         }
>>>>
>>>> QBus::children is a QTAILQ, not a QLIST.
>>>>
>>>> Was this code tested at all?
>>>
>>> Uh, yeah. Compile and execution tested O_o.
>>
>> Do you not have libfdt installed?
>
> I have libfdt installed on all boxes. I also verified that I could see a PCI device in the guest, so the code worked.
>
> Maybe the list type was changed between the pullreq and now?

Yes.  The patch that did it was old but only recently got into the tree.

Regards,

Anthony Liguori

>
> Alex
>
>>
>> Regards,
>>
>> Anthony Liguori
>>
>>>
>>> Alex
>>>
>>>
>>
>
David Gibson Nov. 2, 2011, 12:12 a.m. UTC | #8
On Tue, Nov 01, 2011 at 03:28:05PM -0700, Alexander Graf wrote:
> 
> On 01.11.2011, at 15:16, Anthony Liguori <anthony@codemonkey.ws> wrote:
> 
> > On 11/01/2011 05:14 PM, Alexander Graf wrote:
> >>> And specifically:
> >>> 
> >>>        QLIST_FOREACH(qdev,&phb->host_state.bus->qbus.children, sibling) {
> >>>            PCIDevice *dev = (PCIDevice *)qdev;
> >>>            if (dev->devfn == devfn) {
> >>>                return dev;
> >>>            }
> >>>        }
> >>> 
> >>> QBus::children is a QTAILQ, not a QLIST.
> >>> 
> >>> Was this code tested at all?
> >> 
> >> Uh, yeah. Compile and execution tested O_o.
> > 
> > Do you not have libfdt installed?
> 
> I have libfdt installed on all boxes. I also verified that I could
> see a PCI device in the guest, so the code worked.
> 
> Maybe the list type was changed between the pullreq and now?

It did.  I actually found this one yesterday when I rebased agraf's
series, but didn't get around to sending the fix out.
Blue Swirl Nov. 2, 2011, 7:59 p.m. UTC | #9
On Tue, Nov 1, 2011 at 21:41, Anthony Liguori <anthony@codemonkey.ws> wrote:
> On 11/01/2011 04:05 PM, Blue Swirl wrote:
>>
>> Thanks, pulled and reverted libfdt patch.
>
> Er, this broke the build:
>
>  CC    ppc64-softmmu/spapr_pci.o
> /home/anthony/git/qemu/hw/spapr_pci.c: In function ‘find_dev’:
> /home/anthony/git/qemu/hw/spapr_pci.c:54:9: error: ‘struct ChildrenHead’ has
> no member named ‘lh_first’
> /home/anthony/git/qemu/hw/spapr_pci.c:54:9: error: ‘struct <anonymous>’ has
> no member named ‘le_next’
> /home/anthony/git/qemu/hw/spapr_pci.c: In function
> ‘spapr_populate_pci_devices’:
> /home/anthony/git/qemu/hw/spapr_pci.c:400:5: error: ‘struct ChildrenHead’
> has no member named ‘lh_first’
> /home/anthony/git/qemu/hw/spapr_pci.c:400:5: error: ‘struct <anonymous>’ has
> no member named ‘le_next’
> make[1]: *** [spapr_pci.o] Error 1
> make: *** [subdir-ppc64-softmmu] Error 2
>
> This is from commit:
>
> commit 3384f95c59e5db381cf3e605c8acec71baf0e6b8
> Author: David Gibson <david@gibson.dropbear.id.au>
> Date:   Sun Oct 30 17:16:46 2011 +0000
>
>    pseries: Add partial support for PCI
>
> And specifically:
>
>        QLIST_FOREACH(qdev, &phb->host_state.bus->qbus.children, sibling) {
>            PCIDevice *dev = (PCIDevice *)qdev;
>            if (dev->devfn == devfn) {
>                return dev;
>            }
>        }
>
> QBus::children is a QTAILQ, not a QLIST.
>
> Was this code tested at all?

I built it and ran a quick test for PPC.
7f7623662781fa152c5aa39fd63a2e8766516a2c still builds fine here.
Though I don't have libfdt and no test for pseries.

> Regards,
>
> Anthony Liguori
>
>>
>> On Sun, Oct 30, 2011 at 20:22, Alexander Graf<agraf@suse.de>  wrote:
>>>
>>> Hi Blue,
>>>
>>> This is my current patch queue for ppc. Please pull.
>>>
>>> Alex
>>>
>>>
>>> The following changes since commit
>>> 375847a6c0330e3de0fd1589eeb5a364692b791e:
>>>  Max Filippov (1):
>>>        MAINTAINERS: update wiki URL and machine names for target-xtensa
>>>
>>> are available in the git repository at:
>>>
>>>  git://repo.or.cz/qemu/agraf.git ppc-next
>>>
>>> Alexander Graf (4):
>>>      PPC: Bump qemu-system-ppc to 64-bit physical address space
>>>      PPC: Disable non-440 CPUs for ppcemb target
>>>      PPC: Fail configure when libfdt is not available
>>>      KVM: PPC: Override host vmx/vsx/dfp only when information known
>>>
>>> David Gibson (15):
>>>      pseries: Support SMT systems for KVM Book3S-HV
>>>      pseries: Allow KVM Book3S-HV on PPC970 CPUS
>>>      pseries: Use Book3S-HV TCE acceleration capabilities
>>>      pseries: Update SLOF firmware image
>>>      ppc: Generalize the kvmppc_get_clockfreq() function
>>>      pseries: Add device tree properties for VMX/VSX and DFP under kvm
>>>      pseries: Update SLOF firmware image
>>>      ppc: Remove broken partial PVR matching
>>>      ppc: First cut implementation of -cpu host
>>>      ppc: Add cpu defs for POWER7 revisions 2.1 and 2.3
>>>      pseries: Under kvm use guest cpu = host cpu by default
>>>      ppc: Avoid decrementer related kvm exits
>>>      pseries: Correct vmx/dfp handling in both KVM and TCG cases
>>>      ppc: Fix up usermode only builds
>>>      pseries: Allow writes to KVM accelerated TCE table
>>>
>>> Fabien Chouteau (1):
>>>      Set an invalid-bits mask for each SPE instructions
>>>
>>> Liu Yu-B13201 (2):
>>>      ppc/e500_pci: Fix code style
>>>      ppc/e500_pci: Fix an array overflow issue
>>>
>>>  configure                   |   13 +-
>>>  hw/ppc.c                    |    6 +
>>>  hw/ppce500_pci.c            |   82 ++++++--
>>>  hw/spapr.c                  |   99 +++++++--
>>>  hw/spapr_vio.c              |    8 +-
>>>  hw/spapr_vio.h              |    1 +
>>>  pc-bios/README              |    2 +-
>>>  pc-bios/slof.bin            |  Bin 579072 ->  738744 bytes
>>>  roms/SLOF                   |    2 +-
>>>  target-ppc/cpu.h            |   23 ++-
>>>  target-ppc/helper.c         |   11 +
>>>  target-ppc/kvm.c            |  197 ++++++++++++++++-
>>>  target-ppc/kvm_ppc.h        |   50 +++++
>>>  target-ppc/translate.c      |  500
>>> +++++++++++++++++++++++--------------------
>>>  target-ppc/translate_init.c |   90 ++++----
>>>  15 files changed, 755 insertions(+), 329 deletions(-)
>>>
>>
>
>
Anthony Liguori Nov. 2, 2011, 8:11 p.m. UTC | #10
On 11/02/2011 02:59 PM, Blue Swirl wrote:
> On Tue, Nov 1, 2011 at 21:41, Anthony Liguori<anthony@codemonkey.ws>  wrote:
>> On 11/01/2011 04:05 PM, Blue Swirl wrote:
>>>
>>> Thanks, pulled and reverted libfdt patch.
>>
>> Er, this broke the build:
>>
>>   CC    ppc64-softmmu/spapr_pci.o
>> /home/anthony/git/qemu/hw/spapr_pci.c: In function ‘find_dev’:
>> /home/anthony/git/qemu/hw/spapr_pci.c:54:9: error: ‘struct ChildrenHead’ has
>> no member named ‘lh_first’
>> /home/anthony/git/qemu/hw/spapr_pci.c:54:9: error: ‘struct<anonymous>’ has
>> no member named ‘le_next’
>> /home/anthony/git/qemu/hw/spapr_pci.c: In function
>> ‘spapr_populate_pci_devices’:
>> /home/anthony/git/qemu/hw/spapr_pci.c:400:5: error: ‘struct ChildrenHead’
>> has no member named ‘lh_first’
>> /home/anthony/git/qemu/hw/spapr_pci.c:400:5: error: ‘struct<anonymous>’ has
>> no member named ‘le_next’
>> make[1]: *** [spapr_pci.o] Error 1
>> make: *** [subdir-ppc64-softmmu] Error 2
>>
>> This is from commit:
>>
>> commit 3384f95c59e5db381cf3e605c8acec71baf0e6b8
>> Author: David Gibson<david@gibson.dropbear.id.au>
>> Date:   Sun Oct 30 17:16:46 2011 +0000
>>
>>     pseries: Add partial support for PCI
>>
>> And specifically:
>>
>>         QLIST_FOREACH(qdev,&phb->host_state.bus->qbus.children, sibling) {
>>             PCIDevice *dev = (PCIDevice *)qdev;
>>             if (dev->devfn == devfn) {
>>                 return dev;
>>             }
>>         }
>>
>> QBus::children is a QTAILQ, not a QLIST.
>>
>> Was this code tested at all?
>
> I built it and ran a quick test for PPC.
> 7f7623662781fa152c5aa39fd63a2e8766516a2c still builds fine here.
> Though I don't have libfdt and no test for pseries.

Yeah, libfdt isn't packaged widely still so it's understandable.  We run into 
this a lot.

Pulling it in as a submodule is probably a good idea.

Regards,

Anthony Liguori
Alexander Graf Nov. 2, 2011, 8:38 p.m. UTC | #11
Blue Swirl wrote:
> On Tue, Nov 1, 2011 at 21:41, Anthony Liguori <anthony@codemonkey.ws> wrote:
>   
>> On 11/01/2011 04:05 PM, Blue Swirl wrote:
>>     
>>> Thanks, pulled and reverted libfdt patch.
>>>       
>> Er, this broke the build:
>>
>>  CC    ppc64-softmmu/spapr_pci.o
>> /home/anthony/git/qemu/hw/spapr_pci.c: In function ‘find_dev’:
>> /home/anthony/git/qemu/hw/spapr_pci.c:54:9: error: ‘struct ChildrenHead’ has
>> no member named ‘lh_first’
>> /home/anthony/git/qemu/hw/spapr_pci.c:54:9: error: ‘struct <anonymous>’ has
>> no member named ‘le_next’
>> /home/anthony/git/qemu/hw/spapr_pci.c: In function
>> ‘spapr_populate_pci_devices’:
>> /home/anthony/git/qemu/hw/spapr_pci.c:400:5: error: ‘struct ChildrenHead’
>> has no member named ‘lh_first’
>> /home/anthony/git/qemu/hw/spapr_pci.c:400:5: error: ‘struct <anonymous>’ has
>> no member named ‘le_next’
>> make[1]: *** [spapr_pci.o] Error 1
>> make: *** [subdir-ppc64-softmmu] Error 2
>>
>> This is from commit:
>>
>> commit 3384f95c59e5db381cf3e605c8acec71baf0e6b8
>> Author: David Gibson <david@gibson.dropbear.id.au>
>> Date:   Sun Oct 30 17:16:46 2011 +0000
>>
>>    pseries: Add partial support for PCI
>>
>> And specifically:
>>
>>        QLIST_FOREACH(qdev, &phb->host_state.bus->qbus.children, sibling) {
>>            PCIDevice *dev = (PCIDevice *)qdev;
>>            if (dev->devfn == devfn) {
>>                return dev;
>>            }
>>        }
>>
>> QBus::children is a QTAILQ, not a QLIST.
>>
>> Was this code tested at all?
>>     
>
> I built it and ran a quick test for PPC.
> 7f7623662781fa152c5aa39fd63a2e8766516a2c still builds fine here.
> Though I don't have libfdt and no test for pseries.
>   

Testing is easy. You can either run it without -kernel which should boot
up SLOF. Or you find a random ppc64 kernel and boot it with -kernel :).

Anthony did fix the problem immediately after though. It was basically a
merge conflict.


Alex