diff options
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.c | 13 |
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; } |