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:

committed by
Linus Torvalds

부모
174f1a71cc
커밋
ba5d141b55
@@ -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
|
||||
|
Reference in New Issue
Block a user