rapidio/tsi721: fix incorrect detection of address translation condition
Fix incorrect condition to identify involvment of a address translation mechanism. This bug results in NULL pointer kernel crash dump in cases when mapping of inbound RapidIO address range is requested within existing aprture. Link: http://lkml.kernel.org/r/20160901173144.2983-1-alexandre.bounine@idt.com Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com> Cc: Matt Porter <mporter@kernel.crashing.org> Cc: Andre van Herk <andre.van.herk@prodrive-technologies.com> Cc: Barry Wood <barry.wood@idt.com> Cc: <stable@vger.kernel.org> [4.6+] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
1e1011af7a
Коммит
b30069291d
|
@ -1161,7 +1161,7 @@ static int tsi721_rio_map_inb_mem(struct rio_mport *mport, dma_addr_t lstart,
|
|||
} else if (ibw_start < (ib_win->rstart + ib_win->size) &&
|
||||
(ibw_start + ibw_size) > ib_win->rstart) {
|
||||
/* Return error if address translation involved */
|
||||
if (direct && ib_win->xlat) {
|
||||
if (!direct || ib_win->xlat) {
|
||||
ret = -EFAULT;
|
||||
break;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче