qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 5adde2: target/i386: fix operand order for PD


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 5adde2: target/i386: fix operand order for PDEP and PEXT
Date: Thu, 10 Dec 2020 08:11:35 -0800

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 5adde277f768f9dca27d87cf88901dbd77bc10d9
      
https://github.com/qemu/qemu/commit/5adde277f768f9dca27d87cf88901dbd77bc10d9
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M target/i386/translate.c
    M tests/tcg/i386/Makefile.target
    A tests/tcg/i386/test-i386-bmi2.c

  Log Message:
  -----------
  target/i386: fix operand order for PDEP and PEXT

For PDEP and PEXT, the mask is provided in the memory (mod+r/m)
operand, and therefore is loaded in s->T0 by gen_ldst_modrm.
The source is provided in the second source operand (VEX.vvvv)
and therefore is loaded in s->T1.  Fix the order in which
they are passed to the helpers.

Reported-by: Lenard Szolnoki <blog@lenardszolnoki.com>
Analyzed-by: Lenard Szolnoki <blog@lenardszolnoki.com>
Fixes: https://bugs.launchpad.net/qemu/+bug/1605123
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 34630ab949398bbc9891ec94de09af01ae6c473a
      
https://github.com/qemu/qemu/commit/34630ab949398bbc9891ec94de09af01ae6c473a
  Author: David Woodhouse <dwmw2@infradead.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/i386/kvm/apic.c
    M hw/i386/pc.c
    M include/standard-headers/asm-x86/kvm_para.h
    M target/i386/cpu.c
    M target/i386/kvm.c
    M target/i386/kvm_i386.h

  Log Message:
  -----------
  target/i386: Support up to 32768 CPUs without IRQ remapping

The IOAPIC has an 'Extended Destination ID' field in its RTE, which maps
to bits 11-4 of the MSI address. Since those address bits fall within a
given 4KiB page they were historically non-trivial to use on real hardware.

The Intel IOMMU uses the lowest bit to indicate a remappable format MSI,
and then the remaining 7 bits are part of the index.

