• 如何提交内核补丁--checkpatch.pl使用【转】


    转自:https://blog.csdn.net/qq_29350001/article/details/52056667

    转自: http://blog.csdn.net/ganggexiongqi/article/details/7032625#

     

    补丁检测:./scripts/checkpatch.pl xxx.patch

    这个时候补丁就制作成了,但是还要使用内核提供的补丁检测工具检测一下补丁的正确性,应为我们发布的补丁不能把很明显错误带进去。


    1. helight@Zhwen:linux-2.6$ ./scripts/checkpatch.pl 0001-clean-up-code-style-on-samples-tracepoints-tracepoin.patch   
    2. total: 0 errors, 0 warnings, 9 lines checked  
    3.   
    4. 0001-clean-up-code-style-on-samples-tracepoints-tracepoin.patch has no obvious style problems and is ready for submission.  
    5. helight@Zhwen:linux-2.6$   

     

     
    使用checkpatch.pl输出的主要错误或警告:
     

    scripts/checkpatch.pl输出的错误或警告有很多种,其中有一些比较具有代表性的,如下所示。在编写的阶段就应当充分注意它们。

    错误

     换行符为DOS格式(CR+LF)。

     行首、行尾有多余的空格。

     不是用制表符,而是用空格缩进。

     switch语句和case语句的缩进不一致。

     函数定义块(block)以外的“{”写在独立的行中。

     注释符使用的是“//”。

     全局变量或静态变量是明确指定以0初始化的。

     前括号“(”或“[”后面有多余的空格。

     后括号“)”或“]”前面有多余的空格。

     逗号“,”后面没有空格。

     if、for、while的前括号“(”前面没有空格。

     else未与if块结尾的“}”写在同一行。

     使用了将来要废弃的头文件或函数。

     补丁内没有Signed-off-by行。

    警告

     补丁内含有的路径起点不是内核源码树的根目录。

     1行的长度超过80字。

     制表符前面有空格。

     const关键词的使用方法有问题。

     printk()没有指定输出级别(KERN_*)。

     goto的分支终点的标签label缩进。

     用“{}”括住了只有1行的代码块。

     使用了volatile修饰符。

     kmalloc()的返回值已经转换。

    小结

    使用scripts/checkpatch.pl可以在投稿前检查补丁的格式。将补丁列入邮件列表时,经常可以看到“未按照规则编写,请修改”的提示。一定要在发布前检查补丁的格式,才能集中对补丁内容进行讨论。

    参考文献

     Documentation/CodingStyle(内核源文档)
    —Munehiro IKEDA

    转自: http://book.2cto.com/201302/16274.html

  • 相关阅读:
    C#projectPropertyGrid 显示结构(展开逗号分隔)
    WPF 数据绑定
    WPF Binding值转换器ValueConverter使用简介(二)-IMultiValueConverter
    WPF Binding值转换器ValueConverter使用简介(一)
    Sql语句知识大全
    C#端口、IP正则
    C#基础知识整理
    C#UDP异步通信
    D365 添加导入按钮继承到系统导出
    D365 FO 创建DataEntity找不到natural key
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/9395630.html
Copyright © 2020-2023  润新知