Thread (9 messages) 9 messages, 4 authors, 2008-07-04

Re: [PATCH]: [MPC5200] (v2) Add ATA DMA support

From: Tim Yamin <hidden>
Date: 2008-07-03 15:35:30

On Wed, Jul 2, 2008 at 6:30 PM, Grant Likely [off-list ref] wrote:
I know that only ATA uses this; but it is nice to have fixes to things
that are obviously wrong in existing code to be split into their own
patches.  That way, even if the ATA patch gets backed out, the bug fix
will remain.
Ok, so I've split the patch up into two pieces now...
quoted
+static void
+mpc52xx_bmdma_start(struct ata_queued_cmd *qc)
+{
+     struct ata_port *ap = qc->ap;
+     struct mpc52xx_ata_priv *priv = ap->host->private_data;
+
+     /* LocalBus lock */
+     while (test_and_set_bit(0, &pata_mpc52xx_ata_dma_lock) != 0)
+             ;
Need to be able to bail on timeout.
A deadlock can't occur within the PATA driver because you won't have
two DMA requests happening at once, so there is no point in adding a
timeout. And even if you do have a timeout, you'd have to drop the I/O
request somehow, so it's not really a good idea. If anything else
needs to touch the DMA lock, it should do so in a sensible fashion...

Thanks,

Tim

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help