Where the remappable format bit isn't set, we can actually use the other
seven to allow external (IOAPIC and MSI) interrupts to reach up to 32768
CPUs instead of just the 255 permitted on bare metal.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Message-Id: <78097f9218300e63e751e077a0a5ca029b56ba46.camel@infradead.org>
[Fix UBSAN warning. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Signed-off-by: David Woodhouse <dwmw2@infradead.org>


  Commit: 0ea7914eda946394490e74529c93f773e36fab8b
      
https://github.com/qemu/qemu/commit/0ea7914eda946394490e74529c93f773e36fab8b
  Author: Bin Meng <bin.meng@windriver.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M target/i386/seg_helper.c

  Log Message:
  -----------
  target/i386: seg_helper: Correct segment selector nullification in the 
RET/IRET helper

Per the SDM, when returning to outer privilege level, for segment
registers (ES, FS, GS, and DS) if the check fails, the segment
selector becomes null, but QEMU clears the base/limit/flags as well
as nullifying the segment selector, which should be a spec violation.

Real hardware seems to be compliant with the spec, at least on one
Coffee Lake board I tested.

Signed-off-by: Bin Meng <bin.meng@windriver.com>

Message-Id: <1605261378-77971-1-git-send-email-bmeng.cn@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: d6853ecb47721e040add269165dee1a6d74a0858
      
https://github.com/qemu/qemu/commit/d6853ecb47721e040add269165dee1a6d74a0858
  Author: Sunil Muthuswamy <sunilmut@microsoft.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M MAINTAINERS
    M hw/i386/x86.c
    M include/sysemu/whpx.h
    M softmmu/cpus.c
    M softmmu/vl.c
    M target/i386/cpu.c
    M target/i386/meson.build
    M target/i386/whp-dispatch.h
    M target/i386/whpx-all.c
    A target/i386/whpx-apic.c

  Log Message:
  -----------
  WHPX: support for the kernel-irqchip on/off

This patch adds support the kernel-irqchip option for
WHPX with on or off value. 'split' value is not supported
for the option. The option only works for the latest version
of Windows (ones that are coming out on Insiders). The
change maintains backward compatibility on older version of
Windows where this option is not supported.

Signed-off-by: Sunil Muthuswamy <sunilmut@microsoft.com>
Message-Id: 
<SN4PR2101MB0880B13258DA9251F8459F4DC0170@SN4PR2101MB0880.namprd21.prod.outlook.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 29d491a6e8f56003fb8aa413994cb3462db2d979
      
https://github.com/qemu/qemu/commit/29d491a6e8f56003fb8aa413994cb3462db2d979
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M docs/devel/loads-stores.rst

  Log Message:
  -----------
  docs/devel/loads-stores: Add regexp for DMA functions

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20201023151923.3243652-3-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 85631ad9694715aa9699f67ab92a3152c3556c84
      
https://github.com/qemu/qemu/commit/85631ad9694715aa9699f67ab92a3152c3556c84
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M qom/object.c

  Log Message:
  -----------
  qom: eliminate identical functions

Most property release functions in qom/object.c only free the opaque
value.  Combine all of them into a single function.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 01cb7167a15f58903ff74bbca93e019a7eed94b4
      
https://github.com/qemu/qemu/commit/01cb7167a15f58903ff74bbca93e019a7eed94b4
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/sysemu/dma.h

  Log Message:
  -----------
  dma: Document address_space_map/address_space_unmap() prototypes

Add documentation based on address_space_map / address_space_unmap.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20201023151923.3243652-4-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: a384cf737f97d683e5b7d1acb710d922bab27a62
      
https://github.com/qemu/qemu/commit/a384cf737f97d683e5b7d1acb710d922bab27a62
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/sysemu/dma.h
    M softmmu/dma-helpers.c

  Log Message:
  -----------
  dma: Let dma_memory_set() propagate MemTxResult

address_space_write() returns a MemTxResult type.
Do not discard it, return it to the caller.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20201023151923.3243652-5-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: e25b79d11b1d3f8bf121ca4c92660f75e2c69cdd
      
https://github.com/qemu/qemu/commit/e25b79d11b1d3f8bf121ca4c92660f75e2c69cdd
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/sysemu/dma.h

  Log Message:
  -----------
  dma: Let dma_memory_rw() propagate MemTxResult

address_space_rw() returns a MemTxResult type.
Do not discard it, return it to the caller.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20201023151923.3243652-6-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 37005249c4944300dd2e8f2d05214bf56f3ca8e1
      
https://github.com/qemu/qemu/commit/37005249c4944300dd2e8f2d05214bf56f3ca8e1
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/sysemu/dma.h

  Log Message:
  -----------
  dma: Let dma_memory_read() propagate MemTxResult

dma_memory_rw_relaxed() returns a MemTxResult type.
Do not discard it, return it to the caller.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20201023151923.3243652-7-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 4ca9147869156ba6a62a908bc58730213a852182
      
https://github.com/qemu/qemu/commit/4ca9147869156ba6a62a908bc58730213a852182
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/sysemu/dma.h

  Log Message:
  -----------
  dma: Let dma_memory_write() propagate MemTxResult

dma_memory_rw_relaxed() returns a MemTxResult type.
Do not discard it, return it to the caller.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20201023151923.3243652-8-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 50f176f46dc606c1e71e15c4b2d509a4d55fd42e
      
https://github.com/qemu/qemu/commit/50f176f46dc606c1e71e15c4b2d509a4d55fd42e
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/hw/pci/pci.h

  Log Message:
  -----------
  pci: Let pci_dma_rw() propagate MemTxResult

dma_memory_rw() returns a MemTxResult type.
Do not discard it, return it to the caller.

Reviewed-by: Li Qiang <liq3ea@gmail.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20201023151923.3243652-9-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 9706b64af69dab29bb015d33e319664b94200bfe
      
https://github.com/qemu/qemu/commit/9706b64af69dab29bb015d33e319664b94200bfe
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/hw/pci/pci.h

  Log Message:
  -----------
  pci: Let pci_dma_read() propagate MemTxResult

pci_dma_rw() returns a MemTxResult type.
Do not discard it, return it to the caller.

Reviewed-by: Li Qiang <liq3ea@gmail.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20201023151923.3243652-10-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 9c60ebd3cf3333e3389607e9bdc53dc2e5554c81
      
https://github.com/qemu/qemu/commit/9c60ebd3cf3333e3389607e9bdc53dc2e5554c81
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/hw/pci/pci.h

  Log Message:
  -----------
  pci: Let pci_dma_write() propagate MemTxResult

pci_dma_rw() returns a MemTxResult type.
Do not discard it, return it to the caller.

Reviewed-by: Li Qiang <liq3ea@gmail.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20201023151923.3243652-11-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 2739fb7129b023e3f99590405d5d6887542b2658
      
https://github.com/qemu/qemu/commit/2739fb7129b023e3f99590405d5d6887542b2658
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/ssi/aspeed_smc.c
    M include/hw/ssi/aspeed_smc.h

  Log Message:
  -----------
  hw/ssi/aspeed_smc: Rename 'max_slaves' variable as 'max_peripherals'

In order to use inclusive terminology, rename max_slaves
as max_peripherals.

Patch generated using:

  $ sed -i s/slave/peripheral/ \
        hw/ssi/aspeed_smc.c include/hw/ssi/aspeed_smc.h

One line in aspeed_smc_read() has been manually tweaked
to pass checkpatch.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20201012124955.3409127-2-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1c68c28a8209412886394c0d7620ee9e495db5af
      
https://github.com/qemu/qemu/commit/1c68c28a8209412886394c0d7620ee9e495db5af
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/hw/ssi/ssi.h

  Log Message:
  -----------
  hw/ssi: Update coding style to make checkpatch.pl happy

To make the next commit easier to review, clean this code first.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20201012124955.3409127-3-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 993c6c7ccbc75354dad7bac7928cb32d7d83aaa3
      
https://github.com/qemu/qemu/commit/993c6c7ccbc75354dad7bac7928cb32d7d83aaa3
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/arm/spitz.c
    M hw/arm/stellaris.c
    M hw/arm/tosa.c
    M hw/arm/z2.c
    M hw/block/m25p80.c
    M hw/display/ads7846.c
    M hw/display/ssd0323.c
    M hw/misc/max111x.c
    M hw/sd/ssi-sd.c
    M hw/ssi/pl022.c
    M hw/ssi/ssi.c
    M hw/ssi/xilinx_spips.c
    M include/hw/misc/max111x.h
    M include/hw/ssi/ssi.h

  Log Message:
  -----------
  hw/ssi: Rename SSI 'slave' as 'peripheral'

In order to use inclusive terminology, rename SSI 'slave' as
'peripheral', following the specification resolution:
https://www.oshwa.org/a-resolution-to-redefine-spi-signal-names/

Patch created mechanically using:

  $ sed -i s/SSISlave/SSIPeripheral/ $(git grep -l SSISlave)
  $ sed -i s/SSI_SLAVE/SSI_PERIPHERAL/ $(git grep -l SSI_SLAVE)
  $ sed -i s/ssi-slave/ssi-peripheral/ $(git grep -l ssi-slave)
  $ sed -i s/ssi_slave/ssi_peripheral/ $(git grep -l ssi_slave)
  $ sed -i s/ssi_create_slave/ssi_create_peripheral/ \
                                $(git grep -l ssi_create_slave)

Then in VMStateDescription vmstate_ssi_peripheral we restored
the "SSISlave" migration stream name (to avoid breaking migration).

Finally the following files have been manually tweaked:
 - hw/ssi/pl022.c
 - hw/ssi/xilinx_spips.c

Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20201012124955.3409127-4-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 9589189508fa6f0dc75d950cbf21b71a98968066
      
https://github.com/qemu/qemu/commit/9589189508fa6f0dc75d950cbf21b71a98968066
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/core/stream.c
    M hw/dma/xilinx_axidma.c
    M hw/net/xilinx_axienet.c
    M hw/ssi/xilinx_spips.c
    M include/hw/ssi/xilinx_spips.h
    M include/hw/stream.h

  Log Message:
  -----------
  hw/core/stream: Rename StreamSlave as StreamSink

In order to use inclusive terminology, rename 'slave stream'
as 'sink stream'.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Message-Id: <20200910070131.435543-3-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 83ae5b7009fd490275821831f0418f7b5cfc8c56
      
https://github.com/qemu/qemu/commit/83ae5b7009fd490275821831f0418f7b5cfc8c56
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/dma/xilinx_axidma.c

  Log Message:
  -----------
  hw/dma/xilinx_axidma: Rename StreamSlave as StreamSink

In order to use inclusive terminology, rename 'slave stream'
as 'sink stream'.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Message-Id: <20200910070131.435543-4-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 45f2eff3918b640b6318740c56640499b7acd5f1
      
https://github.com/qemu/qemu/commit/45f2eff3918b640b6318740c56640499b7acd5f1
  Author: Philippe Mathieu-Daudé <philmd@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/net/xilinx_axienet.c

  Log Message:
  -----------
  hw/net/xilinx_axienet: Rename StreamSlave as StreamSink

In order to use inclusive terminology, rename 'slave stream'
as 'sink stream'.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Message-Id: <20200910070131.435543-5-philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c547445a26d250e7334dab76ba3aafc95c180388
      
https://github.com/qemu/qemu/commit/c547445a26d250e7334dab76ba3aafc95c180388
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/alpha/dp264.c

  Log Message:
  -----------
  alpha: remove bios_name

Cc: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20201026143028.3034018-2-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1d1357ff36323945760a136c38d068ee44b0b726
      
https://github.com/qemu/qemu/commit/1d1357ff36323945760a136c38d068ee44b0b726
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/arm/cubieboard.c
    M hw/arm/highbank.c
    M hw/arm/npcm7xx_boards.c
    M hw/arm/orangepi.c
    M hw/arm/sbsa-ref.c
    M hw/arm/vexpress.c
    M hw/arm/virt.c

  Log Message:
  -----------
  arm: remove bios_name

Get the firmware name from the MachineState object.

Cc: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20201026143028.3034018-4-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: d2be1aae984efe59c7a977b2b6a0138fb0d77fc0
      
https://github.com/qemu/qemu/commit/d2be1aae984efe59c7a977b2b6a0138fb0d77fc0
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/hppa/machine.c

  Log Message:
  -----------
  hppa: remove bios_name

Cc: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20201026143028.3034018-5-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: cfde0f2507cba573d5719986ebc1d56d45806b26
      
https://github.com/qemu/qemu/commit/cfde0f2507cba573d5719986ebc1d56d45806b26
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/i386/microvm.c
    M hw/i386/pc_sysfw.c
    M hw/i386/x86.c
    M include/hw/i386/x86.h

  Log Message:
  -----------
  i386: remove bios_name

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20201026143028.3034018-6-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f1f81b9a8e746d44a09acc18704119871e94363d
      
https://github.com/qemu/qemu/commit/f1f81b9a8e746d44a09acc18704119871e94363d
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/lm32/milkymist.c

  Log Message:
  -----------
  lm32: remove bios_name

Cc: Michael Walle <michael@walle.cc>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20201026143028.3034018-7-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: a75c5f8e6d36f213248cac77672d87d9b4002402
      
https://github.com/qemu/qemu/commit/a75c5f8e6d36f213248cac77672d87d9b4002402
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/m68k/mcf5208.c
    M hw/m68k/next-cube.c
    M hw/m68k/q800.c

  Log Message:
  -----------
  m68k: remove bios_name

Cc: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20201026143028.3034018-8-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: fd7ad06bf6c131cf10da5cbaed15fd132b749b3d
      
https://github.com/qemu/qemu/commit/fd7ad06bf6c131cf10da5cbaed15fd132b749b3d
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/mips/fuloong2e.c
    M hw/mips/jazz.c
    M hw/mips/malta.c
    M hw/mips/mipssim.c

  Log Message:
  -----------
  mips: remove bios_name

Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20201026143028.3034018-9-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: d0e56f46e1dd9ff70869d69223148fc227f82644
      
https://github.com/qemu/qemu/commit/d0e56f46e1dd9ff70869d69223148fc227f82644
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/moxie/moxiesim.c

  Log Message:
  -----------
  moxie: remove bios_name

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20201026143028.3034018-10-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ac766da07581e2bfb0bd69e559f7abc7da8bd9c0
      
https://github.com/qemu/qemu/commit/ac766da07581e2bfb0bd69e559f7abc7da8bd9c0
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/ppc/e500.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c
    M hw/ppc/pnv.c
    M hw/ppc/ppc405_boards.c
    M hw/ppc/prep.c
    M hw/ppc/spapr.c

  Log Message:
  -----------
  ppc: remove bios_name

Cc: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20201026143028.3034018-11-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: fbf750ff3a1f87a7ba3e651329e84800b9af28fe
      
https://github.com/qemu/qemu/commit/fbf750ff3a1f87a7ba3e651329e84800b9af28fe
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/rx/rx-gdbsim.c
    M hw/rx/rx62n.c

  Log Message:
  -----------
  rx: move BIOS load from MCU to board

The ROM loader state is global and not part of the MCU, and the
BIOS is in machine->firmware.  So just like the kernel case,
load it in the board.

Due to the ordering between CPU reset and ROM reset, the ROM
has to be registered before the CPU is realized, otherwise
the reset vector is loaded before the ROM is there.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 17a043c0256762ec4238858b1ffd58e103c8e39b
      
https://github.com/qemu/qemu/commit/17a043c0256762ec4238858b1ffd58e103c8e39b
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/s390x/ipl.c
    M hw/s390x/s390-virtio-ccw.c

  Log Message:
  -----------
  s390: remove bios_name

Cc: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20201026143028.3034018-13-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 180cd6ac156aa14a4baf6263c4fb02e8af514805
      
https://github.com/qemu/qemu/commit/180cd6ac156aa14a4baf6263c4fb02e8af514805
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/sh4/shix.c

  Log Message:
  -----------
  sh4: remove bios_name

Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20201026143028.3034018-14-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 5c449be828e1ebcd8bd46d3da49950cd8a7196a0
      
https://github.com/qemu/qemu/commit/5c449be828e1ebcd8bd46d3da49950cd8a7196a0
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/sparc/leon3.c
    M hw/sparc/sun4m.c
    M hw/sparc64/sun4u.c

  Log Message:
  -----------
  sparc: remove bios_name

Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20201026143028.3034018-15-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 652805715e27b13f7cc5229efbdef13ca4a1de61
      
https://github.com/qemu/qemu/commit/652805715e27b13f7cc5229efbdef13ca4a1de61
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/arm/digic_boards.c

  Log Message:
  -----------
  digic: remove bios_name

Pull defaults to digic4_board_init so that a MachineState is available.

Cc: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 478ceab6d811aa65d788506bc52d671f408ae8f8
      
https://github.com/qemu/qemu/commit/478ceab6d811aa65d788506bc52d671f408ae8f8
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/sysemu/sysemu.h
    M softmmu/vl.c

  Log Message:
  -----------
  vl: remove bios_name

bios_name was a legacy variable used by machine code, but it is
no more.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20201026143028.3034018-16-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 8b45e9ae72023895c405acee99fbf9da78401325
      
https://github.com/qemu/qemu/commit/8b45e9ae72023895c405acee99fbf9da78401325
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/arm/aspeed.c
    M hw/display/pxa2xx_lcd.c
    M target/arm/arm-semi.c

  Log Message:
  -----------
  arm: do not use ram_size global

Use the machine properties instead.

Cc: qemu-ppc@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 46e61bc8719d13d27f0e92717e6f6052f2c6292e
      
https://github.com/qemu/qemu/commit/46e61bc8719d13d27f0e92717e6f6052f2c6292e
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/cris/axis_dev88.c
    M hw/cris/boot.c
    M hw/cris/boot.h

  Log Message:
  -----------
  cris: do not use ram_size global

Use the machine properties instead.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 717ad4688263a2ba3d5035c7667655dbb4246e52
      
https://github.com/qemu/qemu/commit/717ad4688263a2ba3d5035c7667655dbb4246e52
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/hppa/machine.c

  Log Message:
  -----------
  hppa: do not use ram_size global

Use the machine properties instead.

Cc: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ae30e466dadd2d09c564e6a890986cadc74eef0c
      
https://github.com/qemu/qemu/commit/ae30e466dadd2d09c564e6a890986cadc74eef0c
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/i386/fw_cfg.c
    M hw/i386/vmport.c
    M hw/i386/xen/xen-hvm.c
    M hw/intc/apic_common.c
    M hw/smbios/smbios.c

  Log Message:
  -----------
  i386: do not use ram_size global

Use the loader parameters instead.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1e7aa00ecf226b671b9bfd45b2af97946fe7d858
      
https://github.com/qemu/qemu/commit/1e7aa00ecf226b671b9bfd45b2af97946fe7d858
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/m68k/mcf5206.c
    M hw/m68k/mcf5208.c
    M target/m68k/m68k-semi.c

  Log Message:
  -----------
  m68k: do not use ram_size global

Use the machine properties instead.

Cc: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: d8e02fe060bd15a22aec54590f3b82a7414f32e9
      
https://github.com/qemu/qemu/commit/d8e02fe060bd15a22aec54590f3b82a7414f32e9
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/microblaze/boot.c

  Log Message:
  -----------
  microblaze: do not use ram_size global

Use the equivalent argument to the function instead.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 4c3852ee9d659c42e96fe909f06aa58cfb2520a1
      
https://github.com/qemu/qemu/commit/4c3852ee9d659c42e96fe909f06aa58cfb2520a1
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/mips/fuloong2e.c
    M hw/mips/malta.c

  Log Message:
  -----------
  mips: do not use ram_size global

Use the machine properties or loader parameters instead.

Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 0616cdb91c0e966f3db30fc0a9f8b5bf602e9876
      
https://github.com/qemu/qemu/commit/0616cdb91c0e966f3db30fc0a9f8b5bf602e9876
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/moxie/moxiesim.c

  Log Message:
  -----------
  moxie: do not use ram_size global

Use the loader parameters instead.

Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 24cf5208e20935ec25e143b4318db06670b9b630
      
https://github.com/qemu/qemu/commit/24cf5208e20935ec25e143b4318db06670b9b630
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/nios2/boot.c

  Log Message:
  -----------
  nios2: do not use ram_size global

Use the equivalent argument to the function instead.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 4efc80ce826705de66d2eff5a64b041f22071d6f
      
https://github.com/qemu/qemu/commit/4efc80ce826705de66d2eff5a64b041f22071d6f
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/ppc/prep.c
    M hw/ppc/spapr_vio.c

  Log Message:
  -----------
  ppc: do not use ram_size global

Use the machine properties instead.

Cc: qemu-ppc@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: e6434d9b498783cc7181de04c1a7b49e8549ed48
      
https://github.com/qemu/qemu/commit/e6434d9b498783cc7181de04c1a7b49e8549ed48
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/riscv/boot.c

  Log Message:
  -----------
  riscv: do not use ram_size global

Use the machine properties instead.

Cc: Alistair Francis <Alistair.Francis@wdc.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 87361cb4c501a109a64400844ca437c5355e5772
      
https://github.com/qemu/qemu/commit/87361cb4c501a109a64400844ca437c5355e5772
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/s390x/ipl.c
    M hw/s390x/s390-skeys.c
    M hw/s390x/s390-virtio-ccw.c
    M target/s390x/excp_helper.c
    M target/s390x/mem_helper.c
    M target/s390x/mmu_helper.c

  Log Message:
  -----------
  s390x: do not use ram_size global

Use the machine properties instead.

Cc: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 59886a468fbc6d3cc1e855346a0bd496b60f9c80
      
https://github.com/qemu/qemu/commit/59886a468fbc6d3cc1e855346a0bd496b60f9c80
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/sparc64/sparc64.c
    M hw/sparc64/sun4u.c

  Log Message:
  -----------
  sparc64: do not use ram_size global

Use the machine properties instead.

Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 8be1156f4fcfacd8e882dc693fb43ac156d55eaf
      
https://github.com/qemu/qemu/commit/8be1156f4fcfacd8e882dc693fb43ac156d55eaf
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/core/generic-loader.c
    M hw/core/numa.c
    M hw/virtio/virtio-balloon.c
    M include/exec/cpu-common.h
    M monitor/qmp-cmds.c
    M softmmu/vl.c

  Log Message:
  -----------
  make ram_size local to vl.c

Use the machine properties for the leftovers too.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: e55052c4103b731083e1b7844162d1b7116caaa0
      
https://github.com/qemu/qemu/commit/e55052c4103b731083e1b7844162d1b7116caaa0
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/char/serial.c

  Log Message:
  -----------
  hw/char/serial: Clean up unnecessary code

Since commit 5ec3a23e6c8 ("serial: convert PIO to new memory
api read/write") we don't need to worry about accesses bigger
than 8-bit. Use the extract()/deposit() functions to access
the correct part of the 16-bit 'divider' register.

Reported-by: Jonathan D. Belanger <jbelanger1@rochester.rr.com>
Buglink: https://bugs.launchpad.net/qemu/+bug/1904331
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20201120161933.2514089-1-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 01f72e36c54bf11fa4f3667b2a8304df3fc195be
      
https://github.com/qemu/qemu/commit/01f72e36c54bf11fa4f3667b2a8304df3fc195be
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M docs/specs/tpm.rst
    M python/qemu/machine.py
    M qemu-options.hx
    M tests/qtest/bios-tables-test.c
    M tests/qtest/pflash-cfi02-test.c
    M tests/qtest/test-filter-redirector.c
    M tests/qtest/vhost-user-test.c
    M tests/test-char.c

  Log Message:
  -----------
  treewide: do not use short-form boolean options

They are going to be deprecated, avoid warnings on stdout while the
tests run.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 660bdff24d59cbc501e7a82478976bb39da0c880
      
https://github.com/qemu/qemu/commit/660bdff24d59cbc501e7a82478976bb39da0c880
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/core/machine.c
    M include/hw/boards.h
    M softmmu/vl.c

  Log Message:
  -----------
  vl: extract validation of -smp to machine.c

Once smp_parse is done, the validation operates on the MachineState.
There is no reason for that code to be in vl.c.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 4a8d3b30c91c61d0fff15f43a95210de39be0aa5
      
https://github.com/qemu/qemu/commit/4a8d3b30c91c61d0fff15f43a95210de39be0aa5
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: remove bogus check

There is no reason to prevent -preconfig -daemonize.  Of course if
no monitor is defined there will be no way to start the VM,
but that is a user error.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 0741d75a1c372630f0e64541a461510d577fb840
      
https://github.com/qemu/qemu/commit/0741d75a1c372630f0e64541a461510d577fb840
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: split various early command line options to a separate function

Various options affect the global state of QEMU including the rest of
qemu_init, and they need to be called very early.  Group them together
in a function that is called at the beginning.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: bb4e9ab83f2291474c5f4251e6c15afb1134cccb
      
https://github.com/qemu/qemu/commit/bb4e9ab83f2291474c5f4251e6c15afb1134cccb
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/core/machine.c
    M include/hw/qdev-core.h
    M migration/migration.c
    M softmmu/qdev-monitor.c
    M softmmu/vl.c

  Log Message:
  -----------
  vl: move various initialization routines out of qemu_init

Some very simple initialization routines can be nested in existing
subsystem-level functions, do that to simplify qemu_init.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 73283f781b60cd8067d21a8244a35c50faaed3e4
      
https://github.com/qemu/qemu/commit/73283f781b60cd8067d21a8244a35c50faaed3e4
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: extract qemu_init_subsystems

Group a bunch of subsystem initializations that can be done right
after command line parsing.  Remove initializations that can be done
simply as global variable initializers.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c27565a374e20b17863348f1add4ff2a85edb57e
      
https://github.com/qemu/qemu/commit/c27565a374e20b17863348f1add4ff2a85edb57e
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: move prelaunch part of qemu_init to new functions

The final part of qemu_init, starting with the completion of
board init, is already relatively clean.  Split it out of
qemu_init so that qemu_init keeps only the messy parts.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 3c338fdcbbdf54eaece7d5a029b408d4995c5312
      
https://github.com/qemu/qemu/commit/3c338fdcbbdf54eaece7d5a029b408d4995c5312
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/core/machine.c
    M softmmu/vl.c

  Log Message:
  -----------
  vl: extract various command line validation snippets to a new function

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f62acd7d60c49b6c20e3be291631deae0b0d8072
      
https://github.com/qemu/qemu/commit/f62acd7d60c49b6c20e3be291631deae0b0d8072
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: preconfig and loadvm are mutually exclusive

Just like -incoming.  Later we will add support for "-incoming defer
-preconfig", because there are cases (Xen, block layer) that want
to look at RUNSTATE_INMIGRATE.  -loadvm will remain mutually exclusive
with preconfig; the plan is to just do loadvm in the monitor, since
the user is already going to interact with it for preconfiguration.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 2521a464b98410111d1f72bec0872b197777efeb
      
https://github.com/qemu/qemu/commit/2521a464b98410111d1f72bec0872b197777efeb
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: extract various command line desugaring snippets to a new function

Keep the machine initialization sequence free of miscellaneous command
line parsing actions.

The only difference is that preallocation will always be done with one
thread if -smp is not provided; previously it was using mc->default_cpus,
which is almost always 1 anyway.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 8fe6d87720e58abde464c732194df6397b4466f0
      
https://github.com/qemu/qemu/commit/8fe6d87720e58abde464c732194df6397b4466f0
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/qemu/option.h
    M softmmu/vl.c
    M tests/test-qemu-opts.c
    M util/qemu-option.c

  Log Message:
  -----------
  qemu-option: restrict qemu_opts_set to merge-lists QemuOpts

qemu_opts_set is used to create default network backends and to
parse sugar options -kernel, -initrd, -append, -bios and -dtb.
These are very different uses:

I would *expect* a function named qemu_opts_set to set an option in a
merge-lists QemuOptsList, such as -kernel, and possibly to set an option
in a non-merge-lists QemuOptsList with non-NULL id, similar to -set.

However, it wouldn't *work* to use qemu_opts_set for the latter
because qemu_opts_set uses fail_if_exists==1. So, for non-merge-lists
QemuOptsList and non-NULL id, the semantics of qemu_opts_set (fail if the
(QemuOptsList, id) pair already exists) are debatable.

On the other hand, I would not expect qemu_opts_set to create a
non-merge-lists QemuOpts with a single option; which it does, though.
For this case of non-merge-lists QemuOptsList and NULL id, qemu_opts_set
hardly adds value over qemu_opts_parse.  It does skip some parsing and
unescaping, but that's not needed when creating default network
backends.

So qemu_opts_set has warty behavior for non-merge-lists QemuOptsList
if id is non-NULL, and it's mostly pointless if id is NULL.  My
solution to keeping the API as simple as possible is to limit
qemu_opts_set to merge-lists QemuOptsList.  For them, it's useful (we
don't want comma-unescaping for -kernel) *and* has sane semantics.
Network backend creation is switched to qemu_opts_parse.

qemu_opts_set is now only used on merge-lists QemuOptsList... except
in the testcase, which is changed to use a merge-list QemuOptsList.

With this change we can also remove the id parameter.  With the
parameter always NULL, we know that qemu_opts_create cannot fail
and can pass &error_abort to it.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 62490d854210372e5df3b22b27eb46fb60fa82c5
      
https://github.com/qemu/qemu/commit/62490d854210372e5df3b22b27eb46fb60fa82c5
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: create "-net nic -net user" default earlier

Create it together with other default backends, even though the processing is
done later.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 98a87c275b421a03fa27ff59b4f3f4d170dda31a
      
https://github.com/qemu/qemu/commit/98a87c275b421a03fa27ff59b4f3f4d170dda31a
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: load plugins as late as possible

There is no need to load plugins in the middle of default device processing,
move -plugin handling just before preconfig is entered.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 5c042cdcbc215c0e140a35244d770cbe23beda2d
      
https://github.com/qemu/qemu/commit/5c042cdcbc215c0e140a35244d770cbe23beda2d
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: extract default devices to separate functions

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 3fbd693d1004ea357bc9cc78975d212f77f19c52
      
https://github.com/qemu/qemu/commit/3fbd693d1004ea357bc9cc78975d212f77f19c52
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/core/machine.c
    M softmmu/vl.c

  Log Message:
  -----------
  vl: move CHECKPOINT_INIT after preconfig

Move CHECKPOINT_INIT right before the machine initialization is
completed.  Everything before is essentially an extension of
command line parsing.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 8a9ae663a64f0a12fcbd10393c9dcff631824a41
      
https://github.com/qemu/qemu/commit/8a9ae663a64f0a12fcbd10393c9dcff631824a41
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: separate qemu_create_early_backends

"Early" backends are created before the machine and can be used as
machine options.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 80c3a11e370dcf308d2a06428600ea07d361e86b
      
https://github.com/qemu/qemu/commit/80c3a11e370dcf308d2a06428600ea07d361e86b
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: separate qemu_create_late_backends

"Late" backends are created after the machine.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: cc52f3c64528f9ce860722d5ef6258db2137683c
      
https://github.com/qemu/qemu/commit/cc52f3c64528f9ce860722d5ef6258db2137683c
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: separate qemu_create_machine

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f42f8e6e68cb5457887594df906908370187f8bf
      
https://github.com/qemu/qemu/commit/f42f8e6e68cb5457887594df906908370187f8bf
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: separate qemu_apply_machine_options

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f802645c7d36b2015b3c4f7f30b2dc50cf9b3ed1
      
https://github.com/qemu/qemu/commit/f802645c7d36b2015b3c4f7f30b2dc50cf9b3ed1
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: separate qemu_resolve_machine_memdev

This is a bit nasty: the machine is storing a string and later
resolving it.  We probably want to remove the memdev property
and instead make this a memory-set command.  "-M memdev" can be
handled a legacy option that is special cased by
machine_set_property.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 847f878ad38fa83615a7b23fcc2b405d4b1b8797
      
https://github.com/qemu/qemu/commit/847f878ad38fa83615a7b23fcc2b405d4b1b8797
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: initialize displays before preconfig loop

Displays should be available before the monitor starts, so that
it is possible to use the graphical console to interact with
the monitor itself.

This patch is quite ugly, but all this is temporary.  The double
call to qemu_init_displays will go away as soon we can unify machine
initialization between the preconfig and "normal" flows, and so will
the preconfig_exit_requested variable (that is only preconfig_requested
remains).

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 5242c70bd3a62439b58a6a948874d7990baee39e
      
https://github.com/qemu/qemu/commit/5242c70bd3a62439b58a6a948874d7990baee39e
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: move -global check earlier

The check has the same effect here, it only matters that it is performed
once all devices, both builtin and user-specified, have been created.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 1509e7c5971743cb41d83642b3bc73acd9314145
      
https://github.com/qemu/qemu/commit/1509e7c5971743cb41d83642b3bc73acd9314145
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/migration/misc.h
    M migration/migration.c
    M softmmu/vl.c

  Log Message:
  -----------
  migration, vl: start migration via qmp_migrate_incoming

Make qemu_start_incoming_migration local to migration/migration.c.
By using the runstate instead of a separate flag, vl need not do
anything to setup deferred incoming migration.

qmp_migrate_incoming also does not need the deferred_incoming flag
anymore, because "-incoming PROTOCOL" will clear the "once" flag
before the main loop starts.  Therefore, later invocations of
the migrate-incoming command will fail with the existing
"The incoming migration has already been started" error message.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 6f0f05588926e95e0f11462eeb8256cf8e757d8f
      
https://github.com/qemu/qemu/commit/6f0f05588926e95e0f11462eeb8256cf8e757d8f
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl: start VM via qmp_cont

Complement the previous patch by starting the VM with a QMP command.
The plan is that the user will be able to do the same, invoking two
commands "finish-machine-init" and "cont" instead of
"x-exit-preconfig".

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c9b367f44b21bcc85c304ba8568f5b0c429c511d
      
https://github.com/qemu/qemu/commit/c9b367f44b21bcc85c304ba8568f5b0c429c511d
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M monitor/hmp.c

  Log Message:
  -----------
  hmp: introduce cmd_available

Combine the RUN_STATE_PRECONFIG and cmd_can_preconfig checks
into a single function, to avoid repeating the same expression
(or its negation after applying DeMorgan's rule) over and
over again.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: d2f1665380ee9b0d335140346d465667487ed715
      
https://github.com/qemu/qemu/commit/d2f1665380ee9b0d335140346d465667487ed715
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/alpha/dp264.c
    M hw/arm/boot.c
    M hw/arm/digic_boards.c
    M hw/arm/highbank.c
    M hw/arm/npcm7xx_boards.c
    M hw/arm/sbsa-ref.c
    M hw/arm/vexpress.c
    M hw/arm/virt.c
    M hw/avr/boot.c
    M hw/core/loader.c
    M hw/display/cg3.c
    M hw/display/tcx.c
    M hw/hppa/machine.c
    M hw/i386/x86.c
    M hw/lm32/milkymist.c
    M hw/m68k/mcf5208.c
    M hw/m68k/q800.c
    M hw/microblaze/boot.c
    M hw/mips/fuloong2e.c
    M hw/mips/jazz.c
    M hw/mips/malta.c
    M hw/mips/mipssim.c
    M hw/nios2/boot.c
    M hw/nvram/fw_cfg.c
    M hw/pci-host/prep.c
    M hw/pci/pci.c
    M hw/ppc/e500.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c
    M hw/ppc/pnv.c
    M hw/ppc/ppc405_boards.c
    M hw/ppc/ppc440_bamboo.c
    M hw/ppc/sam460ex.c
    M hw/ppc/spapr.c
    M hw/ppc/virtex_ml507.c
    M hw/riscv/boot.c
    M hw/s390x/ipl.c
    M hw/sparc/leon3.c
    M hw/sparc/sun4m.c
    M hw/sparc64/sun4u.c
    M include/qemu-common.h
    A include/qemu/datadir.h
    M include/sysemu/sysemu.h
    A softmmu/datadir.c
    M softmmu/meson.build
    M softmmu/vl.c
    M tests/qtest/fuzz/fuzz.c
    M ui/keymaps.c

  Log Message:
  -----------
  vl: extract softmmu/datadir.c

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c18d39736394d3f6eaada7b7277c3faa22d32158
      
https://github.com/qemu/qemu/commit/c18d39736394d3f6eaada7b7277c3faa22d32158
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/core/machine.c
    M include/sysemu/sysemu.h
    M softmmu/vl.c

  Log Message:
  -----------
  vl: extract machine done notifiers

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 3806b8e6248267739a5af737bf3603ed8e0020cd
      
https://github.com/qemu/qemu/commit/3806b8e6248267739a5af737bf3603ed8e0020cd
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/sysemu/sysemu.h
    M softmmu/meson.build
    A softmmu/rtc.c
    M softmmu/vl.c

  Log Message:
  -----------
  vl: extract softmmu/rtc.c

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: a3a0b977db2ded042313a8b60aa20c67b45fabc3
      
https://github.com/qemu/qemu/commit/a3a0b977db2ded042313a8b60aa20c67b45fabc3
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M hw/ppc/spapr.c
    M include/sysemu/sysemu.h
    M softmmu/vl.c

  Log Message:
  -----------
  vl: remove serial_max_hds

serial_hd(i) is NULL if and only if i >= serial_max_hds().  Test
serial_hd(i) instead of bounding the loop at serial_max_hds(),
thus removing one more function that vl.c is expected to export.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 0ea5a278684989d7d5f835996c952bf2876a09fd
      
https://github.com/qemu/qemu/commit/0ea5a278684989d7d5f835996c952bf2876a09fd
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/hw/boards.h
    M softmmu/vl.c

  Log Message:
  -----------
  vl: clean up -boot variables

Move more of them into MachineState, in preparation for moving initialization
of the machine out of vl.c.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 23a1017463f0a7249447d71d9618ca988a8ec75d
      
https://github.com/qemu/qemu/commit/23a1017463f0a7249447d71d9618ca988a8ec75d
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M include/qemu/config-file.h
    M softmmu/vl.c
    M util/qemu-config.c

  Log Message:
  -----------
  config-file: move -set implementation to vl.c

We want to make it independent of QemuOpts.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 9c38118c4fe4db3198a06923d73b788fa2e9b3f8
      
https://github.com/qemu/qemu/commit/9c38118c4fe4db3198a06923d73b788fa2e9b3f8
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M docs/sphinx/kerneldoc.py

  Log Message:
  -----------
  docs: temporarily disable the kernel-doc extension

Preserve bisectability while we update scripts/kernel-doc from Linux.
Without this patch, building with Sphinx 3 would break while we
revert our own Sphinx 3 support and replace it with Linux's.

Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 08fd283c63c485a5ee85570ddf68de6d4383b48b
      
https://github.com/qemu/qemu/commit/08fd283c63c485a5ee85570ddf68de6d4383b48b
  Author: André Almeida <andrealmeid@collabora.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  kernel-doc: fix processing nested structs with attributes

The current regular expression for strip attributes of structs (and
for nested ones as well) also removes all whitespaces that may
surround the attribute. After that, the code will split structs and
iterate for each symbol separated by comma at the end of struct
definition (e.g. "} alias1, alias2;"). However, if the nested struct
does not have any alias and has an attribute, it will result in a
empty string at the closing bracket (e.g "};"). This will make the
split return nothing and $newmember will keep uninitialized. Fix
that, by ensuring that the attribute substitution will leave at least
one whitespace.

Signed-off-by: André Almeida <andrealmeid@collabora.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-2-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 46666343758e6df1ceb319541e1b2ad5db1300b2
      
https://github.com/qemu/qemu/commit/46666343758e6df1ceb319541e1b2ad5db1300b2
  Author: André Almeida <andrealmeid@collabora.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  kernel-doc: add support for ____cacheline_aligned_in_smp attribute

Subroutine dump_struct uses type attributes to check if the struct
syntax is valid. Then, it removes all attributes before using it for
output. `____cacheline_aligned_in_smp` is an attribute that is
not included in both steps. Add it, since it is used by kernel structs.

Signed-off-by: André Almeida <andrealmeid@collabora.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-3-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: dc99dfa36796f75ffa58a26f952b5a94efd88dd2
      
https://github.com/qemu/qemu/commit/dc99dfa36796f75ffa58a26f952b5a94efd88dd2
  Author: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts/kernel-doc: Add support for named variable macro arguments

Currently, when kernel-doc encounters a macro with a named variable
argument[1], such as this:

   #define hlist_for_each_entry_rcu(pos, head, member, cond...)

... it expects the variable argument to be documented as `cond...`,
rather than `cond`. This is semantically wrong, because the name (as
used in the macro body) is actually `cond`.

With this patch, kernel-doc will accept the name without dots (`cond`
in the example above) in doc comments, and warn if the name with dots
(`cond...`) is used and verbose mode[2] is enabled.

The support for the `cond...` syntax can be removed later, when the
documentation of all such macros has been switched to the new syntax.

Testing this patch on top of v5.4-rc6, `make htmldocs` shows a few
changes in log output and HTML output:

 1) The following warnings[3] are eliminated:

   ./include/linux/rculist.h:374: warning:
        Excess function parameter 'cond' description in 
'list_for_each_entry_rcu'
   ./include/linux/rculist.h:651: warning:
        Excess function parameter 'cond' description in 
'hlist_for_each_entry_rcu'

 2) For list_for_each_entry_rcu and hlist_for_each_entry_rcu, the
    correct description is shown

 3) Named variable arguments are shown without dots

