]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
scsi: Cache align temporary buffer
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Mon, 7 Aug 2023 00:26:12 +0000 (02:26 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 17 Aug 2023 20:39:20 +0000 (16:39 -0400)
The temporary buffer may be passed to DMA capable device,
make sure it is cache aligned.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
drivers/scsi/scsi.c

index 6caeb3fcdd0db69d6a85b20694da21729db99fae..77c75240d5a15fd5b9c28cef1991e96d54508715 100644 (file)
@@ -14,6 +14,7 @@
 #include <env.h>
 #include <libata.h>
 #include <log.h>
+#include <memalign.h>
 #include <part.h>
 #include <pci.h>
 #include <scsi.h>
@@ -42,7 +43,7 @@ const struct pci_device_id scsi_device_list[] = { SCSI_DEV_LIST };
 #endif
 static struct scsi_cmd tempccb;        /* temporary scsi command buffer */
 
-static unsigned char tempbuff[512]; /* temporary data buffer */
+DEFINE_CACHE_ALIGN_BUFFER(u8, tempbuff, 512);  /* temporary data buffer */
 
 #if !defined(CONFIG_DM_SCSI)
 static int scsi_max_devs; /* number of highest available scsi device */
@@ -490,7 +491,7 @@ static int scsi_detect_dev(struct udevice *dev, int target, int lun,
 
        pccb->target = target;
        pccb->lun = lun;
-       pccb->pdata = (unsigned char *)&tempbuff;
+       pccb->pdata = tempbuff;
        pccb->datalen = 512;
        pccb->dma_dir = DMA_FROM_DEVICE;
        scsi_setup_inquiry(pccb);