From: Jeff Garzik <jgarzik@pobox.com>
To: Mikael Pettersson <mikpe@it.uu.se>
Cc: linux-ide@vger.kernel.org
Subject: Re: sata_promise.c:pdc_irq_clear() buglet?
Date: Sun, 11 May 2008 17:31:12 -0400 [thread overview]
Message-ID: <482765A0.8020002@pobox.com> (raw)
In-Reply-To: <18471.25405.877617.621279@harpo.it.uu.se>
Mikael Pettersson wrote:
> Jeff,
>
> In the 2.6.8 kernel you added sata_promise.c:pdc_irq_clear()
> which looks as follows:
>
>> static void pdc_irq_clear(struct ata_port *ap)
>> {
>> struct ata_host *host = ap->host;
>> void __iomem *mmio = host->iomap[PDC_MMIO_BAR];
>>
>> readl(mmio + PDC_INT_SEQMASK);
>> }
>
> I have two issues with this code:
> 1. It reads from the SEQMASK register, which is global for
> all ports. Hence, calling pdc_irq_clear() on one port
> potentially affects all ports.
> 2. Promise's drivers (both 1st and 2nd generation chip drivers)
> instead read the port's ATA Command/Status register when
> they want to clear any pending IRQs.
>
> Did you write the code this way on purpose, or did you just
> accidentally use the wrong mechanism?
>
> If you have no objections, I intend to change this to read
> Command/Status instead.
For sata_promise, at the time it was written, irq_clear was largely a
sledgehammer for SFF situations that didn't automatically resolve
themselves through normal operation. Given the amount of SFF code that
is _not_ enabled when using sata_promise is in use, ->irq_clear() is
largely a relic for PIO data xfer situations.
Feel free to replace if you think is appropriate...
Jeff
next prev parent reply other threads:[~2008-05-11 21:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-11 21:21 sata_promise.c:pdc_irq_clear() buglet? Mikael Pettersson
2008-05-11 21:31 ` Jeff Garzik [this message]
2008-05-11 23:24 ` Mikael Pettersson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=482765A0.8020002@pobox.com \
--to=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
--cc=mikpe@it.uu.se \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.