[1]: https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
[2]: scripts/kernel-doc -v
[3]: See also 
https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=dev&id=5bc4bc0d6153617eabde275285b7b5a8137fdf3c

Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Tested-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-4-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 9e2def7bc75baa12ac6b8dc9ec2f8de305c24a29
      
https://github.com/qemu/qemu/commit/9e2def7bc75baa12ac6b8dc9ec2f8de305c24a29
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: proper handle @foo->bar()

The pattern @foo->bar() is valid, as it can be used by a
function pointer inside a struct passed as a parameter.

Right now, it causes a warning:

        ./drivers/firewire/core-transaction.c:606: WARNING: Inline strong 
start-string without end-string.

In this specific case, the kernel-doc markup is:

        /**
         * fw_core_remove_address_handler() - unregister an address handler
         * @handler: callback
         *
         * To be called in process context.
         *
         * When fw_core_remove_address_handler() returns, @handler->callback() 
is
         * guaranteed to not run on any CPU anymore.
         */

With seems valid on my eyes. So, instead of trying to hack
the kernel-doc markup, let's teach it about how to handle
such things. This should likely remove lots of other similar
warnings as well.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: 
https://lore.kernel.org/r/48b46426d7bf6ff7529f20e5718fbf4e9758e62c.1586881715.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-5-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 58f75af471d79c93348f250a058cc7fb94fede22
      
