On 12/18/21 7:10 AM, Philippe Mathieu-Daudé wrote:
While the reply queue values fit in 16-bit, they are accessed
as 32-bit:

   661:    s->reply_queue_head = ldl_le_pci_dma(pcid, s->producer_pa);
   662:    s->reply_queue_head %= MEGASAS_MAX_FRAMES;
   663:    s->reply_queue_tail = ldl_le_pci_dma(pcid, s->consumer_pa);
   664:    s->reply_queue_tail %= MEGASAS_MAX_FRAMES;

Having:

   41:#define MEGASAS_MAX_FRAMES 2048         /* Firmware limit at 65535 */

In order to update the ld/st*_pci_dma() API to pass the address
of the value to access, it is simpler to have the head/tail declared
as 32-bit values. Replace the uint16_t by uint32_t, wasting 4 bytes in
the MegasasState structure.

Signed-off-by: Philippe Mathieu-Daudé<phi...@redhat.com>
---
  hw/scsi/megasas.c    | 4 ++--
  hw/scsi/trace-events | 8 ++++----
  2 files changed, 6 insertions(+), 6 deletions(-)

Acked-by: Richard Henderson <richard.hender...@linaro.org>

r~

Reply via email to