summaryrefslogtreecommitdiffstats
path: root/include/net/fq.h
diff options
context:
space:
mode:
authorAndrew Murray <andrew.murray@arm.com>2018-09-13 13:48:27 +0100
committerWill Deacon <will.deacon@arm.com>2018-09-14 09:49:21 +0100
commit500dd232449e7c07500e713dc6970aa713f8e4f1 (patch)
treedc6b3eece9f99bccb2b4f1d573531c95c3acedf5 /include/net/fq.h
parent84c57dbd3c480fb2730c393a2cef994ddb4f42cc (diff)
downloadlinux-500dd232449e7c07500e713dc6970aa713f8e4f1.tar.bz2
asm-generic: io: Fix ioport_map() for !CONFIG_GENERIC_IOMAP && CONFIG_INDIRECT_PIO
The !CONFIG_GENERIC_IOMAP version of ioport_map uses MMIO_UPPER_LIMIT to prevent users from making I/O accesses outside the expected I/O range - however it erroneously treats MMIO_UPPER_LIMIT as a mask which is contradictory to its other users. The introduction of CONFIG_INDIRECT_PIO, which subtracts an arbitrary amount from IO_SPACE_LIMIT to form MMIO_UPPER_LIMIT, results in ioport_map mangling the given port rather than capping it. We address this by aligning more closely with the CONFIG_GENERIC_IOMAP implementation of ioport_map by using the comparison operator and returning NULL where the port exceeds MMIO_UPPER_LIMIT. Though note that we preserve the existing behavior of masking with IO_SPACE_LIMIT such that we don't break existing buggy drivers that somehow rely on this masking. Fixes: 5745392e0c2b ("PCI: Apply the new generic I/O management on PCI IO hosts") Reported-by: Will Deacon <will.deacon@arm.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Andrew Murray <andrew.murray@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'include/net/fq.h')
0 files changed, 0 insertions, 0 deletions