Message ID | 20190215220250.30883-1-paul.burton@mips.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | d411da06abbe4c7cad0cc16b509d10b43da783a8 |
Headers | show |
Series | MIPS: dma-noncoherent: Remove bogus condition in dma_sync_phys() | expand |
Hello, Paul Burton wrote: > Commit e36863a550da ("MIPS: HIGHMEM DMA on noncoherent MIPS32 > processors") introduced code which: > > 1) Calculates an offset within a page, by ANDing an address > with ~PAGE_MASK. > > 2) Checks whether that offset is >= PAGE_SIZE. > > This check can never evaluate true, making the code it guards > unreachable. smatch spots bogus arithmetic resulting from the > impossible condition, resulting in the following warning: > > arch/mips/mm/dma-noncoherent.c:125 > dma_sync_phys() warn: mask and shift to zero > > Fix this by removing the impossible to satisfy condition & the > unreachable code it guards. > > Signed-off-by: Paul Burton <paul.burton@mips.com> Applied to mips-next. Thanks, Paul [ This message was auto-generated; if you believe anything is incorrect then please email paul.burton@mips.com to report it. ]
diff --git a/arch/mips/mm/dma-noncoherent.c b/arch/mips/mm/dma-noncoherent.c index f7e0fd6b7619..b57465733e87 100644 --- a/arch/mips/mm/dma-noncoherent.c +++ b/arch/mips/mm/dma-noncoherent.c @@ -120,13 +120,8 @@ static inline void dma_sync_phys(phys_addr_t paddr, size_t size, if (PageHighMem(page)) { void *addr; - if (offset + len > PAGE_SIZE) { - if (offset >= PAGE_SIZE) { - page += offset >> PAGE_SHIFT; - offset &= ~PAGE_MASK; - } + if (offset + len > PAGE_SIZE) len = PAGE_SIZE - offset; - } addr = kmap_atomic(page); dma_sync_virt(addr + offset, len, dir);
Commit e36863a550da ("MIPS: HIGHMEM DMA on noncoherent MIPS32 processors") introduced code which: 1) Calculates an offset within a page, by ANDing an address with ~PAGE_MASK. 2) Checks whether that offset is >= PAGE_SIZE. This check can never evaluate true, making the code it guards unreachable. smatch spots bogus arithmetic resulting from the impossible condition, resulting in the following warning: arch/mips/mm/dma-noncoherent.c:125 dma_sync_phys() warn: mask and shift to zero Fix this by removing the impossible to satisfy condition & the unreachable code it guards. Signed-off-by: Paul Burton <paul.burton@mips.com> --- arch/mips/mm/dma-noncoherent.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)