[PATCH] hw/i386/pc_piix.c: remove unnecessary if() from pc_init1()

Mark Cave-Ayland posted 1 patch 3 weeks, 6 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250901132639.1123726-1-mark.caveayland@nutanix.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Eduardo Habkost <eduardo@habkost.net>, "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
There is a newer version of this series
hw/i386/pc_piix.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
[PATCH] hw/i386/pc_piix.c: remove unnecessary if() from pc_init1()
Posted by Mark Cave-Ayland 3 weeks, 6 days ago
Now that the isapc logic has been split out of pc_piix.c, the PCI Host Bridge
(phb) object is now always set in pc_init1().

Since phb is now guaranteed not to be NULL, Coverity reports that the if()
statement surrounding ioapic_init_gsi() is now unnecessary and can be removed
(CID 1620557).

Signed-off-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
Fixes: 99d0630a45 ("hw/i386/pc_piix.c: assume pcmc->pci_enabled is always true in pc_init1()")
---
 hw/i386/pc_piix.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 7e78b6daa6..b6d0cf411d 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -284,9 +284,7 @@ static void pc_init1(MachineState *machine, const char *pci_type)
         pc_i8259_create(isa_bus, gsi_state->i8259_irq);
     }
 
-    if (phb) {
-        ioapic_init_gsi(gsi_state, phb);
-    }
+    ioapic_init_gsi(gsi_state, phb);
 
     if (tcg_enabled()) {
         x86_register_ferr_irq(x86ms->gsi[13]);
-- 
2.43.0
Re: [PATCH] hw/i386/pc_piix.c: remove unnecessary if() from pc_init1()
Posted by Peter Maydell 3 weeks, 6 days ago
On Mon, 1 Sept 2025 at 14:26, Mark Cave-Ayland
<mark.caveayland@nutanix.com> wrote:
>
> Now that the isapc logic has been split out of pc_piix.c, the PCI Host Bridge
> (phb) object is now always set in pc_init1().
>
> Since phb is now guaranteed not to be NULL, Coverity reports that the if()
> statement surrounding ioapic_init_gsi() is now unnecessary and can be removed
> (CID 1620557).
>
> Signed-off-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
> Fixes: 99d0630a45 ("hw/i386/pc_piix.c: assume pcmc->pci_enabled is always true in pc_init1()")
> ---
>  hw/i386/pc_piix.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>

thanks
-- PMM
Re: [PATCH] hw/i386/pc_piix.c: remove unnecessary if() from pc_init1()
Posted by Philippe Mathieu-Daudé 3 weeks, 6 days ago
On 1/9/25 15:24, Mark Cave-Ayland wrote:
> Now that the isapc logic has been split out of pc_piix.c, the PCI Host Bridge
> (phb) object is now always set in pc_init1().
> 
> Since phb is now guaranteed not to be NULL, Coverity reports that the if()
> statement surrounding ioapic_init_gsi() is now unnecessary and can be removed
> (CID 1620557).
> 
> Signed-off-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
> Fixes: 99d0630a45 ("hw/i386/pc_piix.c: assume pcmc->pci_enabled is always true in pc_init1()")
> ---
>   hw/i386/pc_piix.c | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 7e78b6daa6..b6d0cf411d 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -284,9 +284,7 @@ static void pc_init1(MachineState *machine, const char *pci_type)

Maybe also remove the pointless NULL-init?

   -    Object *phb = NULL;
   +    Object *phb;

>           pc_i8259_create(isa_bus, gsi_state->i8259_irq);
>       }
>   
> -    if (phb) {
> -        ioapic_init_gsi(gsi_state, phb);
> -    }
> +    ioapic_init_gsi(gsi_state, phb);
>   
>       if (tcg_enabled()) {
>           x86_register_ferr_irq(x86ms->gsi[13]);

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>


Re: [PATCH] hw/i386/pc_piix.c: remove unnecessary if() from pc_init1()
Posted by Mark Cave-Ayland 3 weeks, 6 days ago
On 01/09/2025 14:36, Philippe Mathieu-Daudé wrote:

> On 1/9/25 15:24, Mark Cave-Ayland wrote:
>> Now that the isapc logic has been split out of pc_piix.c, the PCI Host 
>> Bridge
>> (phb) object is now always set in pc_init1().
>>
>> Since phb is now guaranteed not to be NULL, Coverity reports that the 
>> if()
>> statement surrounding ioapic_init_gsi() is now unnecessary and can be 
>> removed
>> (CID 1620557).
>>
>> Signed-off-by: Mark Cave-Ayland <mark.caveayland@nutanix.com>
>> Fixes: 99d0630a45 ("hw/i386/pc_piix.c: assume pcmc->pci_enabled is 
>> always true in pc_init1()")
>> ---
>>   hw/i386/pc_piix.c | 4 +---
>>   1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
>> index 7e78b6daa6..b6d0cf411d 100644
>> --- a/hw/i386/pc_piix.c
>> +++ b/hw/i386/pc_piix.c
>> @@ -284,9 +284,7 @@ static void pc_init1(MachineState *machine, const 
>> char *pci_type)
> 
> Maybe also remove the pointless NULL-init?

Yeah that's a good point: I've just sent a v2 that also removes this, so 
maintainers can choose which version they prefer :)

>    -    Object *phb = NULL;
>    +    Object *phb;
> 
>>           pc_i8259_create(isa_bus, gsi_state->i8259_irq);
>>       }
>> -    if (phb) {
>> -        ioapic_init_gsi(gsi_state, phb);
>> -    }
>> +    ioapic_init_gsi(gsi_state, phb);
>>       if (tcg_enabled()) {
>>           x86_register_ferr_irq(x86ms->gsi[13]);
> 
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>


ATB,

Mark.