linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2/3] libata: Initialize nbytes for internal sg commands
       [not found] <11690587311891-patch-mail.ibm.com>
@ 2007-01-17 18:32 ` Brian King
  2007-01-18  1:35   ` Tejun Heo
  2007-01-17 18:32 ` [PATCH 3/3] libata: Initialize qc->pad_len Brian King
  1 sibling, 1 reply; 5+ messages in thread
From: Brian King @ 2007-01-17 18:32 UTC (permalink / raw)
  To: jgarzik; +Cc: linux-ide, htejun, brking


Some LLDDs, like ipr, use nbytes and pad_len to determine
the total data transfer length of a command. Make sure
nbytes gets initialized for internally generated commands.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
---

 linux-2.6-bjking1/drivers/ata/libata-core.c |    1 +
 1 files changed, 1 insertion(+)

diff -puN drivers/ata/libata-core.c~libata_fix_nbytes drivers/ata/libata-core.c
--- linux-2.6/drivers/ata/libata-core.c~libata_fix_nbytes	2007-01-17 11:15:17.000000000 -0600
+++ linux-2.6-bjking1/drivers/ata/libata-core.c	2007-01-17 11:15:17.000000000 -0600
@@ -1250,6 +1250,7 @@ unsigned ata_exec_internal_sg(struct ata
 
 		ata_sg_init(qc, sg, n_elem);
 		qc->nsect = buflen / ATA_SECT_SIZE;
+		qc->nbytes = buflen;
 	}
 
 	qc->private_data = &wait;
_

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

* [PATCH 3/3] libata: Initialize qc->pad_len
       [not found] <11690587311891-patch-mail.ibm.com>
  2007-01-17 18:32 ` [PATCH 2/3] libata: Initialize nbytes for internal sg commands Brian King
@ 2007-01-17 18:32 ` Brian King
  1 sibling, 0 replies; 5+ messages in thread
From: Brian King @ 2007-01-17 18:32 UTC (permalink / raw)
  To: jgarzik; +Cc: linux-ide, htejun, brking


Initialize qc->pad_len for each new command. This ensures
that pad_len is not set to a stale value for zero data
length commands.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
---

 linux-2.6-bjking1/include/linux/libata.h |    1 +
 1 files changed, 1 insertion(+)

diff -puN include/linux/libata.h~libata_init_pad_len include/linux/libata.h
--- linux-2.6/include/linux/libata.h~libata_init_pad_len	2007-01-17 11:15:30.000000000 -0600
+++ linux-2.6-bjking1/include/linux/libata.h	2007-01-17 11:15:30.000000000 -0600
@@ -1151,6 +1151,7 @@ static inline void ata_qc_reinit(struct 
 	qc->nbytes = qc->curbytes = 0;
 	qc->n_elem = 0;
 	qc->err_mask = 0;
+	qc->pad_len = 0;
 
 	ata_tf_init(qc->dev, &qc->tf);
 
_

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

* Re: [PATCH 2/3] libata: Initialize nbytes for internal sg commands
  2007-01-17 18:32 ` [PATCH 2/3] libata: Initialize nbytes for internal sg commands Brian King
@ 2007-01-18  1:35   ` Tejun Heo
  2007-01-18 19:58     ` Brian King
  0 siblings, 1 reply; 5+ messages in thread
From: Tejun Heo @ 2007-01-18  1:35 UTC (permalink / raw)
  To: Brian King; +Cc: jgarzik, linux-ide

Brian King wrote:
> Some LLDDs, like ipr, use nbytes and pad_len to determine
> the total data transfer length of a command. Make sure
> nbytes gets initialized for internally generated commands.

I think it's better to apply the following patch instead of this one.

http://article.gmane.org/gmane.linux.ide/14792

-- 
tejun

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

* Re: [PATCH 2/3] libata: Initialize nbytes for internal sg commands
  2007-01-18  1:35   ` Tejun Heo
@ 2007-01-18 19:58     ` Brian King
  2007-01-22 21:00       ` Brian King
  0 siblings, 1 reply; 5+ messages in thread
From: Brian King @ 2007-01-18 19:58 UTC (permalink / raw)
  To: Tejun Heo; +Cc: jgarzik, linux-ide

Tejun Heo wrote:
> Brian King wrote:
>> Some LLDDs, like ipr, use nbytes and pad_len to determine
>> the total data transfer length of a command. Make sure
>> nbytes gets initialized for internally generated commands.
> 
> I think it's better to apply the following patch instead of this one.
> 
> http://article.gmane.org/gmane.linux.ide/14792

Works for me. I loaded that patch in place of this one and verified
it solved my problem as well. I still need the other two patches in
this series, however.

Thanks,

Brian

-- 
Brian King
eServer Storage I/O
IBM Linux Technology Center

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

* Re: [PATCH 2/3] libata: Initialize nbytes for internal sg commands
  2007-01-18 19:58     ` Brian King
@ 2007-01-22 21:00       ` Brian King
  0 siblings, 0 replies; 5+ messages in thread
From: Brian King @ 2007-01-22 21:00 UTC (permalink / raw)
  To: brking; +Cc: Tejun Heo, jgarzik, linux-ide

Brian King wrote:
> Tejun Heo wrote:
>> Brian King wrote:
>>> Some LLDDs, like ipr, use nbytes and pad_len to determine
>>> the total data transfer length of a command. Make sure
>>> nbytes gets initialized for internally generated commands.
>> I think it's better to apply the following patch instead of this one.
>>
>> http://article.gmane.org/gmane.linux.ide/14792
> 
> Works for me. I loaded that patch in place of this one and verified
> it solved my problem as well. I still need the other two patches in
> this series, however.

Jeff,

Do you plan to pull this patch series into upstream-fixes? Without these
three patches (or 1 & 3 plus Tejun's patch referenced above), ipr SATA
is broken in 2.6.20.

Thanks,

Brian

-- 
Brian King
eServer Storage I/O
IBM Linux Technology Center

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

end of thread, other threads:[~2007-01-22 21:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <11690587311891-patch-mail.ibm.com>
2007-01-17 18:32 ` [PATCH 2/3] libata: Initialize nbytes for internal sg commands Brian King
2007-01-18  1:35   ` Tejun Heo
2007-01-18 19:58     ` Brian King
2007-01-22 21:00       ` Brian King
2007-01-17 18:32 ` [PATCH 3/3] libata: Initialize qc->pad_len Brian King

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).