https://github.com/qemu/qemu/commit/58f75af471d79c93348f250a058cc7fb94fede22
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: accept negation like !@var

On a few places, it sometimes need to indicate a negation of a
parameter, like:

        !@fshared

This pattern happens, for example, at:

        kernel/futex.c

and it is perfectly valid. However, kernel-doc currently
transforms it into:

        !**fshared**

This won't do what it would be expected.

Fortunately, fixing the script is a simple matter of storing
the "!" before "@" and adding it after the bold markup, like:

        **!fshared**

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: 
https://lore.kernel.org/r/0314b47f8c3e1f9db00d5375a73dc3cddd8a21f2.1586881715.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-6-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 6d6d27daa38e027541a4b1c458f459f10523b77d
      
https://github.com/qemu/qemu/commit/6d6d27daa38e027541a4b1c458f459f10523b77d
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: accept blank lines on parameter description

Sphinx is very pedantic with respect to blank lines. Sometimes,
in order to make it to properly handle something, we need to
add a blank line. However, currently, any blank line inside a
kernel-doc comment like:

        /*
         * @foo: bar
         *
         *       foobar
         *
         * some description

will be considered as if "foobar" was part of the description.

This patch changes kernel-doc behavior. After it, foobar will
be considered as part of the parameter text. The description
will only be considered as such if it starts with:

zero spaces after asterisk:

        *foo

one space after asterisk:
        * foo

or have a explicit Description section:

        *   Description:

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: 
https://lore.kernel.org/r/c07d2862792d75a2691d69c9eceb7b89a0164cc0.1586881715.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-7-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: a8b9dae78b571c194a7f16e0431233ade34518d0
      
https://github.com/qemu/qemu/commit/a8b9dae78b571c194a7f16e0431233ade34518d0
  Author: Alexander A. Klimov <grandmaster@al2klimov.de>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  Replace HTTP links with HTTPS ones: documentation

Rationale:
Reduces attack surface on kernel devs opening the links for MITM
as HTTPS traffic is much harder to manipulate.

Deterministic algorithm:
For each file:
  For each line:
    If doesn't contain `\bxmlns\b`:
      For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`:
        If both the HTTP and HTTPS versions
        return 200 OK and serve the same content:
          Replace HTTP with HTTPS.

Signed-off-by: Alexander A. Klimov <grandmaster@al2klimov.de>
Link: https://lore.kernel.org/r/20200526060544.25127-1-grandmaster@al2klimov.de
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-8-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 30f51780305c72bb8e0b380a23792151f9797abd
      
https://github.com/qemu/qemu/commit/30f51780305c72bb8e0b380a23792151f9797abd
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts/kernel-doc: parse __ETHTOOL_DECLARE_LINK_MODE_MASK

The __ETHTOOL_DECLARE_LINK_MODE_MASK macro is a variant of
DECLARE_BITMAP(), used by phylink.h. As we have already a
parser for DECLARE_BITMAP(), let's add one for this macro,
in order to avoid such warnings:

        ./include/linux/phylink.h:54: warning: Function parameter or member 
'__ETHTOOL_DECLARE_LINK_MODE_MASK(advertising' not described in 
'phylink_link_state'
        ./include/linux/phylink.h:54: warning: Function parameter or member 
'__ETHTOOL_DECLARE_LINK_MODE_MASK(lp_advertising' not described in 
'phylink_link_state'

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: 
https://lore.kernel.org/r/d1d1dea67a28117c0b0c33271b139c4455fef287.1592895969.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-9-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 0c9e28aaaf7ad1f9861301885efffc581374029e
      
https://github.com/qemu/qemu/commit/0c9e28aaaf7ad1f9861301885efffc581374029e
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts/kernel-doc: handle function pointer prototypes

There are some function pointer prototypes inside the net
includes, like this one:

        int (*pcs_config)(struct phylink_config *config, unsigned int mode,
                          phy_interface_t interface, const unsigned long 
*advertising);

There's nothing wrong using it with kernel-doc, but we need to
add a rule for it to parse such kind of prototype.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: 
https://lore.kernel.org/r/fec520dd731a273013ae06b7653a19c7d15b9562.1592895969.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-10-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 56dcb8d8d007a5728ec1920b5f70b6e0acd1d812
      
https://github.com/qemu/qemu/commit/56dcb8d8d007a5728ec1920b5f70b6e0acd1d812
  Author: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts/kernel-doc: optionally treat warnings as errors

The kbuild bot recently added the W=1 option, which triggered
documentation cleanups to squelch hundreds of kernel-doc warnings.

To make sure new kernel contributions don't add regressions to
kernel-doc descriptors, this patch suggests an option to treat
warnings as errors in CI/automated tests.

A -Werror command-line option is added to the kernel-doc script. When
this option is set, the script will return the number of warnings
found. The caller can then treat this positive return value as an
error and stop the build.

Using this command line option is however not straightforward when the
kernel-doc script is called from other scripts. To align with typical
kernel compilation or documentation generation, the Werror option is
also set by checking the KCFLAGS environment variable, or if
KDOC_WERROR is defined, as in the following examples:

KCFLAGS="-Wall -Werror" make W=1 sound/
KCFLAGS="-Wall -Werror" make W=1 drivers/soundwire/
KDOC_WERROR=1 make htmldocs

Note that in the last example the documentation build does not stop,
only an additional log is provided.

Credits to Randy Dunlap for suggesting the use of environment variables.

Suggested-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: 
https://lore.kernel.org/r/20200728162040.92467-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-11-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: c0a1034f16e6b7763d6d50d436a6cb441b1c6f9f
      
https://github.com/qemu/qemu/commit/c0a1034f16e6b7763d6d50d436a6cb441b1c6f9f
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  kernel-doc: include line numbers for function prototypes

This should solve bad error reports like this one:

        ./include/linux/iio/iio.h:0: WARNING: Unknown target name: "devm".

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: 
https://lore.kernel.org/r/56eed0ba50cd726236acd12b11b55ce54854c5ea.1599660067.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-12-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f38bd16f517e97662c8bb4df49ad79d39171e51f
      
https://github.com/qemu/qemu/commit/f38bd16f517e97662c8bb4df49ad79d39171e51f
  Author: Jonathan Cameron <Jonathan.Cameron@huawei.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  kernel-doc: add support for ____cacheline_aligned attribute

Subroutine dump_struct uses type attributes to check if the struct
syntax is valid. Then, it removes all attributes before using it for
output. `____cacheline_aligned` is an attribute that is
not included in both steps. Add it, since it is used by kernel structs.

Based on previous patch to add ____cacheline_aligned_in_smp.
Motivated by patches to reorder this attribute to before the
variable name.   Whilst we could do that in all cases, that would
be a massive change and it is more common in the kernel to place
this particular attribute after the variable name. A quick grep
suggests approximately 400 instances of which 341 have this
attribute just before a semicolon and hence after the variable name.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20200910185415.653139-1-jic23@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-13-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 4e959558c7f7c4b0e4acdc853b1e34ef539812f6
      
https://github.com/qemu/qemu/commit/4e959558c7f7c4b0e4acdc853b1e34ef539812f6
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: add support for typedef enum

The PHY kernel-doc markup has gained support for documenting
a typedef enum.

However, right now the parser was not prepared for it.

So, add support for parsing it.

Fixes: 4069a572d423 ("net: phy: Document core PHY structures")
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-14-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f0b298a8f962e5adc6f94f18a6c1414cc8d04d24
      
https://github.com/qemu/qemu/commit/f0b298a8f962e5adc6f94f18a6c1414cc8d04d24
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  Revert "scripts/kerneldoc: For Sphinx 3 use c:macro for macros with arguments"

This reverts commit 92bb29f9b2c3d4a98eef5f0db935d4be291eec72.
We will replace the commit with the fix from Linux.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-15-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 06bd51bda7d7d41890d8e46f7cc5c4a63b6f9a02
      
https://github.com/qemu/qemu/commit/06bd51bda7d7d41890d8e46f7cc5c4a63b6f9a02
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M docs/sphinx/kerneldoc.py
    M scripts/kernel-doc

  Log Message:
  -----------
  Revert "kernel-doc: Use c:struct for Sphinx 3.0 and later"

This reverts commit 152d1967f650f67b7ece3a5dda77d48069d72647.
We will replace the commit with the fix from Linux.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-16-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 268433cbb2018eedd01d81ed72d4eca7384d3558
      
https://github.com/qemu/qemu/commit/268433cbb2018eedd01d81ed72d4eca7384d3558
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: make it more compatible with Sphinx 3.x

With Sphinx 3.x, the ".. c:type:" tag was changed to accept either:

        .. c:type:: typedef-like declaration
        .. c:type:: name

Using it for other types (including functions) don't work anymore.

So, there are newer tags for macro, enum, struct, union, and others,
which doesn't exist on older versions.

Add a check for the Sphinx version and change the produced tags
accordingly.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-17-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 32828ca44503f07e2749ddc15cb6dfee03c6b1e9
      
https://github.com/qemu/qemu/commit/32828ca44503f07e2749ddc15cb6dfee03c6b1e9
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: use a less pedantic markup for funcs on Sphinx 3.x

Unfortunately, Sphinx 3.x parser for c functions is too pedantic:

        https://github.com/sphinx-doc/sphinx/issues/8241

While it could be relaxed with some configurations, there are
several corner cases that it would make it hard to maintain,
and will require teaching conf.py about several macros.

So, let's instead use the :c:macro notation. This will
produce an output that it is not as nice as currently, but it
should still be acceptable, and will provide cross-references,
removing thousands of warnings when building with newer
versions of Sphinx.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-18-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 822e7fde8f64b00a01f5626151baa6a7277c1693
      
https://github.com/qemu/qemu/commit/822e7fde8f64b00a01f5626151baa6a7277c1693
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: fix troubles with line counts

There's currently a bug with the way kernel-doc script
counts line numbers that can be seen with:

        $ ./scripts/kernel-doc -rst  -enable-lineno include/linux/math64.h >all 
&& ./scripts/kernel-doc -rst -internal -enable-lineno include/linux/math64.h 
>int && diff -U0 int all

        --- int 2020-09-28 12:58:08.927486808 +0200
        +++ all 2020-09-28 12:58:08.905486845 +0200
        @@ -1 +1 @@
        -#define LINENO 27
        +#define LINENO 26
        @@ -3 +3 @@
        -#define LINENO 16
        +#define LINENO 15
        @@ -9 +9 @@
        -#define LINENO 17
        +#define LINENO 16
        ...

This is happening with perl version 5.30.3, but I'm not
so sure if this is a perl bug, or if this is due to something
else.

In any case, fixing it is easy. Basically, when "-internal"
parameter is used, the process_export_file() function opens the
handle "IN". This makes the line number to be incremented, as the
handler for the main open is also "IN".

Fix the problem by using a different handler for the
main open().

While here, add a missing close for it.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-19-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 581fbea3e3632a102996f8a21f32b5ffea015496
      
https://github.com/qemu/qemu/commit/581fbea3e3632a102996f8a21f32b5ffea015496
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: reimplement -nofunction argument

Right now, the build system doesn't use -nofunction, as
it is pretty much useless, because it doesn't consider
the other output modes (extern, internal), working only
with all.

Also, it is limited to exclude functions.

Re-implement it in order to allow excluding any symbols from
the document output, no matter what mode is used.

The parameter was also renamed to "-nosymbol", as it express
better its meaning.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-20-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 0ca3ec8330db85e522dd4c0c28d37f107d2126cd
      
https://github.com/qemu/qemu/commit/0ca3ec8330db85e522dd4c0c28d37f107d2126cd
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: fix typedef identification

Some typedef expressions are output as normal functions.

As we need to be clearer about the type with Sphinx 3.x,
detect such cases.

While here, fix a wrongly-indented block.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-21-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 4755778b30ac10b8d6365981b4b98c3010e949d1
      
https://github.com/qemu/qemu/commit/4755778b30ac10b8d6365981b4b98c3010e949d1
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: don't mangle with parameter list

While kernel-doc needs to parse parameters in order to
identify its name, it shouldn't be touching the type,
as parsing it is very difficult, and errors happen.

One current error is when parsing this parameter:

        const u32 (*tab)[256]

Found at ./lib/crc32.c, on this function:

        u32 __pure crc32_be_generic (u32 crc, unsigned char const *p, size_t 
len, const u32 (*tab)[256], u32 polynomial);

The current logic mangles it, producing this output:

        const u32 ( *tab

That's something that it is not recognizeable.

So, instead, let's push the argument as-is, and use it
when printing the function prototype and when describing
each argument.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-22-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: f68ff3b24efbe391b8cea56d6c7b9c5925abf4e9
      
https://github.com/qemu/qemu/commit/f68ff3b24efbe391b8cea56d6c7b9c5925abf4e9
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M docs/sphinx/kerneldoc.py
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: allow passing desired Sphinx C domain dialect

When kernel-doc is called via kerneldoc.py, there's no need to
auto-detect the Sphinx version, as the Sphinx module already
knows it. So, add an optional parameter to allow changing the
Sphinx dialect.

As kernel-doc can also be manually called, keep the auto-detection
logic if the parameter was not specified. On such case, emit
a warning if sphinx-build can't be found at PATH.

I ended using a suggestion from Joe for using a more readable
regex, instead of using a complex one with a hidden group like:

        m/^(\d+)\.(\d+)(?:\.?(\d+)?)/

in order to get the optional <patch> argument.

Thanks-to: Joe Perches <joe@perches.com>
Suggested-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-23-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: b201f03afb8bebb2069a6b26ad444fd8f950097e
      
https://github.com/qemu/qemu/commit/b201f03afb8bebb2069a6b26ad444fd8f950097e
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: fix line number handling

Address several issues related to pointing to the wrong line
number:

1) ensure that line numbers will always be initialized

   When section is the default (Description), the line number
   is not initializing, producing this:

        $ ./scripts/kernel-doc --enable-lineno 
./drivers/media/v4l2-core/v4l2-mem2mem.c|less

        **Description**

        #define LINENO 0
        In case of streamoff or release called on any context,
        1] If the context is currently running, then abort job will be called
        2] If the context is queued, then the context will be removed from
           the job_queue

  Which is not right. Ensure that the line number will always
  be there. After applied, the result now points to the right location:

        **Description**

        #define LINENO 410
        In case of streamoff or release called on any context,
        1] If the context is currently running, then abort job will be called
        2] If the context is queued, then the context will be removed from
           the job_queue

2) The line numbers for function prototypes are always + 1,
   because it is taken at the line after handling the prototype.
   Change the logic to point to the next line after the /** */
   block;

