summaryrefslogtreecommitdiff
path: root/hw/etraxfs_dma.c
diff options
context:
space:
mode:
authorEdgar E. Iglesias <edgar.iglesias@gmail.com>2009-05-18 21:44:10 +0200
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>2009-05-18 21:44:10 +0200
commit96d7ddde19cd9617e377f30dbc23665c3ec03c78 (patch)
tree51fd244fbc5db8eab1fec126477d392459c95f28 /hw/etraxfs_dma.c
parent678fdca87a39eb7989b1c5ede0b1f36cfd3519b0 (diff)
downloadqemu-96d7ddde19cd9617e377f30dbc23665c3ec03c78.tar.gz
qemu-96d7ddde19cd9617e377f30dbc23665c3ec03c78.tar.bz2
qemu-96d7ddde19cd9617e377f30dbc23665c3ec03c78.zip
etrax: Don't keep the passed irq pointer.
Copy passed irq object at channel connect. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Diffstat (limited to 'hw/etraxfs_dma.c')
-rw-r--r--hw/etraxfs_dma.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/hw/etraxfs_dma.c b/hw/etraxfs_dma.c
index 12dd78db27..ba44e0d636 100644
--- a/hw/etraxfs_dma.c
+++ b/hw/etraxfs_dma.c
@@ -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;
}