On 07/27/2015 10:51 AM, Salva Peiró wrote:
> This patch fixes a QEMU SEGFAULT when a write operation is performed on
> the memory region of the PCI BAR 3 (base address space).
> When a writeb(0xe0000000) is performed the .write function is invoked to
> handle the write access, however, since the .write is not initialised,
> the call to 0, causes QEMU to SEGFAULT.
> 
> Signed-off-by: Salva Peiró <speir...@gmail.com>
> ---
>  hw/scsi/megasas.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c
> index 51ba9e0..a04369c 100644
> --- a/hw/scsi/megasas.c
> +++ b/hw/scsi/megasas.c
> @@ -2202,8 +2202,15 @@ static uint64_t megasas_queue_read(void *opaque, 
> hwaddr addr,
>      return 0;
>  }
>  
> +static void megasas_queue_write(void *opaque, hwaddr addr,
> +                               uint64_t val, unsigned size)
> +{
> +    return;
> +}
> +
>  static const MemoryRegionOps megasas_queue_ops = {
>      .read = megasas_queue_read,
> +    .write = megasas_queue_write,
>      .endianness = DEVICE_LITTLE_ENDIAN,
>      .impl = {
>          .min_access_size = 8,
> 
Yep, that's the correct fix.

Acked-by: Hannes Reinecke <h...@suse.com>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                            zSeries & Storage
h...@suse.de                                   +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)

Reply via email to