>> guess that sata_nv is not properly handling non-queued commands.
>
> But that still seems correct, as I would not expect that SMART
> commands get queued. (Thats just a guess, as I did not try to find the
> code that does this distinction)
>
>> This is a patch from libata-dev.git#nv-swncq (via #ALL).
>
> Comparing sata_nv.c from 2.6.23-rc8-mm1 and 2.6.23-mm1 I see two
> changes, that look suspicious:
>
>
http://git.kernel.org/?p=linux/kernel/git/jgarzik/libata-dev.git;a=commitdiff;h=31cc23...
>
> The comment says: "ahci and sata_sil24 are converted to use ata_std_qc_defer()."
> But the patch also adds ".qc_defer = ata_std_qc_defer," to sata_nv.c
>
> The second change is the removal of the 'lock' spinlock from sata_nv.c
> that was used in nv_swncq_qc_issue and nv_swncq_host_interrupt.
>
> Should I try to revert one or both of these changes?