[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 03/32] lsi: use qdev_reset_all
|
From: |
Paolo Bonzini |
|
Subject: |
[Qemu-devel] [PATCH 03/32] lsi: use qdev_reset_all |
|
Date: |
Fri, 27 Jul 2012 17:02:30 +0200 |
By first resetting the devices, lsi_soft_reset will find the queue
already cleared so there is no need to do that forcibly (which may also
leak SCSIRequests, and/or worse due to dangling references to the
lsi_request in the hba_private field).
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/lsi53c895a.c | 15 +++------------
1 file changed, 3 insertions(+), 12 deletions(-)
diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
index 2fe141d..f04cc68 100644
--- a/hw/lsi53c895a.c
+++ b/hw/lsi53c895a.c
@@ -282,8 +282,6 @@ static inline int lsi_irq_on_rsl(LSIState *s)
static void lsi_soft_reset(LSIState *s)
{
- lsi_request *p;
-
DPRINTF("Reset\n");
s->carry = 0;
@@ -350,15 +348,8 @@ static void lsi_soft_reset(LSIState *s)
s->sbc = 0;
s->csbc = 0;
s->sbr = 0;
- while (!QTAILQ_EMPTY(&s->queue)) {
- p = QTAILQ_FIRST(&s->queue);
- QTAILQ_REMOVE(&s->queue, p, next);
- g_free(p);
- }
- if (s->current) {
- g_free(s->current);
- s->current = NULL;
- }
+ assert(QTAILQ_EMPTY(&s->queue));
+ assert(!s->current);
}
static int lsi_dma_40bit(LSIState *s)
@@ -1738,7 +1729,7 @@ static void lsi_reg_writeb(LSIState *s, int offset,
uint8_t val)
lsi_execute_script(s);
}
if (val & LSI_ISTAT0_SRST) {
- lsi_soft_reset(s);
+ qdev_reset_all(&s->dev.qdev);
}
break;
case 0x16: /* MBOX0 */
--
1.7.10.4
- [Qemu-devel] [PULL 00/32] SCSI patches for 2012-08-27, Paolo Bonzini, 2012/07/27
- [Qemu-devel] [PATCH 03/32] lsi: use qdev_reset_all,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 02/32] megasas: fix misuse of scsi_req_abort, Paolo Bonzini, 2012/07/27
- [Qemu-devel] [PATCH 01/32] megasas: Replace trace_megasas_dcmd_dump_frame(), Paolo Bonzini, 2012/07/27
- [Qemu-devel] [PATCH 05/32] lsi: avoid redundant tests of s->current != NULL, Paolo Bonzini, 2012/07/27
- [Qemu-devel] [PATCH 06/32] scsi-block: remove properties that are not relevant for passthrough, Paolo Bonzini, 2012/07/27
- [Qemu-devel] [PATCH 04/32] lsi: introduce lsi_request_free, Paolo Bonzini, 2012/07/27
- [Qemu-devel] [PATCH 09/32] scsi-disk: make discard asynchronous, Paolo Bonzini, 2012/07/27
- [Qemu-devel] [PATCH 07/32] cutils: add strpadcpy(), Paolo Bonzini, 2012/07/27
- [Qemu-devel] [PATCH 10/32] scsi-disk: move all non-DMA commands to scsi_disk_emulate_command, Paolo Bonzini, 2012/07/27
- [Qemu-devel] [PATCH 11/32] scsi-disk: split scsi-disk reqops, Paolo Bonzini, 2012/07/27