lkml.org 
[lkml]   [2005]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] SATA NCQ support
On Fri, May 27 2005, Jeff Garzik wrote:
> Jens Axboe wrote:
> >That is the typical case, ata_qc_new() succeeds but we cannot issue the
> >command yet. So where do you want this logic placed? You cannot drop the
> >host_lock in-between, as that could potentially change the situation.
>
> ata_scsi_translate() in libata-scsi.c, in between the call to
> ata_scsi_qc_new() and ata_qc_issue().
>
> something like:
>
> if (ata_scsi_qc_new() fails ||
> (depth > 0 && ata_check_non_ncq_cmd()))
> complete SCSI command with 'queue full'

That is an improvement for SCSI originated commands, I can drop
ATA_QCFLAG_DEFER then. Will make that change. But what about
ata_qc_issue() from other places? That is the ugly code, which will hit
the waiting currently.

> NOTE!
>
> I just noticed a bug -- When ata_scsi_qc_new() fails, the code should
> complete the command with queue-full, but does not.
>
> qc = ata_scsi_qc_new(ap, dev, cmd, done);
> if (!qc)
> return;

Indeed, looks like an old bug.

--
Jens Axboe

-
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/

\
 
 \ /
  Last update: 2005-05-27 09:57    [W:0.082 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site