Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tile PCI DMA: fix bug in non-page-aligned accessors

The code incorrectly masked with PAGE_OFFSET instead of
PAGE_SIZE-1. This only matters when trying to do a
non page-aligned DMA; it was noticed during code inspection.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>

+2 -2
+2 -2
arch/tile/kernel/pci-dma.c
··· 257 257 BUG_ON(!valid_dma_direction(direction)); 258 258 259 259 __dma_complete_page(pfn_to_page(PFN_DOWN(dma_address)), 260 - dma_address & PAGE_OFFSET, size, direction); 260 + dma_address & (PAGE_SIZE - 1), size, direction); 261 261 } 262 262 263 263 static void tile_dma_sync_single_for_cpu(struct device *dev, ··· 436 436 dma_address -= get_dma_offset(dev); 437 437 438 438 __dma_complete_page(pfn_to_page(PFN_DOWN(dma_address)), 439 - dma_address & PAGE_OFFSET, size, direction); 439 + dma_address & (PAGE_SIZE - 1), size, direction); 440 440 } 441 441 442 442 static void tile_pci_dma_sync_single_for_cpu(struct device *dev,