From: Anthony Liguori <aliguori@us.ibm.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] r6677 broke access to physical FDD on Win32
Date: Mon, 06 Apr 2009 20:46:06 -0500 [thread overview]
Message-ID: <49DAB05E.5020906@us.ibm.com> (raw)
In-Reply-To: <68676e00903211507o79e84b73j79d63dd03b7750f2@mail.gmail.com>
Luca Tettamanti wrote:
> On Fri, Mar 20, 2009 at 11:01 PM, Anthony Liguori <anthony@codemonkey.ws> wrote:
>
>> Robert Riebisch wrote:
>>
>>> Hi!
>>>
>>> If I run QEMU on Win32 with option "-fda a:", then I'm unable to access
>>> physical floppies from guest OS. "Physical" also includes virtual drives
>>> created by <http://chitchat.at.infoseek.co.jp/vmware/vfd.html>.
>>>
>>> I'm also unable to boot such floppies ("-boot a"). Error message is:
>>> "Boot failed: not a bootable floppy disk"
>>>
>>> By doing some builds I narrowed the problem down to
>>> <http://svn.savannah.gnu.org/viewvc?view=rev&root=qemu&revision=6677> by
>>> Anthony Liguori.
>>>
>>>
>> I suspect this code:
>>
>> block-raw-win32.c:raw_getlength():
>>
>> case FTYPE_HARDDISK:
>> status = DeviceIoControl(s->hfile, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX,
>> NULL, 0, &dg, sizeof(dg), &count, NULL);
>> if (status != 0) {
>> l = dg.DiskSize;
>> }
>> break;
>>
>> Is not doing the correct thing.
>>
>
> Sort of; the real problem is in find_device_type(), it thinks that the
> device is a file :S
>
> The bug is here:
> type = GetDriveType(s->drive_path);
> if (type == DRIVE_CDROM)
> return FTYPE_CD;
> else
> return FTYPE_FILE;
>
> GetDriveType("a:") returns DRIVE_REMOVABLE, which according to MSDN
> means "The drive has removable media; for example, a floppy drive,
> thumb drive, or flash card reader."; the code is not expecting such a
> value so it sets the type to FTYPE_FILE; raw_getlength() then uses
> GetFileSize() which of course fails...
>
> Here's a patch for properly handling the return value of GetDriveType
> (sorry for the attachment, but I'm currently using a remote VM over
> RDP and don't have a decent mailer installed).
>
> Luca
>
Applied. Thanks.
--
Regards,
Anthony Liguori
next prev parent reply other threads:[~2009-04-07 1:46 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-18 21:53 [Qemu-devel] r6677 broke access to physical FDD on Win32 Robert Riebisch
2009-03-20 22:01 ` Anthony Liguori
2009-03-20 22:23 ` Robert Riebisch
2009-03-20 23:02 ` Anthony Liguori
2009-03-20 23:20 ` Luca Tettamanti
2009-03-21 1:56 ` Anthony Liguori
2009-03-22 20:49 ` Robert Riebisch
2009-03-23 2:20 ` Anthony Liguori
2009-03-23 12:31 ` Luca Tettamanti
2009-03-24 8:20 ` Japheth
2009-03-30 19:59 ` Robert Riebisch
2009-03-21 22:07 ` Luca Tettamanti
2009-04-07 1:46 ` Anthony Liguori [this message]
2009-04-07 11:45 ` Luca Tettamanti
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=49DAB05E.5020906@us.ibm.com \
--to=aliguori@us.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.