qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2] scsi: esp: check TI buffer index before read


From: P J P
Subject: Re: [Qemu-devel] [PATCH v2] scsi: esp: check TI buffer index before read/write
Date: Mon, 6 Jun 2016 17:18:13 +0530 (IST)

+-- On Tue, 31 May 2016, P J P wrote --+
|      switch (saddr) {
|      case ESP_FIFO:
| -        if (s->ti_size > 0) {
| +        if ((s->rregs[ESP_RSTAT] & STAT_PIO_MASK) == 0) {
| +            /* Data out.  */
| +            qemu_log_mask(LOG_UNIMP, "esp: PIO data read not implemented\n");
| +            s->rregs[ESP_FIFO] = 0;
| +            esp_raise_irq(s);
| +        } else if (s->ti_rptr < s->ti_wptr) {
|              s->ti_size--;
| -            if ((s->rregs[ESP_RSTAT] & STAT_PIO_MASK) == 0) {
| -                /* Data out.  */
| -                qemu_log_mask(LOG_UNIMP,
| -                              "esp: PIO data read not implemented\n");
| -                s->rregs[ESP_FIFO] = 0;
| -            } else {
| -                s->rregs[ESP_FIFO] = s->ti_buf[s->ti_rptr++];
| -            }
| +            s->rregs[ESP_FIFO] = s->ti_buf[s->ti_rptr++];
|              esp_raise_irq(s);
|          }
|          if (s->ti_size == 0) {
| @@ -456,7 +454,7 @@ void esp_reg_write(ESPState *s, uint32_t saddr, uint64_t 
val)
|              } else {
|                  trace_esp_error_fifo_overrun();
|              }
| -        } else if (s->ti_size == TI_BUFSZ - 1) {
| +        } else if (s->ti_wptr == TI_BUFSZ - 1) {
|              trace_esp_error_fifo_overrun();
|          } else {
|              s->ti_size++;


Ping..!
--
Prasad J Pandit / Red Hat Product Security Team
47AF CE69 3A90 54AA 9045 1053 DD13 3D32 FE5B 041F



reply via email to

[Prev in Thread] Current Thread [Next in Thread]