qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 9eff78: ppc/pnv: fix PnvChip redefinition in


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 9eff78: ppc/pnv: fix PnvChip redefinition in <hw/ppc/pnv_x...
Date: Mon, 29 Jan 2018 06:28:41 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 9eff7830c4490a1394f232937c60adff944b34fd
      
https://github.com/qemu/qemu/commit/9eff7830c4490a1394f232937c60adff944b34fd
  Author: Cédric Le Goater <address@hidden>
  Date:   2018-01-27 (Sat, 27 Jan 2018)

  Changed paths:
    M include/hw/ppc/pnv_xscom.h

  Log Message:
  -----------
  ppc/pnv: fix PnvChip redefinition in <hw/ppc/pnv_xscom.h>

This redefinition generates warnings on some clang compilers and older
gcc4.4.

...include/hw/ppc/pnv_xscom.h:24:24: warning: redefinition of typedef 'PnvChip' 
is a C11
      feature [-Wtypedef-redefinition]
typedef struct PnvChip PnvChip;
                 ^
...include/hw/ppc/pnv.h:65:3: note: previous definition is here
} PnvChip;
  ^
1 warning generated.
  CC      ppc64-softmmu/hw/ppc/pnv_xscom.o

Signed-off-by: Cédric Le Goater <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 64b47457dacc92cf3f1a9a1af243cdec3951168c
      
https://github.com/qemu/qemu/commit/64b47457dacc92cf3f1a9a1af243cdec3951168c
  Author: address@hidden <address@hidden>
  Date:   2018-01-27 (Sat, 27 Jan 2018)

  Changed paths:
    M hw/ppc/ppc405_boards.c
    M hw/ppc/ppc440_bamboo.c
    M hw/ppc/virtex_ml507.c
    M qemu-doc.texi

  Log Message:
  -----------
  ppc: Deprecate qemu-system-ppcemb

qemu-system-ppcemb has been once split of qemu-system-ppc to support
CPU page sizes < 4096 for some of the embedded 4xx PowerPC CPUs.
However, there was hardly any OS available in the wild that really
used such small page sizes (Linux uses 4096 on PPC), so there is
no known recent use case for this separate build anymore. It's
rather cumbersome to maintain a separate set of config switches for
this, and it's wasting compile and test time of all the developers
who have to build all QEMU targets to verify that their changes did
not break anything.

Except for the small CPU page sizes, qemu-system-ppc can be used as
a full replacement for qemu-system-ppcemb since it contains all the
embedded 4xx PPC boards and CPUs, too. Thus let's start the deprecation
process for qemu-system-ppcemb to see whether somebody still needs
the small page sizes or whether we could finally remove this unloved
separate build.

Signed-off-by: Thomas Huth <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: b728fbbc27c7c9012c6459c7521b867664238ffd
      
https://github.com/qemu/qemu/commit/b728fbbc27c7c9012c6459c7521b867664238ffd
  Author: Mark Cave-Ayland <address@hidden>
  Date:   2018-01-27 (Sat, 27 Jan 2018)

  Changed paths:
    M hw/pci-host/grackle.c
    M hw/pci-host/trace-events

  Log Message:
  -----------
  grackle: convert to trace-events

Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 0b0c5e90be58196c513ab495675d608ac193216d
      
https://github.com/qemu/qemu/commit/0b0c5e90be58196c513ab495675d608ac193216d
  Author: Mark Cave-Ayland <address@hidden>
  Date:   2018-01-27 (Sat, 27 Jan 2018)

  Changed paths:
    M hw/pci-host/trace-events
    M hw/pci-host/uninorth.c

  Log Message:
  -----------
  uninorth: convert to trace-events

Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: d0fcf3bde4261c5c1f56ee628a1de6814847fdc0
      
https://github.com/qemu/qemu/commit/d0fcf3bde4261c5c1f56ee628a1de6814847fdc0
  Author: Mark Cave-Ayland <address@hidden>
  Date:   2018-01-27 (Sat, 27 Jan 2018)

  Changed paths:
    M hw/input/trace-events

  Log Message:
  -----------
  input: add missing newline from trace-events

This was accidentally omitted from 77cb0f5aaf "Split adb.c into adb.c, 
adb-mouse.c
and adb-kbd.c".

Signed-off-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 9cbe305b60cc49cfcd134765b85c28be95b1b57d
      
https://github.com/qemu/qemu/commit/9cbe305b60cc49cfcd134765b85c28be95b1b57d
  Author: Greg Kurz <address@hidden>
  Date:   2018-01-29 (Mon, 29 Jan 2018)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: fix MSI/MSIX selection

In various place we don't correctly check if the device supports MSI or
MSI-X. This can cause devices to be advertised with MSI support, even
if they only support MSI-X (like virtio-pci-* devices for example):
           address@hidden {
                  ibm,req#msi = <0x1>; <--- wrong!
                        .
                        ibm,loc-code = "qemu_virtio-net-pci:0000:00:00.0";
                        .
                        ibm,req#msi-x = <0x3>;
          };

