Re: [RFC] qemu: simulate edge-triggered interrupt in master PIC for time-drift-fix

Carlo Marcelo Arenas Belon
2007-11-09T17:57:21Z

wrong patch, this was meant to go to the slave PIC, so it will use s->pics[1]
instead of s->pics[0].

also from my tests it might seem that tdf is irrelevant anyway with the new
clock work and haven't been able to find a case where enabling it (so
triggering this buggy code path) migh be needed.

any one care to comment on any current users of tdf? and if there are none in
the viability for removing it?

Carlo

On Fri, Nov 09, 2007 at 11:22:10AM -0600, Carlo Marcelo Arenas Belon wrote:
> The following patch fixes 1a483ef4040ed380bf69d684783d06a617073256 so that the
> parent PIC pointer is used to send the edge irq0 instead of the PIC pair and
> that is an incompatible pointer type as reported in :
>
> /var/tmp/portage/app-emulation/kvm-51/work/kvm-51/qemu/hw/i8259.c: In function
> `
> pic_read_irq':
> /var/tmp/portage/app-emulation/kvm-51/work/kvm-51/qemu/hw/i8259.c:248:
> warning: passing arg 1 of `pic_set_irq1' from incompatible pointer type
> /var/tmp/portage/app-emulation/kvm-51/work/kvm-51/qemu/hw/i8259.c:249:
> warning: passing arg 1 of `pic_set_irq1' from incompatible pointer type
>
> Signed-off-by: Carlo Marcelo Arenas Belon <carenas-kLeDWSohozoJb6fo7hG9ng@public.gmane.org>
> ---
> qemu/hw/i8259.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/qemu/hw/i8259.c b/qemu/hw/i8259.c
> index 01447d7..60063d4 100644
> --- a/qemu/hw/i8259.c
> +++ b/qemu/hw/i8259.c
> @@ -245,8 +245,8 @@ int pic_read_irq(PicState2 *s)
> if (timer_ints_to_push > 0) {
> timer_ints_to_push--;
> /* simulate an edge irq0, like the one generated by i8254 */
> - pic_set_irq1(s, 0, 0);
> - pic_set_irq1(s, 0, 1);
> + pic_set_irq1(&s->pics[0], 0, 0);
> + pic_set_irq1(&s->pics[0], 0, 1);
> }
> }
>
> --
> 1.5.2.5