-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Description
Hi,
recently i found that vchiq_test -f doesn't work anymore with current mainline (4.11-rc6) and linux-next (20170404) on my Raspberry Pi Zero. The issue is always reproducible, but the error behavior isn't deterministic. Sometimes vchiq_test hangs and sometimes i get an error message from vchiq_test like this (but never errors from the kernel):
$ vchiq_test -f 10
Functional test - iters:10
======== iteration 1 ========
vchiq_test: 1502: expected callback reason VCHIQ_MESSAGE_AVAILABLE, got 1
vchiq_test: 1524: expected callback reason VCHIQ_BULK_TRANSMIT_DONE, got 5
vchiq_test: 863: func_error != 0
I've bisected this regression to this commit:
00a19f3e25c0c40e0ec77f52d4841d23ad269169 is the first bad commit
commit 00a19f3e25c0c40e0ec77f52d4841d23ad269169
Author: Rabin Vincent <rabinv@axis.com>
Date: Tue Nov 8 09:21:19 2016 +0100
ARM: 8627/1: avoid cache flushing in flush_dcache_page()
When the data cache is PIPT or VIPT non-aliasing, and cache operations
are broadcast by the hardware, we can always postpone the flush in
flush_dcache_page(). A similar change was done for ARM64 in commit
b5b6c9e9149d ("arm64: Avoid cache flushing in flush_dcache_page()").
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Rabin Vincent <rabinv@axis.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
It seems that staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm relies on the behavior of flush_dcache_page before this patch get applied.
Here the related thread on linux-rpi-kernel.
It would be nice to get a solution which is acceptable in mainline.