can: c_can: Fix a series of serious bugs and improve the performance
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest12 patches 19 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/12 | can: c_can: Wait for CONTROL_INIT to be cleareddrivers/ | +23 | 2 replies | |
| 2/12 | can: c_can: Fix hardware raminit functiondrivers/ | +39 | 4 replies | |
| 3/12 | can: c_can: Make it SMP safedrivers/ | +21 | 2 replies | |
| 4/12 | can: c_can: Fix buffer ordering for realdrivers/ | +50 | 0 replies | |
| 5/12 | can: c_can: Fix the lost message handlingdrivers/ | +15 | 0 replies | |
| 6/12 | can: c_can: Remove braindamaged EOB exitdrivers/ | +0 | 0 replies | |
| 7/12 | can: c_can: Provide protection in the xmit pathdrivers/ drivers/ | +9 | 0 replies | |
| 8/12 | can: c_can: Makethe code readabledrivers/ | +56 | 4 replies | |
| 9/12 | can: c_can: Reduce register access for realdrivers/ | +15 | 0 replies | |
| 10/12 | can: c_can: Store dlc privatedrivers/ drivers/ | +29 | 0 replies | |
| 11/12 | can: c_can: Simplify TX interrupt cleanupdrivers/ | +17 | 0 replies | |
| 12/12 | can: c_can: Avoid led toggling for every packet.drivers/ | +4 | 4 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [patch 00/12] can: c_can: Fix a series of serious bugs and improve the performance
First of all, I'm really grumpy as hell.
This is the worst driver I looked at in the last 10 years. And that's an achievement.
The driver is full of serious bugs:
- Two HW init routines are not spec compliant.
- Completely defective message buffer handling in several ways That leads to interrupt storms and complete lockups.
- Complete lack of SMP awareness
What's amazing is that people "optimize" and "fix" the driver over and over, but nobody bothered to understand the manual and repair the code for real.
The series fixes _ALL_ bugs which I found so far, but I'm sure there are more issues burried in that unreadable mess. I'm just not able to trigger them.
The last few patches add real performance improvements by removing a gazillion of pointless hardware operations.
Thanks,
tglx
--------------->
c_can.c | 311 ++++++++++++++++++++++++++++++------------------------- c_can.h | 29 +++++ c_can_platform.c | 48 ++++++-- 3 files changed, 241 insertions(+), 147 deletions(-)