Skip to content

Commit

Permalink
sata_nv: revert use of notifiers for now
Browse files Browse the repository at this point in the history
Commit 721449b added support for using the
ADMA notifier bits to determine which commands to check for completion.
However there have been reports that this causes command timeouts in certain
cases. This is still being investigated. In addition, apparently the notifiers
won't work if ADMA is disabled on the other port as a result of an ATAPI device
being connected, and we don't handle this case properly.

For now, just restore the previous behavior of checking all active commands
to see if they are complete, without relying on the notifiers.

Signed-off-by: Robert Hancock <hancockr@shaw.ca>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
  • Loading branch information
Robert Hancock authored and Jeff Garzik committed Mar 9, 2007
1 parent 14d66ab commit 8ba5e4c
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion drivers/ata/sata_nv.c
Original file line number Diff line number Diff line change
Expand Up @@ -874,8 +874,14 @@ static irqreturn_t nv_adma_interrupt(int irq, void *dev_instance)

if (status & (NV_ADMA_STAT_DONE |
NV_ADMA_STAT_CPBERR)) {
u32 check_commands = notifier | notifier_error;
u32 check_commands;
int pos, error = 0;

if(ata_tag_valid(ap->active_tag))
check_commands = 1 << ap->active_tag;
else
check_commands = ap->sactive;

/** Check CPBs for completed commands */
while ((pos = ffs(check_commands)) && !error) {
pos--;
Expand Down

0 comments on commit 8ba5e4c

Please sign in to comment.