3) The "DOC:" line number should point to the same line as this
   markup is found, and not to the next one.

Probably part of the issues were due to a but that was causing
the line number offset to be incremented by one, if --export
were used.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-24-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 6ff584750f870e090faa9df7eea1ac9358430896
      
https://github.com/qemu/qemu/commit/6ff584750f870e090faa9df7eea1ac9358430896
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: try to use c:function if possible

There are a few namespace clashes by using c:macro everywhere:

basically, when using it, we can't have something like:

        .. c:struct:: pwm_capture

        .. c:macro:: pwm_capture

So, we need to use, instead:

        .. c:function:: int pwm_capture (struct pwm_device * pwm, struct 
pwm_capture * result, unsigned long timeout)

for the function declaration.

The kernel-doc change was proposed by Jakob Lykke Andersen here:

        
https://github.com/jakobandersen/linux_docs/commit/6fd2076ec001cca7466857493cd678df4dfe4a65

Although I did a different implementation.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-25-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 0210216d4f9a213ac22b2da057b4b3c6dc60cb8a
      
https://github.com/qemu/qemu/commit/0210216d4f9a213ac22b2da057b4b3c6dc60cb8a
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  Revert "kernel-doc: Handle function typedefs without asterisks"

This reverts commit 3cd3c5193cde5242e243c25759f85802e267994f.
We will replace the commit with the fix from Linux.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-26-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 75e085acd59628816536824a5b1872ad26066f61
      