Worse, this can also cause the "ibm,change-msi" RTAS call to corrupt the
PCI status and cause migration to fail:

  qemu-system-ppc64: get_pci_config_device: Bad config data: i=0x6
    read: 0 device: 10 cmask: 10 wmask: 0 w1cmask:0
                        ^^
     PCI_STATUS_CAP_LIST bit which is assumed to be constant

This patch changes spapr_populate_pci_child_dt() to properly check for
MSI support using msi_present(): this ensures that PCIDevice::msi_cap
was set by msi_init() and that msi_nr_vectors_allocated() will look at
the right place in the config space.

Checking PCIDevice::msix_entries_nr is enough for MSI-X but let's add
a call to msix_present() there as well for consistency.

It also changes rtas_ibm_change_msi() to select the appropriate MSI
type in Function 1 instead of always selecting plain MSI. This new
behaviour is compliant with LoPAPR 1.1, as described in "Table 71.
ibm,change-msi Argument Call Buffer":

  Function 1: If Number Outputs is equal to 3, request to set to a new
     number of MSIs (including set to 0).
     If the “ibm,change-msix-capable” property exists and Number
     Outputs is equal to 4, request is to set to a new number of
     MSI or MSI-X (platform choice) interrupts (including set to
     0).

Since MSI is the the platform default (LoPAPR 6.2.3 MSI Option), let's
check for MSI support first.

And finally, it checks the input parameters are valid, as described in
LoPAPR 1.1 "R1–7.3.10.5.1–3":

  For the MSI option: The platform must return a Status of -3 (Parameter
  error) from ibm,change-msi, with no change in interrupt assignments if
  the PCI configuration address does not support MSI and Function 3 was
  requested (that is, the “ibm,req#msi” property must exist for the PCI
  configuration address in order to use Function 3), or does not support
  MSI-X and Function 4 is requested (that is, the “ibm,req#msi-x” property
  must exist for the PCI configuration address in order to use Function 4),
  or if neither MSIs nor MSI-Xs are supported and Function 1 is requested.

This ensures that the ret_intr_type variable contains a valid MSI type
for this device, and that spapr_msi_setmsg() won't corrupt the PCI status.

Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Alexey Kardashevskiy <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 8acc2ae5e91681ceda3ff4cf946ebf163f6012e9
      
https://github.com/qemu/qemu/commit/8acc2ae5e91681ceda3ff4cf946ebf163f6012e9
  Author: Suraj Jitindar Singh <address@hidden>
  Date:   2018-01-29 (Mon, 29 Jan 2018)

  Changed paths:
    M include/hw/ppc/spapr.h
    M target/ppc/kvm.c
    M target/ppc/kvm_ppc.h

  Log Message:
  -----------
  target/ppc/kvm: Add cap_ppc_safe_[cache/bounds_check/indirect_branch]

Add three new kvm capabilities used to represent the level of host support
for three corresponding workarounds.

Host support for each of the capabilities is queried through the
new ioctl KVM_PPC_GET_CPU_CHAR which returns four uint64 quantities. The
first two, character and behaviour, represent the available
characteristics of the cpu and the behaviour of the cpu respectively.
The second two, c_mask and b_mask, represent the mask of known bits for
the character and beheviour dwords respectively.

Signed-off-by: Suraj Jitindar Singh <address@hidden>
Reviewed-by: David Gibson <address@hidden>
[dwg: Correct some compile errors due to name change in final kernel
 patch version]
Signed-off-by: David Gibson <address@hidden>


  Commit: 6898aed77f4636c3e77af9c12631f583f22cb5db
      
https://github.com/qemu/qemu/commit/6898aed77f4636c3e77af9c12631f583f22cb5db
  Author: Suraj Jitindar Singh <address@hidden>
  Date:   2018-01-29 (Mon, 29 Jan 2018)

  Changed paths:
    M hw/ppc/spapr_caps.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  target/ppc/spapr_caps: Add support for tristate spapr_capabilities

spapr_caps are used to represent the level of support for various
capabilities related to the spapr machine type. Currently there is
only support for boolean capabilities.

Add support for tristate capabilities by implementing their get/set
functions. These capabilities can have the values 0, 1 or 2
corresponding to broken, workaround and fixed.

Signed-off-by: Suraj Jitindar Singh <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 8f38eaf8f9dd194c9961cf76c675724930ce4570
      
https://github.com/qemu/qemu/commit/8f38eaf8f9dd194c9961cf76c675724930ce4570
  Author: Suraj Jitindar Singh <address@hidden>
  Date:   2018-01-29 (Mon, 29 Jan 2018)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_caps.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  target/ppc/spapr_caps: Add new tristate cap safe_cache

Add new tristate cap cap-cfpc to represent the cache flush on privilege
change capability.

