qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Kamil Szczęk" <kamil@szczek.dev>,
	"Bernhard Beschow" <shentey@gmail.com>
Subject: Re: [PULL 18/20] hw/i386/pc: Unify vmport=auto handling
Date: Tue, 20 Aug 2024 21:48:48 +0200	[thread overview]
Message-ID: <ee5b8c9e-09fe-4b28-86fb-c6859085f988@linaro.org> (raw)
In-Reply-To: <20240819225116.17928-19-philmd@linaro.org>

Hi Kamil,

On 20/8/24 00:51, Philippe Mathieu-Daudé wrote:
> From: Kamil Szczęk <kamil@szczek.dev>
> 
> The code which translates vmport=auto to on/off is currently separate
> for each PC machine variant, while being functionally equivalent.
> This moves the translation into a shared initialization function, while
> also tightening the enum assertion.
> 
> Signed-off-by: Kamil Szczęk <kamil@szczek.dev>
> Reviewed-by: Bernhard Beschow <shentey@gmail.com>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Message-ID: <v8pz1uwgIYWkidgZK-o8H-qJvnSyl0641XVmNO43Qls307AA3QRPuad_py6xGe0JAxB6yDEe76oZ8tau_n-2Y6sJBCKzCujNbEUUFhd-ahI=@szczek.dev>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   hw/i386/pc.c      | 5 +++++
>   hw/i386/pc_piix.c | 5 -----
>   hw/i386/pc_q35.c  | 5 -----
>   3 files changed, 5 insertions(+), 10 deletions(-)
> 
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index c74931d577..72229a24ff 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1217,6 +1217,11 @@ void pc_basic_device_init(struct PCMachineState *pcms,
>           isa_realize_and_unref(pcms->pcspk, isa_bus, &error_fatal);
>       }
>   
> +    assert(pcms->vmport >= 0 && pcms->vmport < ON_OFF_AUTO__MAX);

Coverity reported:

 >>>     CID 1559533:  Integer handling issues  (CONSTANT_EXPRESSION_RESULT)
 >>>     "pcms->vmport >= 0" is always true regardless of the values of 
its operands. This occurs as the logical first operand of "&&".

QAPI enums are unsigned because they start at 0, see:
https://www.qemu.org/docs/master/devel/qapi-code-gen.html#enumeration-types

   The generated C enumeration constants have values 0, 1, …, N-1
   (in QAPI schema order), where N is the number of values. There
   is an additional enumeration constant PREFIX__MAX with value N.

Could you post a patch to address this issue?

Thanks,

Phil.

> +    if (pcms->vmport == ON_OFF_AUTO_AUTO) {
> +        pcms->vmport = xen_enabled() ? ON_OFF_AUTO_OFF : ON_OFF_AUTO_ON;
> +    }
> +
>       /* Super I/O */
>       pc_superio_init(isa_bus, create_fdctrl, pcms->i8042_enabled,
>                       pcms->vmport != ON_OFF_AUTO_ON);
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index d9e69243b4..347afa4c37 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -310,11 +310,6 @@ static void pc_init1(MachineState *machine, const char *pci_type)
>   
>       pc_vga_init(isa_bus, pcmc->pci_enabled ? pcms->pcibus : NULL);
>   
> -    assert(pcms->vmport != ON_OFF_AUTO__MAX);
> -    if (pcms->vmport == ON_OFF_AUTO_AUTO) {
> -        pcms->vmport = xen_enabled() ? ON_OFF_AUTO_OFF : ON_OFF_AUTO_ON;
> -    }
> -
>       /* init basic PC hardware */
>       pc_basic_device_init(pcms, isa_bus, x86ms->gsi, x86ms->rtc,
>                            !MACHINE_CLASS(pcmc)->no_floppy, 0x4);
> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> index 9d108b194e..f2d8edfa84 100644
> --- a/hw/i386/pc_q35.c
> +++ b/hw/i386/pc_q35.c
> @@ -276,11 +276,6 @@ static void pc_q35_init(MachineState *machine)
>           x86_register_ferr_irq(x86ms->gsi[13]);
>       }
>   
> -    assert(pcms->vmport != ON_OFF_AUTO__MAX);
> -    if (pcms->vmport == ON_OFF_AUTO_AUTO) {
> -        pcms->vmport = ON_OFF_AUTO_ON;
> -    }
> -
>       /* init basic PC hardware */
>       pc_basic_device_init(pcms, isa_bus, x86ms->gsi, x86ms->rtc, !mc->no_floppy,
>                            0xff0104);



  reply	other threads:[~2024-08-20 19:49 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-19 22:50 [PULL 00/20] Misc fixes for 2024-08-20 Philippe Mathieu-Daudé
2024-08-19 22:50 ` [PULL 01/20] hw/mips/loongson3_virt: Store core_iocsr into LoongsonMachineState Philippe Mathieu-Daudé
2024-08-19 22:50 ` [PULL 02/20] hw/mips/loongson3_virt: Fix condition of IPI IOCSR connection Philippe Mathieu-Daudé
2024-08-19 22:50 ` [PULL 03/20] qemu-options.hx: correct formatting -smbios type=4 Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 04/20] target/mips: Pass page table entry size as MemOp to get_pte() Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 05/20] target/mips: Use correct MMU index in get_pte() Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 06/20] target/mips: Load PTE as DATA Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 07/20] hw/dma/xilinx_axidma: Use semicolon at end of statement, not comma Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 08/20] hw/remote/message.c: Don't directly invoke DeviceClass:reset Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 09/20] linux-user/mips: Do not try to use removed R5900 CPU Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 10/20] linux-user/mips: Select Octeon68XX CPU for Octeon binaries Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 11/20] linux-user/mips: Select MIPS64R2-generic for Rel2 binaries Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 12/20] linux-user/mips: Select Loongson CPU for Loongson binaries Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 13/20] tests/avocado: exec_command should not consume console output Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 14/20] tests/avocado: Mark ppc_hv_tests.py as non-flaky after fixed console interaction Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 15/20] contrib/plugins/execlog: Fix shadowed declaration warning Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 16/20] target/sparc: Restrict STQF to sparcv9 Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 17/20] hw/ppc/Kconfig: Add missing SERIAL_ISA dependency to POWERNV machine Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 18/20] hw/i386/pc: Unify vmport=auto handling Philippe Mathieu-Daudé
2024-08-20 19:48   ` Philippe Mathieu-Daudé [this message]
2024-08-20 20:32     ` Kamil Szczęk
2024-08-20 22:45       ` Richard Henderson
2024-08-20 22:55         ` Kamil Szczęk
2024-08-19 22:51 ` [PULL 19/20] hw/i386/pc: Ensure vmport prerequisites are fulfilled Philippe Mathieu-Daudé
2024-08-19 22:51 ` [PULL 20/20] crypto/tlscredspsk: Free username on finalize Philippe Mathieu-Daudé
2024-08-20  6:50 ` [PULL 00/20] Misc fixes for 2024-08-20 Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ee5b8c9e-09fe-4b28-86fb-c6859085f988@linaro.org \
    --to=philmd@linaro.org \
    --cc=kamil@szczek.dev \
    --cc=qemu-devel@nongnu.org \
    --cc=shentey@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).