I have now done some more testing and found that the mcp2515 driver is not using a threaded interrupt handler (like the in kernel mcp251x.c), but is working in the interrupt handler itself. But it is making heavy use of asyncronous callbacks when a SPI command has finished, so it is quite quick and ...