linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH libata-dev-2.6 00/05] libata: scsi error handling improvements
@ 2005-03-17 22:20 Brett Russ
  2005-03-17 22:20 ` [PATCH libata-dev-2.6 01/05] libata: AHCI tf_read() support Brett Russ
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Brett Russ @ 2005-03-17 22:20 UTC (permalink / raw)
  To: linux-ide, linux-kernel; +Cc: jgarzik

This patch series attempts to clean up the SCSI error handling a bit.
See comments in below TOC or patch emails.  All of the below have been
tested in success and error paths through the VERIFY_10 and ATA_16
commands using the AHCI driver.

IMPORTANT: the patchset below against libata-dev-2.6 relies on the
recent AHCI driver fixes recently patched into libata-2.6.  I am
including the two specific patches as 1 and 2 of this series for
completeness, although of course they should be merged from libata-2.6
instead.  Therefore, you may ignore these two unless you want to test
this series now on libata-dev.

[ Start of patch descriptions ]

01_libata_garzik-ahci-tf-read.patch
	: AHCI tf_read() support

	(included in libata-2.6) This is Jeff's tf_read() support
	patch for AHCI.

	Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

02_libata_ahci-err-int.patch
	: AHCI error handling fix

	(included in libata-2.6) Fixes AHCI bits during handling of
	fatal error int.

03_libata_update_desc_code.patch
	: update ATA PT sense desc code

	Change the ATA pass through sense block descriptor code to
	0x09 per SAT

04_libata_control_pg_desc_bit.patch
	: support descriptor sense in ctrl page

	libata must support the descriptor format sense blocks as they
	are required to properly report results of ATA pass through
	commands as well as other SCSI commands reporting 48b LBAs.
	This patch adjusts the control mode page to properly report
	this.

05_libata_split_ata_to_sense_error.patch
	: rework how CCs generated

	This patch fixes several bugs as well as reorganizes the way
	check conditions are generated.  Bugs fixed: 1) in
	ata_scsi_qc_complete(), ATA_12/16 commands wouldn't call
	ata_pass_thru_cc() on error status; 2) ata_pass_thru_cc()
	wouldn't put the SK, ASC, and ASCQ from ata_to_sense_error()
	in the correct place in the sense block because
	ata_to_sense_error() was writing a fixed sense block.

	Per the recommendations in the comments, ata_to_sense_error()
	is now split into 3 parts.  The existing fcn is only used for
	outputting a sense key/ASC/ASCQ triplicate.  A new function
	ata_dump_status() was created to print the error info, similar
	to the ide variety.  A third function ata_gen_fixed_sense()
	was created to generate a fixed length sense block.  I added
	the use of the info field for 28b LBAs only.
	ata_pass_thru_cc() renamed to ata_gen_ata_desc_sense() to
	match naming convention, presumably to include another
	descriptor format function in the future (see question 2
	below).

	Questions:

	1) I made the ata_gen_..._sense() routines read the status
           register themselves rather than use the drv_stat values
           that used to be passed in?  These values seemed
           unreliable/useless since they were often hard coded (see
           calls to ata_qc_complete() for origins of most drv_stat
           variables).  Sound ok?

	2) the SAT spec has little about error handling and sense
           information, sepcifically what descriptor format is valid
           for use by SAT commands.  I want to use descriptor type 00
           (information) in my next patch until a spec says
           differently.  Sound ok?

[ End of patch descriptions ]

BR


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2005-03-25  4:28 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-17 22:20 [PATCH libata-dev-2.6 00/05] libata: scsi error handling improvements Brett Russ
2005-03-17 22:20 ` [PATCH libata-dev-2.6 01/05] libata: AHCI tf_read() support Brett Russ
2005-03-17 22:20 ` [PATCH libata-dev-2.6 02/05] libata: AHCI error handling fix Brett Russ
2005-03-17 22:20 ` [PATCH libata-dev-2.6 03/05] libata: update ATA PT sense desc code Brett Russ
2005-03-23  5:10   ` Jeff Garzik
2005-03-17 22:20 ` [PATCH libata-dev-2.6 04/05] libata: support descriptor sense in ctrl page Brett Russ
2005-03-23  4:24   ` Jeff Garzik
2005-03-17 22:20 ` [PATCH libata-dev-2.6 05/05] libata: rework how CCs generated Brett Russ
2005-03-23  5:12   ` Jeff Garzik
2005-03-23 20:36     ` [PATCH libata-dev-2.6 00/03] libata: scsi error handling improvements Brett Russ
2005-03-23 20:39       ` [PATCH libata-dev-2.6 01/03] libata: whitespace updates Brett Russ
2005-03-25  4:28         ` Jeff Garzik
2005-03-23 20:42       ` [PATCH libata-dev-2.6 02/03] libata: create/use ata_dump_status() Brett Russ
2005-03-23 20:45       ` [PATCH libata-dev-2.6 03/03] libata: rework check condition handling Brett Russ

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).