09.05.2014 15:04, [email protected] wrote:
> From: Gonglei <[email protected]>
> 
> when configure a invalid vram size for cirrus card, such as less
> 2 MB, which will crash qemu. Follow the real hardware, the cirrus
> card has 4 MB video memory. Also for backward compatibility, accept
> 8 MB and 16 MB vram size.
> 
> Signed-off-by: Gonglei <[email protected]>
> ---
> v2: fix checkpatch fails.
>   "WARNING: suspect code indent for conditional statements (5, 9)"
>   maybe not a real warning.
> 
>  hw/display/cirrus_vga.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
> index d1afc76..399a2ef 100644
> --- a/hw/display/cirrus_vga.c
> +++ b/hw/display/cirrus_vga.c
> @@ -2959,6 +2959,14 @@ static int pci_cirrus_vga_initfn(PCIDevice *dev)
>       PCIDeviceClass *pc = PCI_DEVICE_GET_CLASS(dev);
>       int16_t device_id = pc->device_id;
>  
> +     /* follow real hardware, cirrus card emulated has 4 MB video memory.
> +       Also accept 8 MB/16 MB for backward compatibility. */
> +     if (s->vga.vram_size_mb != 4 || s->vga.vram_size_mb != 8 ||
> +         s->vga.vram_size_mb != 16) {

This condition will always be true, because a number can't be equal
to 3 _different_ numbers at the same time.

Thanks,

/mjt

Reply via email to