summaryrefslogtreecommitdiffstats
path: root/arch/arm64
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2020-09-16 13:56:54 +0300
committerGregory CLEMENT <gregory.clement@bootlin.com>2020-09-24 10:19:06 +0200
commit0b58725fb9a446890c1fd28fc6c9e393ce21acb7 (patch)
treeb145f5c5f9b32be6b82cf917a69a7a7f13c99b8a /arch/arm64
parentb64d814257b027e29a474bcd660f6372490138c7 (diff)
downloadlinux-0b58725fb9a446890c1fd28fc6c9e393ce21acb7.tar.gz
linux-0b58725fb9a446890c1fd28fc6c9e393ce21acb7.tar.bz2
linux-0b58725fb9a446890c1fd28fc6c9e393ce21acb7.zip
ARM: mvebu: drop pointless check for coherency_base
The MMU off code path in ll_get_coherency_base() attempts to decide whether the coherency fabric is mapped by testing the value of coherency_base, which carries its virtual address if its mapped, and 0x0 otherwise. However, what the code actually does is take the virtual address of the coherency_base symbol, and compare it with 0x0, which are never equal, and so the branch is never taken. In fact, with the MMU off, dereferencing the VA of coherency_base is not possible to begin with, nor can its value be relied upon with the MMU off since it is not cleaned to the Dcache as is done with coherency_phys_base in armada_370_coherency_init(). Instead, the value of coherency_phys_base is returned, which results in the correct behavior since it will be 0x0 as well if the coherency fabric is not mapped, and it is accessible with the MMU off. So just drop the comparison and the branch. Fixes: 30cdef97107370a7 ("ARM: mvebu: make the coherency_ll.S functions work with no coherency fabric") Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Jason Cooper <jason@lakedaemon.net> Cc: Andrew Lunn <andrew@lunn.ch> Cc: Gregory CLEMENT <gregory.clement@bootlin.com> Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Diffstat (limited to 'arch/arm64')
0 files changed, 0 insertions, 0 deletions