From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42048) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Un6jv-0001UI-Qn for qemu-devel@nongnu.org; Thu, 13 Jun 2013 08:35:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Un6ju-0008Kf-5q for qemu-devel@nongnu.org; Thu, 13 Jun 2013 08:34:55 -0400 Received: from mail-qe0-f49.google.com ([209.85.128.49]:47558) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Un6ju-0008KT-06 for qemu-devel@nongnu.org; Thu, 13 Jun 2013 08:34:54 -0400 Received: by mail-qe0-f49.google.com with SMTP id cz11so6388554qeb.36 for ; Thu, 13 Jun 2013 05:34:53 -0700 (PDT) Sender: Paolo Bonzini Message-ID: <51B9BC69.80601@redhat.com> Date: Thu, 13 Jun 2013 08:34:49 -0400 From: Paolo Bonzini MIME-Version: 1.0 References: <1369239012-8180-1-git-send-email-akong@redhat.com> <1369239012-8180-2-git-send-email-akong@redhat.com> <87mwrcct1t.fsf@codemonkey.ws> <20130531123117.GA8400@t430s.nay.redhat.com> <51B99CB1.6020006@suse.de> In-Reply-To: <51B99CB1.6020006@suse.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v2 1/2] ps2: add support of auto-repeat List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?ISO-8859-1?Q?Andreas_F=E4rber?= Cc: peter.maydell@linaro.org, Anthony Liguori , lilei@linux.vnet.ibm.com, qemu-devel@nongnu.org, kraxel@redhat.com, Amos Kong , lersek@redhat.com Il 13/06/2013 06:19, Andreas Färber ha scritto: > Am 31.05.2013 14:31, schrieb Amos Kong: >> diff --git a/hw/input/ps2.c b/hw/input/ps2.c >> index cdb18e6..fdb9912 100644 >> --- a/hw/input/ps2.c >> +++ b/hw/input/ps2.c >> @@ -615,7 +615,17 @@ static bool ps2_keyboard_repeatstate_needed(void >> *opaque) >> { >> PS2KbdState *s = opaque; >> >> - return s->repeat_period || s->repeat_delay; >> + return s->repeat_period || s->repeat_delay || s->repeat_key || >> s->repeat_timer; >> +} >> + >> +static int ps2_kbd_repeatstate_load(QEMUFile *f, void *opaque, int >> version_id) >> +{ >> + PS2KbdState *s = opaque; >> + qemu_get_timer(f, s->repeat_timer); >> + qemu_mod_timer(s->repeat_timer, qemu_get_clock_ns(vm_clock) + >> + muldiv64(get_ticks_per_sec(), s->repeat_period, >> 1000)); >> + >> + return 0; >> } >> >> static bool ps2_keyboard_ledstate_needed(void *opaque) >> @@ -638,9 +648,12 @@ static const VMStateDescription >> vmstate_ps2_keyboard_repeatstate = { >> .version_id = 3, >> .minimum_version_id = 2, >> .minimum_version_id_old = 2, >> + .load_state_old = ps2_kbd_repeatstate_load, >> .fields = (VMStateField[]) { >> VMSTATE_INT32(repeat_period, PS2KbdState), >> VMSTATE_INT32(repeat_delay, PS2KbdState), >> + VMSTATE_INT32(repeat_key, PS2KbdState), >> + VMSTATE_TIMER(repeat_timer, PS2KbdState), > > You can't just add fields here, they'd need to be specific to a new > version 4. Requested was to make it a subsection instead. This is already a subsection, and this patch is just a proposal to be squashed in this series (which adds the subsection). But I think Amos is right and only the period/delay need to be migrated. Otherwise, you'll get an endless stream of repeats on the destination. Paolo