linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH #upstream-fixes 1/2] libata: align ap->sector_buf
@ 2009-03-02  9:53 Tejun Heo
  2009-03-02  9:55 ` [PATCH #upstream-fixes 2/2] libata: don't use on-stack sense buffer Tejun Heo
  0 siblings, 1 reply; 2+ messages in thread
From: Tejun Heo @ 2009-03-02  9:53 UTC (permalink / raw)
  To: Jeff Garzik, IDE/ATA development list, Chuck Ebbert,
	Robert Hancock, FUJITA Tomonori <fujita.tom>

ap->sector_buf is used as DMA target and should at least be aligned on
cacheline.  This caused problems on some embedded machines.

Signed-off-by: Tejun Heo <tj@kernel.org>
---
 include/linux/libata.h |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/linux/libata.h b/include/linux/libata.h
index c82695d..4234973 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -750,7 +750,8 @@ struct ata_port {
 	acpi_handle		acpi_handle;
 	struct ata_acpi_gtm	__acpi_init_gtm; /* use ata_acpi_init_gtm() */
 #endif
-	u8			sector_buf[ATA_SECT_SIZE]; /* owned by EH */
+	/* owned by EH */
+	u8			sector_buf[ATA_SECT_SIZE] ____cacheline_aligned;
 };
 
 /* The following initializer overrides a method to NULL whether one of

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

* [PATCH #upstream-fixes 2/2] libata: don't use on-stack sense buffer
  2009-03-02  9:53 [PATCH #upstream-fixes 1/2] libata: align ap->sector_buf Tejun Heo
@ 2009-03-02  9:55 ` Tejun Heo
  0 siblings, 0 replies; 2+ messages in thread
From: Tejun Heo @ 2009-03-02  9:55 UTC (permalink / raw)
  To: Jeff Garzik, IDE/ATA development list, Chuck Ebbert,
	Robert Hancock, FUJITA Tomonori <fujita.tom>

sense_buffer is used as DMA target and shouldn't be allocated on
stack.  Use ap->sector_buf instead.  This problem is spotted by Chuck
Ebbert.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Chuck Ebbert <cebbert@redhat.com>
---
 drivers/ata/libata-eh.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index ce2ef04..009ccc7 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -2901,7 +2901,7 @@ static int atapi_eh_clear_ua(struct ata_device *dev)
 	int i;
 
 	for (i = 0; i < ATA_EH_UA_TRIES; i++) {
-		u8 sense_buffer[SCSI_SENSE_BUFFERSIZE];
+		u8 *sense_buffer = dev->link->ap->sector_buf;
 		u8 sense_key = 0;
 		unsigned int err_mask;
 

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

end of thread, other threads:[~2009-03-02  9:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-02  9:53 [PATCH #upstream-fixes 1/2] libata: align ap->sector_buf Tejun Heo
2009-03-02  9:55 ` [PATCH #upstream-fixes 2/2] libata: don't use on-stack sense buffer Tejun Heo

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