https://github.com/qemu/qemu/commit/75e085acd59628816536824a5b1872ad26066f61
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  Revert "kernel-doc: Handle function typedefs that return pointers"

This reverts commit 19ab6044be0c55d529e875e3ee16fdd5c3b54d33.
We will replace the commit with the fix from Linux.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-27-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 9c0775674312586ea58099fee424282fa3aa588c
      
https://github.com/qemu/qemu/commit/9c0775674312586ea58099fee424282fa3aa588c
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: fix typedef parsing

The include/linux/genalloc.h file defined this typedef:

        typedef unsigned long (*genpool_algo_t)(unsigned long *map,unsigned 
long size,unsigned long start,unsigned int nr,void *data, struct gen_pool 
*pool, unsigned long start_addr);

Because it has a type composite of two words (unsigned long),
the parser gets the typedef name wrong:

.. c:macro:: long

   **Typedef**: Allocation callback function type definition

Fix the regex in order to accept composite types when
defining a typedef for a function pointer.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: 
https://lore.kernel.org/r/328e8018041cc44f7a1684e57f8d111230761c4f.1603792384.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-28-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: ab014442cdebf582119e341f5fe3553dc98758bc
      
https://github.com/qemu/qemu/commit/ab014442cdebf582119e341f5fe3553dc98758bc
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: split typedef complex regex

