rapidio/tsi721: add check for overlapped IB window mappings

Add check for attempts to request mapping of inbound RapidIO address
space that overlaps with existing active mapping windows.

Tsi721 device does not support overlapped inbound windows and SRIO
address decoding behavior is not defined in such cases.

This patch is applicable to kernel versions starting from v3.7.

Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Aurelien Jacquiot <a-jacquiot@ti.com>
Cc: Andre van Herk <andre.van.herk@prodrive-technologies.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Alexandre Bounine
2016-03-22 14:25:51 -07:00
committed by Linus Torvalds
부모 174f1a71cc
커밋 ba5d141b55
2개의 변경된 파일62개의 추가작업 그리고 21개의 파일을 삭제

파일 보기

@@ -808,6 +808,13 @@ struct msix_irq {
};
#endif /* CONFIG_PCI_MSI */
struct tsi721_ib_win {
u64 rstart;
u32 size;
dma_addr_t lstart;
bool active;
};
struct tsi721_device {
struct pci_dev *pdev;
struct rio_mport *mport;
@@ -843,6 +850,10 @@ struct tsi721_device {
/* Outbound Messaging */
int omsg_init[TSI721_OMSG_CHNUM];
struct tsi721_omsg_ring omsg_ring[TSI721_OMSG_CHNUM];
/* Inbound Mapping Windows */
struct tsi721_ib_win ib_win[TSI721_IBWIN_NUM];
spinlock_t win_lock;
};
#ifdef CONFIG_RAPIDIO_DMA_ENGINE