Abstract:
Linux kernel version changes bring inconsistency errors in driver calls to kernel interfaces very frequently. It is not only a heavy workload through manual repair, but also may introduce new errors. To overcome this problem, exiting researches on driver porting of middle library auxiliary adaptation and driver porting of auxiliary information provide auxiliary examples, but manual analysis and manual patch construction are still required, so the manual repair workload is still relatively large and the efficiency is low. To this end, we recommend high-quality patches to reduce the workload and improve the efficiency of manual error repair. Unlike traditional methods that identify the same type of errors through the similarity of error code forms, we propose to identify the same type of errors based on the same cause and origin of the error. A hierarchical search algorithm is proposed to obtain the root cause of the error to be fixed, through the root cause to identify the same type of error fix instances, extract and select targeted fix patterns to implement high-quality patch recommendations for the same type of unfixed errors. Experiments on the collected 19 real driver data sets show that the method in this paper has significant improvement in the correct rate of patch recommendation compared with the traditional methods.