From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sander Subject: Re: sata_Re: sata_mv success on 2.6.16-rc6-mm2 Date: Tue, 21 Mar 2006 11:26:03 +0100 Message-ID: <20060321102603.GA10403@favonius> References: <200603191613.37386.lkml@rtr.ca> Reply-To: sander@humilis.net Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from ookhoi.xs4all.nl ([213.84.114.66]:11159 "EHLO favonius.humilis.net") by vger.kernel.org with ESMTP id S932395AbWCUK0G (ORCPT ); Tue, 21 Mar 2006 05:26:06 -0500 Content-Disposition: inline In-Reply-To: <200603191613.37386.lkml@rtr.ca> Sender: linux-ide-owner@vger.kernel.org List-Id: linux-ide@vger.kernel.org To: Mark Lord Cc: Andrew Morton , sander@humilis.net, linux-ide@vger.kernel.org, jgarzik@pobox.com Mark Lord wrote (ao): > Andrew Morton wrote: > > Sander wrote: > .. > >> [ 86.569852] ata5: dev 0 cfg 49:2f00 82:7c6b 83:7f09 84:4063 85:7c69 > 86:3e01 87:4063 88:007f > >> [ 86.569856] ata5: dev 0 ATA-7, max UDMA/133, 586114704 sectors: LBA48 > >> [ 86.570840] BUG: warning at > drivers/scsi/libata-core.c:3884/__ata_qc_complete() > >> [ 86.570902] > >> [ 86.570903] Call Trace: {__ata_qc_complete+98} > >> [ 86.571046] {mv_interrupt+626} > {handle_IRQ_event+41} > >> [ 86.571208] {__do_IRQ+155} > {do_IRQ+59} > >> [ 86.571365] {ret_from_intr+0} > {__reacquire_kernel_lock+39} > >> [ 86.571552] {thread_return+166} > {schedule_timeout+138} > >> [ 86.571713] {process_timeout+0} > {wait_for_completion_timeout+137} > >> [ 86.571878] {default_wake_function+0} > {ata_exec_command+36} > >> [ 86.572042] {ata_exec_internal+266} > {ata_set_mode+667} > >> [ 86.575479] {request_irq+130} > {ata_device_add+1163} > >> [ 86.575639] {mv_init_one+1547} > {pci_device_probe+221} > >> [ 86.575799] {driver_probe_device+82} > {__driver_attach+0} > >> [ 86.575959] {__driver_attach+86} > {bus_for_each_dev+67} > >> [ 86.576121] {bus_add_driver+116} > {pci_bus_match+0} > >> [ 86.576279] {__pci_register_driver+85} > {init+455} > >> [ 86.576438] {child_rip+8} > {init+0} > >> [ 86.576582] {child_rip+0} > > > > This is: > > > > void __ata_qc_complete(struct ata_queued_cmd *qc) > > { > > WARN_ON(qc == NULL); /* ata_qc_from_tag _might_ return NULL */ > > WARN_ON(!(qc->flags & ATA_QCFLAG_ACTIVE)); > > > > complaining that ATA_QCFLAG_ACTIVE is not set. > > I am also working on stability for sata_mv now, and here is a patch > that *may* fix the above error. I'm sorry to say it doesn't fix the above output. Because it is line-wrapped, I'll paste again for your convenience: [ 83.489431] BUG: warning at drivers/scsi/sata_mv.c:1896/__msleep() [ 83.489478] [ 83.489479] Call Trace: {__mv_phy_reset+242} [ 83.489624] {mv_channel_reset+133} {mv_interrupt+556} [ 83.489786] {handle_IRQ_event+41} {__do_IRQ+155} [ 83.489947] {do_IRQ+59} {default_idle+0} [ 83.490108] {ret_from_intr+0} {thread_return+0} [ 83.490290] {default_idle+45} {cpu_idle+98} [ 83.490446] {start_secondary+1224} [ 87.443699] ata5: dev 0 cfg 49:2f00 82:7c6b 83:7f09 84:4063 85:7c69 86:3e01 87:4063 88:007f [ 87.443703] ata5: dev 0 ATA-7, max UDMA/133, 586114704 sectors: LBA48 [ 87.444684] BUG: warning at drivers/scsi/libata-core.c:3884/__ata_qc_complete() [ 87.444748] [ 87.444748] Call Trace: {__ata_qc_complete+98} [ 87.444894] {mv_interrupt+617} {handle_IRQ_event+41} [ 87.445054] {__do_IRQ+155} {do_IRQ+59} [ 87.445209] {ret_from_intr+0} {__reacquire_kernel_lock+41} [ 87.445394] {thread_return+166} {schedule_timeout+138} [ 87.445552] {process_timeout+0} {wait_for_completion_timeout+137} [ 87.445712] {default_wake_function+0} {ata_exec_command+36} [ 87.449155] {ata_exec_internal+266} {ata_set_mode+667} [ 87.449316] {request_irq+130} {ata_device_add+1163} [ 87.449475] {mv_init_one+1575} {pci_device_probe+221} [ 87.449639] {driver_probe_device+82} {__driver_attach+0} [ 87.449800] {__driver_attach+86} {bus_for_each_dev+67} [ 87.449960] {bus_add_driver+116} {pci_bus_match+0} [ 87.450121] {__pci_register_driver+85} {init+455} [ 87.450279] {child_rip+8} {init+0} [ 87.450423] {child_rip+0} [ 87.473659] ata5: dev 0 configured for UDMA/133 [ 87.473703] scsi4 : sata_mv It happens for every port and only during boot. It doesn't seem to have any negative effect on the server. No crashes, no corruption. Btw, sata_mv seems to work with CONFIG_PCI_MSI=y these days. ISTR that caused problems in the past. > Signed-Off-By Mark Lord > > --- sata_mv.c.alignment 2006-03-19 15:14:29.000000000 -0500 > +++ sata_mv.c 2006-03-19 15:12:49.000000000 -0500 > @@ -1180,7 +1180,6 @@ > u32 hc_irq_cause; > int shift, port, port0, hard_port, handled; > unsigned int err_mask; > - u8 ata_status = 0; > > if (hc == 0) { > port0 = 0; > @@ -1198,6 +1197,7 @@ > hc,relevant,hc_irq_cause); > > for (port = port0; port < port0 + MV_PORTS_PER_HC; port++) { > + u8 ata_status = 0; > ap = host_set->ports[port]; > hard_port = port & MV_PORT_MASK; /* range 0-3 */ > handled = 0; /* ensure ata_status is set if handled++ */ -- Humilis IT Services and Solutions http://www.humilis.net