summaryrefslogtreecommitdiffstats
path: root/uClinux-2.4.20-uc1/drivers/scsi/scsi_dma.c
diff options
context:
space:
mode:
Diffstat (limited to 'uClinux-2.4.20-uc1/drivers/scsi/scsi_dma.c')
-rw-r--r--uClinux-2.4.20-uc1/drivers/scsi/scsi_dma.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/uClinux-2.4.20-uc1/drivers/scsi/scsi_dma.c b/uClinux-2.4.20-uc1/drivers/scsi/scsi_dma.c
index 92c5d4f..201a7c4 100644
--- a/uClinux-2.4.20-uc1/drivers/scsi/scsi_dma.c
+++ b/uClinux-2.4.20-uc1/drivers/scsi/scsi_dma.c
@@ -146,6 +146,9 @@ int scsi_free(void *obj, unsigned int len)
SCSI_LOG_MLQUEUE(3, printk("SFree: %p %d\n", obj, len));
#endif
+#ifdef CONFIG_BOARD_W90N745
+ obj = (void *)((unsigned long)obj & 0x7fffffff);
+#endif
spin_lock_irqsave(&allocator_request_lock, flags);
for (page = 0; page < dma_sectors / SECTORS_PER_PAGE; page++) {
@@ -430,8 +433,13 @@ void scsi_resize_dma_pool(void)
if ((!out_of_space) && (new_dma_sectors > dma_sectors)) {
for (i = dma_sectors / SECTORS_PER_PAGE;
i < new_dma_sectors / SECTORS_PER_PAGE; i++) {
+#ifndef CONFIG_BOARD_W90N745
new_dma_malloc_pages[i] = (unsigned char *)
__get_free_pages(GFP_ATOMIC | GFP_DMA, 0);
+#else
+ new_dma_malloc_pages[i] = (unsigned char *)
+ __get_free_pages(GFP_ATOMIC, 0);
+#endif
if (!new_dma_malloc_pages[i])
break;
}
@@ -530,8 +538,13 @@ int scsi_init_minimal_dma_pool(void)
GFP_ATOMIC);
if (dma_malloc_pages) {
memset(dma_malloc_pages, 0, size);
+#ifndef CONFIG_BOARD_W90N745
dma_malloc_pages[0] = (unsigned char *)
__get_free_pages(GFP_ATOMIC | GFP_DMA, 0);
+#else
+ dma_malloc_pages[0] = (unsigned char *)
+ __get_free_pages(GFP_ATOMIC, 0);
+#endif
if (dma_malloc_pages[0])
has_space = 1;
}