From: Kevin Wolf <kwolf@redhat.com>
To: Pavel Hrdina <phrdina@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v5 3/4] fdc: rewrite seek and DSKCHG bit handling
Date: Thu, 14 Jun 2012 16:05:57 +0200 [thread overview]
Message-ID: <4FD9EFC5.4030603@redhat.com> (raw)
In-Reply-To: <dad86cadfb2244150a8ac4ef346939386ca0efee.1339593749.git.phrdina@redhat.com>
Am 13.06.2012 15:43, schrieb Pavel Hrdina:
> This bit is cleared on every successful seek to a different track (cylinder).
> The seek is also called on revalidate or on read/write/format commands which
> also clear the DSKCHG bit.
>
> Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
> ---
> hw/fdc.c | 68 +++++++++++++++++++++++++++++++-------------------------------
> 1 files changed, 34 insertions(+), 34 deletions(-)
Nice cleanup! Looks good generally, but this and patch 4 need test cases
as well before I can apply them.
> @@ -1004,30 +998,39 @@ static int fdctrl_seek_to_next_sect(FDCtrl *fdctrl, FDrive *cur_drv)
> fd_sector(cur_drv));
> /* XXX: cur_drv->sect >= cur_drv->last_sect should be an
> error in fact */
> - if (cur_drv->sect >= cur_drv->last_sect ||
> - cur_drv->sect == fdctrl->eot) {
> - cur_drv->sect = 1;
> + uint8_t new_head = cur_drv->head;
> + uint8_t new_track = cur_drv->track;
> + uint8_t new_sect = cur_drv->sect;
> +
> + int ret = 1;
> +
> + if (new_sect >= cur_drv->last_sect ||
> + new_sect == fdctrl->eot) {
> + new_sect = 1;
> if (FD_MULTI_TRACK(fdctrl->data_state)) {
> - if (cur_drv->head == 0 &&
> + if (new_head == 0 &&
> (cur_drv->flags & FDISK_DBL_SIDES) != 0) {
> - cur_drv->head = 1;
> + new_head = 1;
> } else {
> - cur_drv->head = 0;
> - cur_drv->track++;
> + new_head = 0;
> + new_track++;
> if ((cur_drv->flags & FDISK_DBL_SIDES) == 0)
> - return 0;
> + ret = 0;
Please use the chance to add braces here.
Can you also add a small header comment to the function that explains
what the return value means? Initially I read 0 as error, but in fact it
seems only to mean "request completed".
Kevin
next prev parent reply other threads:[~2012-06-14 14:06 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-13 13:43 [Qemu-devel] [PATCH v5 0/4] fdc: fix/rewrite seek, media_changed and interrupt handling Pavel Hrdina
2012-06-13 13:43 ` [Qemu-devel] [PATCH v5 1/4] fdc: fix implied seek while there is no media in drive Pavel Hrdina
2012-06-13 13:43 ` [Qemu-devel] [PATCH v5 2/4] fdc-test: introduced qtest read_without_media Pavel Hrdina
2012-06-13 13:43 ` [Qemu-devel] [PATCH v5 3/4] fdc: rewrite seek and DSKCHG bit handling Pavel Hrdina
2012-06-14 14:05 ` Kevin Wolf [this message]
2012-06-13 13:43 ` [Qemu-devel] [PATCH v5 4/4] fdc: fix interrupt handling Pavel Hrdina
2012-06-14 14:08 ` [Qemu-devel] [PATCH v5 0/4] fdc: fix/rewrite seek, media_changed and " Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FD9EFC5.4030603@redhat.com \
--to=kwolf@redhat.com \
--cc=phrdina@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).