Commit 96d7ddde19cd9617e377f30dbc23665c3ec03c78
1 parent
678fdca8
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>
Showing
1 changed file
with
3 additions
and
3 deletions
hw/etraxfs_dma.c
... | ... | @@ -165,7 +165,7 @@ enum dma_ch_state |
165 | 165 | |
166 | 166 | struct fs_dma_channel |
167 | 167 | { |
168 | - qemu_irq *irq; | |
168 | + qemu_irq irq; | |
169 | 169 | struct etraxfs_dma_client *client; |
170 | 170 | |
171 | 171 | /* Internal status. */ |
... | ... | @@ -392,7 +392,7 @@ static void channel_update_irq(struct fs_dma_ctrl *ctrl, int c) |
392 | 392 | c, |
393 | 393 | ctrl->channels[c].regs[R_MASKED_INTR])); |
394 | 394 | |
395 | - qemu_set_irq(ctrl->channels[c].irq[0], | |
395 | + qemu_set_irq(ctrl->channels[c].irq, | |
396 | 396 | !!ctrl->channels[c].regs[R_MASKED_INTR]); |
397 | 397 | } |
398 | 398 | |
... | ... | @@ -716,7 +716,7 @@ int etraxfs_dmac_input(struct etraxfs_dma_client *client, |
716 | 716 | void etraxfs_dmac_connect(void *opaque, int c, qemu_irq *line, int input) |
717 | 717 | { |
718 | 718 | struct fs_dma_ctrl *ctrl = opaque; |
719 | - ctrl->channels[c].irq = line; | |
719 | + ctrl->channels[c].irq = *line; | |
720 | 720 | ctrl->channels[c].input = input; |
721 | 721 | } |
722 | 722 | ... | ... |