The typedef regex for function prototypes are very complex.
Split them into 3 separate regex and then join them using
qr.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: 
https://lore.kernel.org/r/3a4af999a0d62d4ab9dfae1cdefdfcad93383356.1603792384.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-29-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 7acbfd1f1392ca7fa46975dab88e6ac7aee6e566
      
https://github.com/qemu/qemu/commit/7acbfd1f1392ca7fa46975dab88e6ac7aee6e566
  Author: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: use :c:union when needed

Sphinx C domain code after 3.2.1 will start complaning if :c:struct
would be used for an union type:

        .../Documentation/gpu/drm-kms-helpers:352: ../drivers/video/hdmi.c:851: 
WARNING: C 'identifier' cross-reference uses wrong tag: reference name is 
'union hdmi_infoframe' but found name is 'struct hdmi_infoframe'. Full 
reference name is 'union hdmi_infoframe'. Full found name is 'struct 
hdmi_infoframe'.

So, let's address this issue too in advance, in order to
avoid future issues.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: 
https://lore.kernel.org/r/6e4ec3eec914df62389a299797a3880ae4490f35.1603791716.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20201117165312.118257-30-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: 4749c55e1d7e8c74d745840ce0d4dd89b2dd04d9
      
https://github.com/qemu/qemu/commit/4749c55e1d7e8c74d745840ce0d4dd89b2dd04d9
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M docs/sphinx/kerneldoc.py

  Log Message:
  -----------
  Revert "docs: temporarily disable the kernel-doc extension"

