From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=34180 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PyMRw-0004ra-RC for qemu-devel@nongnu.org; Sat, 12 Mar 2011 05:53:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PyMRv-0006dO-E7 for qemu-devel@nongnu.org; Sat, 12 Mar 2011 05:53:32 -0500 Received: from mail-vx0-f173.google.com ([209.85.220.173]:39036) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PyMRv-0006dE-BD for qemu-devel@nongnu.org; Sat, 12 Mar 2011 05:53:31 -0500 Received: by vxb41 with SMTP id 41so3573541vxb.4 for ; Sat, 12 Mar 2011 02:53:30 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: From: Blue Swirl Date: Sat, 12 Mar 2011 12:53:10 +0200 Message-ID: Content-Type: multipart/mixed; boundary=20cf3071ccf298cca0049e46e338 Subject: [Qemu-devel] Re: fdc: refactor device creation causes guest kernel panic List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: qemu-devel --20cf3071ccf298cca0049e46e338 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Wed, Mar 9, 2011 at 4:34 PM, Stefan Hajnoczi wrote: > The following kernel panic occurs when the RHEL6 installer starts on > qemu.git/master: > > BUG: unable to handle kernel NULL pointer dereference at (null) > IP: [] floppy_ready+0xfb/0x730 [floppy] > > For full details see http://pastebin.com/SYE5A6LA. > > git-bisect revealed that the following commit causes this panic: > > commit 63ffb564dca94f8bda01ed6d209784104630a4d2 > Author: Blue Swirl > Date: =C2=A0 Sat Feb 5 16:32:23 2011 +0000 > > =C2=A0 =C2=A0fdc: refactor device creation > > =C2=A0 =C2=A0Turn fdc_init_isa into an inline function. > > =C2=A0 =C2=A0Get floppy geometry directly from the drives. > > =C2=A0 =C2=A0Don't expose FDCtrl. > > =C2=A0 =C2=A0Signed-off-by: Blue Swirl > > The CMOS value at 0x10 has changed from 0x00 to 0x40 but I have not > located the root cause of the problem. > > Blue Swirl: Any thoughts on this bug? The logic for calculating the drive state in pc.c does not match fdc.c logic. Please try this patch. diff --git a/hw/pc.c b/hw/pc.c index 5966bf1..4d67d9f 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -382,7 +382,7 @@ void pc_cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size, /* floppy type */ for (i =3D 0; i < 2; i++) { fd[i] =3D drive_get(IF_FLOPPY, 0, i); - if (fd[i]) { + if (fd[i] && bdrv_is_inserted(fd[i]->bdrv)) { bdrv_get_floppy_geometry_hint(fd[i]->bdrv, &nb_heads, &max_tra= ck, &last_sect, FDRIVE_DRV_NONE, &fd_type[i]); --20cf3071ccf298cca0049e46e338 Content-Type: text/x-diff; charset=US-ASCII; name="0001-pc-fix-wrong-CMOS-values-for-floppy-drives.patch" Content-Disposition: attachment; filename="0001-pc-fix-wrong-CMOS-values-for-floppy-drives.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gl6eyo2n0 RnJvbSBhMDA4ZTZmZDQxYTMxZDQzNzY3MGVhYTBkZGYxMjM1MmU4YTRhOGZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8YTAwOGU2ZmQ0MWEzMWQ0Mzc2NzBlYWEwZGRmMTIz NTJlOGE0YThmYi4xMjk5OTI2OTY3LmdpdC5ibGF1d2lyYmVsQGdtYWlsLmNvbT4KRnJvbTogQmx1 ZSBTd2lybCA8YmxhdXdpcmJlbEBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTIgTWFyIDIwMTEgMDk6 NTI6MjUgKzAwMDAKU3ViamVjdDogW1BBVENIXSBwYzogZml4IHdyb25nIENNT1MgdmFsdWVzIGZv ciBmbG9wcHkgZHJpdmVzCgpCZWZvcmUgY29tbWl0IDYzZmZiNTY0ZGNhOTRmOGJkYTAxZWQ2ZDIw OTc4NDEwNDYzMGE0ZDIsIHN0YXRlcyBmb3IKZmxvcHB5IGRyaXZlcyB3ZXJlIGNhbGN1bGF0ZWQg aW4gZmRjLmM6ZmRfcmV2YWxpZGF0ZSgpLiBUaGVyZSBpdCBpcwphbHNvIGNvbnNpZGVyZWQgd2hl dGhlciBhIGRpc2sgaXMgaW5zZXJ0ZWQgb3Igbm90LiBUaGUgY29tbWl0IGRpZG4ndCBjb3B5CnRo ZSBsb2dpYyBjb21wbGV0ZWx5IHRvIHBjLmMsIHdoaWNoIGNhdXNlZCBhIHJlZ3Jlc3Npb24uCgpG aXggYnkgYWRkaW5nIHRoZSBzYW1lIGNoZWNrIGFsc28gdG8gcGMuYy4KClNpZ25lZC1vZmYtYnk6 IEJsdWUgU3dpcmwgPGJsYXV3aXJiZWxAZ21haWwuY29tPgotLS0KIGh3L3BjLmMgfCAgICAyICst CiAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9ody9wYy5jIGIvaHcvcGMuYwppbmRleCA1OTY2YmYxLi40ZDY3ZDlmIDEwMDY0NAot LS0gYS9ody9wYy5jCisrKyBiL2h3L3BjLmMKQEAgLTM4Miw3ICszODIsNyBAQCB2b2lkIHBjX2Nt b3NfaW5pdChyYW1fYWRkcl90IHJhbV9zaXplLCByYW1fYWRkcl90IGFib3ZlXzRnX21lbV9zaXpl LAogICAgIC8qIGZsb3BweSB0eXBlICovCiAgICAgZm9yIChpID0gMDsgaSA8IDI7IGkrKykgewog ICAgICAgICBmZFtpXSA9IGRyaXZlX2dldChJRl9GTE9QUFksIDAsIGkpOwotICAgICAgICBpZiAo ZmRbaV0pIHsKKyAgICAgICAgaWYgKGZkW2ldICYmIGJkcnZfaXNfaW5zZXJ0ZWQoZmRbaV0tPmJk cnYpKSB7CiAgICAgICAgICAgICBiZHJ2X2dldF9mbG9wcHlfZ2VvbWV0cnlfaGludChmZFtpXS0+ YmRydiwgJm5iX2hlYWRzLCAmbWF4X3RyYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmxhc3Rfc2VjdCwgRkRSSVZFX0RSVl9OT05FLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZkX3R5cGVbaV0pOwotLSAKMS43LjIuMwoK --20cf3071ccf298cca0049e46e338--