Message ID | 20190404121015.28634-1-pl@kamp.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | megasas: fix mapped frame size | expand |
On 4/4/19 2:10 PM, Peter Lieven wrote: > the current value of 1024 bytes (16 * MFI_FRAME_SIZE) we map is not enough to hold > the maximum number of scatter gather elements we advertise. We actually need a > maximum of 2048 bytes. This is 128 max sg elements * 16 bytes (sizeof (union mfi_sgl)). > > Cc: qemu-stable@nongnu.org > Signed-off-by: Peter Lieven <pl@kamp.de> > --- > hw/scsi/megasas.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c > index a56317e026..5ad762de23 100644 > --- a/hw/scsi/megasas.c > +++ b/hw/scsi/megasas.c > @@ -477,7 +477,7 @@ static MegasasCmd *megasas_enqueue_frame(MegasasState *s, > { > PCIDevice *pcid = PCI_DEVICE(s); > MegasasCmd *cmd = NULL; > - int frame_size = MFI_FRAME_SIZE * 16; > + int frame_size = MEGASAS_MAX_SGE * sizeof(union mfi_sgl); > hwaddr frame_size_p = frame_size; > unsigned long index; > > Indeed. Reviewed-by: Hannes Reinecke <hare@suse.com> Cheers, Hannes
Quoting Peter Lieven (2019-04-04 07:10:15) > the current value of 1024 bytes (16 * MFI_FRAME_SIZE) we map is not enough to hold > the maximum number of scatter gather elements we advertise. We actually need a > maximum of 2048 bytes. This is 128 max sg elements * 16 bytes (sizeof (union mfi_sgl)). > > Cc: qemu-stable@nongnu.org > Signed-off-by: Peter Lieven <pl@kamp.de> Is there any chance of getting this in for v4.0.0-rc3 tomorrow? Also hoping to pull it in for v3.0.1. > --- > hw/scsi/megasas.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c > index a56317e026..5ad762de23 100644 > --- a/hw/scsi/megasas.c > +++ b/hw/scsi/megasas.c > @@ -477,7 +477,7 @@ static MegasasCmd *megasas_enqueue_frame(MegasasState *s, > { > PCIDevice *pcid = PCI_DEVICE(s); > MegasasCmd *cmd = NULL; > - int frame_size = MFI_FRAME_SIZE * 16; > + int frame_size = MEGASAS_MAX_SGE * sizeof(union mfi_sgl); > hwaddr frame_size_p = frame_size; > unsigned long index; > > -- > 2.17.1 > > >
diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c index a56317e026..5ad762de23 100644 --- a/hw/scsi/megasas.c +++ b/hw/scsi/megasas.c @@ -477,7 +477,7 @@ static MegasasCmd *megasas_enqueue_frame(MegasasState *s, { PCIDevice *pcid = PCI_DEVICE(s); MegasasCmd *cmd = NULL; - int frame_size = MFI_FRAME_SIZE * 16; + int frame_size = MEGASAS_MAX_SGE * sizeof(union mfi_sgl); hwaddr frame_size_p = frame_size; unsigned long index;
the current value of 1024 bytes (16 * MFI_FRAME_SIZE) we map is not enough to hold the maximum number of scatter gather elements we advertise. We actually need a maximum of 2048 bytes. This is 128 max sg elements * 16 bytes (sizeof (union mfi_sgl)). Cc: qemu-stable@nongnu.org Signed-off-by: Peter Lieven <pl@kamp.de> --- hw/scsi/megasas.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)