diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2014-04-22 13:31:51 +0200 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2014-04-22 13:31:51 +0200 |
commit | 0ee9e84781aa368c96544e6e96a4696a5a7ba00a (patch) | |
tree | 6c02e2123d8a9b0ffdcb9c6bf6792d6737a95885 /security | |
parent | 98eb9572b7dc548d0013baac9240f25a644ab277 (diff) |
can: mcp251x: fix locking in BERR counter functionality
Symptoms:
The interface stops receiving CAN frames when reception of CAN frame
and call to the introduced get_berr_counter function coincide.
Reproduction:
Ip requests, among others, the berr field for the can interfaces. NOTE
that it does so even if called as 'ip link show lo', as interface-based
filtering is only done after the system calls to receive interface
information.
Run candump on a MCP-based can interface that has a lot of traffic (via
'cangen -g1' on another can node).
On the system with the MCP chip, run
while /bin/true; do ip link > /dev/null ; done;
Reception of CAN-frames (as shown by candump) will cease within
seconds.
This issue got introduced by commit
1b59090a47101b4bf379d2c35986ad3f0bcb2aa1 as access to the SPI registers
of the MCP251x were not locked.
Issue report and patch courtesy David R. Piegdon of Indurad GmbH.
Diffstat (limited to 'security')
0 files changed, 0 insertions, 0 deletions