【8】如何使用git 命令把一个patch 推送到我们自己的remote 仓

本文详细介绍了如何从内核patchwork下载补丁文件,并通过实例讲解了mbox与series版本的区别。阐述了补丁文件的放置位置、使用checkpatch.pl进行检查、使用git am与git apply应用补丁的方法,以及解决补丁应用过程中遇到的问题。

参考文档

https://www.jianshu.com/p/1848fabc9360

https://blog.youkuaiyun.com/mliubing2532/article/details/7577905

1、从内核patchwrok下载.patch问

https://lore.kernel.org/patchwork/patch/824257/
kernel后面把patch的网页给变了
https://lore.kernel.org/lkml/20170822212647.11520-1-f.fainelli@gmail.com/
在这里插入图片描述

我们可以选择mbox版本,也可以选series版本的。选择series版本的,会把相关给的一系列补丁都下载到一个.patch文件中
我们现在补丁只有一个,不是一个系列的,选择mbox版本和series版本是一样的。

[net-next] net: phy: Deal with unbound PHY driver in phy_attached_print()
在这里插入图片描述

例如下面的补丁有一系列相关的补丁,选择mbox版本,一个patch文件只会现在一个patch,选择series版本,一个patch文件会把所有相关的都下载下来
在这里插入图片描述
[v2,1/2] iommu/amd: Support multiple PCI DMA aliases in device table
[v2,2/2] iommu/amd: Support multiple PCI DMA aliases in IRQ Remapping
在这里插入图片描述
2、把patch文件放到内核对应目录,这里选择和driver同级目录下,是因为patch文件中diff的目录,这样放置是最简单的
在这里插入图片描述
在这里插入图片描述
3、使用checkpatch.pl检查patch

./scripts/checkpatch.pl --no-signoff -q --max-line-length=120 -ignore BAD_SIGN_OFF,GERRIT_CHANGE_ID,FILE_PATH_CHANGES,REDUNDANT_CODE,GIT_COMMIT_ID net-next-net-phy-Deal-with-unbound-PHY-driver-in-phy_attached_print.patch
在这里插入图片描述
可以发现有一样超过了75个字符导致检查不过,我们jenkins的检查patch的配置就是这么检查的。(这个patch比较特殊,由于log里面含有call trace,内核mainline在merge的时候,也没有检查是否超过75个字符)
4、git am --abort

把之前am的patch都abort掉(重要)

5、git apply 统计一下patch修改了多少(非必要步骤,就看看,不干啥)
在这里插入图片描述
6、git am 把patch打上去
如果只是提示了applying,没有提示错误说明补丁打上去
在这里插入图片描述
7、git push到gerrit库上

可以看到此时会有问题,原因是缺失Change-ID
在这里插入图片描述
8、执行gitdir →git commit --amend→git push

https://www.jianshu.com/p/1848fabc9360

9、修改代码,手动构造两个phyid不匹配的情况

我们把broadcom BCM50612E phy_driver的phyid改成一个不合法的值,人为制造reg获取的phy_id和调用 phy_drivers_register 注册的driver中的phy_id不匹配的场景
在这里插入图片描述
发现没有Oops,打印出mdio_bus stmmac-0:01: attached PHY driver [unbound] (mii_bus:phy_addr=stmmac-0:01, irq=-1)
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linjiasen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值