All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH, RFT, v2] sata_mv: convert to new EH
@ 2007-02-25 23:34 Jeff Garzik
  2007-03-02  0:54 ` Andre Tomt
  2007-03-06  5:16 ` Dave Dillow
  0 siblings, 2 replies; 15+ messages in thread
From: Jeff Garzik @ 2007-02-25 23:34 UTC (permalink / raw)
  To: linux-ide; +Cc: LKML


Just got sata_mv working under the new EH, on my 6041.

It probes and talks to disks just fine (chip doesn't support ATAPI),
and hotplug actually has a chance of working.

The 'mv-eh' branch of
git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git mv-eh

contains the following updates:

 drivers/ata/libata-core.c |    6 +-
 drivers/ata/sata_mv.c     |  511 ++++++++++++++++++++++++++++++---------------
 include/linux/libata.h    |    3 +
 3 files changed, 351 insertions(+), 169 deletions(-)

Jeff Garzik (13):
      [libata] sata_mv: don't touch reserved bits in EDMA config register
      [libata] sata_mv: remove extra braces
      [libata] sata_mv: Fix 50xx irq mask
      [libata] export sata_print_link_status()
      [libata] export ata_dev_try_classify()
      [libata] sata_mv: first cut at new EH
      [libata] sata_mv: move PCI error handling into separate function
      [libata] sata_mv: handle PCI error properly, within new EH
      [libata] sata_mv: convert IRQ handler over to new EH
      [libata] sata_mv: clean up vestiges of old EH
      [libata] sata_mv EH: 50xx fixes, fold non-EDMA EH into EDMA EH path
      [libata] sata_mv: improve EH handling with additional hooks
      [libata] sata_mv: more EH fixes

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index e900c5e..aec7d95 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -708,7 +708,7 @@ unsigned int ata_dev_classify(const struct ata_taskfile *tf)
  *	Device type - %ATA_DEV_ATA, %ATA_DEV_ATAPI or %ATA_DEV_NONE.
  */
 
-static unsigned int
+unsigned int
 ata_dev_try_classify(struct ata_port *ap, unsigned int device, u8 *r_err)
 {
 	struct ata_taskfile tf;
@@ -1899,7 +1899,7 @@ void ata_port_probe(struct ata_port *ap)
  *	LOCKING:
  *	None.
  */
-static void sata_print_link_status(struct ata_port *ap)
+void sata_print_link_status(struct ata_port *ap)
 {
 	u32 sstatus, scontrol, tmp;
 
@@ -6217,8 +6217,10 @@ EXPORT_SYMBOL_GPL(ata_qc_complete_multiple);
 EXPORT_SYMBOL_GPL(ata_qc_issue_prot);
 EXPORT_SYMBOL_GPL(ata_tf_load);
 EXPORT_SYMBOL_GPL(ata_tf_read);
+EXPORT_SYMBOL_GPL(ata_dev_try_classify);
 EXPORT_SYMBOL_GPL(ata_noop_dev_select);
 EXPORT_SYMBOL_GPL(ata_std_dev_select);
+EXPORT_SYMBOL_GPL(sata_print_link_status);
 EXPORT_SYMBOL_GPL(ata_tf_to_fis);
 EXPORT_SYMBOL_GPL(ata_tf_from_fis);
 EXPORT_SYMBOL_GPL(ata_check_status);
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index d689df5..6f9e7af 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -137,14 +137,19 @@ enum {
 	PCI_ERR			= (1 << 18),
 	TRAN_LO_DONE		= (1 << 19),	/* 6xxx: IRQ coalescing */
 	TRAN_HI_DONE		= (1 << 20),	/* 6xxx: IRQ coalescing */
+	PORTS_0_3_COAL_DONE	= (1 << 8),
+	PORTS_4_7_COAL_DONE	= (1 << 17),
 	PORTS_0_7_COAL_DONE	= (1 << 21),	/* 6xxx: IRQ coalescing */
 	GPIO_INT		= (1 << 22),
 	SELF_INT		= (1 << 23),
 	TWSI_INT		= (1 << 24),
 	HC_MAIN_RSVD		= (0x7f << 25),	/* bits 31-25 */
+	HC_MAIN_RSVD_5		= (0x1fff << 19), /* bits 31-19 */
 	HC_MAIN_MASKED_IRQS	= (TRAN_LO_DONE | TRAN_HI_DONE |
 				   PORTS_0_7_COAL_DONE | GPIO_INT | TWSI_INT |
 				   HC_MAIN_RSVD),
+	HC_MAIN_MASKED_IRQS_5	= (PORTS_0_3_COAL_DONE | PORTS_4_7_COAL_DONE |
+				   HC_MAIN_RSVD_5),
 
 	/* SATAHC registers */
 	HC_CFG_OFS		= 0,
@@ -187,8 +192,10 @@ enum {
 	EDMA_ERR_DEV_DCON	= (1 << 3),
 	EDMA_ERR_DEV_CON	= (1 << 4),
 	EDMA_ERR_SERR		= (1 << 5),
-	EDMA_ERR_SELF_DIS	= (1 << 7),
+	EDMA_ERR_SELF_DIS	= (1 << 7),	/* Gen II/IIE self-disable */
+	EDMA_ERR_SELF_DIS_5	= (1 << 8),	/* Gen I self-disable */
 	EDMA_ERR_BIST_ASYNC	= (1 << 8),
+	EDMA_ERR_TRANS_IRQ_7	= (1 << 8),	/* Gen IIE transprt layer irq */
 	EDMA_ERR_CRBQ_PAR	= (1 << 9),
 	EDMA_ERR_CRPB_PAR	= (1 << 10),
 	EDMA_ERR_INTRL_PAR	= (1 << 11),
@@ -199,13 +206,33 @@ enum {
 	EDMA_ERR_LNK_CTRL_TX	= (0x1f << 21),
 	EDMA_ERR_LNK_DATA_TX	= (0x1f << 26),
 	EDMA_ERR_TRANS_PROTO	= (1 << 31),
-	EDMA_ERR_FATAL		= (EDMA_ERR_D_PAR | EDMA_ERR_PRD_PAR |
-				   EDMA_ERR_DEV_DCON | EDMA_ERR_CRBQ_PAR |
-				   EDMA_ERR_CRPB_PAR | EDMA_ERR_INTRL_PAR |
-				   EDMA_ERR_IORDY | EDMA_ERR_LNK_CTRL_RX_2 |
-				   EDMA_ERR_LNK_DATA_RX |
-				   EDMA_ERR_LNK_DATA_TX |
-				   EDMA_ERR_TRANS_PROTO),
+	EDMA_ERR_OVERRUN_5	= (1 << 5),
+	EDMA_ERR_UNDERRUN_5	= (1 << 6),
+	EDMA_EH_FREEZE		= EDMA_ERR_D_PAR |
+				  EDMA_ERR_PRD_PAR |
+				  EDMA_ERR_DEV_DCON |
+				  EDMA_ERR_DEV_CON |
+				  EDMA_ERR_SERR |
+				  EDMA_ERR_SELF_DIS |
+				  EDMA_ERR_CRBQ_PAR |
+				  EDMA_ERR_CRPB_PAR |
+				  EDMA_ERR_INTRL_PAR |
+				  EDMA_ERR_IORDY |
+				  EDMA_ERR_LNK_CTRL_RX_2 |
+				  EDMA_ERR_LNK_DATA_RX |
+				  EDMA_ERR_LNK_DATA_TX |
+				  EDMA_ERR_TRANS_PROTO,
+	EDMA_EH_FREEZE_5	= EDMA_ERR_D_PAR |
+				  EDMA_ERR_PRD_PAR |
+				  EDMA_ERR_DEV_DCON |
+				  EDMA_ERR_DEV_CON |
+				  EDMA_ERR_OVERRUN_5 |
+				  EDMA_ERR_UNDERRUN_5 |
+				  EDMA_ERR_SELF_DIS_5 |
+				  EDMA_ERR_CRBQ_PAR |
+				  EDMA_ERR_CRPB_PAR |
+				  EDMA_ERR_INTRL_PAR |
+				  EDMA_ERR_IORDY,
 
 	EDMA_REQ_Q_BASE_HI_OFS	= 0x10,
 	EDMA_REQ_Q_IN_PTR_OFS	= 0x14,		/* also contains BASE_LO */
@@ -239,6 +266,7 @@ enum {
 	/* Port private flags (pp_flags) */
 	MV_PP_FLAG_EDMA_EN	= (1 << 0),
 	MV_PP_FLAG_EDMA_DS_ACT	= (1 << 1),
+	MV_PP_FLAG_HAD_A_RESET	= (1 << 2),
 };
 
 #define IS_50XX(hpriv) ((hpriv)->hp_flags & MV_HP_50XX)
@@ -338,15 +366,15 @@ static u32 mv_scr_read(struct ata_port *ap, unsigned int sc_reg_in);
 static void mv_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val);
 static u32 mv5_scr_read(struct ata_port *ap, unsigned int sc_reg_in);
 static void mv5_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val);
-static void mv_phy_reset(struct ata_port *ap);
-static void __mv_phy_reset(struct ata_port *ap, int can_sleep);
 static int mv_port_start(struct ata_port *ap);
 static void mv_port_stop(struct ata_port *ap);
 static void mv_qc_prep(struct ata_queued_cmd *qc);
 static void mv_qc_prep_iie(struct ata_queued_cmd *qc);
 static unsigned int mv_qc_issue(struct ata_queued_cmd *qc);
 static irqreturn_t mv_interrupt(int irq, void *dev_instance);
-static void mv_eng_timeout(struct ata_port *ap);
+static void mv_error_handler(struct ata_port *ap);
+static void mv_eh_freeze(struct ata_port *ap);
+static void mv_eh_thaw(struct ata_port *ap);
 static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 
 static void mv5_phy_errata(struct mv_host_priv *hpriv, void __iomem *mmio,
@@ -370,7 +398,6 @@ static void mv6_reset_flash(struct mv_host_priv *hpriv, void __iomem *mmio);
 static void mv_reset_pci_bus(struct pci_dev *pdev, void __iomem *mmio);
 static void mv_channel_reset(struct mv_host_priv *hpriv, void __iomem *mmio,
 			     unsigned int port_no);
-static void mv_stop_and_reset(struct ata_port *ap);
 
 static struct scsi_host_template mv_sht = {
 	.module			= THIS_MODULE,
@@ -399,19 +426,19 @@ static const struct ata_port_operations mv5_ops = {
 	.exec_command		= ata_exec_command,
 	.dev_select		= ata_std_dev_select,
 
-	.phy_reset		= mv_phy_reset,
-
 	.qc_prep		= mv_qc_prep,
 	.qc_issue		= mv_qc_issue,
 	.data_xfer		= ata_data_xfer,
 
-	.eng_timeout		= mv_eng_timeout,
-
 	.irq_handler		= mv_interrupt,
 	.irq_clear		= mv_irq_clear,
 	.irq_on			= ata_irq_on,
 	.irq_ack		= ata_irq_ack,
 
+	.error_handler		= mv_error_handler,
+	.freeze			= mv_eh_freeze,
+	.thaw			= mv_eh_thaw,
+
 	.scr_read		= mv5_scr_read,
 	.scr_write		= mv5_scr_write,
 
@@ -428,19 +455,19 @@ static const struct ata_port_operations mv6_ops = {
 	.exec_command		= ata_exec_command,
 	.dev_select		= ata_std_dev_select,
 
-	.phy_reset		= mv_phy_reset,
-
 	.qc_prep		= mv_qc_prep,
 	.qc_issue		= mv_qc_issue,
 	.data_xfer		= ata_data_xfer,
 
-	.eng_timeout		= mv_eng_timeout,
-
 	.irq_handler		= mv_interrupt,
 	.irq_clear		= mv_irq_clear,
 	.irq_on			= ata_irq_on,
 	.irq_ack		= ata_irq_ack,
 
+	.error_handler		= mv_error_handler,
+	.freeze			= mv_eh_freeze,
+	.thaw			= mv_eh_thaw,
+
 	.scr_read		= mv_scr_read,
 	.scr_write		= mv_scr_write,
 
@@ -457,19 +484,19 @@ static const struct ata_port_operations mv_iie_ops = {
 	.exec_command		= ata_exec_command,
 	.dev_select		= ata_std_dev_select,
 
-	.phy_reset		= mv_phy_reset,
-
 	.qc_prep		= mv_qc_prep_iie,
 	.qc_issue		= mv_qc_issue,
 	.data_xfer		= ata_data_xfer,
 
-	.eng_timeout		= mv_eng_timeout,
-
 	.irq_handler		= mv_interrupt,
 	.irq_clear		= mv_irq_clear,
 	.irq_on			= ata_irq_on,
 	.irq_ack		= ata_irq_ack,
 
+	.error_handler		= mv_error_handler,
+	.freeze			= mv_eh_freeze,
+	.thaw			= mv_eh_thaw,
+
 	.scr_read		= mv_scr_read,
 	.scr_write		= mv_scr_write,
 
@@ -662,12 +689,12 @@ static void mv_start_dma(void __iomem *base, struct mv_port_priv *pp)
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_stop_dma(struct ata_port *ap)
+static int mv_stop_dma(struct ata_port *ap)
 {
 	void __iomem *port_mmio = mv_ap_base(ap);
 	struct mv_port_priv *pp	= ap->private_data;
 	u32 reg;
-	int i;
+	int i, err = 0;
 
 	if (MV_PP_FLAG_EDMA_EN & pp->pp_flags) {
 		/* Disable EDMA if active.   The disable bit auto clears.
@@ -687,10 +714,12 @@ static void mv_stop_dma(struct ata_port *ap)
 		udelay(100);
 	}
 
-	if (EDMA_EN & reg) {
+	if (reg & EDMA_EN) {
 		ata_port_printk(ap, KERN_ERR, "Unable to stop eDMA\n");
-		/* FIXME: Consider doing a reset here to recover */
+		err = -EIO;
 	}
+
+	return err;
 }
 
 #ifdef ATA_DEBUG
@@ -793,20 +822,18 @@ static u32 mv_scr_read(struct ata_port *ap, unsigned int sc_reg_in)
 {
 	unsigned int ofs = mv_scr_offset(sc_reg_in);
 
-	if (0xffffffffU != ofs) {
+	if (0xffffffffU != ofs)
 		return readl(mv_ap_base(ap) + ofs);
-	} else {
+	else
 		return (u32) ofs;
-	}
 }
 
 static void mv_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val)
 {
 	unsigned int ofs = mv_scr_offset(sc_reg_in);
 
-	if (0xffffffffU != ofs) {
+	if (0xffffffffU != ofs)
 		writelfl(val, mv_ap_base(ap) + ofs);
-	}
 }
 
 static void mv_edma_cfg(struct mv_host_priv *hpriv, void __iomem *port_mmio)
@@ -814,23 +841,27 @@ static void mv_edma_cfg(struct mv_host_priv *hpriv, void __iomem *port_mmio)
 	u32 cfg = readl(port_mmio + EDMA_CFG_OFS);
 
 	/* set up non-NCQ EDMA configuration */
-	cfg &= ~0x1f;		/* clear queue depth */
-	cfg &= ~EDMA_CFG_NCQ;	/* clear NCQ mode */
 	cfg &= ~(1 << 9);	/* disable equeue */
 
-	if (IS_GEN_I(hpriv))
+	if (IS_GEN_I(hpriv)) {
+		cfg &= ~0x1f;		/* clear queue depth */
 		cfg |= (1 << 8);	/* enab config burst size mask */
+	}
 
-	else if (IS_GEN_II(hpriv))
+	else if (IS_GEN_II(hpriv)) {
+		cfg &= ~0x1f;		/* clear queue depth */
 		cfg |= EDMA_CFG_RD_BRST_EXT | EDMA_CFG_WR_BUFF_LEN;
+		cfg &= ~(EDMA_CFG_NCQ | EDMA_CFG_NCQ_GO_ON_ERR); /* clear NCQ */
+	}
 
 	else if (IS_GEN_IIE(hpriv)) {
-		cfg |= (1 << 23);	/* dis RX PM port mask */
-		cfg &= ~(1 << 16);	/* dis FIS-based switching (for now) */
+		cfg |= (1 << 23);	/* do not mask PM field in rx'd FIS */
+		cfg |= (1 << 22);	/* enab 4-entry host queue cache */
 		cfg &= ~(1 << 19);	/* dis 128-entry queue (for now?) */
 		cfg |= (1 << 18);	/* enab early completion */
-		cfg |= (1 << 17);	/* enab host q cache */
-		cfg |= (1 << 22);	/* enab cutthrough */
+		cfg |= (1 << 17);	/* enab cut-through (dis stor&forwrd) */
+		cfg &= ~(1 << 16);	/* dis FIS-based switching (for now) */
+		cfg &= ~(EDMA_CFG_NCQ | EDMA_CFG_NCQ_GO_ON_ERR); /* clear NCQ */
 	}
 
 	writelfl(cfg, port_mmio + EDMA_CFG_OFS);
@@ -1260,30 +1291,95 @@ static u8 mv_get_crpb_status(struct ata_port *ap)
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_err_intr(struct ata_port *ap, int reset_allowed)
+static void mv_err_intr(struct ata_port *ap, struct ata_queued_cmd *qc,
+			unsigned int err_mask)
 {
 	void __iomem *port_mmio = mv_ap_base(ap);
-	u32 edma_err_cause, serr = 0;
+	u32 edma_err_cause, eh_freeze_mask, serr = 0;
+	struct mv_port_priv *pp = ap->private_data;
+	struct mv_host_priv *hpriv = ap->host->private_data;
+	unsigned int edma_enabled = (pp->pp_flags & MV_PP_FLAG_EDMA_EN);
+	unsigned int action = 0;
+	struct ata_eh_info *ehi = &ap->eh_info;
 
-	edma_err_cause = readl(port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
+	ata_ehi_clear_desc(ehi);
 
-	if (EDMA_ERR_SERR & edma_err_cause) {
+	if (!edma_enabled) {
+		/* just a guess: do we need to do this? should we
+		 * expand this, and do it in all cases?
+		 */
 		sata_scr_read(ap, SCR_ERROR, &serr);
 		sata_scr_write_flush(ap, SCR_ERROR, serr);
 	}
-	if (EDMA_ERR_SELF_DIS & edma_err_cause) {
-		struct mv_port_priv *pp	= ap->private_data;
-		pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+
+	edma_err_cause = readl(port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
+
+	ata_ehi_push_desc(ehi, "edma_err 0x%08x", edma_err_cause);
+
+	/*
+	 * all generations share these EDMA error cause bits
+	 */
+
+	if (edma_err_cause & EDMA_ERR_DEV)
+		err_mask |= AC_ERR_DEV;
+	if (edma_err_cause & (EDMA_ERR_D_PAR | EDMA_ERR_PRD_PAR |
+			EDMA_ERR_CRBQ_PAR | EDMA_ERR_CRPB_PAR |
+			EDMA_ERR_INTRL_PAR)) {
+		err_mask |= AC_ERR_ATA_BUS;
+		action |= ATA_EH_HARDRESET;
+		ata_ehi_push_desc(ehi, ", parity error");
+	}
+	if (edma_err_cause & (EDMA_ERR_DEV_DCON | EDMA_ERR_DEV_CON)) {
+		ata_ehi_hotplugged(ehi);
+		ata_ehi_push_desc(ehi, edma_err_cause & EDMA_ERR_DEV_DCON ?
+			", dev disconnect" : ", dev connect");
+	}
+
+	if (IS_50XX(hpriv)) {
+		eh_freeze_mask = EDMA_EH_FREEZE_5;
+
+		if (edma_err_cause & EDMA_ERR_SELF_DIS_5) {
+			struct mv_port_priv *pp	= ap->private_data;
+			pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+			ata_ehi_push_desc(ehi, ", EDMA self-disable");
+		}
+	} else {
+		eh_freeze_mask = EDMA_EH_FREEZE;
+
+		if (edma_err_cause & EDMA_ERR_SELF_DIS) {
+			struct mv_port_priv *pp	= ap->private_data;
+			pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+			ata_ehi_push_desc(ehi, ", EDMA self-disable");
+		}
+
+		if (edma_err_cause & EDMA_ERR_SERR) {
+			sata_scr_read(ap, SCR_ERROR, &serr);
+			sata_scr_write_flush(ap, SCR_ERROR, serr);
+			err_mask = AC_ERR_ATA_BUS;
+			action |= ATA_EH_HARDRESET;
+		}
 	}
-	DPRINTK(KERN_ERR "ata%u: port error; EDMA err cause: 0x%08x "
-		"SERR: 0x%08x\n", ap->id, edma_err_cause, serr);
 
 	/* Clear EDMA now that SERR cleanup done */
 	writelfl(0, port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
 
-	/* check for fatal here and recover if needed */
-	if (reset_allowed && (EDMA_ERR_FATAL & edma_err_cause))
-		mv_stop_and_reset(ap);
+	if (!err_mask) {
+		err_mask = AC_ERR_OTHER;
+		action |= ATA_EH_HARDRESET;
+	}
+
+	ehi->serror |= serr;
+	ehi->action |= action;
+
+	if (qc)
+		qc->err_mask |= err_mask;
+	else
+		ehi->err_mask |= err_mask;
+
+	if (edma_err_cause & eh_freeze_mask)
+		ata_port_freeze(ap);
+	else
+		ata_port_abort(ap);
 }
 
 /**
@@ -1311,17 +1407,17 @@ static void mv_host_intr(struct ata_host *host, u32 relevant, unsigned int hc)
 	int shift, port, port0, hard_port, handled;
 	unsigned int err_mask;
 
-	if (hc == 0) {
+	if (hc == 0)
 		port0 = 0;
-	} else {
+	else
 		port0 = MV_PORTS_PER_HC;
-	}
 
 	/* we'll need the HC success int register in most cases */
 	hc_irq_cause = readl(hc_mmio + HC_IRQ_CAUSE_OFS);
-	if (hc_irq_cause) {
-		writelfl(~hc_irq_cause, hc_mmio + HC_IRQ_CAUSE_OFS);
-	}
+	if (!hc_irq_cause)
+		return;
+
+	writelfl(~hc_irq_cause, hc_mmio + HC_IRQ_CAUSE_OFS);
 
 	VPRINTK("ENTER, hc%u relevant=0x%08x HC IRQ cause=0x%08x\n",
 		hc,relevant,hc_irq_cause);
@@ -1330,9 +1426,11 @@ static void mv_host_intr(struct ata_host *host, u32 relevant, unsigned int hc)
 		u8 ata_status = 0;
 		struct ata_port *ap = host->ports[port];
 		struct mv_port_priv *pp = ap->private_data;
+		int have_err_bits;
 
 		hard_port = mv_hardport_from_port(port); /* range 0..3 */
 		handled = 0;	/* ensure ata_status is set if handled++ */
+		err_mask = 0;
 
 		/* Note that DEV_IRQ might happen spuriously during EDMA,
 		 * and should be ignored in such cases.
@@ -1360,32 +1458,62 @@ static void mv_host_intr(struct ata_host *host, u32 relevant, unsigned int hc)
 		if (ap && (ap->flags & ATA_FLAG_DISABLED))
 			continue;
 
-		err_mask = ac_err_mask(ata_status);
+		if (handled)
+			err_mask = ac_err_mask(ata_status);
 
 		shift = port << 1;		/* (port * 2) */
 		if (port >= MV_PORTS_PER_HC) {
 			shift++;	/* skip bit 8 in the HC Main IRQ reg */
 		}
-		if ((PORT0_ERR << shift) & relevant) {
-			mv_err_intr(ap, 1);
-			err_mask |= AC_ERR_OTHER;
-			handled = 1;
-		}
+		have_err_bits = ((PORT0_ERR << shift) & relevant);
+
+		qc = ata_qc_from_tag(ap, ap->active_tag);
+
+		if (have_err_bits || err_mask)
+			mv_err_intr(ap, qc, err_mask);
+		else if ((qc) && (!(qc->tf.flags & ATA_TFLAG_POLLING)))
+			ata_qc_complete(qc);
+	}
+	VPRINTK("EXIT\n");
+}
 
-		if (handled) {
+static void mv_pci_error(struct ata_host *host, void __iomem *mmio)
+{
+	struct ata_port *ap;
+	struct ata_queued_cmd *qc;
+	struct ata_eh_info *ehi;
+	unsigned int i, err_mask, printed = 0;
+	u32 err_cause;
+
+	err_cause = readl(mmio + PCI_IRQ_CAUSE_OFS);
+
+	dev_printk(KERN_ERR, host->dev, "PCI ERROR; PCI IRQ cause=0x%08x\n",
+		   err_cause);
+
+	DPRINTK("All regs @ PCI error\n");
+	mv_dump_all_regs(mmio, -1, to_pci_dev(host->dev));
+
+	writelfl(0, mmio + PCI_IRQ_CAUSE_OFS);
+
+	for (i = 0; i < host->n_ports; i++) {
+		ap = host->ports[i];
+		if (!ata_port_offline(ap)) {
+			ehi = &ap->eh_info;
+			ata_ehi_clear_desc(ehi);
+			if (!printed++)
+				ata_ehi_push_desc(ehi,
+					"PCI err cause 0x%08x", err_cause);
+			err_mask = AC_ERR_HOST_BUS;
+			ehi->action = ATA_EH_HARDRESET;
 			qc = ata_qc_from_tag(ap, ap->active_tag);
-			if (qc && (qc->flags & ATA_QCFLAG_ACTIVE)) {
-				VPRINTK("port %u IRQ found for qc, "
-					"ata_status 0x%x\n", port,ata_status);
-				/* mark qc status appropriately */
-				if (!(qc->tf.flags & ATA_TFLAG_POLLING)) {
-					qc->err_mask |= err_mask;
-					ata_qc_complete(qc);
-				}
-			}
+			if (qc)
+				qc->err_mask |= err_mask;
+			else
+				ehi->err_mask |= err_mask;
+
+			ata_port_freeze(ap);
 		}
 	}
-	VPRINTK("EXIT\n");
 }
 
 /**
@@ -1416,24 +1544,33 @@ static irqreturn_t mv_interrupt(int irq, void *dev_instance)
 	/* check the cases where we either have nothing pending or have read
 	 * a bogus register value which can indicate HW removal or PCI fault
 	 */
-	if (!irq_stat || (0xffffffffU == irq_stat)) {
+	if (!irq_stat || (0xffffffffU == irq_stat))
 		return IRQ_NONE;
-	}
 
 	n_hcs = mv_get_hc_count(host->ports[0]->flags);
 	spin_lock(&host->lock);
 
+	if (unlikely(irq_stat & PCI_ERR)) {
+		mv_pci_error(host, mmio);
+		handled = 1;
+		goto out_unlock;	/* skip all other HC irq handling */
+	}
+
 	for (hc = 0; hc < n_hcs; hc++) {
 		u32 relevant = irq_stat & (HC0_IRQ_PEND << (hc * HC_SHIFT));
 		if (relevant) {
 			mv_host_intr(host, relevant, hc);
-			handled++;
+			handled = 1;
 		}
 	}
 
 	hpriv = host->private_data;
 	if (IS_60XX(hpriv)) {
-		/* deal with the interrupt coalescing bits */
+		/*
+		 * deal with the interrupt coalescing bits; they
+		 * are masked via HC_MAIN_MASKED_IRQS, so we shouldn't
+		 * need to do this.
+		 */
 		if (irq_stat & (TRAN_LO_DONE | TRAN_HI_DONE | PORTS_0_7_COAL_DONE)) {
 			writelfl(0, mmio + MV_IRQ_COAL_CAUSE_LO);
 			writelfl(0, mmio + MV_IRQ_COAL_CAUSE_HI);
@@ -1441,16 +1578,7 @@ static irqreturn_t mv_interrupt(int irq, void *dev_instance)
 		}
 	}
 
-	if (PCI_ERR & irq_stat) {
-		printk(KERN_ERR DRV_NAME ": PCI ERROR; PCI IRQ cause=0x%08x\n",
-		       readl(mmio + PCI_IRQ_CAUSE_OFS));
-
-		DPRINTK("All regs @ PCI error\n");
-		mv_dump_all_regs(mmio, -1, to_pci_dev(host->dev));
-
-		writelfl(0, mmio + PCI_IRQ_CAUSE_OFS);
-		handled++;
-	}
+out_unlock:
 	spin_unlock(&host->lock);
 
 	return IRQ_RETVAL(handled);
@@ -1859,28 +1987,8 @@ static void mv_channel_reset(struct mv_host_priv *hpriv, void __iomem *mmio,
 		mdelay(1);
 }
 
-static void mv_stop_and_reset(struct ata_port *ap)
-{
-	struct mv_host_priv *hpriv = ap->host->private_data;
-	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
-
-	mv_stop_dma(ap);
-
-	mv_channel_reset(hpriv, mmio, ap->port_no);
-
-	__mv_phy_reset(ap, 0);
-}
-
-static inline void __msleep(unsigned int msec, int can_sleep)
-{
-	if (can_sleep)
-		msleep(msec);
-	else
-		mdelay(msec);
-}
-
 /**
- *      __mv_phy_reset - Perform eDMA reset followed by COMRESET
+ *      mv_phy_reset - Perform eDMA reset followed by COMRESET
  *      @ap: ATA channel to manipulate
  *
  *      Part of this is taken from __sata_phy_reset and modified to
@@ -1890,13 +1998,11 @@ static inline void __msleep(unsigned int msec, int can_sleep)
  *      Inherited from caller.  This is coded to safe to call at
  *      interrupt level, i.e. it does not sleep.
  */
-static void __mv_phy_reset(struct ata_port *ap, int can_sleep)
+static void mv_phy_reset(struct ata_port *ap, unsigned int *class)
 {
 	struct mv_port_priv *pp	= ap->private_data;
 	struct mv_host_priv *hpriv = ap->host->private_data;
 	void __iomem *port_mmio = mv_ap_base(ap);
-	struct ata_taskfile tf;
-	struct ata_device *dev = &ap->device[0];
 	unsigned long timeout;
 	int retry = 5;
 	u32 sstatus;
@@ -1910,10 +2016,10 @@ static void __mv_phy_reset(struct ata_port *ap, int can_sleep)
 	/* Issue COMRESET via SControl */
 comreset_retry:
 	sata_scr_write_flush(ap, SCR_CONTROL, 0x301);
-	__msleep(1, can_sleep);
+	msleep(1);
 
 	sata_scr_write_flush(ap, SCR_CONTROL, 0x300);
-	__msleep(20, can_sleep);
+	msleep(20);
 
 	timeout = jiffies + msecs_to_jiffies(200);
 	do {
@@ -1921,7 +2027,7 @@ comreset_retry:
 		if (((sstatus & 0x3) == 3) || ((sstatus & 0x3) == 0))
 			break;
 
-		__msleep(1, can_sleep);
+		msleep(1);
 	} while (time_before(jiffies, timeout));
 
 	/* work around errata */
@@ -1934,16 +2040,12 @@ comreset_retry:
 		"SCtrl 0x%08x\n", mv_scr_read(ap, SCR_STATUS),
 		mv_scr_read(ap, SCR_ERROR), mv_scr_read(ap, SCR_CONTROL));
 
-	if (ata_port_online(ap)) {
-		ata_port_probe(ap);
-	} else {
-		sata_scr_read(ap, SCR_STATUS, &sstatus);
-		ata_port_printk(ap, KERN_INFO,
-				"no device found (phy stat %08x)\n", sstatus);
-		ata_port_disable(ap);
+	ap->cbl = ATA_CBL_SATA;
+
+	if (ata_port_offline(ap)) {
+		*class = ATA_DEV_NONE;
 		return;
 	}
-	ap->cbl = ATA_CBL_SATA;
 
 	/* even after SStatus reflects that device is ready,
 	 * it seems to take a while for link to be fully
@@ -1955,68 +2057,139 @@ comreset_retry:
 		u8 drv_stat = ata_check_status(ap);
 		if ((drv_stat != 0x80) && (drv_stat != 0x7f))
 			break;
-		__msleep(500, can_sleep);
+		msleep(500);
 		if (retry-- <= 0)
 			break;
 	}
 
-	tf.lbah = readb(ap->ioaddr.lbah_addr);
-	tf.lbam = readb(ap->ioaddr.lbam_addr);
-	tf.lbal = readb(ap->ioaddr.lbal_addr);
-	tf.nsect = readb(ap->ioaddr.nsect_addr);
-
-	dev->class = ata_dev_classify(&tf);
-	if (!ata_dev_enabled(dev)) {
-		VPRINTK("Port disabled post-sig: No device present.\n");
-		ata_port_disable(ap);
-	}
+	/* finally, read device signature from TF registers */
+	*class = ata_dev_try_classify(ap, 0, NULL);
 
 	writelfl(0, port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
 
-	pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+	WARN_ON(pp->pp_flags & MV_PP_FLAG_EDMA_EN);
 
 	VPRINTK("EXIT\n");
 }
 
-static void mv_phy_reset(struct ata_port *ap)
+static int mv_prereset(struct ata_port *ap)
 {
-	__mv_phy_reset(ap, 1);
+	struct mv_port_priv *pp	= ap->private_data;
+	struct ata_eh_context *ehc = &ap->eh_context;
+	int rc;
+	
+	rc = mv_stop_dma(ap);
+	if (rc)
+		ehc->i.action |= ATA_EH_HARDRESET;
+
+	if (!(pp->pp_flags & MV_PP_FLAG_HAD_A_RESET)) {
+		pp->pp_flags |= MV_PP_FLAG_HAD_A_RESET;
+		ehc->i.action |= ATA_EH_HARDRESET;
+	}
+
+	/* if we're about to do hardreset, nothing more to do */
+	if (ehc->i.action & ATA_EH_HARDRESET)
+		return 0;
+
+	if (ata_port_online(ap))
+		ata_busy_sleep(ap, ATA_TMOUT_BOOT_QUICK,
+				ATA_TMOUT_BOOT_QUICK + 1);
+
+	return 0;
 }
 
-/**
- *      mv_eng_timeout - Routine called by libata when SCSI times out I/O
- *      @ap: ATA channel to manipulate
- *
- *      Intent is to clear all pending error conditions, reset the
- *      chip/bus, fail the command, and move on.
- *
- *      LOCKING:
- *      This routine holds the host lock while failing the command.
- */
-static void mv_eng_timeout(struct ata_port *ap)
+static int mv_hardreset(struct ata_port *ap, unsigned int *class)
 {
+	struct mv_host_priv *hpriv = ap->host->private_data;
 	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
-	struct ata_queued_cmd *qc;
-	unsigned long flags;
 
-	ata_port_printk(ap, KERN_ERR, "Entering mv_eng_timeout\n");
-	DPRINTK("All regs @ start of eng_timeout\n");
-	mv_dump_all_regs(mmio, ap->port_no, to_pci_dev(ap->host->dev));
+	mv_stop_dma(ap);
 
-	qc = ata_qc_from_tag(ap, ap->active_tag);
-        printk(KERN_ERR "mmio_base %p ap %p qc %p scsi_cmnd %p &cmnd %p\n",
-	       mmio, ap, qc, qc->scsicmd, &qc->scsicmd->cmnd);
+	mv_channel_reset(hpriv, mmio, ap->port_no);
 
-	spin_lock_irqsave(&ap->host->lock, flags);
-	mv_err_intr(ap, 0);
-	mv_stop_and_reset(ap);
-	spin_unlock_irqrestore(&ap->host->lock, flags);
+	mv_phy_reset(ap, class);
+
+	return 0;
+}
 
-	WARN_ON(!(qc->flags & ATA_QCFLAG_ACTIVE));
-	if (qc->flags & ATA_QCFLAG_ACTIVE) {
-		qc->err_mask |= AC_ERR_TIMEOUT;
-		ata_eh_qc_complete(qc);
+static void mv_postreset(struct ata_port *ap, unsigned int *classes)
+{
+	u32 serr;
+
+	/* print link status */
+	sata_print_link_status(ap);
+
+	/* clear SError */
+	sata_scr_read(ap, SCR_ERROR, &serr);
+	sata_scr_write_flush(ap, SCR_ERROR, serr);
+
+	/* bail out if no device is present */
+	if (classes[0] == ATA_DEV_NONE && classes[1] == ATA_DEV_NONE) {
+		DPRINTK("EXIT, no device\n");
+		return;
 	}
+
+	/* set up device control */
+	iowrite8(ap->ctl, ap->ioaddr.ctl_addr);
+}
+
+static void mv_error_handler(struct ata_port *ap)
+{
+	ata_do_eh(ap, mv_prereset, ata_std_softreset,
+		  mv_hardreset, mv_postreset);
+}
+
+static void mv_eh_freeze(struct ata_port *ap)
+{
+	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
+	unsigned int hc = (ap->port_no > 3) ? 1 : 0;
+	u32 tmp, mask;
+	unsigned int shift;
+
+	/* FIXME: handle coalescing completion events properly */
+
+	shift = ap->port_no * 2;
+	if (hc > 0)
+		shift++;
+
+	mask = 0x3 << shift;
+
+	/* disable assertion of portN err, done events */
+	tmp = readl(mmio + HC_MAIN_IRQ_MASK_OFS);
+	writelfl(tmp & ~mask, mmio + HC_MAIN_IRQ_MASK_OFS);
+}
+
+static void mv_eh_thaw(struct ata_port *ap)
+{
+	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
+	unsigned int hc = (ap->port_no > 3) ? 1 : 0;
+	void __iomem *hc_mmio = mv_hc_base(mmio, hc);
+	void __iomem *port_mmio = mv_ap_base(ap);
+	u32 tmp, mask, hc_irq_cause;
+	unsigned int shift, hc_port_no = ap->port_no;
+
+	/* FIXME: handle coalescing completion events properly */
+
+	shift = ap->port_no * 2;
+	if (hc > 0) {
+		shift++;
+		hc_port_no -= 4;
+	}
+
+	mask = 0x3 << shift;
+
+	/* clear EDMA errors on this port */
+	writel(0, port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
+
+	/* clear pending irq events */
+	hc_irq_cause = readl(hc_mmio + HC_IRQ_CAUSE_OFS);
+	hc_irq_cause &= ~(1 << hc_port_no);	/* clear CRPB-done */
+	hc_irq_cause &= ~(1 << (hc_port_no + 8)); /* clear Device int */
+	writel(hc_irq_cause, hc_mmio + HC_IRQ_CAUSE_OFS);
+
+	/* enable assertion of portN err, done events */
+	tmp = readl(mmio + HC_MAIN_IRQ_MASK_OFS);
+	writelfl(tmp | mask, mmio + HC_MAIN_IRQ_MASK_OFS);
 }
 
 /**
@@ -2240,7 +2413,11 @@ static int mv_init_host(struct pci_dev *pdev, struct ata_probe_ent *probe_ent,
 
 	/* and unmask interrupt generation for host regs */
 	writelfl(PCI_UNMASK_ALL_IRQS, mmio + PCI_IRQ_MASK_OFS);
-	writelfl(~HC_MAIN_MASKED_IRQS, mmio + HC_MAIN_IRQ_MASK_OFS);
+
+	if (IS_50XX(hpriv))
+		writelfl(~HC_MAIN_MASKED_IRQS_5, mmio + HC_MAIN_IRQ_MASK_OFS);
+	else
+		writelfl(~HC_MAIN_MASKED_IRQS, mmio + HC_MAIN_IRQ_MASK_OFS);
 
 	VPRINTK("HC MAIN IRQ cause/mask=0x%08x/0x%08x "
 		"PCI int cause/mask=0x%08x/0x%08x\n",
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 86762a9..9235017 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -699,6 +699,7 @@ static inline int ata_port_is_dummy(struct ata_port *ap)
 	return ap->ops == &ata_dummy_port_ops;
 }
 
+extern void sata_print_link_status(struct ata_port *ap);
 extern void ata_port_probe(struct ata_port *);
 extern void __sata_phy_reset(struct ata_port *ap);
 extern void sata_phy_reset(struct ata_port *ap);
@@ -786,6 +787,8 @@ extern void ata_sg_init_one(struct ata_queued_cmd *qc, void *buf,
 extern void ata_sg_init(struct ata_queued_cmd *qc, struct scatterlist *sg,
 		 unsigned int n_elem);
 extern unsigned int ata_dev_classify(const struct ata_taskfile *tf);
+extern unsigned int ata_dev_try_classify(struct ata_port *ap,
+					 unsigned int device, u8 *r_err);
 extern void ata_id_string(const u16 *id, unsigned char *s,
 			  unsigned int ofs, unsigned int len);
 extern void ata_id_c_string(const u16 *id, unsigned char *s,

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v2] sata_mv: convert to new EH
  2007-02-25 23:34 [PATCH, RFT, v2] sata_mv: convert to new EH Jeff Garzik
@ 2007-03-02  0:54 ` Andre Tomt
  2007-03-02  1:11   ` Jeff Garzik
  2007-03-06  5:16 ` Dave Dillow
  1 sibling, 1 reply; 15+ messages in thread
From: Andre Tomt @ 2007-03-02  0:54 UTC (permalink / raw)
  To: linux-ide, LKML; +Cc: Jeff Garzik

Jeff Garzik wrote:
> Just got sata_mv working under the new EH, on my 6041.
>
> It probes and talks to disks just fine (chip doesn't support ATAPI),
> and hotplug actually has a chance of working.
>
> The 'mv-eh' branch of
> git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git mv-eh
>   

It's great to see this driver getting some more love. On a 6041 I'm 
seeing very bad behaviour when encountering errors using the 2.6.19 
driver. If a disk gets the fits, the port dies and 500000 interrupts/s 
gets fired until the server gets rebooted. Good thing it only pegs one 
of four available cpu cores.. I hope the new EH is more robust in this 
regard ;-)

Ramblings aside; I see there is a mv-ncq head in libata-dev.git, do you 
have it working? Is there a timeframe for NCQ support?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v2] sata_mv: convert to new EH
  2007-03-02  0:54 ` Andre Tomt
@ 2007-03-02  1:11   ` Jeff Garzik
  0 siblings, 0 replies; 15+ messages in thread
From: Jeff Garzik @ 2007-03-02  1:11 UTC (permalink / raw)
  To: Andre Tomt; +Cc: linux-ide, LKML

Andre Tomt wrote:
> Jeff Garzik wrote:
>> Just got sata_mv working under the new EH, on my 6041.
>>
>> It probes and talks to disks just fine (chip doesn't support ATAPI),
>> and hotplug actually has a chance of working.
>>
>> The 'mv-eh' branch of
>> git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git 
>> mv-eh
>>   
> 
> It's great to see this driver getting some more love. On a 6041 I'm 
> seeing very bad behaviour when encountering errors using the 2.6.19 
> driver. If a disk gets the fits, the port dies and 500000 interrupts/s 
> gets fired until the server gets rebooted. Good thing it only pegs one 
> of four available cpu cores.. I hope the new EH is more robust in this 
> regard ;-)

So, does this patch work for you?  :)  It's against 2.6.21-rc1 IIRC.


> Ramblings aside; I see there is a mv-ncq head in libata-dev.git, do you 
> have it working? Is there a timeframe for NCQ support?

No and no.  All this Marvell work is spare-time work for me, nobody's 
paying for it, so who knows.  I'll have it working eventually, if 
someone else doesn't beat me to it.

	Jeff




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v2] sata_mv: convert to new EH
  2007-02-25 23:34 [PATCH, RFT, v2] sata_mv: convert to new EH Jeff Garzik
  2007-03-02  0:54 ` Andre Tomt
@ 2007-03-06  5:16 ` Dave Dillow
  2007-03-06  5:26   ` Jeff Garzik
  2007-03-06  6:01   ` Jeff Garzik
  1 sibling, 2 replies; 15+ messages in thread
From: Dave Dillow @ 2007-03-06  5:16 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-ide

On Sun, 2007-02-25 at 18:34 -0500, Jeff Garzik wrote:
> Just got sata_mv working under the new EH, on my 6041.
> 
> It probes and talks to disks just fine (chip doesn't support ATAPI),
> and hotplug actually has a chance of working.
> 
> The 'mv-eh' branch of
> git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git mv-eh

Testing on my Adaptec 1420SA (604x, not sure which) gave several BUG()s,
and seemed to mount the drive. I immediately unmounted it, as I got
spooked by the bug reports in dmesg, and I fat fingered ro as rw :(

sata_mv, and libata built as modules, full .config available on request 

I'd love to get this controller running, as I could use the space. I'll
test just about anything you want, but my turnaround is likely to be on
the order of 24 hours or so...

lspci:
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4)
00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP]
00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
00:04.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:04.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 16)
00:04.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 16)
00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
00:09.0 Mass storage controller: Promise Technology, Inc. 20269 (rev 02)
00:0a.0 RAID bus controller: Adaptec Serial ATA II RAID 1420SA (rev 01)
00:0b.0 Ethernet controller: Intel Corporation 82541GI/PI Gigabit Ethernet Controller
00:0c.0 Ethernet controller: 3Com Corporation 3cSOHO100-TX Hurricane (rev 30)
00:0d.0 Ethernet controller: 3Com Corporation 3C990B-TX-M/3C990BSVR [Typhoon2] (rev 03)
01:00.0 VGA compatible controller: nVidia Corporation NV15 [GeForce2 GTS/Pro] (rev a3)

lspci -s a -xxx
00:0a.0 RAID bus controller: Adaptec Serial ATA II RAID 1420SA (rev 01)
00: 05 90 41 02 17 00 b0 02 01 00 04 01 08 20 00 00
10: 04 00 00 ed 00 00 00 00 01 a0 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 05 90 41 02
30: 00 00 00 00 40 00 00 00 00 00 00 00 0c 01 00 00

dmesg, including BUG output:
Linux version 2.6.21-rc2 (il1@shed.thedillows.org) (gcc version 4.0.2 20051125 (Red Hat 4.0.2-8)) #1 SMP Mon Mar 5 22:41:32 EST 2007
BIOS-provided physical RAM map:
sanitize start
sanitize end
copy_e820_map() start: 0000000000000000 size: 000000000009a400 end: 000000000009a400 type: 1
copy_e820_map() type is E820_RAM
copy_e820_map() start: 000000000009a400 size: 0000000000005c00 end: 00000000000a0000 type: 2
copy_e820_map() start: 00000000000f0000 size: 0000000000010000 end: 0000000000100000 type: 2
copy_e820_map() start: 0000000000100000 size: 000000001fefc000 end: 000000001fffc000 type: 1
copy_e820_map() type is E820_RAM
copy_e820_map() start: 000000001fffc000 size: 0000000000003000 end: 000000001ffff000 type: 3
copy_e820_map() start: 000000001ffff000 size: 0000000000001000 end: 0000000020000000 type: 4
copy_e820_map() start: 00000000fec00000 size: 0000000000001000 end: 00000000fec01000 type: 2
copy_e820_map() start: 00000000fee00000 size: 0000000000001000 end: 00000000fee01000 type: 2
copy_e820_map() start: 00000000ffff0000 size: 0000000000010000 end: 0000000100000000 type: 2
 BIOS-e820: 0000000000000000 - 000000000009a400 (usable)
 BIOS-e820: 000000000009a400 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000001fffc000 (usable)
 BIOS-e820: 000000001fffc000 - 000000001ffff000 (ACPI data)
 BIOS-e820: 000000001ffff000 - 0000000020000000 (ACPI NVS)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
511MB LOWMEM available.
found SMP MP-table at 000f54d0
Entering add_active_range(0, 0, 131068) 0 entries of 256 used
Zone PFN ranges:
  DMA             0 ->     4096
  Normal       4096 ->   131068
early_node_map[1] active PFN ranges
    0:        0 ->   131068
On node 0 totalpages: 131068
  DMA zone: 32 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 4064 pages, LIFO batch:0
  Normal zone: 991 pages used for memmap
  Normal zone: 125981 pages, LIFO batch:31
DMI 2.3 present.
Intel MultiProcessor Specification v1.1
    Virtual Wire compatibility mode.
OEM ID: OEM00000 Product ID: PROD00000000 APIC at: 0xFEE00000
Processor #3 6:8 APIC version 17
Processor #0 6:8 APIC version 17
I/O APIC #2 Version 17 at 0xFEC00000.
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Processors: 2
Allocating PCI resources starting at 30000000 (gap: 20000000:dec00000)
Detected 1004.573 MHz processor.
Built 1 zonelists.  Total pages: 130045
Kernel command line: ro root=/dev/VolGroup00/LogVol00 rhgb quiet
mapped APIC to ffffd000 (fee00000)
mapped IOAPIC to ffffc000 (fec00000)
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
PID hash table entries: 2048 (order: 11, 8192 bytes)
Console: colour VGA+ 80x25
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 515252k/524272k available (1244k kernel code, 8480k reserved, 485k data, 188k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xfffbc000 - 0xfffff000   ( 268 kB)
    vmalloc : 0xe0800000 - 0xfffba000   ( 503 MB)
    lowmem  : 0xc0000000 - 0xdfffc000   ( 511 MB)
      .init : 0xc02b7000 - 0xc02e6000   ( 188 kB)
      .data : 0xc023736f - 0xc02b0910   ( 485 kB)
      .text : 0xc0100000 - 0xc023736f   (1244 kB)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 2011.03 BogoMIPS (lpj=4022062)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
Compat vDSO mapped to ffffe000.
Checking 'hlt' instruction... OK.
Freeing SMP alternatives: 11k freed
CPU0: Intel Pentium III (Coppermine) stepping 0a
Booting processor 1/0 eip 2000
Initializing CPU#1
Calibrating delay using timer specific routine.. 2009.18 BogoMIPS (lpj=4018373)
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#1.
CPU1: Intel Pentium III (Coppermine) stepping 0a
Total of 2 processors activated (4020.21 BogoMIPS).
ExtINT not setup in hardware but reported by MP table
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 apic1=0 pin1=2 apic2=0 pin2=0
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
Brought up 2 CPUs
migration_cost=752
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xf0d20, last bus=1
PCI: Using configuration type 1
Setting up standard PCI resources
Linux Plug and Play Support v0.97 (c) Adam Belay
PnPBIOS: Scanning system for PnP BIOS support...
PnPBIOS: Found PnP BIOS installation structure at 0xc00fbd20
PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0xbd50, dseg 0xf0000
PnPBIOS: 14 nodes reported by PnP BIOS; 14 recorded by driver
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI quirk: region e800-e80f claimed by vt82c686 SMB
Boot video device is 0000:01:00.0
PCI: Using IRQ router VIA [1106/0686] at 0000:00:04.0
pnp: 00:06: iomem range 0x0-0x9ffff could not be reserved
pnp: 00:06: iomem range 0x100000-0x1fffffff could not be reserved
pnp: 00:06: iomem range 0xe8000-0xeffff has been reserved
pnp: 00:06: iomem range 0xf0000-0xf3fff could not be reserved
pnp: 00:0f: ioport range 0xe400-0xe47f has been reserved
pnp: 00:0f: ioport range 0xe800-0xe83f could not be reserved
PCI: Bridge: 0000:00:01.0
  IO window: disabled.
  MEM window: ee000000-efcfffff
  PREFETCH window: eff00000-fbffffff
PCI: Setting latency timer of device 0000:00:01.0 to 64
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 196608 bytes)
TCP bind hash table entries: 16384 (order: 5, 131072 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
checking if image is initramfs... it is
Freeing initrd memory: 1807k freed
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: Enabling Via external APIC routing
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Real Time Clock Driver v1.12ac
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
00:02: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:03: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PDC20269: IDE controller at PCI slot 0000:00:09.0
PDC20269: chipset revision 2
PDC20269: ROM enabled at 0x30040000
PDC20269: PLL input clock is 16640 kHz
PDC20269: 100% native mode on irq 5
    ide2: BM-DMA at 0xa400-0xa407, BIOS settings: hde:pio, hdf:pio
    ide3: BM-DMA at 0xa408-0xa40f, BIOS settings: hdg:pio, hdh:pio
Probing IDE interface ide2...
hde: Maxtor 6Y120L0, ATA DISK drive
ide2 at 0xb800-0xb807,0xb402 on irq 5
Probing IDE interface ide3...
hdg: ST380013A, ATA DISK drive
ide3 at 0xb000-0xb007,0xa802 on irq 5
Probing IDE interface ide0...
hda: Maxtor 4D040H2, ATA DISK drive
Probing IDE interface ide1...
hdc: IOMEGA ZIP 250 ATAPI, ATAPI FLOPPY drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hde: max request size: 128KiB
hde: 240121728 sectors (122942 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(133)
hde: cache flushes supported
 hde: hde1 hde2
hdg: max request size: 512KiB
hdg: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=16383/255/63, UDMA(100)
hdg: cache flushes supported
 hdg: hdg1 hdg2 hdg3
hda: max request size: 128KiB
hda: 80043264 sectors (40982 MB) w/2048KiB Cache, CHS=65535/16/63
hda: cache flushes not supported
 hda: hda1 hda2
PNP: PS/2 Controller [PNP0303] at 0x60,0x64 irq 1
PNP: PS/2 controller doesn't have AUX irq; using default 12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Starting balanced_irq
Using IPI Shortcut mode
Freeing unused kernel memory: 188k freed
Time: tsc clocksource has been installed.
SCSI subsystem initialized
libata version 2.20 loaded.
sata_mv 0000:00:0a.0: version 0.8
sata_mv 0000:00:0a.0: Applying B2 workarounds to unknown rev
sata_mv 0000:00:0a.0: 32 slots 4 ports unknown mode IRQ via INTx
ata1: SATA max UDMA/133 cmd 0x00000000 ctl 0xe08a2120 bmdma 0x00000000 irq 12
ata2: SATA max UDMA/133 cmd 0x00000000 ctl 0xe08a4120 bmdma 0x00000000 irq 12
ata3: SATA max UDMA/133 cmd 0x00000000 ctl 0xe08a6120 bmdma 0x00000000 irq 12
ata4: SATA max UDMA/133 cmd 0x00000000 ctl 0xe08a8120 bmdma 0x00000000 irq 12
scsi0 : sata_mv
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ATA-7: Maxtor 6L200S0, BACE1G10, max UDMA/133
ata1.00: 398297088 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata1.00: configured for UDMA/133
scsi1 : sata_mv
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata2.00: ATA-7: Maxtor 6L200S0, BACE1G10, max UDMA/133
ata2.00: 398297088 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata2.00: configured for UDMA/133
scsi2 : sata_mv
ata3: SATA link down (SStatus 0 SControl 300)
scsi3 : sata_mv
ata4: SATA link down (SStatus 0 SControl 300)
scsi 0:0:0:0: Direct-Access     ATA      Maxtor 6L200S0   BACE PQ: 0 ANSI: 5
SCSI device sda: 398297088 512-byte hdwr sectors (203928 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA
SCSI device sda: 398297088 512-byte hdwr sectors (203928 MB)
sda: Write Protect is off
sda: Mode Sense: 00 3a 00 00
SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1
sd 0:0:0:0: Attached scsi disk sda
scsi 1:0:0:0: Direct-Access     ATA      Maxtor 6L200S0   BACE PQ: 0 ANSI: 5
SCSI device sdb: 398297088 512-byte hdwr sectors (203928 MB)
sdb: Write Protect is off
sdb: Mode Sense: 00 3a 00 00
SCSI device sdb: write cache: enabled, read cache: enabled, doesn't support DPO or FUA
SCSI device sdb: 398297088 512-byte hdwr sectors (203928 MB)
sdb: Write Protect is off
sdb: Mode Sense: 00 3a 00 00
SCSI device sdb: write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdb: sdb1
sd 1:0:0:0: Attached scsi disk sdb
device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com
md: raid1 personality registered for level 1
md: Autodetecting RAID arrays.
md: autorun ...
md: considering sdb1 ...
md:  adding sdb1 ...
md:  adding sda1 ...
md: hdg1 has different UUID to sdb1
md: created md1
md: bind<sda1>
md: bind<sdb1>
md: running: <sdb1><sda1>
md: personality for level 0 is not loaded!
md: do_md_run() returned -22
md: md1 stopped.
md: unbind<sdb1>
md: export_rdev(sdb1)
md: unbind<sda1>
md: export_rdev(sda1)
md: considering hdg1 ...
md:  adding hdg1 ...
md: created md0
md: bind<hdg1>
md: running: <hdg1>
raid1: raid set md0 active with 1 out of 2 mirrors
md: ... autorun DONE.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
3c59x: Donald Becker and others. www.scyld.com/network/vortex.html
0000:00:0c.0: 3Com PCI 3cSOHO100-TX Hurricane at e0854000.
Intel(R) PRO/1000 Network Driver - version 7.3.20-k2
Copyright (c) 1999-2006 Intel Corporation.
e1000: 0000:00:0b.0: e1000_probe: (PCI:33MHz:32-bit) 00:0e:0c:6c:66:b3
e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
typhoon.c: version 1.5.8 (06/11/09)
eth2: 3Com Typhoon2 (3C990B-FX-97) at MMIO 0xea800000, 00:0a:5e:1b:95:7b
eth2: Typhoon 1.1+ Sleep Image version 03.001.007 03:11:11 07/23/01 0000156
parport_pc: VIA 686A/8231 detected
parport_pc: probing current configuration
parport_pc: Current parallel port base: 0x378
parport0: PC-style at 0x378 (0x778), irq 7, using FIFO [PCSPP,TRISTATE,COMPAT,ECP]
parport_pc: VIA parallel port: io=0x378, irq=7
md: Autodetecting RAID arrays.
md: autorun ...
md: considering sda1 ...
md:  adding sda1 ...
md:  adding sdb1 ...
md: created md1
md: bind<sdb1>
md: bind<sda1>
md: running: <sda1><sdb1>
md: raid0 personality registered for level 0
md1: setting max_sectors to 128, segment boundary to 32767
raid0: looking at sda1
raid0:   comparing sda1(199141632) with sda1(199141632)
raid0:   END
raid0:   ==> UNIQUE
raid0: 1 zones
raid0: looking at sdb1
raid0:   comparing sdb1(199141632) with sda1(199141632)
raid0:   EQUAL
raid0: FINAL 1 zones
raid0: done.
raid0 : md_size is 398283264 blocks.
raid0 : conf->hash_spacing is 398283264 blocks.
raid0 : nb_zone is 1.
raid0 : Allocating 4 bytes for hash.
md: ... autorun DONE.
EXT3 FS on dm-0, internal journal
kjournald starting.  Commit interval 5 seconds
EXT3 FS on hda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on md0, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on hde2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on hdg3, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Adding 1048568k swap on /dev/VolGroup00/LogVol01.  Priority:-1 extents:1 across:1048568k
eth0:  setting full-duplex.
e1000: eth1: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
PM: Writing back config space on device 0000:00:0d.0 at offset f (was 50a0100, writing 50a0105)
PM: Writing back config space on device 0000:00:0d.0 at offset 5 (was 0, writing ea800000)
PM: Writing back config space on device 0000:00:0d.0 at offset 4 (was 1, writing 9001)
PM: Writing back config space on device 0000:00:0d.0 at offset 3 (was 0, writing 2008)
PM: Writing back config space on device 0000:00:0d.0 at offset 1 (was 2100000, writing 2100017)
lp0: using parport0 (interrupt-driven).
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
 [<e0847501>] mv_qc_issue+0x96/0x108 [sata_mv]
 [<e080ef8b>] ata_qc_issue+0x445/0x489 [libata]
 [<e0813107>] ata_scsi_rw_xlat+0x12c/0x178 [libata]
 [<e082747b>] scsi_done+0x0/0x16 [scsi_mod]
 [<e08149cd>] ata_scsi_translate+0xed/0x147 [libata]
 [<e082747b>] scsi_done+0x0/0x16 [scsi_mod]
 [<e08152f1>] ata_scsi_queuecmd+0xf8/0x134 [libata]
 [<e0812fdb>] ata_scsi_rw_xlat+0x0/0x178 [libata]
 [<e0827608>] scsi_dispatch_cmd+0x177/0x1ba [scsi_mod]
 [<e082b9dd>] scsi_request_fn+0x20a/0x2b0 [scsi_mod]
 [<c017fce0>] blk_remove_plug+0x4f/0x5b
 [<c017fd23>] blk_run_queue+0x37/0x63
 [<e082b118>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<e082b1ba>] scsi_end_request+0x98/0xa2 [scsi_mod]
 [<e082b2b9>] scsi_io_completion+0xf5/0x2c7 [scsi_mod]
 [<e080746f>] sd_rw_intr+0x1ae/0x1b6 [sd_mod]
 [<e082bd9c>] scsi_softirq_done+0x22/0xc6 [scsi_mod]
 [<e082707d>] scsi_finish_command+0x3f/0x43 [scsi_mod]
 [<c018024f>] blk_done_softirq+0x48/0x53
 [<c0119980>] __do_softirq+0x5d/0xb8
 [<c0119a0d>] do_softirq+0x32/0x36
 [<c0104976>] do_IRQ+0x5a/0x70
 [<c0102dc3>] common_interrupt+0x23/0x28
 [<e09e528e>] raid0_make_request+0x1ad/0x1b1 [raid0]
 [<c017fa0f>] generic_make_request+0x11a/0x12a
 [<c016485c>] __find_get_block_slow+0xea/0xf4
 [<e09b551b>] ext3_get_block+0x0/0xbf [ext3]
 [<c0180d4b>] submit_bio+0xc0/0xc7
 [<c0134dcf>] mempool_alloc+0x1c/0xbb
 [<c0166cb3>] bio_alloc_bioset+0x9a/0xf2
 [<c0164555>] submit_bh+0xbc/0xd7
 [<c0164d65>] ll_rw_block+0x79/0x91
 [<e0984027>] jread+0x11d/0x1ba [jbd]
 [<c016485c>] __find_get_block_slow+0xea/0xf4
 [<c018a93e>] radix_tree_node_alloc+0x16/0x55
 [<e0984126>] do_one_pass+0x62/0x3f8 [jbd]
 [<c02358e9>] out_of_line_wait_on_bit+0x63/0x6b
 [<e0984551>] journal_recover+0x37/0x8e [jbd]
 [<e09866cb>] journal_load+0xa9/0xdd [jbd]
 [<e09ba302>] ext3_get_journal+0xb8/0xcc [ext3]
 [<e09bb4eb>] ext3_fill_super+0xddb/0x1398 [ext3]
 [<c018c2c7>] snprintf+0x1f/0x23
 [<c017663e>] disk_name+0x30/0x88
 [<c014c7e5>] get_sb_bdev+0xcd/0x11c
 [<e09b9589>] ext3_get_sb+0x20/0x25 [ext3]
 [<e09ba710>] ext3_fill_super+0x0/0x1398 [ext3]
 [<c014bfe1>] vfs_kern_mount+0x40/0x6f
 [<c014c04e>] do_kern_mount+0x2b/0x3c
 [<c015c7d2>] do_mount+0x55c/0x5a8
 [<c013d449>] __handle_mm_fault+0x440/0x754
 [<c01597af>] iput+0x39/0x62
 [<c023675c>] error_code+0x7c/0x84
 [<c01368e0>] __get_free_pages+0x1a/0x33
 [<c015b503>] copy_mount_options+0x25/0x10b
 [<c015c895>] sys_mount+0x77/0xb3
 [<c01023b4>] sysenter_past_esp+0x5d/0x81
 [<c0230000>] unix_seq_show+0x11b/0x11d
 =======================
BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
[snip identical backtrace]
 =======================
BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
[snip identical backtrace]
 =======================
BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
[snip identical backtrace]
 =======================
kjournald starting.  Commit interval 5 seconds
EXT3 FS on md1, internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
BUG: at drivers/ata/sata_mv.c:1291 mv_get_crpb_status()
 [<e0846b08>] mv_interrupt+0x292/0x6c9 [sata_mv]
 [<c01c1ee6>] ide_intr+0x1ac/0x1b9
 [<c0130599>] handle_IRQ_event+0x1a/0x3f
 [<c013197d>] handle_fasteoi_irq+0x7c/0xaf
 [<c0104971>] do_IRQ+0x55/0x70
 [<c0102dc3>] common_interrupt+0x23/0x28
 [<c0136218>] get_page_from_freelist+0x1a5/0x2a9
 [<c013636a>] __alloc_pages+0x4e/0x290
 [<c013c74c>] do_wp_page+0x1b1/0x371
 [<c013d70d>] __handle_mm_fault+0x704/0x754
 [<c010f0d6>] do_page_fault+0x223/0x521
 [<c010eeb3>] do_page_fault+0x0/0x521
 [<c023675c>] error_code+0x7c/0x84
 [<c012007b>] sys_reboot+0xe3/0x145
 [<c0230000>] unix_seq_show+0x11b/0x11d
 =======================


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v2] sata_mv: convert to new EH
  2007-03-06  5:16 ` Dave Dillow
@ 2007-03-06  5:26   ` Jeff Garzik
  2007-03-06  6:01   ` Jeff Garzik
  1 sibling, 0 replies; 15+ messages in thread
From: Jeff Garzik @ 2007-03-06  5:26 UTC (permalink / raw)
  To: Dave Dillow; +Cc: linux-ide

Dave Dillow wrote:
> On Sun, 2007-02-25 at 18:34 -0500, Jeff Garzik wrote:
>> Just got sata_mv working under the new EH, on my 6041.
>>
>> It probes and talks to disks just fine (chip doesn't support ATAPI),
>> and hotplug actually has a chance of working.
>>
>> The 'mv-eh' branch of
>> git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev.git mv-eh
> 
> Testing on my Adaptec 1420SA (604x, not sure which) gave several BUG()s,
> and seemed to mount the drive. I immediately unmounted it, as I got
> spooked by the bug reports in dmesg, and I fat fingered ro as rw :(
> 
> sata_mv, and libata built as modules, full .config available on request 

> BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> BUG: at drivers/ata/sata_mv.c:1291 mv_get_crpb_status()


Thanks much for the testing.  This looks quite similar to the BUG()s 
that someone emailed me in private (so far the only other tester besides 
me and you).

I'll give this a think, and see what I come up with.


> I'd love to get this controller running, as I could use the space. I'll
> test just about anything you want, but my turnaround is likely to be on
> the order of 24 hours or so...

Does the stock upstream driver work for you?  It should already be 
running, just with prehistoric error handling :)

	Jeff




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v2] sata_mv: convert to new EH
  2007-03-06  5:16 ` Dave Dillow
  2007-03-06  5:26   ` Jeff Garzik
@ 2007-03-06  6:01   ` Jeff Garzik
  2007-03-06  6:53     ` dean gaudet
  2007-03-06  6:57     ` Dave Dillow
  1 sibling, 2 replies; 15+ messages in thread
From: Jeff Garzik @ 2007-03-06  6:01 UTC (permalink / raw)
  To: Dave Dillow; +Cc: linux-ide

[-- Attachment #1: Type: text/plain, Size: 941 bytes --]

Dave Dillow wrote:
> BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> BUG: at drivers/ata/sata_mv.c:1291 mv_get_crpb_status()

Well, all these seem to be WARN_ON() statements that will fire if NCQ 
queueing is enabled, which it should not be.

I also note that my test disk is not NCQ-capable, but the testers like 
you getting the BUG: output are attaching NCQ-capable disks.

So it sounds like something changes for the worst in NCQ land, which is 
area I did not touch for the new-EH work.  However, I do remember 
cleaning up the EDMA configuration in a patch (also sent upstream).

Does the attached patch fix things?  It should apply on top of 
linux-2.6.git upstream, or libata-dev.git#mv-eh.  This patch merely 
reverts commit e728eabea110da90e69c05855e3a11174edb77ef.

	Jeff



[-- Attachment #2: patch.sata_mv-edma-cfg-revert --]
[-- Type: text/plain, Size: 1538 bytes --]

diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 89ffe07..96cba99 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -871,27 +871,23 @@ static void mv_edma_cfg(struct mv_host_priv *hpriv, void __iomem *port_mmio)
 	u32 cfg = readl(port_mmio + EDMA_CFG_OFS);
 
 	/* set up non-NCQ EDMA configuration */
+	cfg &= ~0x1f;		/* clear queue depth */
+	cfg &= ~EDMA_CFG_NCQ;	/* clear NCQ mode */
 	cfg &= ~(1 << 9);	/* disable equeue */
 
-	if (IS_GEN_I(hpriv)) {
-		cfg &= ~0x1f;		/* clear queue depth */
+	if (IS_GEN_I(hpriv))
 		cfg |= (1 << 8);	/* enab config burst size mask */
-	}
 
-	else if (IS_GEN_II(hpriv)) {
-		cfg &= ~0x1f;		/* clear queue depth */
+	else if (IS_GEN_II(hpriv))
 		cfg |= EDMA_CFG_RD_BRST_EXT | EDMA_CFG_WR_BUFF_LEN;
-		cfg &= ~(EDMA_CFG_NCQ | EDMA_CFG_NCQ_GO_ON_ERR); /* clear NCQ */
-	}
 
 	else if (IS_GEN_IIE(hpriv)) {
-		cfg |= (1 << 23);	/* do not mask PM field in rx'd FIS */
-		cfg |= (1 << 22);	/* enab 4-entry host queue cache */
+		cfg |= (1 << 23);	/* dis RX PM port mask */
+		cfg &= ~(1 << 16);	/* dis FIS-based switching (for now) */
 		cfg &= ~(1 << 19);	/* dis 128-entry queue (for now?) */
 		cfg |= (1 << 18);	/* enab early completion */
-		cfg |= (1 << 17);	/* enab cut-through (dis stor&forwrd) */
-		cfg &= ~(1 << 16);	/* dis FIS-based switching (for now) */
-		cfg &= ~(EDMA_CFG_NCQ | EDMA_CFG_NCQ_GO_ON_ERR); /* clear NCQ */
+		cfg |= (1 << 17);	/* enab host q cache */
+		cfg |= (1 << 22);	/* enab cutthrough */
 	}
 
 	writelfl(cfg, port_mmio + EDMA_CFG_OFS);

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v2] sata_mv: convert to new EH
  2007-03-06  6:01   ` Jeff Garzik
@ 2007-03-06  6:53     ` dean gaudet
  2007-03-06  6:57     ` Dave Dillow
  1 sibling, 0 replies; 15+ messages in thread
From: dean gaudet @ 2007-03-06  6:53 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: Dave Dillow, linux-ide

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2422 bytes --]

On Tue, 6 Mar 2007, Jeff Garzik wrote:

> Dave Dillow wrote:
> > BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> > BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> > BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> > BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> > BUG: at drivers/ata/sata_mv.c:1291 mv_get_crpb_status()
> 
> Well, all these seem to be WARN_ON() statements that will fire if NCQ queueing
> is enabled, which it should not be.
> 
> I also note that my test disk is not NCQ-capable, but the testers like you
> getting the BUG: output are attaching NCQ-capable disks.
> 
> So it sounds like something changes for the worst in NCQ land, which is area I
> did not touch for the new-EH work.  However, I do remember cleaning up the
> EDMA configuration in a patch (also sent upstream).
> 
> Does the attached patch fix things?  It should apply on top of linux-2.6.git
> upstream, or libata-dev.git#mv-eh.  This patch merely reverts commit
> e728eabea110da90e69c05855e3a11174edb77ef.

no luck... this actually made it worse :)  now it's spewing BUGs a lot 
more rapidly (without the revert it would error once a minute or so and 
didn't make other progress).  my tree is 2.6.21-rc1 + your "RFT, v2" patch 
+ this revert.

so i threw in some extra printks (see patch)... here's some samples:

[   87.798423] mv_qc_issue: in_ptr = 0x37fe0060, in_index = 0x3, EDMA_REQ_Q_OUT_PTR_OFS = 0x40
[   87.806974] BUG: at drivers/ata/sata_mv.c:1223 mv_qc_issue()

[   88.039421] mv_get_crpb_status: out_index = 0x2, EDMA_RSP_Q_IN_PTR_OFS = 0x18
[   88.047103] BUG: at drivers/ata/sata_mv.c:1273 mv_get_crpb_status()

[   88.312250] mv_get_crpb_status: out_index = 0x2, EDMA_RSP_Q_IN_PTR_OFS = 0x20
[   88.319925] BUG: at drivers/ata/sata_mv.c:1273 mv_get_crpb_status()

[   88.585094] mv_get_crpb_status: out_index = 0x3, EDMA_RSP_Q_IN_PTR_OFS = 0x20
[   88.592771] BUG: at drivers/ata/sata_mv.c:1273 mv_get_crpb_status()

[   89.152245] mv_get_crpb_status: out_index = 0x4, EDMA_RSP_Q_IN_PTR_OFS = 0x28
[   89.159547] BUG: at drivers/ata/sata_mv.c:1273 mv_get_crpb_status()

[   89.543206] mv_get_crpb_status: out_index = 0x5, EDMA_RSP_Q_IN_PTR_OFS = 0x30
[   89.550516] BUG: at drivers/ata/sata_mv.c:1273 mv_get_crpb_status()

[   90.382613] mv_get_crpb_status: out_index = 0x6, EDMA_RSP_Q_IN_PTR_OFS = 0x38
[   90.389933] BUG: at drivers/ata/sata_mv.c:1273 mv_get_crpb_status()

...

hope that helps...

-dean

[-- Attachment #2: Type: TEXT/plain, Size: 2106 bytes --]

Index: linux/drivers/ata/sata_mv.c
===================================================================
--- linux.orig/drivers/ata/sata_mv.c	2007-03-05 22:27:51.000000000 -0800
+++ linux/drivers/ata/sata_mv.c	2007-03-05 22:38:26.000000000 -0800
@@ -1201,6 +1201,7 @@
 	struct mv_port_priv *pp = qc->ap->private_data;
 	unsigned in_index;
 	u32 in_ptr;
+        unsigned tmp;
 
 	if (ATA_PROT_DMA != qc->tf.protocol) {
 		/* We're about to send a non-EDMA capable command to the
@@ -1215,8 +1216,12 @@
 	in_index = (in_ptr >> EDMA_REQ_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK;
 
 	/* until we do queuing, the queue should be empty at this point */
-	WARN_ON(in_index != ((readl(port_mmio + EDMA_REQ_Q_OUT_PTR_OFS)
-		>> EDMA_REQ_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK));
+        tmp = readl(port_mmio + EDMA_REQ_Q_OUT_PTR_OFS);
+	if (in_index != ((tmp >> EDMA_REQ_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK)) {
+                printk(KERN_INFO "mv_qc_issue: in_ptr = 0x%x, in_index = 0x%x, EDMA_REQ_Q_OUT_PTR_OFS = 0x%x\n",
+                        in_ptr, in_index, tmp);
+                WARN_ON(1);
+        }
 
 	in_index = mv_inc_q_index(in_index);	/* now incr producer index */
 
@@ -1250,6 +1255,7 @@
 	unsigned out_index;
 	u32 out_ptr;
 	u8 ata_status;
+        unsigned tmp;
 
 	out_ptr   = readl(port_mmio + EDMA_RSP_Q_OUT_PTR_OFS);
 	out_index = (out_ptr >> EDMA_RSP_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK;
@@ -1261,8 +1267,11 @@
 	out_index = mv_inc_q_index(out_index);
 
 	/* and, until we do NCQ, there should only be 1 CRPB waiting */
-	WARN_ON(out_index != ((readl(port_mmio + EDMA_RSP_Q_IN_PTR_OFS)
-		>> EDMA_RSP_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK));
+        tmp = readl(port_mmio + EDMA_RSP_Q_IN_PTR_OFS);
+	if (out_index != ((tmp >> EDMA_RSP_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK)) {
+                printk(KERN_INFO "mv_get_crpb_status: out_index = 0x%x, EDMA_RSP_Q_IN_PTR_OFS = 0x%x\n", out_index, tmp);
+                WARN_ON(1);
+        }
 
 	/* write out our inc'd consumer index so EDMA knows we're caught up */
 	out_ptr &= EDMA_RSP_Q_BASE_LO_MASK;

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v2] sata_mv: convert to new EH
  2007-03-06  6:01   ` Jeff Garzik
  2007-03-06  6:53     ` dean gaudet
@ 2007-03-06  6:57     ` Dave Dillow
  2007-05-25 13:56       ` [PATCH, RFT, v3] " Jeff Garzik
  1 sibling, 1 reply; 15+ messages in thread
From: Dave Dillow @ 2007-03-06  6:57 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-ide

On Tue, 2007-03-06 at 01:01 -0500, Jeff Garzik wrote:
> Dave Dillow wrote:
> > BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> > BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> > BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
> > BUG: at drivers/ata/sata_mv.c:1245 mv_qc_issue()
[snip]
> Does the attached patch fix things?  It should apply on top of 
> linux-2.6.git upstream, or libata-dev.git#mv-eh.  This patch merely 
> reverts commit e728eabea110da90e69c05855e3a11174edb77ef.

Nope, heaps of BUG: at drivers/ata/sata_mv.c:1241 mv_qc_issue()

Mainline 2.6.21-rc2 survives moving 4GB around, and reading 30GB or so,
but I've not tried anything too stressful yet. I'll leave it up for a
bit on that for testing.

On 2.6.20-rc6, I started getting errors like

sd 1:0:0:0: SCSI error: return code = 0x00040000
end_request: I/O error, dev sdb, sector 6295
sd 0:0:0:0: SCSI error: return code = 0x00040000
end_request: I/O error, dev sda, sector 6439

repeating in the logs (with different sectors), and I couldn't get the
drives to come back without a reboot. Unfortunately, I cannot find the
logs for the boot and the first set of errors, so this is fairly useless
now.

I'll just leave 2.6.21-rc2 up overnight and see how it goes.

Dave

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH, RFT, v3] sata_mv: convert to new EH
  2007-03-06  6:57     ` Dave Dillow
@ 2007-05-25 13:56       ` Jeff Garzik
  2007-05-26  3:16         ` [PATCH, RFT, v4] " Jeff Garzik
  0 siblings, 1 reply; 15+ messages in thread
From: Jeff Garzik @ 2007-05-25 13:56 UTC (permalink / raw)
  To: linux-ide; +Cc: Dave Dillow, Linux Kernel Mailing List, dean gaudet

[-- Attachment #1: Type: text/plain, Size: 742 bytes --]

Hi, linux-ide (and Dave and dean).

I'm looking for some sata_mv testing feedback.  Version 2 of this patch 
was reported to be triggering BUG_ON/WARN_ON messages in mv_qc_issue() 
and mv_get_crpb_status().

I'm looking for someone to be willing to give three sata_mv cases a 
quick test:
	vanilla 2.6.21.X		(latest 2.6.21)
	vanilla 2.6.22-rc2-gitX		(latest release candidate)
	2.6.22-rc2-gitX + attachment	(sata_mv new-EH test patch)

sata_mv saw several changes go into 2.6.22-rc, and I want to make sure 
the BUG_ON/WARN_ON messages do not trigger in the current -rc.  This 
will help me narrow down the source of the dmesg spam.

To answer one of dean's questions about NCQ, check out 
http://linux-ata.org/faq.html#ncq

Thanks,

	Jeff



[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 21898 bytes --]


Jeff Garzik (9):
      [libata] sata_mv: first cut at new EH
      [libata] sata_mv: move PCI error handling into separate function
      [libata] sata_mv: handle PCI error properly, within new EH
      [libata] sata_mv: convert IRQ handler over to new EH
      [libata] sata_mv: clean up vestiges of old EH
      [libata] sata_mv EH: 50xx fixes, fold non-EDMA EH into EDMA EH path
      [libata] sata_mv: improve EH handling with additional hooks
      [libata] sata_mv: more EH fixes
      [libata mv-eh] sata_mv: build fix for cable detect

 drivers/ata/sata_mv.c |  457 ++++++++++++++++++++++++++++++++++----------------
 1 file changed, 314 insertions(+), 143 deletions(-)

diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 705a020..57f2345 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -192,8 +192,10 @@ enum {
 	EDMA_ERR_DEV_DCON	= (1 << 3),
 	EDMA_ERR_DEV_CON	= (1 << 4),
 	EDMA_ERR_SERR		= (1 << 5),
-	EDMA_ERR_SELF_DIS	= (1 << 7),
+	EDMA_ERR_SELF_DIS	= (1 << 7),	/* Gen II/IIE self-disable */
+	EDMA_ERR_SELF_DIS_5	= (1 << 8),	/* Gen I self-disable */
 	EDMA_ERR_BIST_ASYNC	= (1 << 8),
+	EDMA_ERR_TRANS_IRQ_7	= (1 << 8),	/* Gen IIE transprt layer irq */
 	EDMA_ERR_CRBQ_PAR	= (1 << 9),
 	EDMA_ERR_CRPB_PAR	= (1 << 10),
 	EDMA_ERR_INTRL_PAR	= (1 << 11),
@@ -204,13 +206,33 @@ enum {
 	EDMA_ERR_LNK_CTRL_TX	= (0x1f << 21),
 	EDMA_ERR_LNK_DATA_TX	= (0x1f << 26),
 	EDMA_ERR_TRANS_PROTO	= (1 << 31),
-	EDMA_ERR_FATAL		= (EDMA_ERR_D_PAR | EDMA_ERR_PRD_PAR |
-				   EDMA_ERR_DEV_DCON | EDMA_ERR_CRBQ_PAR |
-				   EDMA_ERR_CRPB_PAR | EDMA_ERR_INTRL_PAR |
-				   EDMA_ERR_IORDY | EDMA_ERR_LNK_CTRL_RX_2 |
-				   EDMA_ERR_LNK_DATA_RX |
-				   EDMA_ERR_LNK_DATA_TX |
-				   EDMA_ERR_TRANS_PROTO),
+	EDMA_ERR_OVERRUN_5	= (1 << 5),
+	EDMA_ERR_UNDERRUN_5	= (1 << 6),
+	EDMA_EH_FREEZE		= EDMA_ERR_D_PAR |
+				  EDMA_ERR_PRD_PAR |
+				  EDMA_ERR_DEV_DCON |
+				  EDMA_ERR_DEV_CON |
+				  EDMA_ERR_SERR |
+				  EDMA_ERR_SELF_DIS |
+				  EDMA_ERR_CRBQ_PAR |
+				  EDMA_ERR_CRPB_PAR |
+				  EDMA_ERR_INTRL_PAR |
+				  EDMA_ERR_IORDY |
+				  EDMA_ERR_LNK_CTRL_RX_2 |
+				  EDMA_ERR_LNK_DATA_RX |
+				  EDMA_ERR_LNK_DATA_TX |
+				  EDMA_ERR_TRANS_PROTO,
+	EDMA_EH_FREEZE_5	= EDMA_ERR_D_PAR |
+				  EDMA_ERR_PRD_PAR |
+				  EDMA_ERR_DEV_DCON |
+				  EDMA_ERR_DEV_CON |
+				  EDMA_ERR_OVERRUN_5 |
+				  EDMA_ERR_UNDERRUN_5 |
+				  EDMA_ERR_SELF_DIS_5 |
+				  EDMA_ERR_CRBQ_PAR |
+				  EDMA_ERR_CRPB_PAR |
+				  EDMA_ERR_INTRL_PAR |
+				  EDMA_ERR_IORDY,
 
 	EDMA_REQ_Q_BASE_HI_OFS	= 0x10,
 	EDMA_REQ_Q_IN_PTR_OFS	= 0x14,		/* also contains BASE_LO */
@@ -244,6 +266,7 @@ enum {
 	/* Port private flags (pp_flags) */
 	MV_PP_FLAG_EDMA_EN	= (1 << 0),
 	MV_PP_FLAG_EDMA_DS_ACT	= (1 << 1),
+	MV_PP_FLAG_HAD_A_RESET	= (1 << 2),
 };
 
 #define IS_50XX(hpriv) ((hpriv)->hp_flags & MV_HP_50XX)
@@ -340,14 +363,14 @@ static u32 mv_scr_read(struct ata_port *ap, unsigned int sc_reg_in);
 static void mv_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val);
 static u32 mv5_scr_read(struct ata_port *ap, unsigned int sc_reg_in);
 static void mv5_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val);
-static void mv_phy_reset(struct ata_port *ap);
-static void __mv_phy_reset(struct ata_port *ap, int can_sleep);
 static int mv_port_start(struct ata_port *ap);
 static void mv_port_stop(struct ata_port *ap);
 static void mv_qc_prep(struct ata_queued_cmd *qc);
 static void mv_qc_prep_iie(struct ata_queued_cmd *qc);
 static unsigned int mv_qc_issue(struct ata_queued_cmd *qc);
-static void mv_eng_timeout(struct ata_port *ap);
+static void mv_error_handler(struct ata_port *ap);
+static void mv_eh_freeze(struct ata_port *ap);
+static void mv_eh_thaw(struct ata_port *ap);
 static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 
 static void mv5_phy_errata(struct mv_host_priv *hpriv, void __iomem *mmio,
@@ -371,7 +394,6 @@ static void mv6_reset_flash(struct mv_host_priv *hpriv, void __iomem *mmio);
 static void mv_reset_pci_bus(struct pci_dev *pdev, void __iomem *mmio);
 static void mv_channel_reset(struct mv_host_priv *hpriv, void __iomem *mmio,
 			     unsigned int port_no);
-static void mv_stop_and_reset(struct ata_port *ap);
 
 static struct scsi_host_template mv_sht = {
 	.module			= THIS_MODULE,
@@ -400,19 +422,20 @@ static const struct ata_port_operations mv5_ops = {
 	.exec_command		= ata_exec_command,
 	.dev_select		= ata_std_dev_select,
 
-	.phy_reset		= mv_phy_reset,
 	.cable_detect		= ata_cable_sata,
 
 	.qc_prep		= mv_qc_prep,
 	.qc_issue		= mv_qc_issue,
 	.data_xfer		= ata_data_xfer,
 
-	.eng_timeout		= mv_eng_timeout,
-
 	.irq_clear		= mv_irq_clear,
 	.irq_on			= ata_irq_on,
 	.irq_ack		= ata_irq_ack,
 
+	.error_handler		= mv_error_handler,
+	.freeze			= mv_eh_freeze,
+	.thaw			= mv_eh_thaw,
+
 	.scr_read		= mv5_scr_read,
 	.scr_write		= mv5_scr_write,
 
@@ -429,19 +452,20 @@ static const struct ata_port_operations mv6_ops = {
 	.exec_command		= ata_exec_command,
 	.dev_select		= ata_std_dev_select,
 
-	.phy_reset		= mv_phy_reset,
 	.cable_detect		= ata_cable_sata,
 
 	.qc_prep		= mv_qc_prep,
 	.qc_issue		= mv_qc_issue,
 	.data_xfer		= ata_data_xfer,
 
-	.eng_timeout		= mv_eng_timeout,
-
 	.irq_clear		= mv_irq_clear,
 	.irq_on			= ata_irq_on,
 	.irq_ack		= ata_irq_ack,
 
+	.error_handler		= mv_error_handler,
+	.freeze			= mv_eh_freeze,
+	.thaw			= mv_eh_thaw,
+
 	.scr_read		= mv_scr_read,
 	.scr_write		= mv_scr_write,
 
@@ -458,19 +482,20 @@ static const struct ata_port_operations mv_iie_ops = {
 	.exec_command		= ata_exec_command,
 	.dev_select		= ata_std_dev_select,
 
-	.phy_reset		= mv_phy_reset,
 	.cable_detect		= ata_cable_sata,
 
 	.qc_prep		= mv_qc_prep_iie,
 	.qc_issue		= mv_qc_issue,
 	.data_xfer		= ata_data_xfer,
 
-	.eng_timeout		= mv_eng_timeout,
-
 	.irq_clear		= mv_irq_clear,
 	.irq_on			= ata_irq_on,
 	.irq_ack		= ata_irq_ack,
 
+	.error_handler		= mv_error_handler,
+	.freeze			= mv_eh_freeze,
+	.thaw			= mv_eh_thaw,
+
 	.scr_read		= mv_scr_read,
 	.scr_write		= mv_scr_write,
 
@@ -692,12 +717,12 @@ static void mv_start_dma(void __iomem *base, struct mv_port_priv *pp)
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_stop_dma(struct ata_port *ap)
+static int mv_stop_dma(struct ata_port *ap)
 {
 	void __iomem *port_mmio = mv_ap_base(ap);
 	struct mv_port_priv *pp	= ap->private_data;
 	u32 reg;
-	int i;
+	int i, err = 0;
 
 	if (MV_PP_FLAG_EDMA_EN & pp->pp_flags) {
 		/* Disable EDMA if active.   The disable bit auto clears.
@@ -717,10 +742,12 @@ static void mv_stop_dma(struct ata_port *ap)
 		udelay(100);
 	}
 
-	if (EDMA_EN & reg) {
+	if (reg & EDMA_EN) {
 		ata_port_printk(ap, KERN_ERR, "Unable to stop eDMA\n");
-		/* FIXME: Consider doing a reset here to recover */
+		err = -EIO;
 	}
+
+	return err;
 }
 
 #ifdef ATA_DEBUG
@@ -1284,30 +1311,95 @@ static u8 mv_get_crpb_status(struct ata_port *ap)
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_err_intr(struct ata_port *ap, int reset_allowed)
+static void mv_err_intr(struct ata_port *ap, struct ata_queued_cmd *qc,
+			unsigned int err_mask)
 {
 	void __iomem *port_mmio = mv_ap_base(ap);
-	u32 edma_err_cause, serr = 0;
+	u32 edma_err_cause, eh_freeze_mask, serr = 0;
+	struct mv_port_priv *pp = ap->private_data;
+	struct mv_host_priv *hpriv = ap->host->private_data;
+	unsigned int edma_enabled = (pp->pp_flags & MV_PP_FLAG_EDMA_EN);
+	unsigned int action = 0;
+	struct ata_eh_info *ehi = &ap->eh_info;
 
-	edma_err_cause = readl(port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
+	ata_ehi_clear_desc(ehi);
 
-	if (EDMA_ERR_SERR & edma_err_cause) {
+	if (!edma_enabled) {
+		/* just a guess: do we need to do this? should we
+		 * expand this, and do it in all cases?
+		 */
 		sata_scr_read(ap, SCR_ERROR, &serr);
 		sata_scr_write_flush(ap, SCR_ERROR, serr);
 	}
-	if (EDMA_ERR_SELF_DIS & edma_err_cause) {
-		struct mv_port_priv *pp	= ap->private_data;
-		pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+
+	edma_err_cause = readl(port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
+
+	ata_ehi_push_desc(ehi, "edma_err 0x%08x", edma_err_cause);
+
+	/*
+	 * all generations share these EDMA error cause bits
+	 */
+
+	if (edma_err_cause & EDMA_ERR_DEV)
+		err_mask |= AC_ERR_DEV;
+	if (edma_err_cause & (EDMA_ERR_D_PAR | EDMA_ERR_PRD_PAR |
+			EDMA_ERR_CRBQ_PAR | EDMA_ERR_CRPB_PAR |
+			EDMA_ERR_INTRL_PAR)) {
+		err_mask |= AC_ERR_ATA_BUS;
+		action |= ATA_EH_HARDRESET;
+		ata_ehi_push_desc(ehi, ", parity error");
+	}
+	if (edma_err_cause & (EDMA_ERR_DEV_DCON | EDMA_ERR_DEV_CON)) {
+		ata_ehi_hotplugged(ehi);
+		ata_ehi_push_desc(ehi, edma_err_cause & EDMA_ERR_DEV_DCON ?
+			", dev disconnect" : ", dev connect");
+	}
+
+	if (IS_50XX(hpriv)) {
+		eh_freeze_mask = EDMA_EH_FREEZE_5;
+
+		if (edma_err_cause & EDMA_ERR_SELF_DIS_5) {
+			struct mv_port_priv *pp	= ap->private_data;
+			pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+			ata_ehi_push_desc(ehi, ", EDMA self-disable");
+		}
+	} else {
+		eh_freeze_mask = EDMA_EH_FREEZE;
+
+		if (edma_err_cause & EDMA_ERR_SELF_DIS) {
+			struct mv_port_priv *pp	= ap->private_data;
+			pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+			ata_ehi_push_desc(ehi, ", EDMA self-disable");
+		}
+
+		if (edma_err_cause & EDMA_ERR_SERR) {
+			sata_scr_read(ap, SCR_ERROR, &serr);
+			sata_scr_write_flush(ap, SCR_ERROR, serr);
+			err_mask = AC_ERR_ATA_BUS;
+			action |= ATA_EH_HARDRESET;
+		}
 	}
-	DPRINTK(KERN_ERR "ata%u: port error; EDMA err cause: 0x%08x "
-		"SERR: 0x%08x\n", ap->print_id, edma_err_cause, serr);
 
 	/* Clear EDMA now that SERR cleanup done */
 	writelfl(0, port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
 
-	/* check for fatal here and recover if needed */
-	if (reset_allowed && (EDMA_ERR_FATAL & edma_err_cause))
-		mv_stop_and_reset(ap);
+	if (!err_mask) {
+		err_mask = AC_ERR_OTHER;
+		action |= ATA_EH_HARDRESET;
+	}
+
+	ehi->serror |= serr;
+	ehi->action |= action;
+
+	if (qc)
+		qc->err_mask |= err_mask;
+	else
+		ehi->err_mask |= err_mask;
+
+	if (edma_err_cause & eh_freeze_mask)
+		ata_port_freeze(ap);
+	else
+		ata_port_abort(ap);
 }
 
 /**
@@ -1342,8 +1434,10 @@ static void mv_host_intr(struct ata_host *host, u32 relevant, unsigned int hc)
 
 	/* we'll need the HC success int register in most cases */
 	hc_irq_cause = readl(hc_mmio + HC_IRQ_CAUSE_OFS);
-	if (hc_irq_cause)
-		writelfl(~hc_irq_cause, hc_mmio + HC_IRQ_CAUSE_OFS);
+	if (!hc_irq_cause)
+		return;
+
+	writelfl(~hc_irq_cause, hc_mmio + HC_IRQ_CAUSE_OFS);
 
 	VPRINTK("ENTER, hc%u relevant=0x%08x HC IRQ cause=0x%08x\n",
 		hc,relevant,hc_irq_cause);
@@ -1352,9 +1446,11 @@ static void mv_host_intr(struct ata_host *host, u32 relevant, unsigned int hc)
 		u8 ata_status = 0;
 		struct ata_port *ap = host->ports[port];
 		struct mv_port_priv *pp = ap->private_data;
+		int have_err_bits;
 
 		hard_port = mv_hardport_from_port(port); /* range 0..3 */
 		handled = 0;	/* ensure ata_status is set if handled++ */
+		err_mask = 0;
 
 		/* Note that DEV_IRQ might happen spuriously during EDMA,
 		 * and should be ignored in such cases.
@@ -1382,32 +1478,62 @@ static void mv_host_intr(struct ata_host *host, u32 relevant, unsigned int hc)
 		if (ap && (ap->flags & ATA_FLAG_DISABLED))
 			continue;
 
-		err_mask = ac_err_mask(ata_status);
+		if (handled)
+			err_mask = ac_err_mask(ata_status);
 
 		shift = port << 1;		/* (port * 2) */
 		if (port >= MV_PORTS_PER_HC) {
 			shift++;	/* skip bit 8 in the HC Main IRQ reg */
 		}
-		if ((PORT0_ERR << shift) & relevant) {
-			mv_err_intr(ap, 1);
-			err_mask |= AC_ERR_OTHER;
-			handled = 1;
-		}
+		have_err_bits = ((PORT0_ERR << shift) & relevant);
+
+		qc = ata_qc_from_tag(ap, ap->active_tag);
+
+		if (have_err_bits || err_mask)
+			mv_err_intr(ap, qc, err_mask);
+		else if ((qc) && (!(qc->tf.flags & ATA_TFLAG_POLLING)))
+			ata_qc_complete(qc);
+	}
+	VPRINTK("EXIT\n");
+}
+
+static void mv_pci_error(struct ata_host *host, void __iomem *mmio)
+{
+	struct ata_port *ap;
+	struct ata_queued_cmd *qc;
+	struct ata_eh_info *ehi;
+	unsigned int i, err_mask, printed = 0;
+	u32 err_cause;
+
+	err_cause = readl(mmio + PCI_IRQ_CAUSE_OFS);
+
+	dev_printk(KERN_ERR, host->dev, "PCI ERROR; PCI IRQ cause=0x%08x\n",
+		   err_cause);
+
+	DPRINTK("All regs @ PCI error\n");
+	mv_dump_all_regs(mmio, -1, to_pci_dev(host->dev));
+
+	writelfl(0, mmio + PCI_IRQ_CAUSE_OFS);
 
-		if (handled) {
+	for (i = 0; i < host->n_ports; i++) {
+		ap = host->ports[i];
+		if (!ata_port_offline(ap)) {
+			ehi = &ap->eh_info;
+			ata_ehi_clear_desc(ehi);
+			if (!printed++)
+				ata_ehi_push_desc(ehi,
+					"PCI err cause 0x%08x", err_cause);
+			err_mask = AC_ERR_HOST_BUS;
+			ehi->action = ATA_EH_HARDRESET;
 			qc = ata_qc_from_tag(ap, ap->active_tag);
-			if (qc && (qc->flags & ATA_QCFLAG_ACTIVE)) {
-				VPRINTK("port %u IRQ found for qc, "
-					"ata_status 0x%x\n", port,ata_status);
-				/* mark qc status appropriately */
-				if (!(qc->tf.flags & ATA_TFLAG_POLLING)) {
-					qc->err_mask |= err_mask;
-					ata_qc_complete(qc);
-				}
-			}
+			if (qc)
+				qc->err_mask |= err_mask;
+			else
+				ehi->err_mask |= err_mask;
+
+			ata_port_freeze(ap);
 		}
 	}
-	VPRINTK("EXIT\n");
 }
 
 /**
@@ -1444,17 +1570,27 @@ static irqreturn_t mv_interrupt(int irq, void *dev_instance)
 	n_hcs = mv_get_hc_count(host->ports[0]->flags);
 	spin_lock(&host->lock);
 
+	if (unlikely(irq_stat & PCI_ERR)) {
+		mv_pci_error(host, mmio);
+		handled = 1;
+		goto out_unlock;	/* skip all other HC irq handling */
+	}
+
 	for (hc = 0; hc < n_hcs; hc++) {
 		u32 relevant = irq_stat & (HC0_IRQ_PEND << (hc * HC_SHIFT));
 		if (relevant) {
 			mv_host_intr(host, relevant, hc);
-			handled++;
+			handled = 1;
 		}
 	}
 
 	hpriv = host->private_data;
 	if (IS_60XX(hpriv)) {
-		/* deal with the interrupt coalescing bits */
+		/*
+		 * deal with the interrupt coalescing bits; they
+		 * are masked via HC_MAIN_MASKED_IRQS, so we shouldn't
+		 * need to do this.
+		 */
 		if (irq_stat & (TRAN_LO_DONE | TRAN_HI_DONE | PORTS_0_7_COAL_DONE)) {
 			writelfl(0, mmio + MV_IRQ_COAL_CAUSE_LO);
 			writelfl(0, mmio + MV_IRQ_COAL_CAUSE_HI);
@@ -1462,16 +1598,7 @@ static irqreturn_t mv_interrupt(int irq, void *dev_instance)
 		}
 	}
 
-	if (PCI_ERR & irq_stat) {
-		printk(KERN_ERR DRV_NAME ": PCI ERROR; PCI IRQ cause=0x%08x\n",
-		       readl(mmio + PCI_IRQ_CAUSE_OFS));
-
-		DPRINTK("All regs @ PCI error\n");
-		mv_dump_all_regs(mmio, -1, to_pci_dev(host->dev));
-
-		writelfl(0, mmio + PCI_IRQ_CAUSE_OFS);
-		handled++;
-	}
+out_unlock:
 	spin_unlock(&host->lock);
 
 	return IRQ_RETVAL(handled);
@@ -1880,28 +2007,8 @@ static void mv_channel_reset(struct mv_host_priv *hpriv, void __iomem *mmio,
 		mdelay(1);
 }
 
-static void mv_stop_and_reset(struct ata_port *ap)
-{
-	struct mv_host_priv *hpriv = ap->host->private_data;
-	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
-
-	mv_stop_dma(ap);
-
-	mv_channel_reset(hpriv, mmio, ap->port_no);
-
-	__mv_phy_reset(ap, 0);
-}
-
-static inline void __msleep(unsigned int msec, int can_sleep)
-{
-	if (can_sleep)
-		msleep(msec);
-	else
-		mdelay(msec);
-}
-
 /**
- *      __mv_phy_reset - Perform eDMA reset followed by COMRESET
+ *      mv_phy_reset - Perform eDMA reset followed by COMRESET
  *      @ap: ATA channel to manipulate
  *
  *      Part of this is taken from __sata_phy_reset and modified to
@@ -1911,13 +2018,11 @@ static inline void __msleep(unsigned int msec, int can_sleep)
  *      Inherited from caller.  This is coded to safe to call at
  *      interrupt level, i.e. it does not sleep.
  */
-static void __mv_phy_reset(struct ata_port *ap, int can_sleep)
+static void mv_phy_reset(struct ata_port *ap, unsigned int *class)
 {
 	struct mv_port_priv *pp	= ap->private_data;
 	struct mv_host_priv *hpriv = ap->host->private_data;
 	void __iomem *port_mmio = mv_ap_base(ap);
-	struct ata_taskfile tf;
-	struct ata_device *dev = &ap->device[0];
 	unsigned long timeout;
 	int retry = 5;
 	u32 sstatus;
@@ -1931,10 +2036,10 @@ static void __mv_phy_reset(struct ata_port *ap, int can_sleep)
 	/* Issue COMRESET via SControl */
 comreset_retry:
 	sata_scr_write_flush(ap, SCR_CONTROL, 0x301);
-	__msleep(1, can_sleep);
+	msleep(1);
 
 	sata_scr_write_flush(ap, SCR_CONTROL, 0x300);
-	__msleep(20, can_sleep);
+	msleep(20);
 
 	timeout = jiffies + msecs_to_jiffies(200);
 	do {
@@ -1942,7 +2047,7 @@ comreset_retry:
 		if (((sstatus & 0x3) == 3) || ((sstatus & 0x3) == 0))
 			break;
 
-		__msleep(1, can_sleep);
+		msleep(1);
 	} while (time_before(jiffies, timeout));
 
 	/* work around errata */
@@ -1955,13 +2060,8 @@ comreset_retry:
 		"SCtrl 0x%08x\n", mv_scr_read(ap, SCR_STATUS),
 		mv_scr_read(ap, SCR_ERROR), mv_scr_read(ap, SCR_CONTROL));
 
-	if (ata_port_online(ap)) {
-		ata_port_probe(ap);
-	} else {
-		sata_scr_read(ap, SCR_STATUS, &sstatus);
-		ata_port_printk(ap, KERN_INFO,
-				"no device found (phy stat %08x)\n", sstatus);
-		ata_port_disable(ap);
+	if (ata_port_offline(ap)) {
+		*class = ATA_DEV_NONE;
 		return;
 	}
 
@@ -1975,68 +2075,139 @@ comreset_retry:
 		u8 drv_stat = ata_check_status(ap);
 		if ((drv_stat != 0x80) && (drv_stat != 0x7f))
 			break;
-		__msleep(500, can_sleep);
+		msleep(500);
 		if (retry-- <= 0)
 			break;
 	}
 
-	tf.lbah = readb(ap->ioaddr.lbah_addr);
-	tf.lbam = readb(ap->ioaddr.lbam_addr);
-	tf.lbal = readb(ap->ioaddr.lbal_addr);
-	tf.nsect = readb(ap->ioaddr.nsect_addr);
-
-	dev->class = ata_dev_classify(&tf);
-	if (!ata_dev_enabled(dev)) {
-		VPRINTK("Port disabled post-sig: No device present.\n");
-		ata_port_disable(ap);
-	}
+	/* finally, read device signature from TF registers */
+	*class = ata_dev_try_classify(ap, 0, NULL);
 
 	writelfl(0, port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
 
-	pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+	WARN_ON(pp->pp_flags & MV_PP_FLAG_EDMA_EN);
 
 	VPRINTK("EXIT\n");
 }
 
-static void mv_phy_reset(struct ata_port *ap)
+static int mv_prereset(struct ata_port *ap)
 {
-	__mv_phy_reset(ap, 1);
+	struct mv_port_priv *pp	= ap->private_data;
+	struct ata_eh_context *ehc = &ap->eh_context;
+	int rc;
+	
+	rc = mv_stop_dma(ap);
+	if (rc)
+		ehc->i.action |= ATA_EH_HARDRESET;
+
+	if (!(pp->pp_flags & MV_PP_FLAG_HAD_A_RESET)) {
+		pp->pp_flags |= MV_PP_FLAG_HAD_A_RESET;
+		ehc->i.action |= ATA_EH_HARDRESET;
+	}
+
+	/* if we're about to do hardreset, nothing more to do */
+	if (ehc->i.action & ATA_EH_HARDRESET)
+		return 0;
+
+	if (ata_port_online(ap))
+		ata_busy_sleep(ap, ATA_TMOUT_BOOT_QUICK,
+				ATA_TMOUT_BOOT_QUICK + 1);
+
+	return 0;
 }
 
-/**
- *      mv_eng_timeout - Routine called by libata when SCSI times out I/O
- *      @ap: ATA channel to manipulate
- *
- *      Intent is to clear all pending error conditions, reset the
- *      chip/bus, fail the command, and move on.
- *
- *      LOCKING:
- *      This routine holds the host lock while failing the command.
- */
-static void mv_eng_timeout(struct ata_port *ap)
+static int mv_hardreset(struct ata_port *ap, unsigned int *class)
 {
+	struct mv_host_priv *hpriv = ap->host->private_data;
 	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
-	struct ata_queued_cmd *qc;
-	unsigned long flags;
 
-	ata_port_printk(ap, KERN_ERR, "Entering mv_eng_timeout\n");
-	DPRINTK("All regs @ start of eng_timeout\n");
-	mv_dump_all_regs(mmio, ap->port_no, to_pci_dev(ap->host->dev));
+	mv_stop_dma(ap);
 
-	qc = ata_qc_from_tag(ap, ap->active_tag);
-        printk(KERN_ERR "mmio_base %p ap %p qc %p scsi_cmnd %p &cmnd %p\n",
-	       mmio, ap, qc, qc->scsicmd, &qc->scsicmd->cmnd);
+	mv_channel_reset(hpriv, mmio, ap->port_no);
 
-	spin_lock_irqsave(&ap->host->lock, flags);
-	mv_err_intr(ap, 0);
-	mv_stop_and_reset(ap);
-	spin_unlock_irqrestore(&ap->host->lock, flags);
+	mv_phy_reset(ap, class);
 
-	WARN_ON(!(qc->flags & ATA_QCFLAG_ACTIVE));
-	if (qc->flags & ATA_QCFLAG_ACTIVE) {
-		qc->err_mask |= AC_ERR_TIMEOUT;
-		ata_eh_qc_complete(qc);
+	return 0;
+}
+
+static void mv_postreset(struct ata_port *ap, unsigned int *classes)
+{
+	u32 serr;
+
+	/* print link status */
+	sata_print_link_status(ap);
+
+	/* clear SError */
+	sata_scr_read(ap, SCR_ERROR, &serr);
+	sata_scr_write_flush(ap, SCR_ERROR, serr);
+
+	/* bail out if no device is present */
+	if (classes[0] == ATA_DEV_NONE && classes[1] == ATA_DEV_NONE) {
+		DPRINTK("EXIT, no device\n");
+		return;
+	}
+
+	/* set up device control */
+	iowrite8(ap->ctl, ap->ioaddr.ctl_addr);
+}
+
+static void mv_error_handler(struct ata_port *ap)
+{
+	ata_do_eh(ap, mv_prereset, ata_std_softreset,
+		  mv_hardreset, mv_postreset);
+}
+
+static void mv_eh_freeze(struct ata_port *ap)
+{
+	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
+	unsigned int hc = (ap->port_no > 3) ? 1 : 0;
+	u32 tmp, mask;
+	unsigned int shift;
+
+	/* FIXME: handle coalescing completion events properly */
+
+	shift = ap->port_no * 2;
+	if (hc > 0)
+		shift++;
+
+	mask = 0x3 << shift;
+
+	/* disable assertion of portN err, done events */
+	tmp = readl(mmio + HC_MAIN_IRQ_MASK_OFS);
+	writelfl(tmp & ~mask, mmio + HC_MAIN_IRQ_MASK_OFS);
+}
+
+static void mv_eh_thaw(struct ata_port *ap)
+{
+	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
+	unsigned int hc = (ap->port_no > 3) ? 1 : 0;
+	void __iomem *hc_mmio = mv_hc_base(mmio, hc);
+	void __iomem *port_mmio = mv_ap_base(ap);
+	u32 tmp, mask, hc_irq_cause;
+	unsigned int shift, hc_port_no = ap->port_no;
+
+	/* FIXME: handle coalescing completion events properly */
+
+	shift = ap->port_no * 2;
+	if (hc > 0) {
+		shift++;
+		hc_port_no -= 4;
 	}
+
+	mask = 0x3 << shift;
+
+	/* clear EDMA errors on this port */
+	writel(0, port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
+
+	/* clear pending irq events */
+	hc_irq_cause = readl(hc_mmio + HC_IRQ_CAUSE_OFS);
+	hc_irq_cause &= ~(1 << hc_port_no);	/* clear CRPB-done */
+	hc_irq_cause &= ~(1 << (hc_port_no + 8)); /* clear Device int */
+	writel(hc_irq_cause, hc_mmio + HC_IRQ_CAUSE_OFS);
+
+	/* enable assertion of portN err, done events */
+	tmp = readl(mmio + HC_MAIN_IRQ_MASK_OFS);
+	writelfl(tmp | mask, mmio + HC_MAIN_IRQ_MASK_OFS);
 }
 
 /**

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH, RFT, v4] sata_mv: convert to new EH
  2007-05-25 13:56       ` [PATCH, RFT, v3] " Jeff Garzik
@ 2007-05-26  3:16         ` Jeff Garzik
  2007-05-26  7:53           ` dean gaudet
  0 siblings, 1 reply; 15+ messages in thread
From: Jeff Garzik @ 2007-05-26  3:16 UTC (permalink / raw)
  To: linux-ide; +Cc: Dave Dillow, Linux Kernel Mailing List, dean gaudet

[-- Attachment #1: Type: text/plain, Size: 88 bytes --]

Already uncovered and fixed a few bugs in v3.

Here's v4 of the sata_mv new-EH patch.



[-- Attachment #2: patch --]
[-- Type: text/plain, Size: 21526 bytes --]

diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 705a020..4a75b48 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -192,8 +192,10 @@ enum {
 	EDMA_ERR_DEV_DCON	= (1 << 3),
 	EDMA_ERR_DEV_CON	= (1 << 4),
 	EDMA_ERR_SERR		= (1 << 5),
-	EDMA_ERR_SELF_DIS	= (1 << 7),
+	EDMA_ERR_SELF_DIS	= (1 << 7),	/* Gen II/IIE self-disable */
+	EDMA_ERR_SELF_DIS_5	= (1 << 8),	/* Gen I self-disable */
 	EDMA_ERR_BIST_ASYNC	= (1 << 8),
+	EDMA_ERR_TRANS_IRQ_7	= (1 << 8),	/* Gen IIE transprt layer irq */
 	EDMA_ERR_CRBQ_PAR	= (1 << 9),
 	EDMA_ERR_CRPB_PAR	= (1 << 10),
 	EDMA_ERR_INTRL_PAR	= (1 << 11),
@@ -204,13 +206,33 @@ enum {
 	EDMA_ERR_LNK_CTRL_TX	= (0x1f << 21),
 	EDMA_ERR_LNK_DATA_TX	= (0x1f << 26),
 	EDMA_ERR_TRANS_PROTO	= (1 << 31),
-	EDMA_ERR_FATAL		= (EDMA_ERR_D_PAR | EDMA_ERR_PRD_PAR |
-				   EDMA_ERR_DEV_DCON | EDMA_ERR_CRBQ_PAR |
-				   EDMA_ERR_CRPB_PAR | EDMA_ERR_INTRL_PAR |
-				   EDMA_ERR_IORDY | EDMA_ERR_LNK_CTRL_RX_2 |
-				   EDMA_ERR_LNK_DATA_RX |
-				   EDMA_ERR_LNK_DATA_TX |
-				   EDMA_ERR_TRANS_PROTO),
+	EDMA_ERR_OVERRUN_5	= (1 << 5),
+	EDMA_ERR_UNDERRUN_5	= (1 << 6),
+	EDMA_EH_FREEZE		= EDMA_ERR_D_PAR |
+				  EDMA_ERR_PRD_PAR |
+				  EDMA_ERR_DEV_DCON |
+				  EDMA_ERR_DEV_CON |
+				  EDMA_ERR_SERR |
+				  EDMA_ERR_SELF_DIS |
+				  EDMA_ERR_CRBQ_PAR |
+				  EDMA_ERR_CRPB_PAR |
+				  EDMA_ERR_INTRL_PAR |
+				  EDMA_ERR_IORDY |
+				  EDMA_ERR_LNK_CTRL_RX_2 |
+				  EDMA_ERR_LNK_DATA_RX |
+				  EDMA_ERR_LNK_DATA_TX |
+				  EDMA_ERR_TRANS_PROTO,
+	EDMA_EH_FREEZE_5	= EDMA_ERR_D_PAR |
+				  EDMA_ERR_PRD_PAR |
+				  EDMA_ERR_DEV_DCON |
+				  EDMA_ERR_DEV_CON |
+				  EDMA_ERR_OVERRUN_5 |
+				  EDMA_ERR_UNDERRUN_5 |
+				  EDMA_ERR_SELF_DIS_5 |
+				  EDMA_ERR_CRBQ_PAR |
+				  EDMA_ERR_CRPB_PAR |
+				  EDMA_ERR_INTRL_PAR |
+				  EDMA_ERR_IORDY,
 
 	EDMA_REQ_Q_BASE_HI_OFS	= 0x10,
 	EDMA_REQ_Q_IN_PTR_OFS	= 0x14,		/* also contains BASE_LO */
@@ -244,6 +266,7 @@ enum {
 	/* Port private flags (pp_flags) */
 	MV_PP_FLAG_EDMA_EN	= (1 << 0),
 	MV_PP_FLAG_EDMA_DS_ACT	= (1 << 1),
+	MV_PP_FLAG_HAD_A_RESET	= (1 << 2),
 };
 
 #define IS_50XX(hpriv) ((hpriv)->hp_flags & MV_HP_50XX)
@@ -340,14 +363,14 @@ static u32 mv_scr_read(struct ata_port *ap, unsigned int sc_reg_in);
 static void mv_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val);
 static u32 mv5_scr_read(struct ata_port *ap, unsigned int sc_reg_in);
 static void mv5_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val);
-static void mv_phy_reset(struct ata_port *ap);
-static void __mv_phy_reset(struct ata_port *ap, int can_sleep);
 static int mv_port_start(struct ata_port *ap);
 static void mv_port_stop(struct ata_port *ap);
 static void mv_qc_prep(struct ata_queued_cmd *qc);
 static void mv_qc_prep_iie(struct ata_queued_cmd *qc);
 static unsigned int mv_qc_issue(struct ata_queued_cmd *qc);
-static void mv_eng_timeout(struct ata_port *ap);
+static void mv_error_handler(struct ata_port *ap);
+static void mv_eh_freeze(struct ata_port *ap);
+static void mv_eh_thaw(struct ata_port *ap);
 static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
 
 static void mv5_phy_errata(struct mv_host_priv *hpriv, void __iomem *mmio,
@@ -371,7 +394,6 @@ static void mv6_reset_flash(struct mv_host_priv *hpriv, void __iomem *mmio);
 static void mv_reset_pci_bus(struct pci_dev *pdev, void __iomem *mmio);
 static void mv_channel_reset(struct mv_host_priv *hpriv, void __iomem *mmio,
 			     unsigned int port_no);
-static void mv_stop_and_reset(struct ata_port *ap);
 
 static struct scsi_host_template mv_sht = {
 	.module			= THIS_MODULE,
@@ -400,19 +422,20 @@ static const struct ata_port_operations mv5_ops = {
 	.exec_command		= ata_exec_command,
 	.dev_select		= ata_std_dev_select,
 
-	.phy_reset		= mv_phy_reset,
 	.cable_detect		= ata_cable_sata,
 
 	.qc_prep		= mv_qc_prep,
 	.qc_issue		= mv_qc_issue,
 	.data_xfer		= ata_data_xfer,
 
-	.eng_timeout		= mv_eng_timeout,
-
 	.irq_clear		= mv_irq_clear,
 	.irq_on			= ata_irq_on,
 	.irq_ack		= ata_irq_ack,
 
+	.error_handler		= mv_error_handler,
+	.freeze			= mv_eh_freeze,
+	.thaw			= mv_eh_thaw,
+
 	.scr_read		= mv5_scr_read,
 	.scr_write		= mv5_scr_write,
 
@@ -429,19 +452,20 @@ static const struct ata_port_operations mv6_ops = {
 	.exec_command		= ata_exec_command,
 	.dev_select		= ata_std_dev_select,
 
-	.phy_reset		= mv_phy_reset,
 	.cable_detect		= ata_cable_sata,
 
 	.qc_prep		= mv_qc_prep,
 	.qc_issue		= mv_qc_issue,
 	.data_xfer		= ata_data_xfer,
 
-	.eng_timeout		= mv_eng_timeout,
-
 	.irq_clear		= mv_irq_clear,
 	.irq_on			= ata_irq_on,
 	.irq_ack		= ata_irq_ack,
 
+	.error_handler		= mv_error_handler,
+	.freeze			= mv_eh_freeze,
+	.thaw			= mv_eh_thaw,
+
 	.scr_read		= mv_scr_read,
 	.scr_write		= mv_scr_write,
 
@@ -458,19 +482,20 @@ static const struct ata_port_operations mv_iie_ops = {
 	.exec_command		= ata_exec_command,
 	.dev_select		= ata_std_dev_select,
 
-	.phy_reset		= mv_phy_reset,
 	.cable_detect		= ata_cable_sata,
 
 	.qc_prep		= mv_qc_prep_iie,
 	.qc_issue		= mv_qc_issue,
 	.data_xfer		= ata_data_xfer,
 
-	.eng_timeout		= mv_eng_timeout,
-
 	.irq_clear		= mv_irq_clear,
 	.irq_on			= ata_irq_on,
 	.irq_ack		= ata_irq_ack,
 
+	.error_handler		= mv_error_handler,
+	.freeze			= mv_eh_freeze,
+	.thaw			= mv_eh_thaw,
+
 	.scr_read		= mv_scr_read,
 	.scr_write		= mv_scr_write,
 
@@ -692,12 +717,12 @@ static void mv_start_dma(void __iomem *base, struct mv_port_priv *pp)
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_stop_dma(struct ata_port *ap)
+static int mv_stop_dma(struct ata_port *ap)
 {
 	void __iomem *port_mmio = mv_ap_base(ap);
 	struct mv_port_priv *pp	= ap->private_data;
 	u32 reg;
-	int i;
+	int i, err = 0;
 
 	if (MV_PP_FLAG_EDMA_EN & pp->pp_flags) {
 		/* Disable EDMA if active.   The disable bit auto clears.
@@ -717,10 +742,12 @@ static void mv_stop_dma(struct ata_port *ap)
 		udelay(100);
 	}
 
-	if (EDMA_EN & reg) {
+	if (reg & EDMA_EN) {
 		ata_port_printk(ap, KERN_ERR, "Unable to stop eDMA\n");
-		/* FIXME: Consider doing a reset here to recover */
+		err = -EIO;
 	}
+
+	return err;
 }
 
 #ifdef ATA_DEBUG
@@ -1284,30 +1311,95 @@ static u8 mv_get_crpb_status(struct ata_port *ap)
  *      LOCKING:
  *      Inherited from caller.
  */
-static void mv_err_intr(struct ata_port *ap, int reset_allowed)
+static void mv_err_intr(struct ata_port *ap, struct ata_queued_cmd *qc,
+			unsigned int err_mask)
 {
 	void __iomem *port_mmio = mv_ap_base(ap);
-	u32 edma_err_cause, serr = 0;
+	u32 edma_err_cause, eh_freeze_mask, serr = 0;
+	struct mv_port_priv *pp = ap->private_data;
+	struct mv_host_priv *hpriv = ap->host->private_data;
+	unsigned int edma_enabled = (pp->pp_flags & MV_PP_FLAG_EDMA_EN);
+	unsigned int action = 0;
+	struct ata_eh_info *ehi = &ap->eh_info;
 
-	edma_err_cause = readl(port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
+	ata_ehi_clear_desc(ehi);
 
-	if (EDMA_ERR_SERR & edma_err_cause) {
+	if (!edma_enabled) {
+		/* just a guess: do we need to do this? should we
+		 * expand this, and do it in all cases?
+		 */
 		sata_scr_read(ap, SCR_ERROR, &serr);
 		sata_scr_write_flush(ap, SCR_ERROR, serr);
 	}
-	if (EDMA_ERR_SELF_DIS & edma_err_cause) {
-		struct mv_port_priv *pp	= ap->private_data;
-		pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+
+	edma_err_cause = readl(port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
+
+	ata_ehi_push_desc(ehi, "edma_err 0x%08x", edma_err_cause);
+
+	/*
+	 * all generations share these EDMA error cause bits
+	 */
+
+	if (edma_err_cause & EDMA_ERR_DEV)
+		err_mask |= AC_ERR_DEV;
+	if (edma_err_cause & (EDMA_ERR_D_PAR | EDMA_ERR_PRD_PAR |
+			EDMA_ERR_CRBQ_PAR | EDMA_ERR_CRPB_PAR |
+			EDMA_ERR_INTRL_PAR)) {
+		err_mask |= AC_ERR_ATA_BUS;
+		action |= ATA_EH_HARDRESET;
+		ata_ehi_push_desc(ehi, ", parity error");
+	}
+	if (edma_err_cause & (EDMA_ERR_DEV_DCON | EDMA_ERR_DEV_CON)) {
+		ata_ehi_hotplugged(ehi);
+		ata_ehi_push_desc(ehi, edma_err_cause & EDMA_ERR_DEV_DCON ?
+			", dev disconnect" : ", dev connect");
+	}
+
+	if (IS_50XX(hpriv)) {
+		eh_freeze_mask = EDMA_EH_FREEZE_5;
+
+		if (edma_err_cause & EDMA_ERR_SELF_DIS_5) {
+			struct mv_port_priv *pp	= ap->private_data;
+			pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+			ata_ehi_push_desc(ehi, ", EDMA self-disable");
+		}
+	} else {
+		eh_freeze_mask = EDMA_EH_FREEZE;
+
+		if (edma_err_cause & EDMA_ERR_SELF_DIS) {
+			struct mv_port_priv *pp	= ap->private_data;
+			pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+			ata_ehi_push_desc(ehi, ", EDMA self-disable");
+		}
+
+		if (edma_err_cause & EDMA_ERR_SERR) {
+			sata_scr_read(ap, SCR_ERROR, &serr);
+			sata_scr_write_flush(ap, SCR_ERROR, serr);
+			err_mask = AC_ERR_ATA_BUS;
+			action |= ATA_EH_HARDRESET;
+		}
 	}
-	DPRINTK(KERN_ERR "ata%u: port error; EDMA err cause: 0x%08x "
-		"SERR: 0x%08x\n", ap->print_id, edma_err_cause, serr);
 
 	/* Clear EDMA now that SERR cleanup done */
 	writelfl(0, port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
 
-	/* check for fatal here and recover if needed */
-	if (reset_allowed && (EDMA_ERR_FATAL & edma_err_cause))
-		mv_stop_and_reset(ap);
+	if (!err_mask) {
+		err_mask = AC_ERR_OTHER;
+		action |= ATA_EH_HARDRESET;
+	}
+
+	ehi->serror |= serr;
+	ehi->action |= action;
+
+	if (qc)
+		qc->err_mask |= err_mask;
+	else
+		ehi->err_mask |= err_mask;
+
+	if (edma_err_cause & eh_freeze_mask)
+		ata_port_freeze(ap);
+	else
+		ata_port_abort(ap);
 }
 
 /**
@@ -1342,8 +1434,10 @@ static void mv_host_intr(struct ata_host *host, u32 relevant, unsigned int hc)
 
 	/* we'll need the HC success int register in most cases */
 	hc_irq_cause = readl(hc_mmio + HC_IRQ_CAUSE_OFS);
-	if (hc_irq_cause)
-		writelfl(~hc_irq_cause, hc_mmio + HC_IRQ_CAUSE_OFS);
+	if (!hc_irq_cause)
+		return;
+
+	writelfl(~hc_irq_cause, hc_mmio + HC_IRQ_CAUSE_OFS);
 
 	VPRINTK("ENTER, hc%u relevant=0x%08x HC IRQ cause=0x%08x\n",
 		hc,relevant,hc_irq_cause);
@@ -1352,9 +1446,11 @@ static void mv_host_intr(struct ata_host *host, u32 relevant, unsigned int hc)
 		u8 ata_status = 0;
 		struct ata_port *ap = host->ports[port];
 		struct mv_port_priv *pp = ap->private_data;
+		int have_err_bits;
 
 		hard_port = mv_hardport_from_port(port); /* range 0..3 */
 		handled = 0;	/* ensure ata_status is set if handled++ */
+		err_mask = 0;
 
 		/* Note that DEV_IRQ might happen spuriously during EDMA,
 		 * and should be ignored in such cases.
@@ -1382,32 +1478,62 @@ static void mv_host_intr(struct ata_host *host, u32 relevant, unsigned int hc)
 		if (ap && (ap->flags & ATA_FLAG_DISABLED))
 			continue;
 
-		err_mask = ac_err_mask(ata_status);
+		if (handled)
+			err_mask = ac_err_mask(ata_status);
 
 		shift = port << 1;		/* (port * 2) */
 		if (port >= MV_PORTS_PER_HC) {
 			shift++;	/* skip bit 8 in the HC Main IRQ reg */
 		}
-		if ((PORT0_ERR << shift) & relevant) {
-			mv_err_intr(ap, 1);
-			err_mask |= AC_ERR_OTHER;
-			handled = 1;
-		}
+		have_err_bits = ((PORT0_ERR << shift) & relevant);
 
-		if (handled) {
+		qc = ata_qc_from_tag(ap, ap->active_tag);
+
+		if (have_err_bits || err_mask)
+			mv_err_intr(ap, qc, err_mask);
+		else if ((qc) && (!(qc->tf.flags & ATA_TFLAG_POLLING)))
+			ata_qc_complete(qc);
+	}
+	VPRINTK("EXIT\n");
+}
+
+static void mv_pci_error(struct ata_host *host, void __iomem *mmio)
+{
+	struct ata_port *ap;
+	struct ata_queued_cmd *qc;
+	struct ata_eh_info *ehi;
+	unsigned int i, err_mask, printed = 0;
+	u32 err_cause;
+
+	err_cause = readl(mmio + PCI_IRQ_CAUSE_OFS);
+
+	dev_printk(KERN_ERR, host->dev, "PCI ERROR; PCI IRQ cause=0x%08x\n",
+		   err_cause);
+
+	DPRINTK("All regs @ PCI error\n");
+	mv_dump_all_regs(mmio, -1, to_pci_dev(host->dev));
+
+	writelfl(0, mmio + PCI_IRQ_CAUSE_OFS);
+
+	for (i = 0; i < host->n_ports; i++) {
+		ap = host->ports[i];
+		if (!ata_port_offline(ap)) {
+			ehi = &ap->eh_info;
+			ata_ehi_clear_desc(ehi);
+			if (!printed++)
+				ata_ehi_push_desc(ehi,
+					"PCI err cause 0x%08x", err_cause);
+			err_mask = AC_ERR_HOST_BUS;
+			ehi->action = ATA_EH_HARDRESET;
 			qc = ata_qc_from_tag(ap, ap->active_tag);
-			if (qc && (qc->flags & ATA_QCFLAG_ACTIVE)) {
-				VPRINTK("port %u IRQ found for qc, "
-					"ata_status 0x%x\n", port,ata_status);
-				/* mark qc status appropriately */
-				if (!(qc->tf.flags & ATA_TFLAG_POLLING)) {
-					qc->err_mask |= err_mask;
-					ata_qc_complete(qc);
-				}
-			}
+			if (qc)
+				qc->err_mask |= err_mask;
+			else
+				ehi->err_mask |= err_mask;
+
+			ata_port_freeze(ap);
 		}
 	}
-	VPRINTK("EXIT\n");
 }
 
 /**
@@ -1444,17 +1570,27 @@ static irqreturn_t mv_interrupt(int irq, void *dev_instance)
 	n_hcs = mv_get_hc_count(host->ports[0]->flags);
 	spin_lock(&host->lock);
 
+	if (unlikely(irq_stat & PCI_ERR)) {
+		mv_pci_error(host, mmio);
+		handled = 1;
+		goto out_unlock;	/* skip all other HC irq handling */
+	}
+
 	for (hc = 0; hc < n_hcs; hc++) {
 		u32 relevant = irq_stat & (HC0_IRQ_PEND << (hc * HC_SHIFT));
 		if (relevant) {
 			mv_host_intr(host, relevant, hc);
-			handled++;
+			handled = 1;
 		}
 	}
 
 	hpriv = host->private_data;
 	if (IS_60XX(hpriv)) {
-		/* deal with the interrupt coalescing bits */
+		/*
+		 * deal with the interrupt coalescing bits; they
+		 * are masked via HC_MAIN_MASKED_IRQS, so we shouldn't
+		 * need to do this.
+		 */
 		if (irq_stat & (TRAN_LO_DONE | TRAN_HI_DONE | PORTS_0_7_COAL_DONE)) {
 			writelfl(0, mmio + MV_IRQ_COAL_CAUSE_LO);
 			writelfl(0, mmio + MV_IRQ_COAL_CAUSE_HI);
@@ -1462,16 +1598,7 @@ static irqreturn_t mv_interrupt(int irq, void *dev_instance)
 		}
 	}
 
-	if (PCI_ERR & irq_stat) {
-		printk(KERN_ERR DRV_NAME ": PCI ERROR; PCI IRQ cause=0x%08x\n",
-		       readl(mmio + PCI_IRQ_CAUSE_OFS));
-
-		DPRINTK("All regs @ PCI error\n");
-		mv_dump_all_regs(mmio, -1, to_pci_dev(host->dev));
-
-		writelfl(0, mmio + PCI_IRQ_CAUSE_OFS);
-		handled++;
-	}
+out_unlock:
 	spin_unlock(&host->lock);
 
 	return IRQ_RETVAL(handled);
@@ -1880,28 +2007,8 @@ static void mv_channel_reset(struct mv_host_priv *hpriv, void __iomem *mmio,
 		mdelay(1);
 }
 
-static void mv_stop_and_reset(struct ata_port *ap)
-{
-	struct mv_host_priv *hpriv = ap->host->private_data;
-	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
-
-	mv_stop_dma(ap);
-
-	mv_channel_reset(hpriv, mmio, ap->port_no);
-
-	__mv_phy_reset(ap, 0);
-}
-
-static inline void __msleep(unsigned int msec, int can_sleep)
-{
-	if (can_sleep)
-		msleep(msec);
-	else
-		mdelay(msec);
-}
-
 /**
- *      __mv_phy_reset - Perform eDMA reset followed by COMRESET
+ *      mv_phy_reset - Perform eDMA reset followed by COMRESET
  *      @ap: ATA channel to manipulate
  *
  *      Part of this is taken from __sata_phy_reset and modified to
@@ -1911,14 +2018,12 @@ static inline void __msleep(unsigned int msec, int can_sleep)
  *      Inherited from caller.  This is coded to safe to call at
  *      interrupt level, i.e. it does not sleep.
  */
-static void __mv_phy_reset(struct ata_port *ap, int can_sleep)
+static void mv_phy_reset(struct ata_port *ap, unsigned int *class,
+			 unsigned long deadline)
 {
 	struct mv_port_priv *pp	= ap->private_data;
 	struct mv_host_priv *hpriv = ap->host->private_data;
 	void __iomem *port_mmio = mv_ap_base(ap);
-	struct ata_taskfile tf;
-	struct ata_device *dev = &ap->device[0];
-	unsigned long timeout;
 	int retry = 5;
 	u32 sstatus;
 
@@ -1931,19 +2036,18 @@ static void __mv_phy_reset(struct ata_port *ap, int can_sleep)
 	/* Issue COMRESET via SControl */
 comreset_retry:
 	sata_scr_write_flush(ap, SCR_CONTROL, 0x301);
-	__msleep(1, can_sleep);
+	msleep(1);
 
 	sata_scr_write_flush(ap, SCR_CONTROL, 0x300);
-	__msleep(20, can_sleep);
+	msleep(20);
 
-	timeout = jiffies + msecs_to_jiffies(200);
 	do {
 		sata_scr_read(ap, SCR_STATUS, &sstatus);
 		if (((sstatus & 0x3) == 3) || ((sstatus & 0x3) == 0))
 			break;
 
-		__msleep(1, can_sleep);
-	} while (time_before(jiffies, timeout));
+		msleep(1);
+	} while (time_before(jiffies, deadline));
 
 	/* work around errata */
 	if (IS_60XX(hpriv) &&
@@ -1955,13 +2059,8 @@ comreset_retry:
 		"SCtrl 0x%08x\n", mv_scr_read(ap, SCR_STATUS),
 		mv_scr_read(ap, SCR_ERROR), mv_scr_read(ap, SCR_CONTROL));
 
-	if (ata_port_online(ap)) {
-		ata_port_probe(ap);
-	} else {
-		sata_scr_read(ap, SCR_STATUS, &sstatus);
-		ata_port_printk(ap, KERN_INFO,
-				"no device found (phy stat %08x)\n", sstatus);
-		ata_port_disable(ap);
+	if (ata_port_offline(ap)) {
+		*class = ATA_DEV_NONE;
 		return;
 	}
 
@@ -1975,68 +2074,147 @@ comreset_retry:
 		u8 drv_stat = ata_check_status(ap);
 		if ((drv_stat != 0x80) && (drv_stat != 0x7f))
 			break;
-		__msleep(500, can_sleep);
+		msleep(500);
 		if (retry-- <= 0)
 			break;
+		if (time_after(jiffies, deadline))
+			break;
 	}
 
-	tf.lbah = readb(ap->ioaddr.lbah_addr);
-	tf.lbam = readb(ap->ioaddr.lbam_addr);
-	tf.lbal = readb(ap->ioaddr.lbal_addr);
-	tf.nsect = readb(ap->ioaddr.nsect_addr);
+	/* FIXME: if we passed the deadline, the following
+	 * code probably produces an invalid result
+	 */
 
-	dev->class = ata_dev_classify(&tf);
-	if (!ata_dev_enabled(dev)) {
-		VPRINTK("Port disabled post-sig: No device present.\n");
-		ata_port_disable(ap);
-	}
+	/* finally, read device signature from TF registers */
+	*class = ata_dev_try_classify(ap, 0, NULL);
 
 	writelfl(0, port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
 
-	pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
+	WARN_ON(pp->pp_flags & MV_PP_FLAG_EDMA_EN);
 
 	VPRINTK("EXIT\n");
 }
 
-static void mv_phy_reset(struct ata_port *ap)
+static int mv_prereset(struct ata_port *ap, unsigned long deadline)
 {
-	__mv_phy_reset(ap, 1);
+	struct mv_port_priv *pp	= ap->private_data;
+	struct ata_eh_context *ehc = &ap->eh_context;
+	int rc;
+	
+	rc = mv_stop_dma(ap);
+	if (rc)
+		ehc->i.action |= ATA_EH_HARDRESET;
+
+	if (!(pp->pp_flags & MV_PP_FLAG_HAD_A_RESET)) {
+		pp->pp_flags |= MV_PP_FLAG_HAD_A_RESET;
+		ehc->i.action |= ATA_EH_HARDRESET;
+	}
+
+	/* if we're about to do hardreset, nothing more to do */
+	if (ehc->i.action & ATA_EH_HARDRESET)
+		return 0;
+
+	if (ata_port_online(ap))
+		rc = ata_wait_ready(ap, deadline);
+	else
+		rc = -ENODEV;
+
+	return rc;
 }
 
-/**
- *      mv_eng_timeout - Routine called by libata when SCSI times out I/O
- *      @ap: ATA channel to manipulate
- *
- *      Intent is to clear all pending error conditions, reset the
- *      chip/bus, fail the command, and move on.
- *
- *      LOCKING:
- *      This routine holds the host lock while failing the command.
- */
-static void mv_eng_timeout(struct ata_port *ap)
+static int mv_hardreset(struct ata_port *ap, unsigned int *class,
+			unsigned long deadline)
 {
+	struct mv_host_priv *hpriv = ap->host->private_data;
 	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
-	struct ata_queued_cmd *qc;
-	unsigned long flags;
 
-	ata_port_printk(ap, KERN_ERR, "Entering mv_eng_timeout\n");
-	DPRINTK("All regs @ start of eng_timeout\n");
-	mv_dump_all_regs(mmio, ap->port_no, to_pci_dev(ap->host->dev));
+	mv_stop_dma(ap);
 
-	qc = ata_qc_from_tag(ap, ap->active_tag);
-        printk(KERN_ERR "mmio_base %p ap %p qc %p scsi_cmnd %p &cmnd %p\n",
-	       mmio, ap, qc, qc->scsicmd, &qc->scsicmd->cmnd);
+	mv_channel_reset(hpriv, mmio, ap->port_no);
 
-	spin_lock_irqsave(&ap->host->lock, flags);
-	mv_err_intr(ap, 0);
-	mv_stop_and_reset(ap);
-	spin_unlock_irqrestore(&ap->host->lock, flags);
+	mv_phy_reset(ap, class, deadline);
 
-	WARN_ON(!(qc->flags & ATA_QCFLAG_ACTIVE));
-	if (qc->flags & ATA_QCFLAG_ACTIVE) {
-		qc->err_mask |= AC_ERR_TIMEOUT;
-		ata_eh_qc_complete(qc);
+	return 0;
+}
+
+static void mv_postreset(struct ata_port *ap, unsigned int *classes)
+{
+	u32 serr;
+
+	/* print link status */
+	sata_print_link_status(ap);
+
+	/* clear SError */
+	sata_scr_read(ap, SCR_ERROR, &serr);
+	sata_scr_write_flush(ap, SCR_ERROR, serr);
+
+	/* bail out if no device is present */
+	if (classes[0] == ATA_DEV_NONE && classes[1] == ATA_DEV_NONE) {
+		DPRINTK("EXIT, no device\n");
+		return;
+	}
+
+	/* set up device control */
+	iowrite8(ap->ctl, ap->ioaddr.ctl_addr);
+}
+
+static void mv_error_handler(struct ata_port *ap)
+{
+	ata_do_eh(ap, mv_prereset, ata_std_softreset,
+		  mv_hardreset, mv_postreset);
+}
+
+static void mv_eh_freeze(struct ata_port *ap)
+{
+	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
+	unsigned int hc = (ap->port_no > 3) ? 1 : 0;
+	u32 tmp, mask;
+	unsigned int shift;
+
+	/* FIXME: handle coalescing completion events properly */
+
+	shift = ap->port_no * 2;
+	if (hc > 0)
+		shift++;
+
+	mask = 0x3 << shift;
+
+	/* disable assertion of portN err, done events */
+	tmp = readl(mmio + HC_MAIN_IRQ_MASK_OFS);
+	writelfl(tmp & ~mask, mmio + HC_MAIN_IRQ_MASK_OFS);
+}
+
+static void mv_eh_thaw(struct ata_port *ap)
+{
+	void __iomem *mmio = ap->host->iomap[MV_PRIMARY_BAR];
+	unsigned int hc = (ap->port_no > 3) ? 1 : 0;
+	void __iomem *hc_mmio = mv_hc_base(mmio, hc);
+	void __iomem *port_mmio = mv_ap_base(ap);
+	u32 tmp, mask, hc_irq_cause;
+	unsigned int shift, hc_port_no = ap->port_no;
+
+	/* FIXME: handle coalescing completion events properly */
+
+	shift = ap->port_no * 2;
+	if (hc > 0) {
+		shift++;
+		hc_port_no -= 4;
 	}
+
+	mask = 0x3 << shift;
+
+	/* clear EDMA errors on this port */
+	writel(0, port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
+
+	/* clear pending irq events */
+	hc_irq_cause = readl(hc_mmio + HC_IRQ_CAUSE_OFS);
+	hc_irq_cause &= ~(1 << hc_port_no);	/* clear CRPB-done */
+	hc_irq_cause &= ~(1 << (hc_port_no + 8)); /* clear Device int */
+	writel(hc_irq_cause, hc_mmio + HC_IRQ_CAUSE_OFS);
+
+	/* enable assertion of portN err, done events */
+	tmp = readl(mmio + HC_MAIN_IRQ_MASK_OFS);
+	writelfl(tmp | mask, mmio + HC_MAIN_IRQ_MASK_OFS);
 }
 
 /**

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v4] sata_mv: convert to new EH
  2007-05-26  3:16         ` [PATCH, RFT, v4] " Jeff Garzik
@ 2007-05-26  7:53           ` dean gaudet
  2007-05-26 20:56             ` Jeff Garzik
  0 siblings, 1 reply; 15+ messages in thread
From: dean gaudet @ 2007-05-26  7:53 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-ide, Dave Dillow, Linux Kernel Mailing List

On Fri, 25 May 2007, Jeff Garzik wrote:

> Already uncovered and fixed a few bugs in v3.
> 
> Here's v4 of the sata_mv new-EH patch.

you asked for test results with 2.6.21.3 ... that seems to boot fine,
and i've tested reading from the disks only and it seems to be working
fine.  ditto for 2.6.22-rc3.

but 2.6.22-rc3 + your v4 patch fails... i'll send you the serial console
outputs offline.

-dean

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v4] sata_mv: convert to new EH
  2007-05-26  7:53           ` dean gaudet
@ 2007-05-26 20:56             ` Jeff Garzik
  2007-05-26 21:11               ` Dave Dillow
  0 siblings, 1 reply; 15+ messages in thread
From: Jeff Garzik @ 2007-05-26 20:56 UTC (permalink / raw)
  To: dean gaudet, Dave Dillow; +Cc: linux-ide, Linux Kernel Mailing List

dean gaudet wrote:
> On Fri, 25 May 2007, Jeff Garzik wrote:
> 
>> Already uncovered and fixed a few bugs in v3.
>>
>> Here's v4 of the sata_mv new-EH patch.
> 
> you asked for test results with 2.6.21.3 ... that seems to boot fine,
> and i've tested reading from the disks only and it seems to be working
> fine.  ditto for 2.6.22-rc3.
> 
> but 2.6.22-rc3 + your v4 patch fails... i'll send you the serial console
> outputs offline.

Well, I have the same hardware as dean, and do not see the 
BUG_ON/WARN_ON traces that he sees.  These are the same two code 
locations that caused spewage before.  This only difference I see is 
that he is testing with an NCQ-capable disk, and I am not -- which could 
be a very significant difference.  Dave also appears to have an 
NCQ-capable disk.

Dave's output (sent privately to me) was different -- errors and 
corruption -- rather than the BUG_ON/WARN_ON stuff both he and dean sent 
in March 2007, which is interesting.

Dave, any chance you could try 2.6.22-rc3 + my v4 patch, on a different 
hard drive?  Preferably a non-Maxtor, or at least not another Maxtor 
6L200S0.  If that's a big deal, don't worry about it.  I just want to 
rule out buggy firmware and/or bad hard drive in your case.

dean's output (backtraces matching March 2007 reports) was what I 
expected, and if I can reproduce that with an NCQ-capable disk locally, 
I should be able to fix it from there without trouble.  Probably just 
some hardware bits accidentally kicking into NCQ mode, when they should not.

	Jeff






^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v4] sata_mv: convert to new EH
  2007-05-26 20:56             ` Jeff Garzik
@ 2007-05-26 21:11               ` Dave Dillow
  2007-05-26 21:38                 ` Jeff Garzik
  0 siblings, 1 reply; 15+ messages in thread
From: Dave Dillow @ 2007-05-26 21:11 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: dean gaudet, linux-ide, Linux Kernel Mailing List

On Sat, 2007-05-26 at 16:56 -0400, Jeff Garzik wrote:
> Dave, any chance you could try 2.6.22-rc3 + my v4 patch, on a different 
> hard drive?  Preferably a non-Maxtor, or at least not another Maxtor 
> 6L200S0.  If that's a big deal, don't worry about it.  I just want to 
> rule out buggy firmware and/or bad hard drive in your case.

It is likely I can come up with at least one, and maybe two if I
cannibalize my main machine... do you want results under all three
kernels or just the v4 patch?

Dave

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v4] sata_mv: convert to new EH
  2007-05-26 21:11               ` Dave Dillow
@ 2007-05-26 21:38                 ` Jeff Garzik
  2007-05-27  1:46                   ` Dave Dillow
  0 siblings, 1 reply; 15+ messages in thread
From: Jeff Garzik @ 2007-05-26 21:38 UTC (permalink / raw)
  To: Dave Dillow; +Cc: dean gaudet, linux-ide, Linux Kernel Mailing List

Dave Dillow wrote:
> On Sat, 2007-05-26 at 16:56 -0400, Jeff Garzik wrote:
>> Dave, any chance you could try 2.6.22-rc3 + my v4 patch, on a different 
>> hard drive?  Preferably a non-Maxtor, or at least not another Maxtor 
>> 6L200S0.  If that's a big deal, don't worry about it.  I just want to 
>> rule out buggy firmware and/or bad hard drive in your case.
> 
> It is likely I can come up with at least one, and maybe two if I
> cannibalize my main machine... do you want results under all three
> kernels or just the v4 patch?

Mainly the v4 patch, but an it-works test on 2.6.22-rc3 just for 
sanity's sake would be useful as well.

If you have time, check both new and old drives with SMART
	smartctl -d ata -t long /dev/blahblah

to make sure the extended tests don't find anything wrong.  Extended 
tests usually take 30-90 minutes.  You can access the hard drive while 
the extended test is running, but I/O will be slower for obvious reasons.

	Jeff




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH, RFT, v4] sata_mv: convert to new EH
  2007-05-26 21:38                 ` Jeff Garzik
@ 2007-05-27  1:46                   ` Dave Dillow
  0 siblings, 0 replies; 15+ messages in thread
From: Dave Dillow @ 2007-05-27  1:46 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: dean gaudet, linux-ide, Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 2867 bytes --]

On Sat, 2007-05-26 at 17:38 -0400, Jeff Garzik wrote:
> Dave Dillow wrote:
> > It is likely I can come up with at least one, and maybe two if I
> > cannibalize my main machine... do you want results under all three
> > kernels or just the v4 patch?
> 
> Mainly the v4 patch, but an it-works test on 2.6.22-rc3 just for 
> sanity's sake would be useful as well.
> 
> If you have time, check both new and old drives with SMART
> 	smartctl -d ata -t long /dev/blahblah

Whew, this has been fun. Nothing like having your 4yr old complain about
not being able to get to his email... "Daddy's working on it, why don't
you play outside?" :)

So, I added WDC WD1600JS-00N to the mix. This worked much better.

2.6.22-rc3-new.log is the baseline boot -- walking the tree with find
worked well, and I got 61MB/s reading the first 10/11GB or so.

2.6.22-rc3-mv4-new.log is a boot using the new driver, and only has the
WD attached. Again, everything is happy -- no warnings.

2.6.22-rc3-mv4-new2.log -- I put the Maxtor disks back online, and now I
get tons of WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue() and
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()

It eventually booted, but I had stopped the console log at that point.
So, enter 2.6.22-rc3-mv4-new3.log wherein I try to reboot and let it
come all the way up to try testing in the presence of the warnings.
However, this time, md0 mounts, but I immediately get I/O errors. I
tried dmesg to see if something got lost, but the log is faithful. This
could be ext3 corruption from previous testing, but there is no record
of problems anywhere. And I've forced fsck since the last known
corruption.

Still, I've not been able to recreate the issue I had with the
corruption before, but I've been turning off the machine each time, so I
try a warm-boot. 2.6.22-rc3-mv4-new4-warm.log gives the now familiar
warnings, and wedges at the end of the log.

I run smart long tests on my drives every two weeks, and short tests
every day using smartd's scheduling options. Just to be sure, I ran the
long tests again, and had no errors. Of course, shortly after that, I
now have had to correct an uncorrectable error on one of the drives, and
am currently resyncing the RAID.

At least Tommy could get his email, if he were still awake... :)

I've seen some chatter on forums about certain versions of the 6L200S0's
firmware having an issue with NCQ and nForce chipsets, but I don't think
it applies to the firmware I have, nor can I seem to find an update on
Maxtor/Seagate's site. Is there a command line option I can give to
disable NCQ, or will I need to play with the blacklist to turn it off?
Do you think that is an avenue worth pursuing?

Also, my main machine has a Maxtor 6Y120M0. It is more of a pain to test
it on the Marvell chipset, but I'd rather not unless you think it will
be worth it.

Dave



[-- Attachment #2: 2.6.22-rc3-mv4-new.log --]
[-- Type: text/x-log, Size: 17715 bytes --]

  Booting command-list

root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
kernel /vmlinuz-2.6.22-rc3-mv4 ro root=LABEL=/ console=ttyS0,115200n1 ignore_lo
glevel single
   [Linux-bzImage, setup=0x1400, size=0x11ac50]
initrd /initrd-2.6.22-rc3-mv4.img
   [Linux-initrd @ 0x37e83000, 0x16c7af bytes]

Linux version 2.6.22-rc3-mv4 (il1@shed.thedillows.org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #23 SMP Sat May 26 12:54:54 EDT 2007
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009bc00 (usable)
 BIOS-e820: 000000000009bc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003fffc000 (usable)
 BIOS-e820: 000000003fffc000 - 000000003ffff000 (ACPI data)
 BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
Warning only 896MB will be used.
Use a HIGHMEM enabled kernel.
896MB LOWMEM available.
found SMP MP-table at 000f54d0
Entering add_active_range(0, 0, 229376) 0 entries of 256 used
Zone PFN ranges:
  DMA             0 ->     4096
  Normal       4096 ->   229376
early_node_map[1] active PFN ranges
    0:        0 ->   229376
On node 0 totalpages: 229376
  DMA zone: 32 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 4064 pages, LIFO batch:0
  Normal zone: 1760 pages used for memmap
  Normal zone: 223520 pages, LIFO batch:31
DMI 2.3 present.
ACPI: RSDP 000F6870, 0014 (r0 ASUS  )
ACPI: RSDT 3FFFC000, 0030 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: FACP 3FFFC100, 0074 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: DSDT 3FFFC180, 25F6 (r1   ASUS CUV4X-D      1000 MSFT  100000B)
ACPI: FACS 3FFFF000, 0040
ACPI: BOOT 3FFFC040, 0028 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: APIC 3FFFC080, 005C (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: PM-Timer IO Port: 0xe408
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x03] enabled)
Processor #3 6:8 APIC version 17
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 6:8 APIC version 17
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 50000000 (gap: 40000000:bec00000)
Built 1 zonelists.  Total pages: 227584
Kernel command line: ro root=LABEL=/ console=ttyS0,115200n1 ignore_loglevel single
debug: ignoring loglevel setting.
mapped APIC to ffffd000 (fee00000)
mapped IOAPIC to ffffc000 (fec00000)
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 16384 bytes)
Detected 1004.573 MHz processor.
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 905128k/917504k available (1403k kernel code, 11880k reserved, 555k data, 212k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xfffb7000 - 0xfffff000   ( 288 kB)
    vmalloc : 0xf8800000 - 0xfffb5000   ( 119 MB)
    lowmem  : 0xc0000000 - 0xf8000000   ( 896 MB)
      .init : 0xc02ef000 - 0xc0324000   ( 212 kB)
      .data : 0xc025edfd - 0xc02e9a34   ( 555 kB)
      .text : 0xc0100000 - 0xc025edfd   (1403 kB)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 2011.05 BogoMIPS (lpj=4022110)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
Compat vDSO mapped to ffffe000.
Checking 'hlt' instruction... OK.
Freeing SMP alternatives: 11k freed
ACPI: Core revision 20070126
CPU0: Intel Pentium III (Coppermine) stepping 0a
Booting processor 1/0 eip 2000
Initializing CPU#1
Calibrating delay using timer specific routine.. 2009.18 BogoMIPS (lpj=4018371)
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#1.
CPU1: Intel Pentium III (Coppermine) stepping 0a
Total of 2 processors activated (4020.24 BogoMIPS).
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
Brought up 2 CPUs
migration_cost=528
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xf0d20, last bus=1
PCI: Using configuration type 1
Setting up standard PCI resources
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
PCI quirk: region e800-e80f claimed by vt82c686 SMB
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
PnPBIOS: Disabled by ACPI PNP
PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
pnp: 00:00: iomem range 0x0-0x9ffff could not be reserved
pnp: 00:00: iomem range 0xf0000-0xfffff could not be reserved
pnp: 00:00: iomem range 0x100000-0x3fffffff could not be reserved
pnp: 00:00: iomem range 0xfffe0000-0xffffffff could not be reserved
pnp: 00:03: ioport range 0xe400-0xe47f has been reserved
pnp: 00:03: ioport range 0xe800-0xe80f has been reserved
Time: tsc clocksource has been installed.
PCI: Bridge: 0000:00:01.0
  IO window: disabled.
  MEM window: e8000000-f7cfffff
  PREFETCH window: f7f00000-fbffffff
PCI: Setting latency timer of device 0000:00:01.0 to 64
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1572864 bytes)
TCP bind hash table entries: 65536 (order: 7, 524288 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
checking if image is initramfs... it is
Freeing initrd memory: 1457k freed
Simple Boot Flag at 0x3a set to 0x1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: Enabling Via external APIC routing
Boot video device is 0000:01:00.0
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Real Time Clock Driver v1.12ac
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0b: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PDC20269: IDE controller at PCI slot 0000:00:09.0
ACPI: PCI Interrupt 0000:00:09.0[A] -> GSI 19 (level, low) -> IRQ 16
PDC20269: chipset revision 2
PDC20269: ROM enabled at 0x50040000
PDC20269: PLL input clock is 16644 kHz
PDC20269: 100% native mode on irq 16
    ide2: BM-DMA at 0xa400-0xa407, BIOS settings: hde:pio, hdf:pio
    ide3: BM-DMA at 0xa408-0xa40f, BIOS settings: hdg:pio, hdh:pio
Probing IDE interface ide2...
hde: Maxtor 6Y120L0, ATA DISK drive
hde: selected mode 0x46
ide2 at 0xb800-0xb807,0xb402 on irq 16
Probing IDE interface ide3...
hdg: ST380013A, ATA DISK drive
hdg: selected mode 0x45
ide3 at 0xb000-0xb007,0xa802 on irq 16
Probing IDE interface ide0...
hda: Maxtor 4D040H2, ATA DISK drive
Probing IDE interface ide1...
hdc: IOMEGA ZIP 250 ATAPI Floppy, ATAPI FLOPPY drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hde: max request size: 128KiB
hde: 240121728 sectors (122942 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(133)
hde: cache flushes supported
 hde: hde1
hdg: max request size: 512KiB
hdg: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=16383/255/63, UDMA(100)
hdg: cache flushes supported
 hdg: hdg1
hda: max request size: 128KiB
hda: 80043264 sectors (40982 MB) w/2048KiB Cache, CHS=65535/16/63
hda: cache flushes not supported
 hda: hda1 hda2 hda3
PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
PNP: PS/2 controller doesn't have AUX irq; using default 12
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input2
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Starting balanced_irq
Using IPI Shortcut mode
Freeing unused kernel memory: 212k freed
Red Hat nash version 5.1.19.6 starting
Mounting proc filesystem
Mounting sysfs filesystem
Creating /dev
Creating initial device nodes
Setting up hotplug.
Creating block device nodes.
Loading mbcache.ko module
Loading jbd.ko module
Loading ext3.ko module
Loading scsi_mod.ko module
SCSI subsystem initialized
Loading sd_mod.ko module
Loading libata.ko module
libata version 2.21 loaded.
Loading sata_mv.ko module
sata_mv 0000:00:0a.0: version 0.81
ACPI: PCI Interrupt 0000:00:0a.0[A] -> GSI 18 (level, low) -> IRQ 17
sata_mv 0000:00:0a.0: Applying B2 workarounds to unknown rev
sata_mv 0000:00:0a.0: 32 slots 4 ports unknown mode IRQ via INTx
scsi0 : sata_mv
scsi1 : sata_mv
scsi2 : sata_mv
scsi3 : sata_mv
ata1: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8922120 bmdma 0x00000000 irq 0
ata2: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8924120 bmdma 0x00000000 irq 0
ata3: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8926120 bmdma 0x00000000 irq 0
ata4: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8928120 bmdma 0x00000000 irq 0
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata1.00: ata_hpa_resize 1: sectors = 312581808, hpa_sectors = 312581808
ata1.00: ATA-7: WDC WD1600JS-00NCB1, 10.02E02, max UDMA/133
ata1.00: 312581808 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata1.00: ata_hpa_resize 1: sectors = 312581808, hpa_sectors = 312581808
ata1.00: configured for UDMA/133
ata2: SATA link down (SStatus 0 SControl 300)
ata3: SATA link down (SStatus 0 SControl 300)
ata4: SATA link down (SStatus 0 SControl 300)
scsi 0:0:0:0: Direct-Access     ATA      WDC WD1600JS-00N 10.0 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 312581808 512-byte hardware sectors (160042 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 312581808 512-byte hardware sectors (160042 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2 sda3
sd 0:0:0:0: [sda] Attached SCSI disk
Waiting for driver initialization.
Creating root device.
Mounting root filesystem.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Setting up other filesystems.
Setting up new root fs
no fstab.sys, mounting internal defaults
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
INIT: version 2.86 booting
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
		Welcome to  CentOS release 5 (Final)
		Press 'I' to enter interactive startup.
Setting clock  (utc): Sat May 26 18:39:45 EDT 2007 [  OK  ]
Starting udev: parport_pc: VIA 686A/8231 detected
parport_pc: probing current configuration
parport_pc: Current parallel port base: 0x378
parport0: PC-style at 0x378 (0x778), irq 7, using FIFO [PCSPP,TRISTATE,COMPAT,ECP]
parport_pc: VIA parallel port: io=0x378, irq=7
PCI: Enabling device 0000:00:0c.0 (0014 -> 0017)
ACPI: PCI Interrupt 0000:00:0c.0[A] -> GSI 16 (level, low) -> IRQ 18
3c59x: Donald Becker and others.
0000:00:0c.0: 3Com PCI 3cSOHO100-TX Hurricane at f8810000.
Intel(R) PRO/1000 Network Driver - version 7.3.20-k2
Copyright (c) 1999-2006 Intel Corporation.
ACPI: PCI Interrupt 0000:00:0b.0[A] -> GSI 17 (level, low) -> IRQ 19
e1000: 0000:00:0b.0: e1000_probe: (PCI:33MHz:32-bit) 00:0e:0c:6c:66:b3
sd 0:0:0:0: Attached scsi generic sg0 type 0
e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
typhoon.c: version 1.5.8 (06/11/09)
PCI: Enabling device 0000:00:0d.0 (0014 -> 0017)
ACPI: PCI Interrupt 0000:00:0d.0[A] -> GSI 19 (level, low) -> IRQ 16
ACPI: PCI interrupt for device 0000:00:0d.0 disabled
eth2: 3Com Typhoon2 (3C990B-FX-97) at MMIO 0xe4800000, 00:0a:5e:1b:95:7b
eth2: Typhoon 1.1+ Sleep Image version 03.001.007 03:11:11 07/23/01 0000156
[  OK  ]
lp0: using parport0 (interrupt-driven).
Loading default keymap (us): [  OK  ]
Setting hostname shed.thedillows.org:  [  OK  ]
md: Autodetecting RAID arrays.
md: autorun ...
md: considering hdg1 ...
md:  adding hdg1 ...
md:  adding hde1 ...
md: created md2
md: bind<hde1>
md: bind<hdg1>
md: running: <hdg1><hde1>
md: raid0 personality registered for level 0
md2: setting max_sectors to 128, segment boundary to 32767
raid0: looking at hdg1
raid0:   comparing hdg1(78148096) with hdg1(78148096)
raid0:   END
raid0:   ==> UNIQUE
raid0: 1 zones
raid0: looking at hde1
raid0:   comparing hde1(120060736) with hdg1(78148096)
raid0:   NOT EQUAL
raid0:   comparing hde1(120060736) with hde1(120060736)
raid0:   END
raid0:   ==> UNIQUE
raid0: 2 zones
raid0: FINAL 2 zones
raid0: zone 1
raid0: checking hdg1 ... nope.
raid0: checking hde1 ... contained as device 0
  (120060736) is smallest!.
raid0: zone->nb_dev: 1, size: 41912640
raid0: current zone offset: 120060736
raid0: done.
raid0 : md_size is 198208832 blocks.
raid0 : conf->hash_spacing is 156296192 blocks.
raid0 : nb_zone is 2.
raid0 : Allocating 8 bytes for hash.
md: ... autorun DONE.
md: md0 stopped.
mdadm: no devices found for /dev/md0
mdadm: error opening /dev/md1: No such file or directory
device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com
Setting up Logical Volume Management:   No volume groups found
[  OK  ]
Checking filesystems
Checking all file systems.
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/hda3 
/: clean, 103132/9843904 files, 1009413/9835796 blocks
[/sbin/fsck.ext3 (1) -- /data] fsck.ext3 -a /dev/md2 
/data: clean, 18062/24788992 files, 35908947/49552208 blocks
[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 -a /dev/hda1 
/boot1: clean, 56/38152 files, 34077/152584 blocks
[  OK  ]
Remounting root filesystem in read-write mode:  EXT3 FS on hda3, internal journal
[  OK  ]
Mounting local filesystems:  kjournald starting.  Commit interval 5 seconds
EXT3 FS on hda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on md2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
[  OK  ]
Enabling local filesystem quotas:  quotaon: Warning: No quota format detected in the kernel.
[  OK  ]
Enabling /etc/fstab swaps:  Adding 522104k swap on /dev/hda2.  Priority:-1 extents:1 across:522104k
[  OK  ]
sh-3.1# mount -oro /dev/sda3 /mnt
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
sh-3.1# find /mnt > /dev/null
sh-3.1# dd if=/dev/sda of=/dev/null bs=1024k count=10240
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 175.829 seconds, 61.1 MB/s
sh-3.1# umount /mnt
sh-3.1# shutdown -h now
INIT: Switching to runlevel: 0
sh-3.1# INIT: Sending processes the TERM signal
INIT: Starting killall:  [  OK  ]
Sending all processes the TERM signal... 
Sending all processes the KILL signal... 
Saving random seed:  
Syncing hardware clock to system time 
Turning off swap:  
Turning off quotas:  quotaoff: Warning: No quota format detected in the kernel.

Unmounting file systems:  
Halting system...
md: stopping all md devices.
md: md2 switched to read-only mode.
sd 0:0:0:0: [sda] Synchronizing SCSI cache
sd 0:0:0:0: [sda] Stopping disk
Shutdown: hda
Shutdown: hdg
Shutdown: hde
ACPI: PCI interrupt for device 0000:00:0b.0 disabled
Power down.
acpi_power_off called

[-- Attachment #3: 2.6.22-rc3-mv4-new2.log --]
[-- Type: text/x-log, Size: 56954 bytes --]

  Booting command-list

root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
kernel /vmlinuz-2.6.22-rc3-mv4 ro root=LABEL=/ console=ttyS0,115200n1 ignore_lo
glevel single
   [Linux-bzImage, setup=0x1400, size=0x11ac50]
initrd /initrd-2.6.22-rc3-mv4.img
   [Linux-initrd @ 0x37e83000, 0x16c7af bytes]

Linux version 2.6.22-rc3-mv4 (il1@shed.thedillows.org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #23 SMP Sat May 26 12:54:54 EDT 2007
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009bc00 (usable)
 BIOS-e820: 000000000009bc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003fffc000 (usable)
 BIOS-e820: 000000003fffc000 - 000000003ffff000 (ACPI data)
 BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
Warning only 896MB will be used.
Use a HIGHMEM enabled kernel.
896MB LOWMEM available.
found SMP MP-table at 000f54d0
Entering add_active_range(0, 0, 229376) 0 entries of 256 used
Zone PFN ranges:
  DMA             0 ->     4096
  Normal       4096 ->   229376
early_node_map[1] active PFN ranges
    0:        0 ->   229376
On node 0 totalpages: 229376
  DMA zone: 32 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 4064 pages, LIFO batch:0
  Normal zone: 1760 pages used for memmap
  Normal zone: 223520 pages, LIFO batch:31
DMI 2.3 present.
ACPI: RSDP 000F6870, 0014 (r0 ASUS  )
ACPI: RSDT 3FFFC000, 0030 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: FACP 3FFFC100, 0074 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: DSDT 3FFFC180, 25F6 (r1   ASUS CUV4X-D      1000 MSFT  100000B)
ACPI: FACS 3FFFF000, 0040
ACPI: BOOT 3FFFC040, 0028 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: APIC 3FFFC080, 005C (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: PM-Timer IO Port: 0xe408
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x03] enabled)
Processor #3 6:8 APIC version 17
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 6:8 APIC version 17
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 50000000 (gap: 40000000:bec00000)
Built 1 zonelists.  Total pages: 227584
Kernel command line: ro root=LABEL=/ console=ttyS0,115200n1 ignore_loglevel single
debug: ignoring loglevel setting.
mapped APIC to ffffd000 (fee00000)
mapped IOAPIC to ffffc000 (fec00000)
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 16384 bytes)
Detected 1004.573 MHz processor.
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 905128k/917504k available (1403k kernel code, 11880k reserved, 555k data, 212k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xfffb7000 - 0xfffff000   ( 288 kB)
    vmalloc : 0xf8800000 - 0xfffb5000   ( 119 MB)
    lowmem  : 0xc0000000 - 0xf8000000   ( 896 MB)
      .init : 0xc02ef000 - 0xc0324000   ( 212 kB)
      .data : 0xc025edfd - 0xc02e9a34   ( 555 kB)
      .text : 0xc0100000 - 0xc025edfd   (1403 kB)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 2011.03 BogoMIPS (lpj=4022070)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
Compat vDSO mapped to ffffe000.
Checking 'hlt' instruction... OK.
Freeing SMP alternatives: 11k freed
ACPI: Core revision 20070126
CPU0: Intel Pentium III (Coppermine) stepping 0a
Booting processor 1/0 eip 2000
Initializing CPU#1
Calibrating delay using timer specific routine.. 2009.19 BogoMIPS (lpj=4018397)
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#1.
CPU1: Intel Pentium III (Coppermine) stepping 0a
Total of 2 processors activated (4020.23 BogoMIPS).
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
Brought up 2 CPUs
migration_cost=533
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xf0d20, last bus=1
PCI: Using configuration type 1
Setting up standard PCI resources
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
PCI quirk: region e800-e80f claimed by vt82c686 SMB
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
PnPBIOS: Disabled by ACPI PNP
PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
pnp: 00:00: iomem range 0x0-0x9ffff could not be reserved
pnp: 00:00: iomem range 0xf0000-0xfffff could not be reserved
pnp: 00:00: iomem range 0x100000-0x3fffffff could not be reserved
pnp: 00:00: iomem range 0xfffe0000-0xffffffff could not be reserved
pnp: 00:03: ioport range 0xe400-0xe47f has been reserved
pnp: 00:03: ioport range 0xe800-0xe80f has been reserved
Time: tsc clocksource has been installed.
PCI: Bridge: 0000:00:01.0
  IO window: disabled.
  MEM window: e8000000-f7cfffff
  PREFETCH window: f7f00000-fbffffff
PCI: Setting latency timer of device 0000:00:01.0 to 64
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1572864 bytes)
TCP bind hash table entries: 65536 (order: 7, 524288 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
checking if image is initramfs... it is
Freeing initrd memory: 1457k freed
Simple Boot Flag at 0x3a set to 0x1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: Enabling Via external APIC routing
Boot video device is 0000:01:00.0
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Real Time Clock Driver v1.12ac
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0b: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PDC20269: IDE controller at PCI slot 0000:00:09.0
ACPI: PCI Interrupt 0000:00:09.0[A] -> GSI 19 (level, low) -> IRQ 16
PDC20269: chipset revision 2
PDC20269: ROM enabled at 0x50040000
PDC20269: PLL input clock is 16634 kHz
PDC20269: 100% native mode on irq 16
    ide2: BM-DMA at 0xa400-0xa407, BIOS settings: hde:pio, hdf:pio
    ide3: BM-DMA at 0xa408-0xa40f, BIOS settings: hdg:pio, hdh:pio
Probing IDE interface ide2...
hde: Maxtor 6Y120L0, ATA DISK drive
hde: selected mode 0x46
ide2 at 0xb800-0xb807,0xb402 on irq 16
Probing IDE interface ide3...
hdg: ST380013A, ATA DISK drive
hdg: selected mode 0x45
ide3 at 0xb000-0xb007,0xa802 on irq 16
Probing IDE interface ide0...
hda: Maxtor 4D040H2, ATA DISK drive
Probing IDE interface ide1...
hdc: IOMEGA ZIP 250 ATAPI Floppy, ATAPI FLOPPY drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hde: max request size: 128KiB
hde: 240121728 sectors (122942 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(133)
hde: cache flushes supported
 hde: hde1
hdg: max request size: 512KiB
hdg: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=16383/255/63, UDMA(100)
hdg: cache flushes supported
 hdg: hdg1
hda: max request size: 128KiB
hda: 80043264 sectors (40982 MB) w/2048KiB Cache, CHS=65535/16/63
hda: cache flushes not supported
 hda: hda1 hda2 hda3
PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
PNP: PS/2 controller doesn't have AUX irq; using default 12
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input2
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Starting balanced_irq
Using IPI Shortcut mode
Freeing unused kernel memory: 212k freed
Red Hat nash version 5.1.19.6 starting
Mounting proc filesystem
Mounting sysfs filesystem
Creating /dev
Creating initial device nodes
Setting up hotplug.
Creating block device nodes.
Loading mbcache.ko module
Loading jbd.ko module
Loading ext3.ko module
Loading scsi_mod.ko module
SCSI subsystem initialized
Loading sd_mod.ko module
Loading libata.ko module
libata version 2.21 loaded.
Loading sata_mv.ko module
sata_mv 0000:00:0a.0: version 0.81
ACPI: PCI Interrupt 0000:00:0a.0[A] -> GSI 18 (level, low) -> IRQ 17
sata_mv 0000:00:0a.0: Applying B2 workarounds to unknown rev
sata_mv 0000:00:0a.0: 32 slots 4 ports unknown mode IRQ via INTx
scsi0 : sata_mv
scsi1 : sata_mv
scsi2 : sata_mv
scsi3 : sata_mv
ata1: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8922120 bmdma 0x00000000 irq 0
ata2: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8924120 bmdma 0x00000000 irq 0
ata3: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8926120 bmdma 0x00000000 irq 0
ata4: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8928120 bmdma 0x00000000 irq 0
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata1.00: ATA-7: Maxtor 6L200S0, BACE1G10, max UDMA/133
ata1.00: 398297088 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata1.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata1.00: configured for UDMA/133
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata2.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata2.00: ATA-7: Maxtor 6L200S0, BACE1G10, max UDMA/133
ata2.00: 398297088 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata2.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata2.00: configured for UDMA/133
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata3.00: ata_hpa_resize 1: sectors = 312581808, hpa_sectors = 312581808
ata3.00: ATA-7: WDC WD1600JS-00NCB1, 10.02E02, max UDMA/133
ata3.00: 312581808 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata3.00: ata_hpa_resize 1: sectors = 312581808, hpa_sectors = 312581808
ata3.00: configured for UDMA/133
ata4: SATA link down (SStatus 0 SControl 300)
scsi 0:0:0:0: Direct-Access     ATA      Maxtor 6L200S0   BACE PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 398297088 512-byte hardware sectors (203928 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 398297088 512-byte hardware sectors (203928 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI disk
scsi 1:0:0:0: Direct-Access     ATA      Maxtor 6L200S0   BACE PQ: 0 ANSI: 5
sd 1:0:0:0: [sdb] 398297088 512-byte hardware sectors (203928 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:0:0: [sdb] 398297088 512-byte hardware sectors (203928 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdb: sdb1 sdb2
sd 1:0:0:0: [sdb] Attached SCSI disk
scsi 2:0:0:0: Direct-Access     ATA      WDC WD1600JS-00N 10.0 PQ: 0 ANSI: 5
sd 2:0:0:0: [sdc] 312581808 512-byte hardware sectors (160042 MB)
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 2:0:0:0: [sdc] 312581808 512-byte hardware sectors (160042 MB)
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdc: sdc1 sdc2 sdc3
sd 2:0:0:0: [sdc] Attached SCSI disk
Waiting for driver initialization.
Creating root device.
Mounting root filesystem.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Setting up other filesystems.
Setting up new root fs
no fstab.sys, mounting internal defaults
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
INIT: version 2.86 booting
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
		Welcome to  CentOS release 5 (Final)
		Press 'I' to enter interactive startup.
Setting clock  (utc): Sat May 26 18:48:54 EDT 2007 [  OK  ]
Starting udev: parport_pc: VIA 686A/8231 detected
parport_pc: probing current configuration
parport_pc: Current parallel port base: 0x378
parport0: PC-style at 0x378 (0x778), irq 7, using FIFO [PCSPP,TRISTATE,COMPAT,ECP]
parport_pc: VIA parallel port: io=0x378, irq=7
PCI: Enabling device 0000:00:0c.0 (0014 -> 0017)
ACPI: PCI Interrupt 0000:00:0c.0[A] -> GSI 16 (level, low) -> IRQ 18
3c59x: Donald Becker and others.
0000:00:0c.0: 3Com PCI 3cSOHO100-TX Hurricane at f8810000.
Intel(R) PRO/1000 Network Driver - version 7.3.20-k2
Copyright (c) 1999-2006 Intel Corporation.
ACPI: PCI Interrupt 0000:00:0b.0[A] -> GSI 17 (level, low) -> IRQ 19
e1000: 0000:00:0b.0: e1000_probe: (PCI:33MHz:32-bit) 00:0e:0c:6c:66:b3
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 1:0:0:0: Attached scsi generic sg1 type 0
sd 2:0:0:0: Attached scsi generic sg2 type 0
e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
typhoon.c: version 1.5.8 (06/11/09)
PCI: Enabling device 0000:00:0d.0 (0014 -> 0017)
ACPI: PCI Interrupt 0000:00:0d.0[A] -> GSI 19 (level, low) -> IRQ 16
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c0186636>] blk_run_queue+0x37/0x63
 [<f883aac8>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<f883ac7f>] scsi_end_request+0x9e/0xa8 [scsi_mod]
 [<f883adc2>] scsi_io_completion+0xfc/0x318 [scsi_mod]
 [<f8874bbb>] mv_interrupt+0x648/0x6d6 [sata_mv]
 [<f881ee88>] sd_rw_intr+0x151/0x175 [sd_mod]
 [<f883b475>] scsi_softirq_done+0x20/0xc7 [scsi_mod]
 [<f883734c>] scsi_finish_command+0x3c/0x40 [scsi_mod]
 [<c0186d2d>] blk_done_softirq+0x44/0x4f
 [<c011ac32>] __do_softirq+0x5d/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c0186636>] blk_run_queue+0x37/0x63
 [<f883aac8>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<f883ac7f>] scsi_end_request+0x9e/0xa8 [scsi_mod]
 [<f883adc2>] scsi_io_completion+0xfc/0x318 [scsi_mod]
 [<f8874bbb>] mv_interrupt+0x648/0x6d6 [sata_mv]
 [<c0129b50>] clocksource_get_next+0x39/0x3f
 [<f881ee88>] sd_rw_intr+0x151/0x175 [sd_mod]
 [<f883b475>] scsi_softirq_done+0x20/0xc7 [scsi_mod]
 [<f883734c>] scsi_finish_command+0x3c/0x40 [scsi_mod]
 [<c0186d2d>] blk_done_softirq+0x44/0x4f
 [<c011ac32>] __do_softirq+0x5d/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c0186636>] blk_run_queue+0x37/0x63
 [<f883aac8>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<f883ac7f>] scsi_end_request+0x9e/0xa8 [scsi_mod]
 [<f883adc2>] scsi_io_completion+0xfc/0x318 [scsi_mod]
 [<f8874bbb>] mv_interrupt+0x648/0x6d6 [sata_mv]
 [<c0127b94>] hrtimer_wakeup+0x15/0x18
 [<f881ee88>] sd_rw_intr+0x151/0x175 [sd_mod]
 [<f883b475>] scsi_softirq_done+0x20/0xc7 [scsi_mod]
 [<f883734c>] scsi_finish_command+0x3c/0x40 [scsi_mod]
 [<c0186d2d>] blk_done_softirq+0x44/0x4f
 [<c011ac32>] __do_softirq+0x5d/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c01862f3>] __generic_unplug_device+0x1d/0x1f
 [<c0183c58>] elv_insert+0xa6/0x146
 [<c011daf1>] __mod_timer+0x8e/0x98
 [<c0187309>] __make_request+0x32b/0x441
 [<c011af67>] tasklet_action+0x46/0x90
 [<c0185633>] generic_make_request+0x18a/0x1b8
 [<c01875f1>] submit_bio+0xb4/0xba
 [<c0136cd5>] mempool_alloc+0x1c/0xba
 [<c01699c7>] bio_alloc_bioset+0x9b/0xf3
 [<c0166ec1>] submit_bh+0xbc/0xd7
 [<c016925d>] block_read_full_page+0x263/0x274
 [<c016b4ad>] blkdev_get_block+0x0/0x34
 [<c0134957>] add_to_page_cache+0x67/0x77
 [<c0139cd7>] __do_page_cache_readahead+0x17a/0x1cf
 [<c015b41c>] __d_lookup+0x96/0xd5
 [<c0139d78>] blockable_page_cache_readahead+0x4c/0x9f
 [<c0139f96>] page_cache_readahead+0x132/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c01862f3>] __generic_unplug_device+0x1d/0x1f
 [<c0183c58>] elv_insert+0xa6/0x146
 [<c011daf1>] __mod_timer+0x8e/0x98
 [<c0187309>] __make_request+0x32b/0x441
 [<c015a9f8>] dput+0x15/0xda
 [<c0185633>] generic_make_request+0x18a/0x1b8
 [<c014a7ce>] cache_alloc_refill+0x58/0x43c
 [<c01875f1>] submit_bio+0xb4/0xba
 [<c0136cd5>] mempool_alloc+0x1c/0xba
 [<c01699c7>] bio_alloc_bioset+0x9b/0xf3
 [<c0166ec1>] submit_bh+0xbc/0xd7
 [<c016925d>] block_read_full_page+0x263/0x274
 [<c016b4ad>] blkdev_get_block+0x0/0x34
 [<c0134957>] add_to_page_cache+0x67/0x77
 [<c0139cd7>] __do_page_cache_readahead+0x17a/0x1cf
 [<c011014d>] do_page_fault+0x0/0x52b
 [<c0139d78>] blockable_page_cache_readahead+0x4c/0x9f
 [<c0139f96>] page_cache_readahead+0x132/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c0127cf6>] hrtimer_run_queues+0xc6/0x147
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c011ac29>] __do_softirq+0x54/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102f7c>] apic_timer_interrupt+0x28/0x30
 [<c025def0>] _spin_unlock_irqrestore+0x5/0x6
 [<f88377a4>] scsi_dispatch_cmd+0x191/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c01862f3>] __generic_unplug_device+0x1d/0x1f
 [<c0183c58>] elv_insert+0xa6/0x146
 [<c011daf1>] __mod_timer+0x8e/0x98
 [<c0187309>] __make_request+0x32b/0x441
 [<c015a9f8>] dput+0x15/0xda
 [<c0185633>] generic_make_request+0x18a/0x1b8
 [<c014a7ce>] cache_alloc_refill+0x58/0x43c
 [<c01875f1>] submit_bio+0xb4/0xba
 [<c0136cd5>] mempool_alloc+0x1c/0xba
 [<c01699c7>] bio_alloc_bioset+0x9b/0xf3
 [<c0166ec1>] submit_bh+0xbc/0xd7
 [<c016925d>] block_read_full_page+0x263/0x274
 [<c016b4ad>] blkdev_get_block+0x0/0x34
 [<c0134957>] add_to_page_cache+0x67/0x77
 [<c0139cd7>] __do_page_cache_readahead+0x17a/0x1cf
 [<c011014d>] do_page_fault+0x0/0x52b
 [<c0139d78>] blockable_page_cache_readahead+0x4c/0x9f
ACPI: PCI interrupt for device 0000:00:0d.0 disabled
 [<c0139f96>] page_cache_readahead+0x132/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
eth2: 3Com Typhoon2 (3C990B-FX-97) at MMIO 0xe4800000, 00:0a:5e:1b:95:7b
eth2: Typhoon 1.1+ Sleep Image version 03.001.007 03:11:11 07/23/01 0000156
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c0127cf6>] hrtimer_run_queues+0xc6/0x147
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c0112d88>] run_rebalance_domains+0x7b/0x3a3
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c018fa6c>] prio_tree_insert+0x11e/0x1e3
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c014007b>] remap_pfn_range+0x48/0x15d
 [<c013ecd8>] __handle_mm_fault+0x1be/0x766
 [<c01419ac>] vma_link+0xab/0xc7
 [<c011035a>] do_page_fault+0x20d/0x52b
 [<c011014d>] do_page_fault+0x0/0x52b
 [<c025e0a2>] error_code+0x72/0x78
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c0137ce1>] __rmqueue+0x71/0xbf
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c014a76f>] kmem_cache_alloc+0x30/0x37
 [<c0114d3c>] dup_fd+0x22/0x257
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01290f3>] getnstimeofday+0x30/0xb9
 [<c0114fab>] copy_files+0x3a/0x51
 [<c011553e>] copy_process+0x39c/0xf9d
 [<c0116368>] do_fork+0x9a/0x1c2
 [<c0152aaf>] do_pipe+0x53/0x98
 [<c0100a05>] sys_clone+0x36/0x3b
 [<c01024ae>] sysenter_past_esp+0x5f/0x85
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c014007b>] remap_pfn_range+0x48/0x15d
 [<c0155917>] __path_lookup_intent_open+0x1d/0x75
 [<c01559e3>] path_lookup_open+0x20/0x25
 [<c0150722>] open_exec+0x25/0xa5
 [<c014da92>] vfs_read+0xfa/0x10a
 [<c0150626>] kernel_read+0x37/0x48
 [<c0172148>] load_elf_binary+0x277/0x1477
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01504ba>] search_binary_handler+0x61/0x169
 [<c0151a85>] do_execve+0x140/0x1af
 [<c0100eae>] sys_execve+0x2f/0x7b
 [<c01024ae>] sysenter_past_esp+0x5f/0x85
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c013476d>] sync_page+0x0/0x40
 [<c01862f3>] __generic_unplug_device+0x1d/0x1f
 [<c0186f76>] generic_unplug_device+0x15/0x21
 [<c0184507>] blk_backing_dev_unplug+0xc/0xd
 [<c0166ac2>] block_sync_page+0x36/0x37
 [<c01347a5>] sync_page+0x38/0x40
 [<c025d269>] __wait_on_bit_lock+0x2a/0x52
 [<c013475f>] __lock_page+0x58/0x5e
 [<c01259ee>] wake_bit_function+0x0/0x3c
 [<c0134f7b>] do_generic_mapping_read+0x1f6/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c01862f3>] __generic_unplug_device+0x1d/0x1f
 [<c0183c58>] elv_insert+0xa6/0x146
 [<c011daf1>] __mod_timer+0x8e/0x98
 [<c0187309>] __make_request+0x32b/0x441
 [<c01e4623>] ide_end_request+0xbe/0xc6
 [<c0185633>] generic_make_request+0x18a/0x1b8
 [<c01e51ac>] ide_intr+0x1b1/0x1be
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 [<c01875f1>] submit_bio+0xb4/0xba
 [<c0136cd5>] mempool_alloc+0x1c/0xba
 [<c01699c7>] bio_alloc_bioset+0x9b/0xf3
 [<c0166ec1>] submit_bh+0xbc/0xd7
 [<c016925d>] block_read_full_page+0x263/0x274
 [<c016b4ad>] blkdev_get_block+0x0/0x34
 [<c0139cd7>] __do_page_cache_readahead+0x17a/0x1cf
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c0139d78>] blockable_page_cache_readahead+0x4c/0x9f
 [<c0139f96>] page_cache_readahead+0x132/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c018642d>] blk_start_queueing+0x11/0x19
 [<c0183c58>] elv_insert+0xa6/0x146
 [<c0187309>] __make_request+0x32b/0x441
 [<c0185633>] generic_make_request+0x18a/0x1b8
 [<c01e51ac>] ide_intr+0x1b1/0x1be
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 [<c01875f1>] submit_bio+0xb4/0xba
 [<c0136cd5>] mempool_alloc+0x1c/0xba
 [<c01699c7>] bio_alloc_bioset+0x9b/0xf3
 [<c0166ec1>] submit_bh+0xbc/0xd7
 [<c016925d>] block_read_full_page+0x263/0x274
 [<c016b4ad>] blkdev_get_block+0x0/0x34
 [<c0139cd7>] __do_page_cache_readahead+0x17a/0x1cf
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c0139d78>] blockable_page_cache_readahead+0x4c/0x9f
 [<c0139f96>] page_cache_readahead+0x132/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c014beb8>] get_unused_fd+0x4a/0xa9
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c013eddb>] __handle_mm_fault+0x2c1/0x766
 [<c011035a>] do_page_fault+0x20d/0x52b
 [<c014173b>] do_munmap+0x193/0x1ac
 [<c011014d>] do_page_fault+0x0/0x52b
 [<c025e0a2>] error_code+0x72/0x78
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c0186636>] blk_run_queue+0x37/0x63
 [<f883aac8>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<f883ac7f>] scsi_end_request+0x9e/0xa8 [scsi_mod]
 [<f883adc2>] scsi_io_completion+0xfc/0x318 [scsi_mod]
 [<f8874bbb>] mv_interrupt+0x648/0x6d6 [sata_mv]
 [<f881ee88>] sd_rw_intr+0x151/0x175 [sd_mod]
 [<f883b475>] scsi_softirq_done+0x20/0xc7 [scsi_mod]
 [<f883734c>] scsi_finish_command+0x3c/0x40 [scsi_mod]
 [<c0186d2d>] blk_done_softirq+0x44/0x4f
 [<c011ac32>] __do_softirq+0x5d/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c013eddb>] __handle_mm_fault+0x2c1/0x766
 [<c011035a>] do_page_fault+0x20d/0x52b
 [<c014173b>] do_munmap+0x193/0x1ac
 [<c011014d>] do_page_fault+0x0/0x52b
 [<c025e0a2>] error_code+0x72/0x78
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c01013ef>] default_idle+0x0/0x3e
 [<c010141b>] default_idle+0x2c/0x3e
 [<c0100b81>] cpu_idle+0x5a/0x6f
 [<c02efbd3>] start_kernel+0x2e8/0x2f0
 [<c02ef440>] unknown_bootoption+0x0/0x202
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c0186636>] blk_run_queue+0x37/0x63
 [<f883aac8>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<f883ac7f>] scsi_end_request+0x9e/0xa8 [scsi_mod]
 [<f883adc2>] scsi_io_completion+0xfc/0x318 [scsi_mod]
 [<c0112cdc>] try_to_wake_up+0x322/0x32c
 [<f8874bbb>] mv_interrupt+0x648/0x6d6 [sata_mv]
 [<f881ee88>] sd_rw_intr+0x151/0x175 [sd_mod]
 [<f883b475>] scsi_softirq_done+0x20/0xc7 [scsi_mod]
 [<f883734c>] scsi_finish_command+0x3c/0x40 [scsi_mod]
 [<c0186d2d>] blk_done_softirq+0x44/0x4f
 [<c011ac32>] __do_softirq+0x5d/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c01013ef>] default_idle+0x0/0x3e
 [<c010141b>] default_idle+0x2c/0x3e
 [<c0100b81>] cpu_idle+0x5a/0x6f
 [<c02efbd3>] start_kernel+0x2e8/0x2f0
 [<c02ef440>] unknown_bootoption+0x0/0x202
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c015007b>] sys_fstat+0xa/0x23
 [<c0139e65>] page_cache_readahead+0x1/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c0154fe7>] do_path_lookup+0x15a/0x175
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c025cc48>] wait_for_completion+0x6a/0x97
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c0150626>] kernel_read+0x37/0x48
 [<c01506f9>] prepare_binprm+0xc2/0xc6
 [<c0151a23>] do_execve+0xde/0x1af
 [<c0100eae>] sys_execve+0x2f/0x7b
 [<c01024ae>] sysenter_past_esp+0x5f/0x85
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c018642d>] blk_start_queueing+0x11/0x19
 [<c0183c58>] elv_insert+0xa6/0x146
 [<c0187309>] __make_request+0x32b/0x441
 [<c015a9f8>] dput+0x15/0xda
 [<c0185633>] generic_make_request+0x18a/0x1b8
 [<c015e813>] mntput_no_expire+0x11/0x56
 [<c01875f1>] submit_bio+0xb4/0xba
 [<c0136cd5>] mempool_alloc+0x1c/0xba
 [<c01699c7>] bio_alloc_bioset+0x9b/0xf3
 [<c0166ec1>] submit_bh+0xbc/0xd7
 [<c016925d>] block_read_full_page+0x263/0x274
 [<c016b4ad>] blkdev_get_block+0x0/0x34
 [<c0134957>] add_to_page_cache+0x67/0x77
 [<c0139cd7>] __do_page_cache_readahead+0x17a/0x1cf
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c0139d78>] blockable_page_cache_readahead+0x4c/0x9f
 [<c0139f96>] page_cache_readahead+0x132/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c018bf59>] cfq_kick_queue+0x0/0x28
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c018bf59>] cfq_kick_queue+0x0/0x28
 [<c018bf5e>] cfq_kick_queue+0x5/0x28
 [<c0122d08>] run_workqueue+0x73/0xf5
 [<c0125acc>] prepare_to_wait+0x12/0x49
 [<c012342a>] worker_thread+0x0/0xc6
 [<c01234e4>] worker_thread+0xba/0xc6
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c01258f3>] kthread+0x38/0x5d
 [<c01258bb>] kthread+0x0/0x5d
 [<c01030cf>] kernel_thread_helper+0x7/0x10
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c0186636>] blk_run_queue+0x37/0x63
 [<f883aac8>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<f883ac7f>] scsi_end_request+0x9e/0xa8 [scsi_mod]
 [<f883adc2>] scsi_io_completion+0xfc/0x318 [scsi_mod]
 [<f881ee88>] sd_rw_intr+0x151/0x175 [sd_mod]
 [<f883b475>] scsi_softirq_done+0x20/0xc7 [scsi_mod]
 [<f883734c>] scsi_finish_command+0x3c/0x40 [scsi_mod]
 [<c0186d2d>] blk_done_softirq+0x44/0x4f
 [<c011ac32>] __do_softirq+0x5d/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c018bf59>] cfq_kick_queue+0x0/0x28
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c018bf59>] cfq_kick_queue+0x0/0x28
 [<c018bf5e>] cfq_kick_queue+0x5/0x28
 [<c0122d08>] run_workqueue+0x73/0xf5
 [<c0125acc>] prepare_to_wait+0x12/0x49
 [<c012342a>] worker_thread+0x0/0xc6
 [<c01234e4>] worker_thread+0xba/0xc6
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c01258f3>] kthread+0x38/0x5d
 [<c01258bb>] kthread+0x0/0x5d
 [<c01030cf>] kernel_thread_helper+0x7/0x10
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c01013ef>] default_idle+0x0/0x3e
 [<c010141b>] default_idle+0x2c/0x3e
 [<c0100b81>] cpu_idle+0x5a/0x6f
 [<c02efbd3>] start_kernel+0x2e8/0x2f0
 [<c02ef440>] unknown_bootoption+0x0/0x202
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c018642d>] blk_start_queueing+0x11/0x19
 [<c0183c58>] elv_insert+0xa6/0x146
 [<c0187309>] __make_request+0x32b/0x441
 [<c0185633>] generic_make_request+0x18a/0x1b8
 [<c01e51ac>] ide_intr+0x1b1/0x1be
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 [<c01875f1>] submit_bio+0xb4/0xba
 [<c0136cd5>] mempool_alloc+0x1c/0xba
 [<c01699c7>] bio_alloc_bioset+0x9b/0xf3
 [<c0166ec1>] submit_bh+0xbc/0xd7
 [<c016925d>] block_read_full_page+0x263/0x274
 [<c016b4ad>] blkdev_get_block+0x0/0x34
 [<c0139cd7>] __do_page_cache_readahead+0x17a/0x1cf
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c0139d78>] blockable_page_cache_readahead+0x4c/0x9f
 [<c0139f96>] page_cache_readahead+0x132/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c0122e11>] insert_work+0x61/0x65
 [<c01231d2>] __queue_work+0x1c/0x28
 [<c012322d>] queue_work+0x33/0x3c
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c01013ef>] default_idle+0x0/0x3e
 [<c010141b>] default_idle+0x2c/0x3e
 [<c0100b81>] cpu_idle+0x5a/0x6f
 [<c02efbd3>] start_kernel+0x2e8/0x2f0
 [<c02ef440>] unknown_bootoption+0x0/0x202
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c0186636>] blk_run_queue+0x37/0x63
 [<f883aac8>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<f883ac7f>] scsi_end_request+0x9e/0xa8 [scsi_mod]
 [<f883adc2>] scsi_io_completion+0xfc/0x318 [scsi_mod]
 [<c0112cdc>] try_to_wake_up+0x322/0x32c
 [<f8874bbb>] mv_interrupt+0x648/0x6d6 [sata_mv]
 [<f881ee88>] sd_rw_intr+0x151/0x175 [sd_mod]
 [<f883b475>] scsi_softirq_done+0x20/0xc7 [scsi_mod]
 [<f883734c>] scsi_finish_command+0x3c/0x40 [scsi_mod]
 [<c0186d2d>] blk_done_softirq+0x44/0x4f
 [<c011ac32>] __do_softirq+0x5d/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c01013ef>] default_idle+0x0/0x3e
 [<c010141b>] default_idle+0x2c/0x3e
 [<c0100b81>] cpu_idle+0x5a/0x6f
 [<c02efbd3>] start_kernel+0x2e8/0x2f0
 [<c02ef440>] unknown_bootoption+0x0/0x202
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c01013ef>] default_idle+0x0/0x3e
 [<c010141b>] default_idle+0x2c/0x3e
 [<c0100b81>] cpu_idle+0x5a/0x6f
 [<c02efbd3>] start_kernel+0x2e8/0x2f0
 [<c02ef440>] unknown_bootoption+0x0/0x202
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c0186636>] blk_run_queue+0x37/0x63
 [<f883aac8>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<f883ac7f>] scsi_end_request+0x9e/0xa8 [scsi_mod]
 [<f883adc2>] scsi_io_completion+0xfc/0x318 [scsi_mod]
 [<f8874bbb>] mv_interrupt+0x648/0x6d6 [sata_mv]
 [<f881ee88>] sd_rw_intr+0x151/0x175 [sd_mod]
 [<f883b475>] scsi_softirq_done+0x20/0xc7 [scsi_mod]
 [<f883734c>] scsi_finish_command+0x3c/0x40 [scsi_mod]
 [<c0186d2d>] blk_done_softirq+0x44/0x4f
 [<c011ac32>] __do_softirq+0x5d/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c01013ef>] default_idle+0x0/0x3e
 [<c010141b>] default_idle+0x2c/0x3e
 [<c0100b81>] cpu_idle+0x5a/0x6f
 [<c02efbd3>] start_kernel+0x2e8/0x2f0
 [<c02ef440>] unknown_bootoption+0x0/0x202
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c0183755>] elv_merged_request+0x28/0x30
 [<c0187297>] __make_request+0x2b9/0x441
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c01600d8>] show_vfsstat+0x24/0xbc
 [<c016a629>] max_block+0x2d/0x67
 [<c016b4be>] blkdev_get_block+0x11/0x34
 [<c0169131>] block_read_full_page+0x137/0x274
 [<c016b4ad>] blkdev_get_block+0x0/0x34
 [<c0134957>] add_to_page_cache+0x67/0x77
 [<c0139cd7>] __do_page_cache_readahead+0x17a/0x1cf
 [<c0139d78>] blockable_page_cache_readahead+0x4c/0x9f
 [<c0139f96>] page_cache_readahead+0x132/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c01862f3>] __generic_unplug_device+0x1d/0x1f
 [<c0183c58>] elv_insert+0xa6/0x146
 [<c0187309>] __make_request+0x32b/0x441
 [<c015a9f8>] dput+0x15/0xda
 [<c0185633>] generic_make_request+0x18a/0x1b8
 [<c015e813>] mntput_no_expire+0x11/0x56
 [<c01875f1>] submit_bio+0xb4/0xba
 [<c0136cd5>] mempool_alloc+0x1c/0xba
 [<c01699c7>] bio_alloc_bioset+0x9b/0xf3
 [<c0166ec1>] submit_bh+0xbc/0xd7
 [<c016925d>] block_read_full_page+0x263/0x274
 [<c016b4ad>] blkdev_get_block+0x0/0x34
 [<c0134957>] add_to_page_cache+0x67/0x77
 [<c0139cd7>] __do_page_cache_readahead+0x17a/0x1cf
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c0139d78>] blockable_page_cache_readahead+0x4c/0x9f
 [<c0139f96>] page_cache_readahead+0x132/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c0112e28>] run_rebalance_domains+0x11b/0x3a3
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c01013ef>] default_idle+0x0/0x3e
 [<c010141b>] default_idle+0x2c/0x3e
 [<c0100b81>] cpu_idle+0x5a/0x6f
 [<c02efbd3>] start_kernel+0x2e8/0x2f0
 [<c02ef440>] unknown_bootoption+0x0/0x202
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c0186636>] blk_run_queue+0x37/0x63
 [<f883aac8>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<f883ac7f>] scsi_end_request+0x9e/0xa8 [scsi_mod]
 [<f883adc2>] scsi_io_completion+0xfc/0x318 [scsi_mod]
 [<f881ee88>] sd_rw_intr+0x151/0x175 [sd_mod]
 [<f883b475>] scsi_softirq_done+0x20/0xc7 [scsi_mod]
 [<f883734c>] scsi_finish_command+0x3c/0x40 [scsi_mod]
 [<c0186d2d>] blk_done_softirq+0x44/0x4f
 [<c011ac32>] __do_softirq+0x5d/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c01013ef>] default_idle+0x0/0x3e
 [<c010141b>] default_idle+0x2c/0x3e
 [<c0100b81>] cpu_idle+0x5a/0x6f
 [<c02efbd3>] start_kernel+0x2e8/0x2f0
 [<c02ef440>] unknown_bootoption+0x0/0x202
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<c010c8f5>] smp_apic_timer_interrupt+0x74/0x80
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c01013ef>] default_idle+0x0/0x3e
 [<c010141b>] default_idle+0x2c/0x3e
 [<c0100b81>] cpu_idle+0x5a/0x6f
 [<c02efbd3>] start_kernel+0x2e8/0x2f0
 [<c02ef440>] unknown_bootoption+0x0/0x202
 =======================
WARNING: at drivers/ata/sata_mv.c:1333 mv_get_crpb_status()
 [<f8874806>] mv_interrupt+0x293/0x6d6 [sata_mv]
 [<c01325b6>] handle_IRQ_event+0x1a/0x3f
 [<c01337aa>] handle_fasteoi_irq+0x71/0xa4
 [<c0104955>] do_IRQ+0x55/0x70
 [<f883bd34>] scsi_request_fn+0x278/0x2c2 [scsi_mod]
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c018cb10>] cfq_may_queue+0x0/0xab
 [<c01800d8>] exit_sem+0xc8/0x14a
 [<c0185d6f>] get_request+0x130/0x1f0
 [<c01864d8>] get_request_wait+0x26/0xe1
 [<c0184323>] elv_merge+0x133/0x16c
 [<c0183755>] elv_merged_request+0x28/0x30
 [<c01872b7>] __make_request+0x2d9/0x441
 [<c0185633>] generic_make_request+0x18a/0x1b8
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 [<c01875f1>] submit_bio+0xb4/0xba
 [<c0136cd5>] mempool_alloc+0x1c/0xba
 [<c01699c7>] bio_alloc_bioset+0x9b/0xf3
 [<c0166ec1>] submit_bh+0xbc/0xd7
 [<c016925d>] block_read_full_page+0x263/0x274
 [<c016b4ad>] blkdev_get_block+0x0/0x34
 [<c0139cd7>] __do_page_cache_readahead+0x17a/0x1cf
 [<c0139d78>] blockable_page_cache_readahead+0x4c/0x9f
 [<c0139f96>] page_cache_readahead+0x132/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c018bf59>] cfq_kick_queue+0x0/0x28
 [<c018bf59>] cfq_kick_queue+0x0/0x28
 [<c018642d>] blk_start_queueing+0x11/0x19
 [<c018bf72>] cfq_kick_queue+0x19

[-- Attachment #4: 2.6.22-rc3-mv4-new3.log --]
[-- Type: text/x-log, Size: 20542 bytes --]

  Booting command-list

root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
kernel /vmlinuz-2.6.22-rc3-mv4 ro root=LABEL=/ console=ttyS0,115200n1 ignore_lo
glevel single
   [Linux-bzImage, setup=0x1400, size=0x11ac50]
initrd /initrd-2.6.22-rc3-mv4.img
   [Linux-initrd @ 0x37e83000, 0x16c7af bytes]

Linux version 2.6.22-rc3-mv4 (il1@shed.thedillows.org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #23 SMP Sat May 26 12:54:54 EDT 2007
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009bc00 (usable)
 BIOS-e820: 000000000009bc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003fffc000 (usable)
 BIOS-e820: 000000003fffc000 - 000000003ffff000 (ACPI data)
 BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
Warning only 896MB will be used.
Use a HIGHMEM enabled kernel.
896MB LOWMEM available.
found SMP MP-table at 000f54d0
Entering add_active_range(0, 0, 229376) 0 entries of 256 used
Zone PFN ranges:
  DMA             0 ->     4096
  Normal       4096 ->   229376
early_node_map[1] active PFN ranges
    0:        0 ->   229376
On node 0 totalpages: 229376
  DMA zone: 32 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 4064 pages, LIFO batch:0
  Normal zone: 1760 pages used for memmap
  Normal zone: 223520 pages, LIFO batch:31
DMI 2.3 present.
ACPI: RSDP 000F6870, 0014 (r0 ASUS  )
ACPI: RSDT 3FFFC000, 0030 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: FACP 3FFFC100, 0074 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: DSDT 3FFFC180, 25F6 (r1   ASUS CUV4X-D      1000 MSFT  100000B)
ACPI: FACS 3FFFF000, 0040
ACPI: BOOT 3FFFC040, 0028 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: APIC 3FFFC080, 005C (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: PM-Timer IO Port: 0xe408
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x03] enabled)
Processor #3 6:8 APIC version 17
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 6:8 APIC version 17
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 50000000 (gap: 40000000:bec00000)
Built 1 zonelists.  Total pages: 227584
Kernel command line: ro root=LABEL=/ console=ttyS0,115200n1 ignore_loglevel single
debug: ignoring loglevel setting.
mapped APIC to ffffd000 (fee00000)
mapped IOAPIC to ffffc000 (fec00000)
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 16384 bytes)
Detected 1004.577 MHz processor.
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 905128k/917504k available (1403k kernel code, 11880k reserved, 555k data, 212k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xfffb7000 - 0xfffff000   ( 288 kB)
    vmalloc : 0xf8800000 - 0xfffb5000   ( 119 MB)
    lowmem  : 0xc0000000 - 0xf8000000   ( 896 MB)
      .init : 0xc02ef000 - 0xc0324000   ( 212 kB)
      .data : 0xc025edfd - 0xc02e9a34   ( 555 kB)
      .text : 0xc0100000 - 0xc025edfd   (1403 kB)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 2011.09 BogoMIPS (lpj=4022191)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
Compat vDSO mapped to ffffe000.
Checking 'hlt' instruction... OK.
Freeing SMP alternatives: 11k freed
ACPI: Core revision 20070126
CPU0: Intel Pentium III (Coppermine) stepping 0a
Booting processor 1/0 eip 2000
Initializing CPU#1
Calibrating delay using timer specific routine.. 2009.19 BogoMIPS (lpj=4018399)
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#1.
CPU1: Intel Pentium III (Coppermine) stepping 0a
Total of 2 processors activated (4020.29 BogoMIPS).
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
Brought up 2 CPUs
migration_cost=531
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xf0d20, last bus=1
PCI: Using configuration type 1
Setting up standard PCI resources
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
PCI quirk: region e800-e80f claimed by vt82c686 SMB
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
PnPBIOS: Disabled by ACPI PNP
PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
pnp: 00:00: iomem range 0x0-0x9ffff could not be reserved
pnp: 00:00: iomem range 0xf0000-0xfffff could not be reserved
pnp: 00:00: iomem range 0x100000-0x3fffffff could not be reserved
pnp: 00:00: iomem range 0xfffe0000-0xffffffff could not be reserved
pnp: 00:03: ioport range 0xe400-0xe47f has been reserved
pnp: 00:03: ioport range 0xe800-0xe80f has been reserved
Time: tsc clocksource has been installed.
PCI: Bridge: 0000:00:01.0
  IO window: disabled.
  MEM window: e8000000-f7cfffff
  PREFETCH window: f7f00000-fbffffff
PCI: Setting latency timer of device 0000:00:01.0 to 64
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1572864 bytes)
TCP bind hash table entries: 65536 (order: 7, 524288 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
checking if image is initramfs... it is
Freeing initrd memory: 1457k freed
Simple Boot Flag at 0x3a set to 0x1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: Enabling Via external APIC routing
Boot video device is 0000:01:00.0
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Real Time Clock Driver v1.12ac
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0b: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PDC20269: IDE controller at PCI slot 0000:00:09.0
ACPI: PCI Interrupt 0000:00:09.0[A] -> GSI 19 (level, low) -> IRQ 16
PDC20269: chipset revision 2
PDC20269: ROM enabled at 0x50040000
PDC20269: PLL input clock is 16619 kHz
PDC20269: 100% native mode on irq 16
    ide2: BM-DMA at 0xa400-0xa407, BIOS settings: hde:pio, hdf:pio
    ide3: BM-DMA at 0xa408-0xa40f, BIOS settings: hdg:pio, hdh:pio
Probing IDE interface ide2...
hde: Maxtor 6Y120L0, ATA DISK drive
hde: selected mode 0x46
ide2 at 0xb800-0xb807,0xb402 on irq 16
Probing IDE interface ide3...
hdg: ST380013A, ATA DISK drive
hdg: selected mode 0x45
ide3 at 0xb000-0xb007,0xa802 on irq 16
Probing IDE interface ide0...
hda: Maxtor 4D040H2, ATA DISK drive
Probing IDE interface ide1...
hdc: IOMEGA ZIP 250 ATAPI Floppy, ATAPI FLOPPY drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hde: max request size: 128KiB
hde: 240121728 sectors (122942 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(133)
hde: cache flushes supported
 hde: hde1
hdg: max request size: 512KiB
hdg: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=16383/255/63, UDMA(100)
hdg: cache flushes supported
 hdg: hdg1
hda: max request size: 128KiB
hda: 80043264 sectors (40982 MB) w/2048KiB Cache, CHS=65535/16/63
hda: cache flushes not supported
 hda: hda1 hda2 hda3
PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
PNP: PS/2 controller doesn't have AUX irq; using default 12
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input2
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Starting balanced_irq
Using IPI Shortcut mode
Freeing unused kernel memory: 212k freed
Red Hat nash version 5.1.19.6 starting
Mounting proc filesystem
Mounting sysfs filesystem
Creating /dev
Creating initial device nodes
Setting up hotplug.
Creating block device nodes.
Loading mbcache.ko module
Loading jbd.ko module
Loading ext3.ko module
Loading scsi_mod.ko module
SCSI subsystem initialized
Loading sd_mod.ko module
Loading libata.ko module
libata version 2.21 loaded.
Loading sata_mv.ko module
sata_mv 0000:00:0a.0: version 0.81
ACPI: PCI Interrupt 0000:00:0a.0[A] -> GSI 18 (level, low) -> IRQ 17
sata_mv 0000:00:0a.0: Applying B2 workarounds to unknown rev
sata_mv 0000:00:0a.0: 32 slots 4 ports unknown mode IRQ via INTx
scsi0 : sata_mv
scsi1 : sata_mv
scsi2 : sata_mv
scsi3 : sata_mv
ata1: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8922120 bmdma 0x00000000 irq 0
ata2: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8924120 bmdma 0x00000000 irq 0
ata3: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8926120 bmdma 0x00000000 irq 0
ata4: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8928120 bmdma 0x00000000 irq 0
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata1.00: ATA-7: Maxtor 6L200S0, BACE1G10, max UDMA/133
ata1.00: 398297088 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata1.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata1.00: configured for UDMA/133
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata2.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata2.00: ATA-7: Maxtor 6L200S0, BACE1G10, max UDMA/133
ata2.00: 398297088 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata2.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata2.00: configured for UDMA/133
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata3.00: ata_hpa_resize 1: sectors = 312581808, hpa_sectors = 312581808
ata3.00: ATA-7: WDC WD1600JS-00NCB1, 10.02E02, max UDMA/133
ata3.00: 312581808 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata3.00: ata_hpa_resize 1: sectors = 312581808, hpa_sectors = 312581808
ata3.00: configured for UDMA/133
ata4: SATA link down (SStatus 0 SControl 300)
scsi 0:0:0:0: Direct-Access     ATA      Maxtor 6L200S0   BACE PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 398297088 512-byte hardware sectors (203928 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 398297088 512-byte hardware sectors (203928 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI disk
scsi 1:0:0:0: Direct-Access     ATA      Maxtor 6L200S0   BACE PQ: 0 ANSI: 5
sd 1:0:0:0: [sdb] 398297088 512-byte hardware sectors (203928 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:0:0: [sdb] 398297088 512-byte hardware sectors (203928 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdb: sdb1 sdb2
sd 1:0:0:0: [sdb] Attached SCSI disk
scsi 2:0:0:0: Direct-Access     ATA      WDC WD1600JS-00N 10.0 PQ: 0 ANSI: 5
sd 2:0:0:0: [sdc] 312581808 512-byte hardware sectors (160042 MB)
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 2:0:0:0: [sdc] 312581808 512-byte hardware sectors (160042 MB)
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdc: sdc1 sdc2 sdc3
sd 2:0:0:0: [sdc] Attached SCSI disk
Waiting for driver initialization.
Creating root device.
Mounting root filesystem.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Setting up other filesystems.
Setting up new root fs
no fstab.sys, mounting internal defaults
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
INIT: version 2.86 booting
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
		Welcome to  CentOS release 5 (Final)
		Press 'I' to enter interactive startup.
Setting clock  (utc): Sat May 26 18:50:54 EDT 2007 [  OK  ]
Starting udev: parport_pc: VIA 686A/8231 detected
parport_pc: probing current configuration
parport_pc: Current parallel port base: 0x378
parport0: PC-style at 0x378 (0x778), irq 7, using FIFO [PCSPP,TRISTATE,COMPAT,ECP]
parport_pc: VIA parallel port: io=0x378, irq=7
Intel(R) PRO/1000 Network Driver - version 7.3.20-k2
Copyright (c) 1999-2006 Intel Corporation.
ACPI: PCI Interrupt 0000:00:0b.0[A] -> GSI 17 (level, low) -> IRQ 18
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 1:0:0:0: Attached scsi generic sg1 type 0
sd 2:0:0:0: Attached scsi generic sg2 type 0
e1000: 0000:00:0b.0: e1000_probe: (PCI:33MHz:32-bit) 00:0e:0c:6c:66:b3
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
PCI: Enabling device 0000:00:0c.0 (0014 -> 0017)
ACPI: PCI Interrupt 0000:00:0c.0[A] -> GSI 16 (level, low) -> IRQ 19
3c59x: Donald Becker and others.
0000:00:0c.0: 3Com PCI 3cSOHO100-TX Hurricane at f880e000.
typhoon.c: version 1.5.8 (06/11/09)
PCI: Enabling device 0000:00:0d.0 (0014 -> 0017)
ACPI: PCI Interrupt 0000:00:0d.0[A] -> GSI 19 (level, low) -> IRQ 16
ACPI: PCI interrupt for device 0000:00:0d.0 disabled
eth2: 3Com Typhoon2 (3C990B-FX-97) at MMIO 0xe4800000, 00:0a:5e:1b:95:7b
eth2: Typhoon 1.1+ Sleep Image version 03.001.007 03:11:11 07/23/01 0000156
[  OK  ]
lp0: using parport0 (interrupt-driven).
Loading default keymap (us): [  OK  ]
Setting hostname shed.thedillows.org:  [  OK  ]
md: Autodetecting RAID arrays.
md: autorun ...
md: considering sdb2 ...
md:  adding sdb2 ...
md: sdb1 has different UUID to sdb2
md:  adding sda2 ...
md: sda1 has different UUID to sdb2
md: hdg1 has different UUID to sdb2
md: hde1 has different UUID to sdb2
md: created md0
md: bind<sda2>
md: bind<sdb2>
md: running: <sdb2><sda2>
md: raid1 personality registered for level 1
raid1: raid set md0 active with 2 out of 2 mirrors
md: considering sdb1 ...
md:  adding sdb1 ...
md:  adding sda1 ...
md: hdg1 has different UUID to sdb1
md: hde1 has different UUID to sdb1
md: created md1
md: bind<sda1>
md: bind<sdb1>
md: running: <sdb1><sda1>
raid1: raid set md1 active with 2 out of 2 mirrors
md: considering hdg1 ...
md:  adding hdg1 ...
md:  adding hde1 ...
md: created md2
md: bind<hde1>
md: bind<hdg1>
md: running: <hdg1><hde1>
md: raid0 personality registered for level 0
md2: setting max_sectors to 128, segment boundary to 32767
raid0: looking at hdg1
raid0:   comparing hdg1(78148096) with hdg1(78148096)
raid0:   END
raid0:   ==> UNIQUE
raid0: 1 zones
raid0: looking at hde1
raid0:   comparing hde1(120060736) with hdg1(78148096)
raid0:   NOT EQUAL
raid0:   comparing hde1(120060736) with hde1(120060736)
raid0:   END
raid0:   ==> UNIQUE
raid0: 2 zones
raid0: FINAL 2 zones
raid0: zone 1
raid0: checking hdg1 ... nope.
raid0: checking hde1 ... contained as device 0
  (120060736) is smallest!.
raid0: zone->nb_dev: 1, size: 41912640
raid0: current zone offset: 120060736
raid0: done.
raid0 : md_size is 198208832 blocks.
raid0 : conf->hash_spacing is 156296192 blocks.
raid0 : nb_zone is 2.
raid0 : Allocating 8 bytes for hash.
md: ... autorun DONE.
mdadm: error opening /dev/md1: No such file or directory
device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com
Setting up Logical Volume Management:   No volume groups found
[  OK  ]
Checking filesystems
Checking all file systems.
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/hda3 
/: clean, 103132/9843904 files, 1009413/9835796 blocks
[/sbin/fsck.ext3 (1) -- /data] fsck.ext3 -a /dev/md2 
/data: clean, 18062/24788992 files, 35908947/49552208 blocks
[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 -a /dev/hda1 
/boot1: clean, 56/38152 files, 34077/152584 blocks
[  OK  ]
Remounting root filesystem in read-write mode:  EXT3 FS on hda3, internal journal
[  OK  ]
Mounting local filesystems:  kjournald starting.  Commit interval 5 seconds
EXT3 FS on hda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on md2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
[  OK  ]
Enabling local filesystem quotas:  quotaon: Warning: No quota format detected in the kernel.
[  OK  ]
Enabling /etc/fstab swaps:  Adding 522104k swap on /dev/hda2.  Priority:-1 extents:1 across:522104k
[  OK  ]
sh-3.1# dd if=/dev/md0 of=/dev/null bs=1024k count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 18.3046 seconds, 57.3 MB/s
sh-3.1# mount -oro /dev/md0 /mnt
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
sh-3.1# find /mnt > /dev/null
find: /mnt/data: Not a directory
find: /mnt/maildirs: Not a directory
find: /mnt/home: Not a directory
find: /mnt/games: Input/output error
find: /mnt/share: Input/output error
sh-3.1# dmesg
[snipped -- it is all above]
sh-3.1# umount /mnt
sh-3.1# shutdown -r now
INIT: sh-3.1# INIT: Sending processes the TERM signal
INIT: Starting killall:  [  OK  ]
Sending all processes the TERM signal... 
Sending all processes the KILL signal... 
Saving random seed:  
Syncing hardware clock to system time 
Turning off swap:  
Turning off quotas:  quotaoff: Warning: No quota format detected in the kernel.

Unmounting file systems:  
Please stand by while rebooting the system...
md: stopping all md devices.
md: md2 switched to read-only mode.
md: md1 switched to read-only mode.
md: md0 switched to read-only mode.
sd 2:0:0:0: [sdc] Synchronizing SCSI cache
sd 1:0:0:0: [sdb] Synchronizing SCSI cache
sd 0:0:0:0: [sda] Synchronizing SCSI cache
ACPI: PCI interrupt for device 0000:00:0b.0 disabled
Restarting system.

[-- Attachment #5: 2.6.22-rc3-mv4-new4-warm.log --]
[-- Type: text/x-log, Size: 23668 bytes --]

  Booting command-list

root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
kernel /vmlinuz-2.6.22-rc3-mv4 ro root=LABEL=/ console=ttyS0,115200n1 ignore_lo
glevel single
   [Linux-bzImage, setup=0x1400, size=0x11ac50]
initrd /initrd-2.6.22-rc3-mv4.img
   [Linux-initrd @ 0x37e83000, 0x16c7af bytes]

Linux version 2.6.22-rc3-mv4 (il1@shed.thedillows.org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #23 SMP Sat May 26 12:54:54 EDT 2007
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009bc00 (usable)
 BIOS-e820: 000000000009bc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003fffc000 (usable)
 BIOS-e820: 000000003fffc000 - 000000003ffff000 (ACPI data)
 BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
Warning only 896MB will be used.
Use a HIGHMEM enabled kernel.
896MB LOWMEM available.
found SMP MP-table at 000f54d0
Entering add_active_range(0, 0, 229376) 0 entries of 256 used
Zone PFN ranges:
  DMA             0 ->     4096
  Normal       4096 ->   229376
early_node_map[1] active PFN ranges
    0:        0 ->   229376
On node 0 totalpages: 229376
  DMA zone: 32 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 4064 pages, LIFO batch:0
  Normal zone: 1760 pages used for memmap
  Normal zone: 223520 pages, LIFO batch:31
DMI 2.3 present.
ACPI: RSDP 000F6870, 0014 (r0 ASUS  )
ACPI: RSDT 3FFFC000, 0030 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: FACP 3FFFC100, 0074 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: DSDT 3FFFC180, 25F6 (r1   ASUS CUV4X-D      1000 MSFT  100000B)
ACPI: FACS 3FFFF000, 0040
ACPI: BOOT 3FFFC040, 0028 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: APIC 3FFFC080, 005C (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: PM-Timer IO Port: 0xe408
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x03] enabled)
Processor #3 6:8 APIC version 17
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 6:8 APIC version 17
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 50000000 (gap: 40000000:bec00000)
Built 1 zonelists.  Total pages: 227584
Kernel command line: ro root=LABEL=/ console=ttyS0,115200n1 ignore_loglevel single
debug: ignoring loglevel setting.
mapped APIC to ffffd000 (fee00000)
mapped IOAPIC to ffffc000 (fec00000)
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 16384 bytes)
Detected 1004.573 MHz processor.
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 905128k/917504k available (1403k kernel code, 11880k reserved, 555k data, 212k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xfffb7000 - 0xfffff000   ( 288 kB)
    vmalloc : 0xf8800000 - 0xfffb5000   ( 119 MB)
    lowmem  : 0xc0000000 - 0xf8000000   ( 896 MB)
      .init : 0xc02ef000 - 0xc0324000   ( 212 kB)
      .data : 0xc025edfd - 0xc02e9a34   ( 555 kB)
      .text : 0xc0100000 - 0xc025edfd   (1403 kB)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 2011.04 BogoMIPS (lpj=4022086)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
Compat vDSO mapped to ffffe000.
Checking 'hlt' instruction... OK.
Freeing SMP alternatives: 11k freed
ACPI: Core revision 20070126
CPU0: Intel Pentium III (Coppermine) stepping 0a
Booting processor 1/0 eip 2000
Initializing CPU#1
Calibrating delay using timer specific routine.. 2009.20 BogoMIPS (lpj=4018401)
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#1.
CPU1: Intel Pentium III (Coppermine) stepping 0a
Total of 2 processors activated (4020.24 BogoMIPS).
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
Brought up 2 CPUs
migration_cost=528
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xf0d20, last bus=1
PCI: Using configuration type 1
Setting up standard PCI resources
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
PCI quirk: region e800-e80f claimed by vt82c686 SMB
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
PnPBIOS: Disabled by ACPI PNP
PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
pnp: 00:00: iomem range 0x0-0x9ffff could not be reserved
pnp: 00:00: iomem range 0xf0000-0xfffff could not be reserved
pnp: 00:00: iomem range 0x100000-0x3fffffff could not be reserved
pnp: 00:00: iomem range 0xfffe0000-0xffffffff could not be reserved
pnp: 00:03: ioport range 0xe400-0xe47f has been reserved
pnp: 00:03: ioport range 0xe800-0xe80f has been reserved
Time: tsc clocksource has been installed.
PCI: Bridge: 0000:00:01.0
  IO window: disabled.
  MEM window: e8000000-f7cfffff
  PREFETCH window: f7f00000-fbffffff
PCI: Setting latency timer of device 0000:00:01.0 to 64
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1572864 bytes)
TCP bind hash table entries: 65536 (order: 7, 524288 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
checking if image is initramfs... it is
Freeing initrd memory: 1457k freed
Simple Boot Flag at 0x3a set to 0x1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: Enabling Via external APIC routing
Boot video device is 0000:01:00.0
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Real Time Clock Driver v1.12ac
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0b: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PDC20269: IDE controller at PCI slot 0000:00:09.0
ACPI: PCI Interrupt 0000:00:09.0[A] -> GSI 19 (level, low) -> IRQ 16
PDC20269: chipset revision 2
PDC20269: ROM enabled at 0x50040000
PDC20269: PLL input clock is 16634 kHz
PDC20269: 100% native mode on irq 16
    ide2: BM-DMA at 0xa400-0xa407, BIOS settings: hde:pio, hdf:pio
    ide3: BM-DMA at 0xa408-0xa40f, BIOS settings: hdg:pio, hdh:pio
Probing IDE interface ide2...
hde: Maxtor 6Y120L0, ATA DISK drive
hde: selected mode 0x46
ide2 at 0xb800-0xb807,0xb402 on irq 16
Probing IDE interface ide3...
hdg: ST380013A, ATA DISK drive
hdg: selected mode 0x45
ide3 at 0xb000-0xb007,0xa802 on irq 16
Probing IDE interface ide0...
hda: Maxtor 4D040H2, ATA DISK drive
Probing IDE interface ide1...
hdc: IOMEGA ZIP 250 ATAPI Floppy, ATAPI FLOPPY drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hde: max request size: 128KiB
hde: 240121728 sectors (122942 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(133)
hde: cache flushes supported
 hde: hde1
hdg: max request size: 512KiB
hdg: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=16383/255/63, UDMA(100)
hdg: cache flushes supported
 hdg: hdg1
hda: max request size: 128KiB
hda: 80043264 sectors (40982 MB) w/2048KiB Cache, CHS=65535/16/63
hda: cache flushes not supported
 hda: hda1 hda2 hda3
PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
PNP: PS/2 controller doesn't have AUX irq; using default 12
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input2
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Starting balanced_irq
Using IPI Shortcut mode
Freeing unused kernel memory: 212k freed
Red Hat nash version 5.1.19.6 starting
Mounting proc filesystem
Mounting sysfs filesystem
Creating /dev
Creating initial device nodes
Setting up hotplug.
Creating block device nodes.
Loading mbcache.ko module
Loading jbd.ko module
Loading ext3.ko module
Loading scsi_mod.ko module
SCSI subsystem initialized
Loading sd_mod.ko module
Loading libata.ko module
libata version 2.21 loaded.
Loading sata_mv.ko module
sata_mv 0000:00:0a.0: version 0.81
ACPI: PCI Interrupt 0000:00:0a.0[A] -> GSI 18 (level, low) -> IRQ 17
sata_mv 0000:00:0a.0: Applying B2 workarounds to unknown rev
sata_mv 0000:00:0a.0: 32 slots 4 ports unknown mode IRQ via INTx
scsi0 : sata_mv
scsi1 : sata_mv
scsi2 : sata_mv
scsi3 : sata_mv
ata1: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8922120 bmdma 0x00000000 irq 0
ata2: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8924120 bmdma 0x00000000 irq 0
ata3: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8926120 bmdma 0x00000000 irq 0
ata4: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8928120 bmdma 0x00000000 irq 0
ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata1.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata1.00: ATA-7: Maxtor 6L200S0, BACE1G10, max UDMA/133
ata1.00: 398297088 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata1.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata1.00: configured for UDMA/133
ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata2.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata2.00: ATA-7: Maxtor 6L200S0, BACE1G10, max UDMA/133
ata2.00: 398297088 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata2.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata2.00: configured for UDMA/133
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata3.00: ata_hpa_resize 1: sectors = 312581808, hpa_sectors = 312581808
ata3.00: ATA-7: WDC WD1600JS-00NCB1, 10.02E02, max UDMA/133
ata3.00: 312581808 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata3.00: ata_hpa_resize 1: sectors = 312581808, hpa_sectors = 312581808
ata3.00: configured for UDMA/133
ata4: SATA link down (SStatus 0 SControl 300)
scsi 0:0:0:0: Direct-Access     ATA      Maxtor 6L200S0   BACE PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 398297088 512-byte hardware sectors (203928 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 398297088 512-byte hardware sectors (203928 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI disk
scsi 1:0:0:0: Direct-Access     ATA      Maxtor 6L200S0   BACE PQ: 0 ANSI: 5
sd 1:0:0:0: [sdb] 398297088 512-byte hardware sectors (203928 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:0:0: [sdb] 398297088 512-byte hardware sectors (203928 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdb: sdb1 sdb2
sd 1:0:0:0: [sdb] Attached SCSI disk
scsi 2:0:0:0: Direct-Access     ATA      WDC WD1600JS-00N 10.0 PQ: 0 ANSI: 5
sd 2:0:0:0: [sdc] 312581808 512-byte hardware sectors (160042 MB)
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 2:0:0:0: [sdc] 312581808 512-byte hardware sectors (160042 MB)
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdc: sdc1 sdc2 sdc3
sd 2:0:0:0: [sdc] Attached SCSI disk
Waiting for driver initialization.
Creating root device.
Mounting root filesystem.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Setting up other filesystems.
Setting up new root fs
no fstab.sys, mounting internal defaults
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
INIT: version 2.86 booting
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
		Welcome to  CentOS release 5 (Final)
		Press 'I' to enter interactive startup.
Setting clock  (utc): Sat May 26 18:56:05 EDT 2007 [  OK  ]
Starting udev: parport_pc: VIA 686A/8231 detected
parport_pc: probing current configuration
parport_pc: Current parallel port base: 0x378
parport0: PC-style at 0x378 (0x778), irq 7, using FIFO [PCSPP,TRISTATE,COMPAT,ECP]
parport_pc: VIA parallel port: io=0x378, irq=7
typhoon.c: version 1.5.8 (06/11/09)
PCI: Enabling device 0000:00:0d.0 (0014 -> 0017)
ACPI: PCI Interrupt 0000:00:0d.0[A] -> GSI 19 (level, low) -> IRQ 16
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 1:0:0:0: Attached scsi generic sg1 type 0
sd 2:0:0:0: Attached scsi generic sg2 type 0
Intel(R) PRO/1000 Network Driver - version 7.3.20-k2
Copyright (c) 1999-2006 Intel Corporation.
ACPI: PCI interrupt for device 0000:00:0d.0 disabled
eth0: 3Com Typhoon2 (3C990B-FX-97) at MMIO 0xe4800000, 00:0a:5e:1b:95:7b
eth0: Typhoon 1.1+ Sleep Image version 03.001.007 03:11:11 07/23/01 0000156
PCI: Enabling device 0000:00:0c.0 (0014 -> 0017)
ACPI: PCI Interrupt 0000:00:0c.0[A] -> GSI 16 (level, low) -> IRQ 18
3c59x: Donald Becker and others.
0000:00:0c.0: 3Com PCI 3cSOHO100-TX Hurricane at f880e000.
ACPI: PCI Interrupt 0000:00:0b.0[A] -> GSI 17 (level, low) -> IRQ 19
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c0186636>] blk_run_queue+0x37/0x63
e1000: 0000:00:0b.0: e1000_probe: (PCI:33MHz:32-bit) 00:0e:0c:6c:66:b3
 [<f883aac8>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<f883ac7f>] scsi_end_request+0x9e/0xa8 [scsi_mod]
 [<f883adc2>] scsi_io_completion+0xfc/0x318 [scsi_mod]
 [<f8874bbb>] mv_interrupt+0x648/0x6d6 [sata_mv]
 [<f881ee88>] sd_rw_intr+0x151/0x175 [sd_mod]
 [<f883b475>] scsi_softirq_done+0x20/0xc7 [scsi_mod]
 [<f883734c>] scsi_finish_command+0x3c/0x40 [scsi_mod]
 [<c0186d2d>] blk_done_softirq+0x44/0x4f
 [<c011ac32>] __do_softirq+0x5d/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c011007b>] vmalloc_sync_all+0x6c/0xf5
 [<c0118972>] release_task+0x259/0x283
 [<c011903e>] do_wait+0x6a2/0x9b8
 [<c0112ce6>] default_wake_function+0x0/0xc
 [<c0119385>] sys_wait4+0x31/0x34
 [<c01193af>] sys_waitpid+0x27/0x2b
 [<c01024ae>] sysenter_past_esp+0x5f/0x85
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c01862f3>] __generic_unplug_device+0x1d/0x1f
 [<c0183c58>] elv_insert+0xa6/0x146
 [<c011daf1>] __mod_timer+0x8e/0x98
 [<c0187309>] __make_request+0x32b/0x441
 [<c0111492>] __wake_up+0x32/0x43
 [<c0185633>] generic_make_request+0x18a/0x1b8
 [<c0136cb4>] mempool_free+0x66/0x6b
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<c011daf1>] __mod_timer+0x8e/0x98
 [<c01875f1>] submit_bio+0xb4/0xba
 [<c0136cd5>] mempool_alloc+0x1c/0xba
 [<c01699c7>] bio_alloc_bioset+0x9b/0xf3
 [<c0166ec1>] submit_bh+0xbc/0xd7
 [<c016925d>] block_read_full_page+0x263/0x274
 [<c016b4ad>] blkdev_get_block+0x0/0x34
 [<c0134957>] add_to_page_cache+0x67/0x77
 [<c0139cd7>] __do_page_cache_readahead+0x17a/0x1cf
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c0139d78>] blockable_page_cache_readahead+0x4c/0x9f
 [<c0139f96>] page_cache_readahead+0x132/0x1a4
 [<c0134ed2>] do_generic_mapping_read+0x14d/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c013690d>] filemap_nopage+0x18c/0x29d
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c0186636>] blk_run_queue+0x37/0x63
 [<f883aac8>] scsi_next_command+0x25/0x2f [scsi_mod]
 [<f883ac7f>] scsi_end_request+0x9e/0xa8 [scsi_mod]
 [<f883adc2>] scsi_io_completion+0xfc/0x318 [scsi_mod]
 [<f8874bbb>] mv_interrupt+0x648/0x6d6 [sata_mv]
 [<f881ee88>] sd_rw_intr+0x151/0x175 [sd_mod]
 [<f883b475>] scsi_softirq_done+0x20/0xc7 [scsi_mod]
 [<f883734c>] scsi_finish_command+0x3c/0x40 [scsi_mod]
 [<c0186d2d>] blk_done_softirq+0x44/0x4f
 [<c011ac32>] __do_softirq+0x5d/0xc1
 [<c011acc8>] do_softirq+0x32/0x36
 [<c010495a>] do_IRQ+0x5a/0x70
 [<c0102ebf>] common_interrupt+0x23/0x28
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c013476d>] sync_page+0x0/0x40
 [<c01862f3>] __generic_unplug_device+0x1d/0x1f
 [<c0186f76>] generic_unplug_device+0x15/0x21
 [<c0184507>] blk_backing_dev_unplug+0xc/0xd
 [<c0166ac2>] block_sync_page+0x36/0x37
 [<c01347a5>] sync_page+0x38/0x40
 [<c025d269>] __wait_on_bit_lock+0x2a/0x52
 [<c013475f>] __lock_page+0x58/0x5e
 [<c01259ee>] wake_bit_function+0x0/0x3c
 [<c0134f7b>] do_generic_mapping_read+0x1f6/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c013690d>] filemap_nopage+0x18c/0x29d
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 =======================
e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
WARNING: at drivers/ata/sata_mv.c:1287 mv_qc_issue()
 [<f88744ff>] mv_qc_issue+0x99/0x10d [sata_mv]
 [<f889747f>] ata_qc_issue+0x429/0x47f [libata]
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889c0fb>] ata_scsi_translate+0xfa/0x155 [libata]
 [<c011d9e9>] lock_timer_base+0x19/0x35
 [<f8837469>] scsi_done+0x0/0x16 [scsi_mod]
 [<f889df51>] ata_scsi_queuecmd+0x117/0x134 [libata]
 [<f889bdfb>] ata_scsi_rw_xlat+0x0/0x1e0 [libata]
 [<f8837798>] scsi_dispatch_cmd+0x185/0x1c9 [scsi_mod]
 [<f883bcc9>] scsi_request_fn+0x20d/0x2c2 [scsi_mod]
 [<c01862ca>] blk_remove_plug+0x4f/0x5b
 [<c013476d>] sync_page+0x0/0x40
 [<c01862f3>] __generic_unplug_device+0x1d/0x1f
 [<c0186f76>] generic_unplug_device+0x15/0x21
 [<c0184507>] blk_backing_dev_unplug+0xc/0xd
 [<c0166ac2>] block_sync_page+0x36/0x37
 [<c01347a5>] sync_page+0x38/0x40
 [<c025d269>] __wait_on_bit_lock+0x2a/0x52
 [<c013475f>] __lock_page+0x58/0x5e
 [<c01259ee>] wake_bit_function+0x0/0x3c
 [<c0134f7b>] do_generic_mapping_read+0x1f6/0x457
 [<c0136b67>] generic_file_aio_read+0x149/0x16e
 [<c013458d>] file_read_actor+0x0/0xca
 [<c014d2bd>] do_sync_read+0xc7/0x10a
 [<c01385bc>] __alloc_pages+0x52/0x286
 [<c01259b9>] autoremove_wake_function+0x0/0x35
 [<c016a810>] block_llseek+0xad/0xb9
 [<c014d1f6>] do_sync_read+0x0/0x10a
 [<c014da20>] vfs_read+0x88/0x10a
 [<c014de1e>] sys_read+0x41/0x67
 [<c0102524>] syscall_call+0x7/0xb
 [<c0250000>] inet_diag_rcv_msg+0x32d/0x4c0
 =======================

[-- Attachment #6: 2.6.22-rc3-new.log --]
[-- Type: text/x-log, Size: 20815 bytes --]

  Booting command-list

root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
kernel /vmlinuz-2.6.22-rc3 ro root=LABEL=/ console=ttyS0,115200n1 ignore_loglev
el single
   [Linux-bzImage, setup=0x1400, size=0x11ac50]
initrd /initrd-2.6.22-rc3.img
   [Linux-initrd @ 0x37e83000, 0x16c4d7 bytes]

Linux version 2.6.22-rc3 (il1@shed.thedillows.org) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #22 SMP Sat May 26 12:27:17 EDT 2007
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009bc00 (usable)
 BIOS-e820: 000000000009bc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003fffc000 (usable)
 BIOS-e820: 000000003fffc000 - 000000003ffff000 (ACPI data)
 BIOS-e820: 000000003ffff000 - 0000000040000000 (ACPI NVS)
 BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
Warning only 896MB will be used.
Use a HIGHMEM enabled kernel.
896MB LOWMEM available.
found SMP MP-table at 000f54d0
Entering add_active_range(0, 0, 229376) 0 entries of 256 used
Zone PFN ranges:
  DMA             0 ->     4096
  Normal       4096 ->   229376
early_node_map[1] active PFN ranges
    0:        0 ->   229376
On node 0 totalpages: 229376
  DMA zone: 32 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 4064 pages, LIFO batch:0
  Normal zone: 1760 pages used for memmap
  Normal zone: 223520 pages, LIFO batch:31
DMI 2.3 present.
ACPI: RSDP 000F6870, 0014 (r0 ASUS  )
ACPI: RSDT 3FFFC000, 0030 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: FACP 3FFFC100, 0074 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: DSDT 3FFFC180, 25F6 (r1   ASUS CUV4X-D      1000 MSFT  100000B)
ACPI: FACS 3FFFF000, 0040
ACPI: BOOT 3FFFC040, 0028 (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: APIC 3FFFC080, 005C (r1 ASUS   CUV4X-D  30303031 MSFT 31313031)
ACPI: PM-Timer IO Port: 0xe408
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x03] enabled)
Processor #3 6:8 APIC version 17
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 6:8 APIC version 17
ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 50000000 (gap: 40000000:bec00000)
Built 1 zonelists.  Total pages: 227584
Kernel command line: ro root=LABEL=/ console=ttyS0,115200n1 ignore_loglevel single
debug: ignoring loglevel setting.
mapped APIC to ffffd000 (fee00000)
mapped IOAPIC to ffffc000 (fec00000)
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 16384 bytes)
Detected 1004.577 MHz processor.
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 905128k/917504k available (1403k kernel code, 11880k reserved, 555k data, 212k init, 0k highmem)
virtual kernel memory layout:
    fixmap  : 0xfffb7000 - 0xfffff000   ( 288 kB)
    vmalloc : 0xf8800000 - 0xfffb5000   ( 119 MB)
    lowmem  : 0xc0000000 - 0xf8000000   ( 896 MB)
      .init : 0xc02ef000 - 0xc0324000   ( 212 kB)
      .data : 0xc025edfd - 0xc02e9a34   ( 555 kB)
      .text : 0xc0100000 - 0xc025edfd   (1403 kB)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 2011.03 BogoMIPS (lpj=4022077)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
Compat vDSO mapped to ffffe000.
Checking 'hlt' instruction... OK.
Freeing SMP alternatives: 11k freed
ACPI: Core revision 20070126
CPU0: Intel Pentium III (Coppermine) stepping 0a
Booting processor 1/0 eip 2000
Initializing CPU#1
Calibrating delay using timer specific routine.. 2009.19 BogoMIPS (lpj=4018387)
CPU: After generic identify, caps: 0383fbff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After all inits, caps: 0383fbff 00000000 00000000 00000040 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#1.
CPU1: Intel Pentium III (Coppermine) stepping 0a
Total of 2 processors activated (4020.23 BogoMIPS).
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
checking TSC synchronization [CPU#0 -> CPU#1]: passed.
Brought up 2 CPUs
migration_cost=531
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xf0d20, last bus=1
PCI: Using configuration type 1
Setting up standard PCI resources
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
PCI quirk: region e800-e80f claimed by vt82c686 SMB
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *5 6 7 9 10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled.
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
ACPI: bus type pnp registered
pnp: PnP ACPI: found 13 devices
ACPI: ACPI bus type pnp unregistered
PnPBIOS: Disabled by ACPI PNP
PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
pnp: 00:00: iomem range 0x0-0x9ffff could not be reserved
pnp: 00:00: iomem range 0xf0000-0xfffff could not be reserved
pnp: 00:00: iomem range 0x100000-0x3fffffff could not be reserved
pnp: 00:00: iomem range 0xfffe0000-0xffffffff could not be reserved
pnp: 00:03: ioport range 0xe400-0xe47f has been reserved
pnp: 00:03: ioport range 0xe800-0xe80f has been reserved
Time: tsc clocksource has been installed.
PCI: Bridge: 0000:00:01.0
  IO window: disabled.
  MEM window: e8000000-f7cfffff
  PREFETCH window: f7f00000-fbffffff
PCI: Setting latency timer of device 0000:00:01.0 to 64
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1572864 bytes)
TCP bind hash table entries: 65536 (order: 7, 524288 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
checking if image is initramfs... it is
Freeing initrd memory: 1457k freed
Simple Boot Flag at 0x3a set to 0x1
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
PCI: Enabling Via external APIC routing
Boot video device is 0000:01:00.0
input: Power Button (FF) as /class/input/input0
ACPI: Power Button (FF) [PWRF]
input: Power Button (CM) as /class/input/input1
ACPI: Power Button (CM) [PWRB]
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Real Time Clock Driver v1.12ac
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0b: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PDC20269: IDE controller at PCI slot 0000:00:09.0
ACPI: PCI Interrupt 0000:00:09.0[A] -> GSI 19 (level, low) -> IRQ 16
PDC20269: chipset revision 2
PDC20269: ROM enabled at 0x50040000
PDC20269: PLL input clock is 16619 kHz
PDC20269: 100% native mode on irq 16
    ide2: BM-DMA at 0xa400-0xa407, BIOS settings: hde:pio, hdf:pio
    ide3: BM-DMA at 0xa408-0xa40f, BIOS settings: hdg:pio, hdh:pio
Probing IDE interface ide2...
hde: Maxtor 6Y120L0, ATA DISK drive
hde: selected mode 0x46
ide2 at 0xb800-0xb807,0xb402 on irq 16
Probing IDE interface ide3...
hdg: ST380013A, ATA DISK drive
hdg: selected mode 0x45
ide3 at 0xb000-0xb007,0xa802 on irq 16
Probing IDE interface ide0...
hda: Maxtor 4D040H2, ATA DISK drive
Probing IDE interface ide1...
hdc: IOMEGA ZIP 250 ATAPI Floppy, ATAPI FLOPPY drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hde: max request size: 128KiB
hde: 240121728 sectors (122942 MB) w/2048KiB Cache, CHS=65535/16/63, UDMA(133)
hde: cache flushes supported
 hde: hde1
hdg: max request size: 512KiB
hdg: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=16383/255/63, UDMA(100)
hdg: cache flushes supported
 hdg: hdg1
hda: max request size: 128KiB
hda: 80043264 sectors (40982 MB) w/2048KiB Cache, CHS=65535/16/63
hda: cache flushes not supported
 hda: hda1 hda2 hda3
PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1
PNP: PS/2 controller doesn't have AUX irq; using default 12
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard as /class/input/input2
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Starting balanced_irq
Using IPI Shortcut mode
Freeing unused kernel memory: 212k freed
Red Hat nash version 5.1.19.6 starting
Mounting proc filesystem
Mounting sysfs filesystem
Creating /dev
Creating initial device nodes
Setting up hotplug.
Creating block device nodes.
Loading mbcache.ko module
Loading jbd.ko module
Loading ext3.ko module
Loading scsi_mod.ko module
SCSI subsystem initialized
Loading sd_mod.ko module
Loading libata.ko module
libata version 2.21 loaded.
Loading sata_mv.ko module
sata_mv 0000:00:0a.0: version 0.81
ACPI: PCI Interrupt 0000:00:0a.0[A] -> GSI 18 (level, low) -> IRQ 17
sata_mv 0000:00:0a.0: Applying B2 workarounds to unknown rev
sata_mv 0000:00:0a.0: 32 slots 4 ports unknown mode IRQ via INTx
scsi0 : sata_mv
scsi1 : sata_mv
scsi2 : sata_mv
scsi3 : sata_mv
ata1: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8922120 bmdma 0x00000000 irq 0
ata2: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8924120 bmdma 0x00000000 irq 0
ata3: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8926120 bmdma 0x00000000 irq 0
ata4: SATA max UDMA/133 cmd 0x00000000 ctl 0xf8928120 bmdma 0x00000000 irq 0
ata1.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata1.00: ATA-7: Maxtor 6L200S0, BACE1G10, max UDMA/133
ata1.00: 398297088 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata1.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata1.00: configured for UDMA/133
ata2.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata2.00: ATA-7: Maxtor 6L200S0, BACE1G10, max UDMA/133
ata2.00: 398297088 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata2.00: ata_hpa_resize 1: sectors = 398297088, hpa_sectors = 398297088
ata2.00: configured for UDMA/133
ata3: no device found (phy stat 00000000)
ata4.00: ata_hpa_resize 1: sectors = 312581808, hpa_sectors = 312581808
ata4.00: ATA-7: WDC WD1600JS-00NCB1, 10.02E02, max UDMA/133
ata4.00: 312581808 sectors, multi 0: LBA48 NCQ (depth 0/32)
ata4.00: ata_hpa_resize 1: sectors = 312581808, hpa_sectors = 312581808
ata4.00: configured for UDMA/133
scsi 0:0:0:0: Direct-Access     ATA      Maxtor 6L200S0   BACE PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 398297088 512-byte hardware sectors (203928 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] 398297088 512-byte hardware sectors (203928 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI disk
scsi 1:0:0:0: Direct-Access     ATA      Maxtor 6L200S0   BACE PQ: 0 ANSI: 5
sd 1:0:0:0: [sdb] 398297088 512-byte hardware sectors (203928 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 1:0:0:0: [sdb] 398297088 512-byte hardware sectors (203928 MB)
sd 1:0:0:0: [sdb] Write Protect is off
sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdb: sdb1 sdb2
sd 1:0:0:0: [sdb] Attached SCSI disk
scsi 3:0:0:0: Direct-Access     ATA      WDC WD1600JS-00N 10.0 PQ: 0 ANSI: 5
sd 3:0:0:0: [sdc] 312581808 512-byte hardware sectors (160042 MB)
sd 3:0:0:0: [sdc] Write Protect is off
sd 3:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 3:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 3:0:0:0: [sdc] 312581808 512-byte hardware sectors (160042 MB)
sd 3:0:0:0: [sdc] Write Protect is off
sd 3:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 3:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
 sdc: sdc1 sdc2 sdc3
sd 3:0:0:0: [sdc] Attached SCSI disk
Waiting for driver initialization.
Creating root device.
Mounting root filesystem.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
Setting up other filesystems.
Setting up new root fs
no fstab.sys, mounting internal defaults
Switching to new root and running init.
unmounting old /dev
unmounting old /proc
unmounting old /sys
INIT: version 2.86 booting
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
		Welcome to  CentOS release 5 (Final)
		Press 'I' to enter interactive startup.
Setting clock  (utc): Sat May 26 18:25:17 EDT 2007 [  OK  ]
Starting udev: parport_pc: VIA 686A/8231 detected
parport_pc: probing current configuration
parport_pc: Current parallel port base: 0x378
parport0: PC-style at 0x378 (0x778), irq 7, using FIFO [PCSPP,TRISTATE,COMPAT,ECP]
parport_pc: VIA parallel port: io=0x378, irq=7
PCI: Enabling device 0000:00:0c.0 (0014 -> 0017)
ACPI: PCI Interrupt 0000:00:0c.0[A] -> GSI 16 (level, low) -> IRQ 18
3c59x: Donald Becker and others.
0000:00:0c.0: 3Com PCI 3cSOHO100-TX Hurricane at f8810000.
Intel(R) PRO/1000 Network Driver - version 7.3.20-k2
Copyright (c) 1999-2006 Intel Corporation.
ACPI: PCI Interrupt 0000:00:0b.0[A] -> GSI 17 (level, low) -> IRQ 19
e1000: 0000:00:0b.0: e1000_probe: (PCI:33MHz:32-bit) 00:0e:0c:6c:66:b3
e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
typhoon.c: version 1.5.8 (06/11/09)
PCI: Enabling device 0000:00:0d.0 (0014 -> 0017)
ACPI: PCI Interrupt 0000:00:0d.0[A] -> GSI 19 (level, low) -> IRQ 16
sd 0:0:0:0: Attached scsi generic sg0 type 0
sd 1:0:0:0: Attached scsi generic sg1 type 0
sd 3:0:0:0: Attached scsi generic sg2 type 0
ACPI: PCI interrupt for device 0000:00:0d.0 disabled
eth2: 3Com Typhoon2 (3C990B-FX-97) at MMIO 0xe4800000, 00:0a:5e:1b:95:7b
eth2: Typhoon 1.1+ Sleep Image version 03.001.007 03:11:11 07/23/01 0000156
[  OK  ]
lp0: using parport0 (interrupt-driven).
Loading default keymap (us): [  OK  ]
Setting hostname shed.thedillows.org:  [  OK  ]
md: Autodetecting RAID arrays.
md: autorun ...
md: considering sdb2 ...
md:  adding sdb2 ...
md: sdb1 has different UUID to sdb2
md:  adding sda2 ...
md: sda1 has different UUID to sdb2
md: hdg1 has different UUID to sdb2
md: hde1 has different UUID to sdb2
md: created md0
md: bind<sda2>
md: bind<sdb2>
md: running: <sdb2><sda2>
md: raid1 personality registered for level 1
raid1: raid set md0 active with 2 out of 2 mirrors
md: considering sdb1 ...
md:  adding sdb1 ...
md:  adding sda1 ...
md: hdg1 has different UUID to sdb1
md: hde1 has different UUID to sdb1
md: created md1
md: bind<sda1>
md: bind<sdb1>
md: running: <sdb1><sda1>
raid1: raid set md1 active with 2 out of 2 mirrors
md: considering hdg1 ...
md:  adding hdg1 ...
md:  adding hde1 ...
md: created md2
md: bind<hde1>
md: bind<hdg1>
md: running: <hdg1><hde1>
md: raid0 personality registered for level 0
md2: setting max_sectors to 128, segment boundary to 32767
raid0: looking at hdg1
raid0:   comparing hdg1(78148096) with hdg1(78148096)
raid0:   END
raid0:   ==> UNIQUE
raid0: 1 zones
raid0: looking at hde1
raid0:   comparing hde1(120060736) with hdg1(78148096)
raid0:   NOT EQUAL
raid0:   comparing hde1(120060736) with hde1(120060736)
raid0:   END
raid0:   ==> UNIQUE
raid0: 2 zones
raid0: FINAL 2 zones
raid0: zone 1
raid0: checking hdg1 ... nope.
raid0: checking hde1 ... contained as device 0
  (120060736) is smallest!.
raid0: zone->nb_dev: 1, size: 41912640
raid0: current zone offset: 120060736
raid0: done.
raid0 : md_size is 198208832 blocks.
raid0 : conf->hash_spacing is 156296192 blocks.
raid0 : nb_zone is 2.
raid0 : Allocating 8 bytes for hash.
md: ... autorun DONE.
mdadm: No arrays found in config file
device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com
Setting up Logical Volume Management:   No volume groups found
[  OK  ]
Checking filesystems
Checking all file systems.
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/hda3 
/: clean, 103139/9843904 files, 1009415/9835796 blocks
[/sbin/fsck.ext3 (1) -- /mirrored] fsck.ext3 -a /dev/md0 
/mirrored: clean, 330737/24838144 files, 40118547/49658896 blocks
[/sbin/fsck.ext3 (1) -- /data] fsck.ext3 -a /dev/md2 
/data: clean, 18062/24788992 files, 35908947/49552208 blocks
[/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 -a /dev/hda1 
/boot1: clean, 56/38152 files, 34077/152584 blocks
[  OK  ]
Remounting root filesystem in read-write mode:  EXT3 FS on hda3, internal journal
[  OK  ]
Mounting local filesystems:  kjournald starting.  Commit interval 5 seconds
EXT3 FS on hda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on md0, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on md2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
[  OK  ]
Enabling local filesystem quotas:  quotaon: Warning: No quota format detected in the kernel.
[  OK  ]
Enabling /etc/fstab swaps:  Adding 522104k swap on /dev/hda2.  Priority:-1 extents:1 across:522104k
Adding 505912k swap on /dev/md1.  Priority:10 extents:1 across:505912k
[  OK  ]
sh-3.1# mount -oro /dev/sdc3 /mnt
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
sh-3.1# cd /mnt
sh-3.1# ls
bin    dev   initrd          lib         mnt   root  sys  var
boot   etc   initrd.img      lost+found  opt   sbin  tmp  vmlinuz
cdrom  home  initrd.img.old  media       proc  srv   usr  vmlinuz.old
sh-3.1# find . > /dev/null
sh-3.1# dd if=/dev/sdc of=/dev/null bs=1024k count=10240
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB) copied, 175.858 seconds, 61.1 MB/s
sh-3.1# shutdown -h now
INIT: Switching to runlevel: 0
sh-3.1# INIT: Sending processes the TERM signal
INIT: 
Starting killall:  [  OK  ]
Sending all processes the TERM signal... 
Sending all processes the KILL signal... 
Saving random seed:  
Syncing hardware clock to system time 
Turning off swap:  
Turning off quotas:  quotaoff: Warning: No quota format detected in the kernel.

Unmounting file systems:  
Halting system...
md: stopping all md devices.
md: md2 switched to read-only mode.
md: md1 switched to read-only mode.
md: md0 switched to read-only mode.
sd 3:0:0:0: [sdc] Synchronizing SCSI cache
sd 3:0:0:0: [sdc] Stopping disk
sd 1:0:0:0: [sdb] Synchronizing SCSI cache
sd 1:0:0:0: [sdb] Stopping disk
sd 0:0:0:0: [sda] Synchronizing SCSI cache
sd 0:0:0:0: [sda] Stopping disk
Shutdown: hda
Shutdown: hdg
Shutdown: hde
ACPI: PCI interrupt for device 0000:00:0b.0 disabled
Power down.
acpi_power_off called

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2007-05-27  1:46 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-25 23:34 [PATCH, RFT, v2] sata_mv: convert to new EH Jeff Garzik
2007-03-02  0:54 ` Andre Tomt
2007-03-02  1:11   ` Jeff Garzik
2007-03-06  5:16 ` Dave Dillow
2007-03-06  5:26   ` Jeff Garzik
2007-03-06  6:01   ` Jeff Garzik
2007-03-06  6:53     ` dean gaudet
2007-03-06  6:57     ` Dave Dillow
2007-05-25 13:56       ` [PATCH, RFT, v3] " Jeff Garzik
2007-05-26  3:16         ` [PATCH, RFT, v4] " Jeff Garzik
2007-05-26  7:53           ` dean gaudet
2007-05-26 20:56             ` Jeff Garzik
2007-05-26 21:11               ` Dave Dillow
2007-05-26 21:38                 ` Jeff Garzik
2007-05-27  1:46                   ` Dave Dillow

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.