login
Login
/
Register
Search
Forums
News
Blogs
Features
Site
Home
»
Mailing list archives
»
linux-kernel
»
2007
»
September
»
29
Re: [PATCH] libata drain fifo on stuck DRQ HSM violation (try#2)
view
thread
!MAILaRCHIVE_VOTE_RePLACE
Previous message: [
thread
] [
date
] [
author
]
Next message: [thread] [
date
] [
author
]
[view in full thread]
From:
Jeff Garzik <jgarzik@...>
To: Mark Lord <liml@...>
Cc: Tejun Heo <htejun@...>, Alan Cox <alan@...>, Andrew Morton <akpm@...>, <michal.k.k.piotrowski@...>, <bryan@...>, <linux-kernel@...>, <linux-ide@...>
Subject:
Re: [PATCH] libata drain fifo on stuck DRQ HSM violation (try#2)
Date: Saturday, September 29, 2007 - 2:24 am
Mark Lord wrote:
quoted text
> I think this original patch still applies cleanly on at least 2.6.23-rc7. > > Drain up to 512 words from host/bridge FIFO on stuck DRQ HSM violation, > rather than just getting stuck there forever. > > Signed-off-by: Mark Lord <mlord@pobox.com> > --- > > --- old/drivers/ata/libata-sff.c 2007-09-28 09:29:22.000000000 -0400 > +++ linux/drivers/ata/libata-sff.c 2007-09-28 09:39:44.000000000 -0400 > @@ -420,6 +420,28 @@ > ap->ops->irq_on(ap); > } > > +static void ata_drain_fifo(struct ata_port *ap, struct ata_queued_cmd *qc) > +{ > + u8 stat = ata_chk_status(ap); > + /* > + * Try to clear stuck DRQ if necessary, > + * by reading/discarding up to two sectors worth of data. > + */ > + if ((stat & ATA_DRQ) && (!qc || qc->dma_dir != DMA_TO_DEVICE)) { > + unsigned int i; > + unsigned int limit = qc ? qc->sect_size : ATA_SECT_SIZE; > + > + printk(KERN_WARNING "Draining up to %u words from data FIFO.\n", > + limit); > + for (i = 0; i < limit ; ++i) { > + ioread16(ap->ioaddr.data_addr); > + if (!(ata_chk_status(ap) & ATA_DRQ)) > + break; > + } > + printk(KERN_WARNING "Drained %u/%u words.\n", i, limit); > + } > +} > + > /** > * ata_bmdma_drive_eh - Perform EH with given methods for BMDMA > controller > * @ap: port to handle error for > @@ -476,7 +498,7 @@ > } > > ata_altstatus(ap); > - ata_chk_status(ap); > + ata_drain_fifo(ap, qc); > ap->ops->irq_clear(ap); > > spin_unlock_irqrestore(ap->lock, flags);
applied, after hand-editing out the top of the message, so that it would not be copied into the kernel changelog -
unsubscribe notice
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/
Previous message: [
thread
] [
date
] [
author
]
Next message: [thread] [
date
] [
author
]
Messages in current thread:
Stardom SATA HSM violation
, Bryan Woods
, (Fri Aug 24, 11:22 pm)
Re: Stardom SATA HSM violation
, Michal Piotrowski
, (Sun Aug 26, 7:10 pm)
Re: Stardom SATA HSM violation
, Tejun Heo
, (Mon Sep 3, 4:53 am)
Re: Stardom SATA HSM violation
, Bryan Woods
, (Thu Sep 6, 11:00 am)
Re: Stardom SATA HSM violation
, Tejun Heo
, (Thu Sep 6, 8:58 pm)
Re: Stardom SATA HSM violation
, Andrew Morton
, (Wed Sep 5, 12:53 pm)
Re: Stardom SATA HSM violation
, Mark Lord
, (Wed Sep 5, 1:23 pm)
Re: Stardom SATA HSM violation
, Tejun Heo
, (Thu Sep 6, 8:58 pm)
Re: Stardom SATA HSM violation
, Mark Lord
, (Fri Sep 7, 9:40 am)
Re: Stardom SATA HSM violation
, Tejun Heo
, (Thu Sep 27, 3:05 am)
Re: Stardom SATA HSM violation
, Alan Cox
, (Thu Sep 27, 2:37 pm)
Re: Stardom SATA HSM violation
, Tejun Heo
, (Thu Sep 27, 7:32 pm)
Re: Stardom SATA HSM violation
, Mark Lord
, (Thu Sep 27, 11:52 pm)
Re: Stardom SATA HSM violation
, Jeff Garzik
, (Thu Sep 27, 7:42 pm)
Re: Stardom SATA HSM violation
, Tejun Heo
, (Thu Sep 27, 7:52 pm)
[PATCH] libata drain fifo on stuck DRQ HSM violation
, Mark Lord
, (Thu Sep 27, 11:56 pm)
Re: [PATCH] libata drain fifo on stuck DRQ HSM violation
, Alan Cox
, (Fri Sep 28, 6:27 am)
Re: [PATCH] libata drain fifo on stuck DRQ HSM violation
, Jeff Garzik
, (Fri Sep 28, 9:05 pm)
Re: [PATCH] libata drain fifo on stuck DRQ HSM violation
, Alan Cox
, (Sat Sep 29, 2:28 am)
Re: [PATCH] libata drain fifo on stuck DRQ HSM violation
, Mark Lord
, (Sat Sep 29, 8:34 am)
[PATCH] libata drain fifo on stuck DRQ HSM violation (try#2)
, Mark Lord
, (Fri Sep 28, 9:41 am)
Re: [PATCH] libata drain fifo on stuck DRQ HSM violation (tr...
, Jeff Garzik
, (Sat Sep 29, 2:24 am)
Re: [PATCH] libata drain fifo on stuck DRQ HSM violation
, Tejun Heo
, (Fri Sep 28, 5:48 am)
Re: [PATCH] libata drain fifo on stuck DRQ HSM violation
, Andrew Morton
, (Fri Sep 28, 5:56 am)
Re: [PATCH] libata drain fifo on stuck DRQ HSM violation
, Tejun Heo
, (Fri Sep 28, 6:01 am)
Re: Stardom SATA HSM violation
, Andrew Morton
, (Wed Sep 5, 3:38 pm)
Re: Stardom SATA HSM violation
, Mark Lord
, (Wed Sep 5, 7:03 pm)
Navigation
Create content
Mailing list archives
Recent posts
Popular discussions
linux-kernel
:
Greg Kroah-Hartman
[PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO
Tarkan Erimer
Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3
James Bottomley
Re: Integration of SCST in the mainstream Linux kernel
Robin Lee Powell
NFS hang + umount -f: better behaviour requested.
git
:
linux-netdev
:
David Miller
[GIT]: Networking
Jarek Poplawski
[PATCH] pkt_sched: Destroy gen estimators under rtnl_lock().
Natalie Protasevich
[BUG] New Kernel Bugs
Gerrit Renker
[PATCH 18/37] dccp: Support for Mandatory options
openbsd-misc
:
Colocation donated by:
Who's online
There are currently
3 users
and
798 guests
online.
Online users
vv_ivango
muebcass908
olecom
Syndicate