All of lore.kernel.org
 help / color / mirror / Atom feed
From: DuanZhenzhong <zhenzhong.duan@oracle.com>
To: xen-devel@lists.xensource.com
Cc: joe.jin@oracle.com
Subject: [PATCH 2/2] hvmloader->rombios use C/H/S, LBA when have been set by qemu
Date: Mon, 25 Oct 2010 13:53:18 +0800	[thread overview]
Message-ID: <4CC51B4E.7050400@oracle.com> (raw)
In-Reply-To: <20100805233516.GB21473@joejin-pc.cn.oracle.com>

Hi,
Multiple guests rebooting, across multiple OVS nodes. Not all guest at 
the same time.
Error in /var/log/xend.log taking the form:
...
[2010-09-06 12:19:55 8816] WARNING (image:490) domain 234_sscgrantsd: 
device model failure: pid 16657: died due to signal 11; see
...

This is due to some ide state pointer in ide.c is NULL.
Patch from carnold@novell.com fixed this problem.
After applying, our system get steady.

--- xen-3.4.0.old/qemu-xen.git/hw/ide.c 2010-10-19 10:45:23.000000000 +0800
+++ xen-3.4.0/qemu-xen.git/hw/ide.c     2010-10-19 10:52:57.000000000 +0800
@@ -934,8 +934,9 @@ static inline void ide_dma_submit_check(

static inline void ide_set_irq(IDEState *s)
{
-    BMDMAState *bm = s->bmdma;
-    if (!s->bs) return; /* ouch! (see ide_flush_cb) */
+    BMDMAState *bm;
+    if (!s || !s->bs) return; /* ouch! (see ide_flush_cb) */
+    bm = s->bmdma;
     if (!(s->cmd & IDE_CMD_DISABLE_IRQ)) {
         if (bm) {
             bm->status |= BM_STATUS_INT;
@@ -1223,14 +1224,14 @@ static void ide_read_dma_cb(void *opaque
     int n;
     int64_t sector_num;

+    if (!s || !s->bs) return; /* ouch! (see ide_flush_cb) */
+
     if (ret < 0) {
         dma_buf_commit(s, 1);
        ide_dma_error(s);
        return;
     }

-    if (!s->bs) return; /* ouch! (see ide_flush_cb) */
-
     n = s->io_buffer_size >> 9;
     sector_num = ide_get_sector(s);
     if (n > 0) {
@@ -1334,6 +1335,8 @@ static void ide_write_flush_cb(void *opa
     BMDMAState *bm = opaque;
     IDEState *s = bm->ide_if;

+    if (!s) return;
+
     if (ret != 0) {
        ide_dma_error(s);
        return;
@@ -1365,6 +1368,8 @@ static void ide_write_dma_cb(void *opaqu
     int n;
     int64_t sector_num;

+    if (!s || !s->bs) return; /* ouch! (see ide_flush_cb) */
+
     if (ret < 0) {
         if (ide_handle_write_error(s, -ret,  BM_STATUS_DMA_RETRY))
             return;
@@ -1375,8 +1380,6 @@ static void ide_write_dma_cb(void *opaqu
       return; /* ouch2 */
     }

-    if (!s->bs) return; /* ouch! (see ide_flush_cb) */
-
     n = s->io_buffer_size >> 9;
     sector_num = ide_get_sector(s);
     if (n > 0) {
@@ -1433,7 +1436,7 @@ static void ide_flush_cb(void *opaque, i
{
     IDEState *s = opaque;

-    if (!s->bs) return; /* ouch! (see below) */
+    if (!s || !s->bs) return; /* ouch! (see below) */

     if (ret) {
         /* We are completely doomed.  The IDE spec does not permit us
@@ -1690,7 +1693,7 @@ static void ide_atapi_cmd_read_dma_cb(vo
     IDEState *s = bm->ide_if;
     int data_offset, n;

-    if (!s->bs) return; /* ouch! (see ide_flush_cb) */
+    if (!s || !s->bs) return; /* ouch! (see ide_flush_cb) */

     if (ret < 0) {
         ide_atapi_io_error(s, ret);
@@ -2368,7 +2371,7 @@ static void cdrom_change_cb(void *opaque
     IDEState *s = opaque;
     uint64_t nb_sectors;

-    if (!s->bs) return; /* ouch! (see ide_flush_cb) */
+    if (!s || !s->bs) return; /* ouch! (see ide_flush_cb) */

     bdrv_get_geometry(s->bs, &nb_sectors);
     s->nb_sectors = nb_sectors;

  parent reply	other threads:[~2010-10-25  5:53 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-05 23:35 [PATCH 0/2] Fix could not boot vm image which converted from phy-partition Joe Jin
2010-08-05 23:41 ` [PATCH 1/2] QEMU: Don't set all to default C/H/S when vm heads>16 Joe Jin
2010-08-05 23:49 ` [PATCH 2/2] hvmloader->rombios use C/H/S, LBA when have been set by qemu Joe Jin
2010-08-10 15:50 ` [PATCH 0/2] Fix could not boot vm image which converted from phy-partition Ian Jackson
2010-08-11  8:00   ` Joe Jin
2010-10-25  5:53 ` DuanZhenzhong [this message]
2010-10-26 16:23   ` [PATCH 2/2] hvmloader->rombios use C/H/S, LBA when have been set by qemu Ian Jackson

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=4CC51B4E.7050400@oracle.com \
    --to=zhenzhong.duan@oracle.com \
    --cc=joe.jin@oracle.com \
    --cc=xen-devel@lists.xensource.com \
    /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.