Understanding collateral evolution in Linux device drivers | Synapse