This reverts commit fd68a72875cf318f4310726f842139119c5f45d5.  We're
done with the update of kernel-doc and we can restore kernel-doc's
functionality.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: aeea99accef39f34dd1090c4aee86b7052076ce9
      
https://github.com/qemu/qemu/commit/aeea99accef39f34dd1090c4aee86b7052076ce9
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   2020-12-09 (Wed, 09 Dec 2020)

  Changed paths:
    M scripts/kernel-doc

  Log Message:
  -----------
  scripts: kernel-doc: remove unnecessary change wrt Linux

A comment in kernel-doc mentions QEMU's qatomic_set macro, but since
this code originated in Linux we should just revert it and stay as close
to the kernel's copy of the script as possible.

The change was introduced (more or less unintentionally) in QEMU commit
commit d73415a31547, which did a global search-and-replace of QEMU's
atomic access macros.

Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


  Commit: d13843ba8a5cf2b8a0c932e91b24626da1f3e0ff
      
https://github.com/qemu/qemu/commit/d13843ba8a5cf2b8a0c932e91b24626da1f3e0ff
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2020-12-10 (Thu, 10 Dec 2020)

  Changed paths:
    M MAINTAINERS
    M docs/devel/loads-stores.rst
    M docs/specs/tpm.rst
    M docs/sphinx/kerneldoc.py
    M hw/alpha/dp264.c
    M hw/arm/aspeed.c
    M hw/arm/boot.c
    M hw/arm/cubieboard.c
    M hw/arm/digic_boards.c
    M hw/arm/highbank.c
    M hw/arm/npcm7xx_boards.c
    M hw/arm/orangepi.c
    M hw/arm/sbsa-ref.c
    M hw/arm/spitz.c
    M hw/arm/stellaris.c
    M hw/arm/tosa.c
    M hw/arm/vexpress.c
    M hw/arm/virt.c
    M hw/arm/z2.c
    M hw/avr/boot.c
    M hw/block/m25p80.c
    M hw/char/serial.c
    M hw/core/generic-loader.c
    M hw/core/loader.c
    M hw/core/machine.c
    M hw/core/numa.c
    M hw/core/stream.c
    M hw/cris/axis_dev88.c
    M hw/cris/boot.c
    M hw/cris/boot.h
    M hw/display/ads7846.c
    M hw/display/cg3.c
    M hw/display/pxa2xx_lcd.c
    M hw/display/ssd0323.c
    M hw/display/tcx.c
    M hw/dma/xilinx_axidma.c
    M hw/hppa/machine.c
    M hw/i386/fw_cfg.c
    M hw/i386/kvm/apic.c
    M hw/i386/microvm.c
    M hw/i386/pc.c
    M hw/i386/pc_sysfw.c
    M hw/i386/vmport.c
    M hw/i386/x86.c
    M hw/i386/xen/xen-hvm.c
    M hw/intc/apic_common.c
    M hw/lm32/milkymist.c
    M hw/m68k/mcf5206.c
    M hw/m68k/mcf5208.c
    M hw/m68k/next-cube.c
    M hw/m68k/q800.c
    M hw/microblaze/boot.c
    M hw/mips/fuloong2e.c
    M hw/mips/jazz.c
    M hw/mips/malta.c
    M hw/mips/mipssim.c
    M hw/misc/max111x.c
    M hw/moxie/moxiesim.c
    M hw/net/xilinx_axienet.c
    M hw/nios2/boot.c
    M hw/nvram/fw_cfg.c
    M hw/pci-host/prep.c
    M hw/pci/pci.c
    M hw/ppc/e500.c
    M hw/ppc/mac_newworld.c
    M hw/ppc/mac_oldworld.c
    M hw/ppc/pnv.c
    M hw/ppc/ppc405_boards.c
    M hw/ppc/ppc440_bamboo.c
    M hw/ppc/prep.c
    M hw/ppc/sam460ex.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_vio.c
    M hw/ppc/virtex_ml507.c
    M hw/riscv/boot.c
    M hw/rx/rx-gdbsim.c
    M hw/rx/rx62n.c
    M hw/s390x/ipl.c
    M hw/s390x/s390-skeys.c
    M hw/s390x/s390-virtio-ccw.c
    M hw/sd/ssi-sd.c
    M hw/sh4/shix.c
    M hw/smbios/smbios.c
    M hw/sparc/leon3.c
    M hw/sparc/sun4m.c
    M hw/sparc64/sparc64.c
    M hw/sparc64/sun4u.c
    M hw/ssi/aspeed_smc.c
    M hw/ssi/pl022.c
    M hw/ssi/ssi.c
    M hw/ssi/xilinx_spips.c
    M hw/virtio/virtio-balloon.c
    M include/exec/cpu-common.h
    M include/hw/boards.h
    M include/hw/i386/x86.h
    M include/hw/misc/max111x.h
    M include/hw/pci/pci.h
    M include/hw/qdev-core.h
    M include/hw/ssi/aspeed_smc.h
    M include/hw/ssi/ssi.h
    M include/hw/ssi/xilinx_spips.h
    M include/hw/stream.h
    M include/migration/misc.h
    M include/qemu-common.h
    M include/qemu/config-file.h
    A include/qemu/datadir.h
    M include/qemu/option.h
    M include/standard-headers/asm-x86/kvm_para.h
    M include/sysemu/dma.h
    M include/sysemu/sysemu.h
    M include/sysemu/whpx.h
    M migration/migration.c
    M monitor/hmp.c
    M monitor/qmp-cmds.c
    M python/qemu/machine.py
    M qemu-options.hx
    M qom/object.c
    M scripts/kernel-doc
    M softmmu/cpus.c
    A softmmu/datadir.c
    M softmmu/dma-helpers.c
    M softmmu/meson.build
    M softmmu/qdev-monitor.c
    A softmmu/rtc.c
    M softmmu/vl.c
    M target/arm/arm-semi.c
    M target/i386/cpu.c
    M target/i386/kvm.c
    M target/i386/kvm_i386.h
    M target/i386/meson.build
    M target/i386/seg_helper.c
    M target/i386/translate.c
    M target/i386/whp-dispatch.h
    M target/i386/whpx-all.c
    A target/i386/whpx-apic.c
    M target/m68k/m68k-semi.c
    M target/s390x/excp_helper.c
    M target/s390x/mem_helper.c
    M target/s390x/mmu_helper.c
    M tests/qtest/bios-tables-test.c
    M tests/qtest/fuzz/fuzz.c
    M tests/qtest/pflash-cfi02-test.c
    M tests/qtest/test-filter-redirector.c
    M tests/qtest/vhost-user-test.c
    M tests/tcg/i386/Makefile.target
    A tests/tcg/i386/test-i386-bmi2.c
    M tests/test-char.c
    M tests/test-qemu-opts.c
    M ui/keymaps.c
    M util/qemu-config.c
    M util/qemu-option.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into 
staging

* Fix for NULL segments (Bin Meng)
* Support for 32768 CPUs on x86 without IOMMU (David)
* PDEP/PEXT fix and testcase (myself)
* Remove bios_name and ram_size globals (myself)
* qemu_init rationalization (myself)
* Update kernel-doc (myself + upstream patches)
* Propagate MemTxResult across DMA and PCI functions (Philippe)
* Remove master/slave when applicable (Philippe)
* WHPX support for in-kernel irqchip (Sunil)

# gpg: Signature made Wed 09 Dec 2020 23:32:08 GMT
# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg:                issuer "pbonzini@redhat.com"
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* remotes/bonzini-gitlab/tags/for-upstream: (113 commits)
  scripts: kernel-doc: remove unnecessary change wrt Linux
  Revert "docs: temporarily disable the kernel-doc extension"
  scripts: kernel-doc: use :c:union when needed
  scripts: kernel-doc: split typedef complex regex
  scripts: kernel-doc: fix typedef parsing
  Revert "kernel-doc: Handle function typedefs that return pointers"
  Revert "kernel-doc: Handle function typedefs without asterisks"
  scripts: kernel-doc: try to use c:function if possible
  scripts: kernel-doc: fix line number handling
  scripts: kernel-doc: allow passing desired Sphinx C domain dialect
  scripts: kernel-doc: don't mangle with parameter list
  scripts: kernel-doc: fix typedef identification
  scripts: kernel-doc: reimplement -nofunction argument
  scripts: kernel-doc: fix troubles with line counts
  scripts: kernel-doc: use a less pedantic markup for funcs on Sphinx 3.x
  scripts: kernel-doc: make it more compatible with Sphinx 3.x
  Revert "kernel-doc: Use c:struct for Sphinx 3.0 and later"
  Revert "scripts/kerneldoc: For Sphinx 3 use c:macro for macros with arguments"
  scripts: kernel-doc: add support for typedef enum
  kernel-doc: add support for ____cacheline_aligned attribute
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/379e9eaed497...d13843ba8a5c



reply via email to

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