Signed-off-by: Suraj Jitindar Singh <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 09114fd8179977e4157b36aab2e3d68eaf08adca
      
https://github.com/qemu/qemu/commit/09114fd8179977e4157b36aab2e3d68eaf08adca
  Author: Suraj Jitindar Singh <address@hidden>
  Date:   2018-01-29 (Mon, 29 Jan 2018)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_caps.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  target/ppc/spapr_caps: Add new tristate cap safe_bounds_check

Add new tristate cap cap-sbbc to represent the speculation barrier
bounds checking capability.

Signed-off-by: Suraj Jitindar Singh <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 4be8d4e7d935fc8919d61f53a0f0fb7230052bb3
      
https://github.com/qemu/qemu/commit/4be8d4e7d935fc8919d61f53a0f0fb7230052bb3
  Author: Suraj Jitindar Singh <address@hidden>
  Date:   2018-01-29 (Mon, 29 Jan 2018)

  Changed paths:
    M hw/ppc/spapr.c
    M hw/ppc/spapr_caps.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  target/ppc/spapr_caps: Add new tristate cap safe_indirect_branch

Add new tristate cap cap-ibs to represent the indirect branch
serialisation capability.

Signed-off-by: Suraj Jitindar Singh <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: c59704b254734182c3202e0c261589ea2ccf485e
      
https://github.com/qemu/qemu/commit/c59704b254734182c3202e0c261589ea2ccf485e
  Author: Suraj Jitindar Singh <address@hidden>
  Date:   2018-01-29 (Mon, 29 Jan 2018)

  Changed paths:
    M hw/ppc/spapr_hcall.c
    M include/hw/ppc/spapr.h

  Log Message:
  -----------
  target/ppc/spapr: Add H-Call H_GET_CPU_CHARACTERISTICS

The new H-Call H_GET_CPU_CHARACTERISTICS is used by the guest to query
behaviours and available characteristics of the cpu.

Implement the handler for this new H-Call which formulates its response
based on the setting of the spapr_caps cap-cfpc, cap-sbbc and cap-ibs.

Signed-off-by: Suraj Jitindar Singh <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: fccfcc6328d1986ce849183d37901a7cf59ed3ce
      
https://github.com/qemu/qemu/commit/fccfcc6328d1986ce849183d37901a7cf59ed3ce
  Author: Peter Maydell <address@hidden>
  Date:   2018-01-29 (Mon, 29 Jan 2018)

  Changed paths:
    M hw/input/trace-events
    M hw/pci-host/grackle.c
    M hw/pci-host/trace-events
    M hw/pci-host/uninorth.c
    M hw/ppc/ppc405_boards.c
    M hw/ppc/ppc440_bamboo.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_caps.c
    M hw/ppc/spapr_hcall.c
    M hw/ppc/spapr_pci.c
    M hw/ppc/virtex_ml507.c
    M include/hw/ppc/pnv_xscom.h
    M include/hw/ppc/spapr.h
    M qemu-doc.texi
    M target/ppc/kvm.c
    M target/ppc/kvm_ppc.h

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.12-20180129' 
into staging

ppc patch queue 2018-01-29

Here's another batch of patches for ppc, spapr and related things.
Higlights:

  * Implement (with a bunch of necessary infrastructure) a hypercall
    to let guests properly apply Spectre and Meltdown workarounds.
  * Convert a number of old devices to trace events
  * Fix some bugs

# gpg: Signature made Mon 29 Jan 2018 03:27:30 GMT
# gpg:                using RSA key 0x6C38CACA20D9B392
# gpg: Good signature from "David Gibson <address@hidden>"
# gpg:                 aka "David Gibson (Red Hat) <address@hidden>"
# gpg:                 aka "David Gibson (ozlabs.org) <address@hidden>"
# gpg:                 aka "David Gibson (kernel.org) <address@hidden>"
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dgibson/tags/ppc-for-2.12-20180129:
  target/ppc/spapr: Add H-Call H_GET_CPU_CHARACTERISTICS
  target/ppc/spapr_caps: Add new tristate cap safe_indirect_branch
  target/ppc/spapr_caps: Add new tristate cap safe_bounds_check
  target/ppc/spapr_caps: Add new tristate cap safe_cache
  target/ppc/spapr_caps: Add support for tristate spapr_capabilities
  target/ppc/kvm: Add cap_ppc_safe_[cache/bounds_check/indirect_branch]
  spapr_pci: fix MSI/MSIX selection
  input: add missing newline from trace-events
  uninorth: convert to trace-events
  grackle: convert to trace-events
  ppc: Deprecate qemu-system-ppcemb
  ppc/pnv: fix PnvChip redefinition in <hw/ppc/pnv_xscom.h>

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/6233b4a8c2a3...fccfcc6328d1

reply via email to

[Prev in Thread] Current Thread [Next in Thread]