etrax: Don't keep the passed irq pointer.
authorEdgar E. Iglesias <edgar.iglesias@gmail.com>
Mon, 18 May 2009 19:44:10 +0000 (21:44 +0200)
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>
Mon, 18 May 2009 19:44:10 +0000 (21:44 +0200)
Copy passed irq object at channel connect.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>

hw/etraxfs_dma.c

index 12dd78d..ba44e0d 100644 (file)
@@ -165,7 +165,7 @@ enum dma_ch_state
 
 struct fs_dma_channel
 {
-       qemu_irq *irq;
+       qemu_irq irq;
        struct etraxfs_dma_client *client;
 
        /* Internal status.  */
@@ -392,7 +392,7 @@ static void channel_update_irq(struct fs_dma_ctrl *ctrl, int c)
                 c,
                 ctrl->channels[c].regs[R_MASKED_INTR]));
 
-        qemu_set_irq(ctrl->channels[c].irq[0],
+        qemu_set_irq(ctrl->channels[c].irq,
                     !!ctrl->channels[c].regs[R_MASKED_INTR]);
 }
 
@@ -716,7 +716,7 @@ int etraxfs_dmac_input(struct etraxfs_dma_client *client,
 void etraxfs_dmac_connect(void *opaque, int c, qemu_irq *line, int input)
 {
        struct fs_dma_ctrl *ctrl = opaque;
-       ctrl->channels[c].irq = line;
+       ctrl->channels[c].irq = *line;
        ctrl->channels[c].input = input;
 }