├── README.md ├── conflict-notes ├── README.md ├── marlin │ └── android-msm-marlin-3.18-oreo-mr1.md ├── msm-3.18 │ ├── kernel.lnx.3.18.r22-rel.md │ └── kernel.lnx.3.18.r33-rel.md ├── msm-4.4 │ ├── kernel.lnx.4.4.r18-rel.md │ └── kernel.lnx.4.4.r27-rel.md ├── op3 │ ├── oneplus-QC8996_O_8.0.0.md │ └── oneplus-QC8996_O_8.0.0_Beta.md ├── op5 │ ├── oneplus-QC8998_O_8.0.md │ └── oneplus-QC8998_O_8.1.md └── wahoo │ ├── android-msm-wahoo-4.4-oreo-dr1.md │ └── android-msm-wahoo-4.4-oreo-mr1.md ├── info ├── README.md ├── what-is-linux-stable.md └── why-is-linux-stable-important.md ├── process ├── README.md ├── how-to.md └── tips-and-tricks.md ├── trees ├── README.md ├── angler.md ├── bullhead.md ├── jasmine.md ├── marlin.md ├── mata.md ├── msm-3.18.md ├── msm-4.4.md ├── msm-4.9.md ├── nash.md ├── op3.md ├── op5.md ├── op6.md ├── polaris.md ├── sagit.md ├── tissot.md ├── wahoo.md └── whyred.md └── usability-notes ├── README.md ├── op5.md └── wahoo.md /README.md: -------------------------------------------------------------------------------- 1 | # linux-stable notes 2 | 3 | These are markdown pages offering some notes about what linux-stable is, how you should be using it, and issue resolution notes. Please read this whole page if nothing else! 4 | 5 | TL;DR: linux-stable is important for stability and security. If you are a custom kernel or ROM developer with a 3.18 or 4.4 kernel and want linux-stable merged into your repo(s), you can either use these trees as a base or merge them into your own. If you have neither the time nor the confidence to get it right, please let me know via one of the methods below. I am happy to merge it into your trees and either pull request you or ping you with updates automatically. 6 | 7 | 8 | # Index 9 | 10 | * `info:` These are pages dedicated to answering what this stuff is and why it is important. Both users and developers should read these! If your kernel developer doesn't care for this process after reading this, they don't care about your security or stability... 11 | 12 | * `process:` This section goes over how to get a kernel up to date with linux-stable, step by step, as well as providing helpful tips and tricks. 13 | 14 | * `trees:` This section includes notes on each tree, including what phone it is for, the upstream repo, and the currently supported branches. 15 | 16 | * `conflict-notes:` These pages document the conflicts during each merge (why the conflict occurred and how it was resolved). Please note, not all devices will have these as they take a lot of time. Reach out to me using one of the methods below if you have any questions! 17 | 18 | * `usability-notes:` Some of these trees do not contain everything needed to boot and use the device as normal in their current form. Since these kernels are designed to be used as a base for others or merged into existing working kernels, those commits will not be added. Instead, I give notes that can be used to get everything working properly. I only do usability notes for devices I physically own; if you own a device in this list and there are quirks that you know of that need mentioning, feel free to contribute! 19 | 20 | Each subfolder has its own index if you want more details! 21 | 22 | 23 | ## How to use them 24 | 25 | These trees can either be merged into an existing tree or they can be used as a starting base. 26 | 27 | Should you chose to merge, use the following commands: 28 | 29 | ```bash 30 | git fetch 31 | git merge FETCH_HEAD 32 | ``` 33 | 34 | Should you chose to use the kernel as a base for your own, either fork the kernel or run the following in an existing kernel repo: 35 | 36 | ```bash 37 | git fetch 38 | git checkout -b FETCH_HEAD 39 | git push --set-upstream origin 40 | ``` 41 | 42 | This will keep commit history and make it easier to keep up with updates. 43 | 44 | 45 | ## Getting updates 46 | 47 | You can merge the updates from this organization by using the merge command: 48 | 49 | ```bash 50 | git fetch 51 | git merge FETCH_HEAD 52 | ``` 53 | 54 | If you want to do the merges yourself, you can add linux-stable as a remote and merge the tag: 55 | 56 | ```bash 57 | git remote add linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/ 58 | git fetch linux-stable 59 | git merge v 60 | ``` 61 | 62 | You can use [the script](https://github.com/android-linux-stable/script) to do this automatically. 63 | 64 | 65 | # Getting help 66 | 67 | If you need help with merging, I request you ask for it via one of these public methods: 68 | 69 | * [XDA thread](https://forum.xda-developers.com/android/software-hacking/reference-how-to-upstream-android-kernel-t3626913) 70 | * [Telegram channel](https://t.me/joinchat/C1UAJ1EMSX2znEs7CJEc2A) 71 | * A GitHub issue in the repo in question 72 | 73 | For all other questions/requests, you can reach out to me via: 74 | 75 | * [Telegram](https://t.me/nathanchance) 76 | * [Twitter](https://twitter.com/nathanchance) 77 | * [XDA](https://forum.xda-developers.com/member.php?u=6842057) 78 | 79 | # Other notes 80 | 81 | Do not ask me permission to use these, they are freely available for a reason. Additionally, you don't need to give me credit for any public releases you do (although it would be appreciated). I'm not in this for glory, I just want people to be more stable and secure. Enjoy! 82 | -------------------------------------------------------------------------------- /conflict-notes/README.md: -------------------------------------------------------------------------------- 1 | # Index of conflict-notes 2 | 3 | NOTE: As of 3.18.103 and 4.4.127, these notes will no longer be updated since it takes me way too long to document them all. You can see my conflict resolutions in [my stable-patches repository](https://github.com/nathanchance/stable-patches) and you are free to reach out to me if you have any questions. 4 | 5 | - [`marlin`](marlin) includes notes for the [the marlin repository](https://github.com/android-linux-stable/marlin) (stock Pixel (XL) source) 6 | 7 | - [`msm-3.18`](msm-3.18) includes notes for the [the msm-3.18 repository](https://github.com/android-linux-stable/msm-3.18) (stock CAF 3.18 source) 8 | 9 | - [`msm-4.4`](msm-4.4) includes notes for the [the msm-4.4 repository](https://github.com/android-linux-stable/msm-4.4) (stock CAF 4.4 source) 10 | 11 | - [`op3`](op3) includes notes for [the op3 repository](https://github.com/android-linux-stable/op3) (stock OP3 source) 12 | 13 | - [`op5`](op5) includes notes for [the op5 repository](https://github.com/android-linux-stable/op5) (stock OP5 source) 14 | 15 | - [`wahoo`](wahoo) includes notes for [the wahoo repository](https://github.com/android-linux-stable/wahoo) (stock Pixel 2 (XL) source) 16 | -------------------------------------------------------------------------------- /conflict-notes/marlin/android-msm-marlin-3.18-oreo-mr1.md: -------------------------------------------------------------------------------- 1 | # 3.18.70 to 3.18.87 2 | 3 | * `drivers/media/v4l2-core/v4l2-compat-ioctl32.c` 4 | 5 | * **Resolution:** Take left side (discard all changes) 6 | 7 | * **Cause:** Commit [`b9c210ed25a2`](https://android.googlesource.com/kernel/msm/+/b9c210ed25a2fdb7e0ac73a36571b164213e1933) ("v4l2: Refactor, fix security bug in compat ioctl32") rewrote the `put_user` statements with a `convert_in_user` macro, which was unexpected by commit [`6b3412ff9661`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=6b3412ff96615bab06863c00c371b5601e3b1e1c) ("media: v4l2-compat-ioctl32: Fix timespec conversion"). The former fixes the issue described by the latter (as they are by the same author). 8 | 9 | 10 | * `net/packet/af_packet.c` 11 | 12 | * **Resolution:** Take right side (make final diff match upstream's) 13 | 14 | * **Cause:** Commit [`008ba2a13f2d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=008ba2a13f2d04c947adc536d19debb8fe66f110) ("packet: hold bind lock when rebinding to fanout hook") was slightly modified for 3.18 as commit [`e4ffdf9ead59`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e4ffdf9ead59a909f2824a4270356909d6d64380) ("packet: hold bind lock when rebinding to fanout hook") because commit [`d199fab63c11`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d199fab63c11998a602205f7ee7ff7c05c97164b) ("packet: fix races in fanout_add()") is missing from 3.18. However, it is present in this tree as commit [`de0f20edf203`](https://android.googlesource.com/kernel/msm/+/de0f20edf203b949ae8b0d1cebd8618f7c636f77) ("UPSTREAM: packet: fix races in fanout_add()") so use the upstream resolution. 15 | 16 | 17 | # 3.18.91 18 | 19 | * `net/ipv4/raw.c` 20 | 21 | * **Resolution:** Take right side (make final diff match upstream's) 22 | 23 | * **Cause:** When mainline commit [`8f659a03a0ba`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8f659a03a0ba9289b9aeb9b4470e6fb263d6f483) ("net: ipv4: fix for a race condition in raw_sendmsg") was backported to the 3.18 stable tree as commit [`000c7141a1fe`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=000c7141a1feace09bf4c0f65008e51fa69ecede), it was slightly changed because mainline commit [`e2d118a1cb5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e2d118a1cb5e60d077131a09db1d81b90a5295fe) ("net: inet: Support UID-based routing in IP protocols.") is not present in the stable 3.18 tree. However, it is in this one since Google added it as a backport in commit [`083e6660c733`](https://android.googlesource.com/kernel/msm/+/083e6660c733a56865c1ae1239c02d788a123fbd) ("net: inet: Support UID-based routing in IP protocols.") so adjust the diff to account for this (final diff matches both the stable and mainline commit). 24 | 25 | 26 | # 3.18.94 27 | 28 | * `drivers/input/input.c` 29 | 30 | * **Resolution:** Take left side (discard all changes) 31 | 32 | * **Cause:** Commit [`33fd368597ad`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=33fd368597ad615f9f7232ca9daa3ed3fdba1516) is already present in this tree as commit [`b7e92bfe94d1`](https://android.googlesource.com/kernel/msm/+/b7e92bfe94d17178fea6c12552ab5fbafd48ad96) but git couldn't tell because the context of the stable version was adjusted due to absence of mainline commit [`3e2b03dad54b`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3e2b03dad54bbcab5be948629a644d55ce7b5a2e), which is present in our tree as commit [`f4497aed6014`](https://android.googlesource.com/kernel/msm/+/f4497aed6014730521b7736db0139ebb6fadeee5). The version in our tree is identical to mainline commit [`00159f19a505`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=00159f19a5057cb779146afce1cceede692af346) so no changes are necessary. 33 | 34 | 35 | * `drivers/usb/gadget/function/f_fs.c` 36 | 37 | * **Resolution:** Take left side (discard all changes) 38 | 39 | * **Cause:** Commit [`3e6a2db8df25`](https://android.googlesource.com/kernel/msm/+/3e6a2db8df258fc6d609a2827d0e0cbe30fbbce0) removed the statement modified by stable commmit [`512b79f1410fd`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=512b79f1410fd05c2c7f2aab9fb4b0050560db89). 40 | 41 | 42 | # 3.18.97 43 | 44 | * `drivers/usb/dwc3/gadget.c` 45 | 46 | * **Resolution:** Take both sides (make final diff match upstream's) 47 | 48 | * **Cause:** Stable commit [`0b10a48805f9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=0b10a48805f99a5a27ae8eda6a1d20601f23a9b5) ("usb: dwc3: gadget: Set maxpacket size for ep0 IN") wasn't expecting the `pr_info` statement added by commit [`1cb23126f5d8`](https://android.googlesource.com/kernel/msm/+/1cb23126f5d8b2fa62434d25d3d7ce6b33a7fbd1) ("usb: fusb302: pd chip bring up"). 49 | -------------------------------------------------------------------------------- /conflict-notes/msm-3.18/kernel.lnx.3.18.r22-rel.md: -------------------------------------------------------------------------------- 1 | # 3.18.71 to 3.18.87 2 | 3 | * `drivers/gpu/drm/msm/msm_gem_submit.c` 4 | 5 | * **Resolution:** Take right side 6 | 7 | * **Cause:** 8 | 9 | * Commit [`77336ca65ccf`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=77336ca65ccf544bbca59d55b0a1bb10bf420fe3) ("drm/msm: fix an integer overflow test") had to be changed to work around the extra `nr` variable, added in commit [`f81b352dbb7f`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=f81b352dbb7f8ecd938527e2c8da7523b8ea63eb) ("drm/msm: Don't limit number of GPU commands"). 10 | 11 | * Commit [`f449835963f4`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=f449835963f47a3755d2f893a49928cf8d7ca58e) ("drm/msm: Fix potential buffer overflow issue") is already present as commit [`9be5b16de622`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=9be5b16de622c2426408425e3df29e945cd21d37) ("drm/msm: Fix potential buffer overflow issue". 12 | 13 | 14 | * `drivers/scsi/sg.c` 15 | 16 | * **Resolution:** Take right side 17 | 18 | * **Cause:** Commit [`de93dd11b78f`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=de93dd11b78f31a9ec77e072cb413ebb15f3de29) ("Prevent potential double frees in sg driver") removed some whitespace that was unexpected by commit [`691e12db75fb`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=691e12db75fb7f55bbbf8c1fea7d462eb1a5e38a) ("scsi: sg: factor out sg_fill_request_table()"). 19 | 20 | 21 | * `drivers/usb/class/cdc-acm.c`, `drivers/usb/core/quirks.c`, `drivers/usb/serial/cp210x.c`, `drivers/usb/serial/qcserial.c` 22 | 23 | * **Resolution:** Take right side (make final diff match upstream's) 24 | 25 | * **Cause:** The changes to these files were omitted by CAF during the merge up to 3.18.71 (every merge commit message states that USB changes were completely ignored). 26 | 27 | 28 | * `net/packet/af_packet.c` 29 | 30 | * **Resolution:** Take right side (make diff match mainline's version) 31 | 32 | * **Cause:** Commit [`008ba2a13f2d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=008ba2a13f2d04c947adc536d19debb8fe66f110) ("packet: hold bind lock when rebinding to fanout hook") was slightly modified for 3.18 as commit [`e4ffdf9ead59`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e4ffdf9ead59a909f2824a4270356909d6d64380) ("packet: hold bind lock when rebinding to fanout hook") because commit [`d199fab63c11`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d199fab63c11998a602205f7ee7ff7c05c97164b) ("packet: fix races in fanout_add()") is missing from 3.18. However, it is present in this tree as commit [`be671c7e1745`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=be671c7e17454b4f144a8e05268a6071748a8791) ("UPSTREAM: packet: fix races in fanout_add()") so use the upstream resolution. 33 | 34 | 35 | # 3.18.91 36 | 37 | * `drivers/net/usb/qmi_wwan.c`, `drivers/usb/core/quirks.c`, and `drivers/usb/serial/option.c` 38 | 39 | * **Resolution:** Take right side (make final diff match upstream's) 40 | 41 | * **Cause:** The changes to these files were omitted by CAF during the merge up to 3.18.71 (every merge commit message states that USB changes were completely ignored). 42 | 43 | 44 | * `net/ipv4/raw.c` 45 | 46 | * **Resolution:** Take right side (make final diff match upstream's) 47 | 48 | * **Cause:** When mainline commit [`8f659a03a0ba`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8f659a03a0ba9289b9aeb9b4470e6fb263d6f483) ("net: ipv4: fix for a race condition in raw_sendmsg") was backported to the 3.18 stable tree as commit [`000c7141a1fe`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=000c7141a1feace09bf4c0f65008e51fa69ecede), it was slightly changed because mainline commit [`e2d118a1cb5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e2d118a1cb5e60d077131a09db1d81b90a5295fe) ("net: inet: Support UID-based routing in IP protocols.") is not present in the stable 3.18 tree. However, since CAF merged kernel/common from Google, it is present as commit [`04c0eace816f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=04c0eace816f2b2c33830ec7f5e882de674841ae) ("net: inet: Support UID-based routing in IP protocols.") so adjust the diff to account for this (final diff matches both the stable and mainline commit). 49 | 50 | 51 | # 3.18.92 52 | 53 | * `drivers/usb/serial/cp210x.c` 54 | 55 | * **Resolution:** Take right side (make final diff match upstream's) 56 | 57 | * **Cause:** The changes to this file were omitted by CAF during the merge up to 3.18.71 (every merge commit message states that USB changes were completely ignored). 58 | -------------------------------------------------------------------------------- /conflict-notes/msm-3.18/kernel.lnx.3.18.r33-rel.md: -------------------------------------------------------------------------------- 1 | # 3.18.71 to 3.18.87 2 | 3 | * `drivers/gpu/drm/msm/msm_gem_submit.c` 4 | 5 | * **Resolution:** Take right side 6 | 7 | * **Cause:** 8 | 9 | * Commit [`77336ca65ccf`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=77336ca65ccf544bbca59d55b0a1bb10bf420fe3) ("drm/msm: fix an integer overflow test") had to be changed to work around the extra `nr` variable, added in commit [`f81b352dbb7f`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=f81b352dbb7f8ecd938527e2c8da7523b8ea63eb) ("drm/msm: Don't limit number of GPU commands"). 10 | 11 | * Commit [`f449835963f4`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=f449835963f47a3755d2f893a49928cf8d7ca58e) ("drm/msm: Fix potential buffer overflow issue") is already present as commit [`9be5b16de622`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=9be5b16de622c2426408425e3df29e945cd21d37) ("drm/msm: Fix potential buffer overflow issue". 12 | 13 | 14 | * `drivers/scsi/sg.c` 15 | 16 | * **Resolution:** Take right side 17 | 18 | * **Cause:** Commit [`de93dd11b78f`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=de93dd11b78f31a9ec77e072cb413ebb15f3de29) ("Prevent potential double frees in sg driver") removed some whitespace that was unexpected by commit [`691e12db75fb`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=691e12db75fb7f55bbbf8c1fea7d462eb1a5e38a) ("scsi: sg: factor out sg_fill_request_table()"). 19 | 20 | 21 | * `drivers/usb/class/cdc-acm.c`, `drivers/usb/core/quirks.c`, `drivers/usb/serial/cp210x.c`, `drivers/usb/serial/qcserial.c` 22 | 23 | * **Resolution:** Take right side (make final diff match upstream's) 24 | 25 | * **Cause:** The changes to these files were omitted by CAF during the merge up to 3.18.71 (every merge commit message states that USB changes were completely ignored). 26 | 27 | 28 | * `net/packet/af_packet.c` 29 | 30 | * **Resolution:** Take right side (make diff match mainline's version) 31 | 32 | * **Cause:** Commit [`008ba2a13f2d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=008ba2a13f2d04c947adc536d19debb8fe66f110) ("packet: hold bind lock when rebinding to fanout hook") was slightly modified for 3.18 as commit [`e4ffdf9ead59`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e4ffdf9ead59a909f2824a4270356909d6d64380) ("packet: hold bind lock when rebinding to fanout hook") because commit [`d199fab63c11`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d199fab63c11998a602205f7ee7ff7c05c97164b) ("packet: fix races in fanout_add()") is missing from 3.18. However, it is present in this tree as commit [`be671c7e1745`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=be671c7e17454b4f144a8e05268a6071748a8791) ("UPSTREAM: packet: fix races in fanout_add()") so use the upstream resolution. 33 | 34 | 35 | # 3.18.91 36 | 37 | * `drivers/net/usb/qmi_wwan.c`, `drivers/usb/core/quirks.c`, and `drivers/usb/serial/option.c` 38 | 39 | * **Resolution:** Take right side (make final diff match upstream's) 40 | 41 | * **Cause:** The changes to these files were omitted by CAF during the merge up to 3.18.71 (every merge commit message states that USB changes were completely ignored). 42 | 43 | 44 | * `net/ipv4/raw.c` 45 | 46 | * **Resolution:** Take right side (make final diff match upstream's) 47 | 48 | * **Cause:** When mainline commit [`8f659a03a0ba`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8f659a03a0ba9289b9aeb9b4470e6fb263d6f483) ("net: ipv4: fix for a race condition in raw_sendmsg") was backported to the 3.18 stable tree as commit [`000c7141a1fe`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=000c7141a1feace09bf4c0f65008e51fa69ecede), it was slightly changed because mainline commit [`e2d118a1cb5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e2d118a1cb5e60d077131a09db1d81b90a5295fe) ("net: inet: Support UID-based routing in IP protocols.") is not present in the stable 3.18 tree. However, since CAF merged kernel/common from Google, it is present as commit [`04c0eace816f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=04c0eace816f2b2c33830ec7f5e882de674841ae) ("net: inet: Support UID-based routing in IP protocols.") so adjust the diff to account for this (final diff matches both the stable and mainline commit). 49 | 50 | 51 | # 3.18.92 52 | 53 | * `drivers/usb/serial/cp210x.c` 54 | 55 | * **Resolution:** Take right side (make final diff match upstream's) 56 | 57 | * **Cause:** The changes to this file were omitted by CAF during the merge up to 3.18.71 (every merge commit message states that USB changes were completely ignored). 58 | 59 | 60 | # 3.18.94 61 | 62 | * `drivers/input/input.c` 63 | 64 | * **Resolution:** Take left side (discard all changes) 65 | 66 | * **Cause:** Commit [`33fd368597ad`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=33fd368597ad615f9f7232ca9daa3ed3fdba1516) is already present in this tree as commit [`b7e92bfe94d1`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit?id=b7e92bfe94d17178fea6c12552ab5fbafd48ad96) but git couldn't tell because the context of the stable version was adjusted due to absence of mainline commit [`3e2b03dad54b`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3e2b03dad54bbcab5be948629a644d55ce7b5a2e), which is present in our tree as commit [`f4497aed6014`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit?id=f4497aed6014730521b7736db0139ebb6fadeee5). The version in our tree is identical to mainline commit [`00159f19a505`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=00159f19a5057cb779146afce1cceede692af346) so no changes are necessary. 67 | 68 | 69 | * `drivers/usb/gadget/function/f_fs.c` 70 | 71 | * **Resolution:** Take left side (discard all changes) 72 | 73 | * **Cause:** Commit [`3e6a2db8df25`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit?id=3e6a2db8df258fc6d609a2827d0e0cbe30fbbce0) removed the statement modified by stable commmit [`512b79f1410f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=512b79f1410fd05c2c7f2aab9fb4b0050560db89). 74 | 75 | 76 | # 3.18.102 77 | 78 | * `drivers/gpu/drm/msm/msm_gem.c` 79 | 80 | * **Resolution:** Take left side (discard all changes) 81 | 82 | * **Cause:** Commits [`46a5a5fd5fff`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=46a5a5fd5fffffaebfe1867396af0d653375c053) ("drm:msm move GEM back buffer from SHMEM to DMA") and [`a47d70392fcd`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=a47d70392fcdf0cf55daff156164e984383d63ff) ("drm:msm Fix issue of iommu unmap fails") heavily changed the area modified by stable commit [`1fa04de1af73`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1fa04de1af73874d7e0ef4ca7b91e513a2023f8f) ("drm/msm: fix leak in failed get_pages"). 83 | -------------------------------------------------------------------------------- /conflict-notes/msm-4.4/kernel.lnx.4.4.r18-rel.md: -------------------------------------------------------------------------------- 1 | # 4.4.78 to 4.4.105 2 | 3 | * `drivers/android/binder.c` 4 | 5 | * **Resolution:** Take left side (discard all changes) 6 | 7 | * **Causes:** 8 | 9 | * Commit [`596b97ec2e5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=596b97ec2e5e24c966b9cb4aa9a9766e53ecdd43) ("binder: use group leader instead of open thread") is already present as commit [`9036bcc59e36`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9036bcc59e36952da230f31187b1ab2f866ebfae) ("binder: use group leader instead of open thread") and commit [`359795138dc5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=359795138dc5440e09c58025e28ec1b38d648c09) ("binder: use group leader instead of open thread") and there have been other changes to this section since then. 10 | 11 | * Commit [`1792d6c17cb2`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1792d6c17cb282fd8e5cd197a8b33cb78484eb6a) ("binder: Use wake up hint for synchronous transactions.") is already present as commit [`0cebb407b2f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0cebb407b2f431d748d9cc85cf7e4232a9223342) ("FROMLIST: binder: Use wake up hint for synchronous transactions.") and commit [`3956eabb34de`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3956eabb34de6b24bdbe90013c7567867bb139ea) ("android: binder: Use wake up hint for synchronous transactions.") and there have been other changes to this section since then. 12 | 13 | * Commit [`9dac44d5d4b0`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=9dac44d5d4b0a7fffe04ad505e0a082e900ad767) ("ANDROID: binder: fix proc->tsk check.") was included as part of commit [`9036bcc59e36`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9036bcc59e36952da230f31187b1ab2f866ebfae) ("binder: use group leader instead of open thread"). 14 | 15 | 16 | * `drivers/gpu/drm/msm/adreno/adreno_gpu.c` 17 | 18 | * **Resolution:** Take left side (discard all changes) 19 | 20 | * **Cause:** Commit [`b54e58ccceb7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b54e58ccceb794176b37037e76df3a7ed876b360) ("drm/msm: Ensure that the hardware write pointer is valid") is already present as commit [`7d080736a4b4`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=7d080736a4b4601a16a2d81a4537d0202fc05157) ("drm/msm: Make sure that WPTR stays in bounds") and there have been other changes to this section since then. 21 | 22 | 23 | * `drivers/gpu/drm/msm/msm_gem_submit.c` 24 | 25 | * **Resolution:** Take right side (reworked upstream version) for first, take left side for others 26 | 27 | * **Cause:** 28 | 29 | * Commit [`ded34f97234`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ded34f972348b0f252256bee161839c1aa5d8ae4) ("drm/msm: fix an integer overflow test") has to be changed to work around the extra `nr` variable (added in commit [`c9d1b0f37a99`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=c9d1b0f37a99eb67d5f96e20ea37d7953558ce3c) ("drm/msm: deal with arbitrary # of cmd buffers"). 30 | 31 | * Commit [`031b02bc16ae`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=031b02bc16aeeb34c8038026cbbca1e6430c9d75) ("drm/msm: Fix potential buffer overflow issue") is already present as commit [`a61bcfad3278`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=a61bcfad32789785760c516299035d4c28e85670) ("drm/msm: Fix potential buffer overflow issue") and there have been other changes to this section since then. 32 | 33 | * Commit [`7de922c14e83`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7de922c14e838c46b3ce3ff4719bbb82ee307e8d) ("drm/msm: Verify that MSM_SUBMIT_BO_FLAGS are set") is already present as commit [`ef41564a3e4a`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=ef41564a3e4af0c3c101fae76f77b3ea65aca5be) ("drm/msm: Make sure that MSM_SUBMIT_BO_FLAGS are set"). 34 | 35 | 36 | * `drivers/gpu/drm/msm/msm_ringbuffer.c` 37 | 38 | * **Resolution:** Take left side (discard all changes) 39 | 40 | * **Cause:** The power of 2 alignment check in commit [`b54e58ccceb7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b54e58ccceb794176b37037e76df3a7ed876b360) ("drm/msm: Ensure that the hardware write pointer is valid") is already present in commit [`378583458fa1`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=378583458fa167277b15d145dccce253459393ec) ("drm/msm: Add support for multiple ringbuffers") and there have been other changes to this section since then. 41 | 42 | 43 | * `drivers/mmc/core/bus.c` 44 | 45 | * **Resolution:** Take left side (discard all changes) 46 | 47 | * **Cause:** Commit [`5c65b739389f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5c65b739389fbc353fb42d379e9b7379cfe6d3f6) ("mmc: core: Do not leave the block driver in a suspended state") was already resolved by [`192cfe16ca57`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=192cfe16ca5761bb7a5aafc016e79a21b2bd4002) ("mmc: bus: Handle error in case bus_ops suspend fails") but the latter has an extra comment block so git could not tell the fix was already present. 48 | 49 | 50 | * `drivers/net/wireless/ath/ath10k/core.c` 51 | 52 | * **Resolution:** Take left side (discard conflict) 53 | 54 | * **Cause:** Commit [`2c65494080c9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=2c65494080c900c8a0aa4a865b57a8001960ff26) ("ath10k: fix memory leak in rx ring buffer allocation") is already present as commit [`69a6025f67b4`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=69a6025f67b41a3b03e165db46ea7d346a45ae81) ("ath10k: fix memory leak in rx ring buffer allocation") and the former did not account for commit [`9eaeb4e0974b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9eaeb4e0974b976a037b7c55f0fe409bccbb7fdd) ("ath10k: fix spurious tx/rx during boot"), which was added by CAF to 4.4 (since it didn't appear upstream until v4.8-rc2). 55 | 56 | 57 | * `drivers/scsi/sg.c` 58 | 59 | * **Solution:** Take both sides (make final diff match upstream's) 60 | 61 | * **Cause:** Commit [`a4075bbb67b9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a4075bbb67b9562b9599affc6fb38f04bd7073ff) ("scsi: sg: protect accesses to 'reserved' page array") did not expect the mutex statement added by commit [`00d6789fbf2f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=00d6789fbf2f1a371f8f80230e9a9eea35ef376e) ("Prevent potential double frees in sg driver"). 62 | 63 | 64 | * `drivers/scsi/ufs/ufshcd.h` 65 | 66 | * **Solution:** Take left side (discard all changes) 67 | 68 | * **Cause:** Commit [`0c098158785b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=0c098158785b5c8091c0bae3aa505060414076cc) ("scsi: ufs: add capability to keep auto bkops always enabled") is already present as commit [`9f06dddf5bee`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9f06dddf5beecbcdf36535e0e587c23aaa7785f5) ("scsi: ufs: add capability to keep auto bkops always enabled") with a different shift value. 69 | 70 | 71 | * `drivers/usb/core/config.c` 72 | 73 | * **Resolution:** Take both sides (make final diff match upstream's) 74 | 75 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 76 | 77 | 78 | * `fs/ext4/crypto_key.c` 79 | 80 | * **Resolution:** Take right side (make final diff match upstream's) 81 | 82 | * **Cause:** Commit [`b47135257c42`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=b47135257c42a70a26247b05ff0ab42b6ad8fc8a) ("Merge branch 'android-4.4@c71ad0f' into branch 'msm-4.4'") omitted commit [`7a5202190810`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7a5202190810dde1467718235c1f650fcf57592a) ("fscrypt: remove broken support for detecting keyring key revocation"), which included the if statement right over the section that is modified by commit [`91bd72dd8c72`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=91bd72dd8c72c603132bbbfd348a4216b8c83f58) ("fscrypt: lock mutex before checking for bounce page pool"). 83 | 84 | 85 | * `fs/f2fs/crypto_key.c` 86 | 87 | * **Resolution:** Take right side (mainline version) 88 | 89 | * **Cause:** Commit [`4db9f1113196`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=4db9f1113196e7b4df4e754e7e770b22aee81c01) ("f2fs crypto: replace some BUG_ON()'s with error checks") conflicts with commit [`26bf3dc7e25b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=26bf3dc7e25b813ff5c92234f8165941fdc12a63) ("f2fs crypto: use per-inode tfm structure") because the latter is not in 4.4 upstream (it was added by CAF). Use the version from mainline, commit [`66aa3e1274fc`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=66aa3e1274fcf887e9d6501a68163270fc7718e7) ("f2fs crypto: replace some BUG_ON()'s with error checks"). 90 | 91 | 92 | * `include/linux/usb.h` 93 | 94 | * **Resolution:** Take both sides (make final diff match upstream's) 95 | 96 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 97 | 98 | 99 | * `include/uapi/linux/usb/ch9.h` 100 | 101 | * **Resolution:** Take both sides (make final diff match upstream's) 102 | 103 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 104 | 105 | 106 | * `kernel/power/process.c` 107 | 108 | * **Resolution:** Take both sides 109 | 110 | * **Cause:** Commit [`57caa2ad5ce3`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=57caa2ad5ce35bedb7ab374a2e5b4d7adf63da2b) ("power: Adds functionality to log the last suspend abort reason.") added an include, which was not expected by commit [`90fd6738731b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=90fd6738731b6d105fc8f04832ae17a9ac82c05c) ("sched/cpuset/pm: Fix cpuset vs. suspend-resume bugs"). 111 | 112 | 113 | * `kernel/sched/sched.h` 114 | 115 | * **Resolution:** Take left side (discard all changes) 116 | 117 | * **Cause:** Commit [`62208707b466`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=62208707b466cc3c6ce951a7c4b7b4bb9b9192f6) ("sched/cputime: Fix prev steal time accouting during CPU hotplug") is already present as commit [`3366a508ffb6`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3366a508ffb6b0698dd309d1ca19a66522b886b1) ("Revert "sched/cputime: Fix steal time accounting vs. CPU hotplug"") and there have been a few commits to this section since then, namely commit [`f02702dcf231`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=f02702dcf231c3258aabd702023286f6c01aaa21) ("sched: backport cpufreq hooks from 4.9-rc4"). 118 | 119 | 120 | * `mm/debug-pagealloc.c` 121 | 122 | * **Resolution:** Take left side (discard all changes) 123 | 124 | * **Cause:** Commit [`5c69adad61e2`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=5c69adad61e27f467fa8e1671633e455741e3fae) ("mm/page_poison.c: enable PAGE_POISONING as a separate option") renamed this file to `mm/page_poison.c`. Commit [`e34e744f70a6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e34e744f70a68f8f16f945a286802898c56a8b5a) ("mm: check the return value of lookup_page_ext for all call sites") does not apply to `mm/page_poison.c` as there are no more instances of `lookup_page_ext` in that file after commit [`49118fe6a32a`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=49118fe6a32a49d198128a6dd1d6bfd0e3b189f8) ("mm: enable page poisoning early at boot"). 125 | 126 | * `mm/migrate.c` 127 | 128 | * **Resolution:** Take both sides 129 | 130 | * **Cause:** Commit [`e91e9112cb03`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e91e9112cb03570cf572365bfdaeacd1c13a3dbd) ("mm, page_owner: copy page owner info during migration") added an include, which was not expected by commit [`46d51a26efbc`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=46d51a26efbc7cbaa2bc1f01628a00a604193856) ("Sanitize 'move_pages()' permission checks"). 131 | 132 | 133 | * `mm/page_ext.c` 134 | 135 | * **Resolution:** Take right side 136 | 137 | * **Cause:** Commit [`2c00b603db67`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=2c00b603db67af40aa0b02c834cc58fec98d3023) ("mm/page_poisoning.c: allow for zero poisoning") added an extra condition to this block that commit [`3630b2801907`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=3630b28019075639a9db00491349e05fbf0f901e) ("mm/page_ext.c: check if page_ext is not prepared") did not expect. 138 | 139 | 140 | * `mm/page_owner.c` 141 | 142 | * **Resolution:** Take left side (discard all changes) 143 | 144 | * **Cause:** Commit [`e34e744f70a6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e34e744f70a68f8f16f945a286802898c56a8b5a) ("mm: check the return value of lookup_page_ext for all call sites") is already present as commit [`acda305dcb54`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=acda305dcb5474a401753912db382358b3436ab9) ("mm: check the return value of lookup_page_ext for all call sites") and there have been several changes to this file since then. 145 | 146 | 147 | * `net/wireless/nl80211.c` 148 | 149 | * **Resolution:** Take left side 150 | 151 | * **Cause:** Commit [`6a6c61d8467d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=6a6c61d8467d2dd7059b7d52773c18f8122e4f68) ("nl80211: Define policy for packet pattern attributes") is already present as commit [`b084c13dfb8f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=b084c13dfb8f9081192dc7168a94d48f419d09fc) ("nl80211: Define policy for packet pattern attributes") and the former did not account for commit [`3fee1ede34a6`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3fee1ede34a6c3b2dd7d816643e887c2308f6a78) ("nl80211: add feature for BSS selection support") being present. 152 | 153 | 154 | * `sound/usb/card.c` 155 | 156 | * **Resolution:** Take right side (shuffle resolution) 157 | 158 | * **Cause:** Commit [`2ecedf5dc75b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=2ecedf5dc75bc770ec09bd2238e798063aeafc4b) ("sound: usb: Add support for parsing AudioStreaming intf for BADD devices") shuffled the function `snd_usb_create_streams`, which commit [`46c7b1fa4911`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=46c7b1fa4911a859a82575e3ffb55b34a89a222d) ("ALSA: usb-audio: Check out-of-bounds access by corrupted buffer descriptor") did not expect. Resolution is identical but has been moved into the `switch` statement to satisfy the changes made by CAF's shuffling. 159 | -------------------------------------------------------------------------------- /conflict-notes/msm-4.4/kernel.lnx.4.4.r27-rel.md: -------------------------------------------------------------------------------- 1 | 4.4.78 to 4.4.105 2 | 3 | * `drivers/android/binder.c` 4 | 5 | * **Resolution:** Take left side (discard all changes) 6 | 7 | * **Causes:** 8 | 9 | * Commit [`596b97ec2e5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=596b97ec2e5e24c966b9cb4aa9a9766e53ecdd43) ("binder: use group leader instead of open thread") is already present as commit [`9036bcc59e36`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9036bcc59e36952da230f31187b1ab2f866ebfae) ("binder: use group leader instead of open thread") and commit [`359795138dc5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=359795138dc5440e09c58025e28ec1b38d648c09) ("binder: use group leader instead of open thread") and there have been other changes to this section since then. 10 | 11 | * Commit [`1792d6c17cb2`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1792d6c17cb282fd8e5cd197a8b33cb78484eb6a) ("binder: Use wake up hint for synchronous transactions.") is already present as commit [`0cebb407b2f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0cebb407b2f431d748d9cc85cf7e4232a9223342) ("FROMLIST: binder: Use wake up hint for synchronous transactions.") and commit [`3956eabb34de`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3956eabb34de6b24bdbe90013c7567867bb139ea) ("android: binder: Use wake up hint for synchronous transactions.") and there have been other changes to this section since then. 12 | 13 | * Commit [`9dac44d5d4b0`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=9dac44d5d4b0a7fffe04ad505e0a082e900ad767) ("ANDROID: binder: fix proc->tsk check.") was included as part of commit [`9036bcc59e36`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9036bcc59e36952da230f31187b1ab2f866ebfae) ("binder: use group leader instead of open thread"). 14 | 15 | 16 | * `drivers/gpu/drm/msm/adreno/adreno_gpu.c` 17 | 18 | * **Resolution:** Take left side (discard all changes) 19 | 20 | * **Cause:** Commit [`b54e58ccceb7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b54e58ccceb794176b37037e76df3a7ed876b360) ("drm/msm: Ensure that the hardware write pointer is valid") is already present as commit [`7d080736a4b4`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=7d080736a4b4601a16a2d81a4537d0202fc05157) ("drm/msm: Make sure that WPTR stays in bounds") and there have been other changes to this section since then. 21 | 22 | 23 | * `drivers/gpu/drm/msm/msm_gem_submit.c` 24 | 25 | * **Resolution:** Take right side (reworked upstream version) for first, take left side for others 26 | 27 | * **Cause:** 28 | 29 | * Commit [`ded34f97234`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ded34f972348b0f252256bee161839c1aa5d8ae4) ("drm/msm: fix an integer overflow test") has to be changed to work around the extra `nr` variable (added in commit [`c9d1b0f37a99`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=c9d1b0f37a99eb67d5f96e20ea37d7953558ce3c) ("drm/msm: deal with arbitrary # of cmd buffers"). 30 | 31 | * Commit [`031b02bc16ae`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=031b02bc16aeeb34c8038026cbbca1e6430c9d75) ("drm/msm: Fix potential buffer overflow issue") is already present as commit [`a61bcfad3278`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=a61bcfad32789785760c516299035d4c28e85670) ("drm/msm: Fix potential buffer overflow issue") and there have been other changes to this section since then. 32 | 33 | * Commit [`7de922c14e83`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7de922c14e838c46b3ce3ff4719bbb82ee307e8d) ("drm/msm: Verify that MSM_SUBMIT_BO_FLAGS are set") is already present as commit [`ef41564a3e4a`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=ef41564a3e4af0c3c101fae76f77b3ea65aca5be) ("drm/msm: Make sure that MSM_SUBMIT_BO_FLAGS are set"). 34 | 35 | 36 | * `drivers/gpu/drm/msm/msm_ringbuffer.c` 37 | 38 | * **Resolution:** Take left side (discard all changes) 39 | 40 | * **Cause:** The power of 2 alignment check in commit [`b54e58ccceb7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b54e58ccceb794176b37037e76df3a7ed876b360) ("drm/msm: Ensure that the hardware write pointer is valid") is already present in commit [`378583458fa1`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=378583458fa167277b15d145dccce253459393ec) ("drm/msm: Add support for multiple ringbuffers") and there have been other changes to this section since then. 41 | 42 | 43 | * `drivers/mmc/core/bus.c` 44 | 45 | * **Resolution:** Take left side (discard all changes) 46 | 47 | * **Cause:** Commit [`5c65b739389f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5c65b739389fbc353fb42d379e9b7379cfe6d3f6) ("mmc: core: Do not leave the block driver in a suspended state") was already resolved by [`192cfe16ca57`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=192cfe16ca5761bb7a5aafc016e79a21b2bd4002) ("mmc: bus: Handle error in case bus_ops suspend fails") but the latter has an extra comment block so git could not tell the fix was already present. 48 | 49 | 50 | * `drivers/net/wireless/ath/ath10k/core.c` 51 | 52 | * **Resolution:** Take left side (discard conflict) 53 | 54 | * **Cause:** Commit [`2c65494080c9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=2c65494080c900c8a0aa4a865b57a8001960ff26) ("ath10k: fix memory leak in rx ring buffer allocation") is already present as commit [`69a6025f67b4`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=69a6025f67b41a3b03e165db46ea7d346a45ae81) ("ath10k: fix memory leak in rx ring buffer allocation") and the former did not account for commit [`9eaeb4e0974b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9eaeb4e0974b976a037b7c55f0fe409bccbb7fdd) ("ath10k: fix spurious tx/rx during boot"), which was added by CAF to 4.4 (since it didn't appear upstream until v4.8-rc2). 55 | 56 | 57 | * `drivers/scsi/sg.c` 58 | 59 | * **Solution:** Take both sides (make final diff match upstream's) 60 | 61 | * **Cause:** Commit [`a4075bbb67b9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a4075bbb67b9562b9599affc6fb38f04bd7073ff) ("scsi: sg: protect accesses to 'reserved' page array") did not expect the mutex statement added by commit [`00d6789fbf2f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=00d6789fbf2f1a371f8f80230e9a9eea35ef376e) ("Prevent potential double frees in sg driver"). 62 | 63 | 64 | * `drivers/scsi/ufs/ufshcd.h` 65 | 66 | * **Solution:** Take left side (discard all changes) 67 | 68 | * **Cause:** Commit [`0c098158785b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=0c098158785b5c8091c0bae3aa505060414076cc) ("scsi: ufs: add capability to keep auto bkops always enabled") is already present as commit [`9f06dddf5bee`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9f06dddf5beecbcdf36535e0e587c23aaa7785f5) ("scsi: ufs: add capability to keep auto bkops always enabled") with a different shift value. 69 | 70 | 71 | * `drivers/usb/core/config.c` 72 | 73 | * **Resolution:** Take both sides (make final diff match upstream's) 74 | 75 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 76 | 77 | 78 | * `fs/ext4/crypto_key.c` 79 | 80 | * **Resolution:** Take right side (make final diff match upstream's) 81 | 82 | * **Cause:** Commit [`b47135257c42`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=b47135257c42a70a26247b05ff0ab42b6ad8fc8a) ("Merge branch 'android-4.4@c71ad0f' into branch 'msm-4.4'") omitted commit [`7a5202190810`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7a5202190810dde1467718235c1f650fcf57592a) ("fscrypt: remove broken support for detecting keyring key revocation"), which included the if statement right over the section that is modified by commit [`91bd72dd8c72`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=91bd72dd8c72c603132bbbfd348a4216b8c83f58) ("fscrypt: lock mutex before checking for bounce page pool"). 83 | 84 | 85 | * `fs/f2fs/crypto_key.c` 86 | 87 | * **Resolution:** Take right side (mainline version) 88 | 89 | * **Cause:** Commit [`4db9f1113196`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=4db9f1113196e7b4df4e754e7e770b22aee81c01) ("f2fs crypto: replace some BUG_ON()'s with error checks") conflicts with commit [`26bf3dc7e25b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=26bf3dc7e25b813ff5c92234f8165941fdc12a63) ("f2fs crypto: use per-inode tfm structure") because the latter is not in 4.4 upstream (it was added by CAF). Use the version from mainline, commit [`66aa3e1274fc`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=66aa3e1274fcf887e9d6501a68163270fc7718e7) ("f2fs crypto: replace some BUG_ON()'s with error checks"). 90 | 91 | 92 | * `include/linux/usb.h` 93 | 94 | * **Resolution:** Take both sides (make final diff match upstream's) 95 | 96 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 97 | 98 | 99 | * `include/uapi/linux/usb/ch9.h` 100 | 101 | * **Resolution:** Take both sides (make final diff match upstream's) 102 | 103 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 104 | 105 | 106 | * `kernel/power/process.c` 107 | 108 | * **Resolution:** Take both sides 109 | 110 | * **Cause:** Commit [`57caa2ad5ce3`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=57caa2ad5ce35bedb7ab374a2e5b4d7adf63da2b) ("power: Adds functionality to log the last suspend abort reason.") added an include, which was not expected by commit [`90fd6738731b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=90fd6738731b6d105fc8f04832ae17a9ac82c05c) ("sched/cpuset/pm: Fix cpuset vs. suspend-resume bugs"). 111 | 112 | 113 | * `kernel/sched/sched.h` 114 | 115 | * **Resolution:** Take left side (discard all changes) 116 | 117 | * **Cause:** Commit [`62208707b466`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=62208707b466cc3c6ce951a7c4b7b4bb9b9192f6) ("sched/cputime: Fix prev steal time accouting during CPU hotplug") is already present as commit [`3366a508ffb6`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3366a508ffb6b0698dd309d1ca19a66522b886b1) ("Revert "sched/cputime: Fix steal time accounting vs. CPU hotplug"") and there have been a few commits to this section since then, namely commit [`f02702dcf231`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=f02702dcf231c3258aabd702023286f6c01aaa21) ("sched: backport cpufreq hooks from 4.9-rc4"). 118 | 119 | 120 | * `mm/debug-pagealloc.c` 121 | 122 | * **Resolution:** Take left side (discard all changes) 123 | 124 | * **Cause:** Commit [`5c69adad61e2`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=5c69adad61e27f467fa8e1671633e455741e3fae) ("mm/page_poison.c: enable PAGE_POISONING as a separate option") renamed this file to `mm/page_poison.c`. Commit [`e34e744f70a6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e34e744f70a68f8f16f945a286802898c56a8b5a) ("mm: check the return value of lookup_page_ext for all call sites") does not apply to `mm/page_poison.c` as there are no more instances of `lookup_page_ext` in that file after commit [`49118fe6a32a`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=49118fe6a32a49d198128a6dd1d6bfd0e3b189f8) ("mm: enable page poisoning early at boot"). 125 | 126 | * `mm/migrate.c` 127 | 128 | * **Resolution:** Take both sides 129 | 130 | * **Cause:** Commit [`e91e9112cb03`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e91e9112cb03570cf572365bfdaeacd1c13a3dbd) ("mm, page_owner: copy page owner info during migration") added an include, which was not expected by commit [`46d51a26efbc`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=46d51a26efbc7cbaa2bc1f01628a00a604193856) ("Sanitize 'move_pages()' permission checks"). 131 | 132 | 133 | * `mm/page_ext.c` 134 | 135 | * **Resolution:** Take right side 136 | 137 | * **Cause:** Commit [`2c00b603db67`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=2c00b603db67af40aa0b02c834cc58fec98d3023) ("mm/page_poisoning.c: allow for zero poisoning") added an extra condition to this block that commit [`3630b2801907`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=3630b28019075639a9db00491349e05fbf0f901e) ("mm/page_ext.c: check if page_ext is not prepared") did not expect. 138 | 139 | 140 | * `mm/page_owner.c` 141 | 142 | * **Resolution:** Take left side (discard all changes) 143 | 144 | * **Cause:** Commit [`e34e744f70a6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e34e744f70a68f8f16f945a286802898c56a8b5a) ("mm: check the return value of lookup_page_ext for all call sites") is already present as commit [`acda305dcb54`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=acda305dcb5474a401753912db382358b3436ab9) ("mm: check the return value of lookup_page_ext for all call sites") and there have been several changes to this file since then. 145 | 146 | 147 | * `net/wireless/nl80211.c` 148 | 149 | * **Resolution:** Take left side 150 | 151 | * **Cause:** Commit [`6a6c61d8467d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=6a6c61d8467d2dd7059b7d52773c18f8122e4f68) ("nl80211: Define policy for packet pattern attributes") is already present as commit [`b084c13dfb8f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=b084c13dfb8f9081192dc7168a94d48f419d09fc) ("nl80211: Define policy for packet pattern attributes") and the former did not account for commit [`3fee1ede34a6`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3fee1ede34a6c3b2dd7d816643e887c2308f6a78) ("nl80211: add feature for BSS selection support") being present. 152 | 153 | 154 | * `sound/usb/card.c` 155 | 156 | * **Resolution:** Take right side (shuffle resolution) 157 | 158 | * **Cause:** Commit [`2ecedf5dc75b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=2ecedf5dc75bc770ec09bd2238e798063aeafc4b) ("sound: usb: Add support for parsing AudioStreaming intf for BADD devices") shuffled the function `snd_usb_create_streams`, which commit [`46c7b1fa4911`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=46c7b1fa4911a859a82575e3ffb55b34a89a222d) ("ALSA: usb-audio: Check out-of-bounds access by corrupted buffer descriptor") did not expect. Resolution is identical but has been moved into the `switch` statement to satisfy the changes made by CAF's shuffling. 159 | 160 | 161 | # 4.4.106 162 | 163 | * `arch/arm/include/asm/kvm_arm.h` 164 | 165 | * **Resolution:** Take right side (use mainline diff) 166 | 167 | * **Cause:** When mainline commit [`5553b142be11`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5553b142be11e794ebc0805950b2e8313f93d718) ("arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one") was backported as commit [`a5fa9efe4e01`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a5fa9efe4e019e1f8f213142836c84f010cc4faf) ("arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one") in the 4.4 tree, it did not expect mainline commit [`8420dcd37ef3`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8420dcd37ef34040c8fc5a27bf66887b3b2faf80) ("arm: KVM: Make kvm_arm.h friendly to assembly code") to be here, as it was introduced in 4.5. However, it is as commit [`516f3f777e5f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=516f3f777e5fb0710f1626c79e3dacca751b8c30) ("arm: KVM: Make kvm_arm.h friendly to assembly code") so we can just use mainline's version. 168 | 169 | 170 | # 4.4.109 171 | 172 | * `net/ipv4/raw.c` 173 | 174 | * **Resolution:** Take right side (make final diff match upstream's) 175 | 176 | * **Cause:** When mainline commit [`8f659a03a0ba`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8f659a03a0ba9289b9aeb9b4470e6fb263d6f483) ("net: ipv4: fix for a race condition in raw_sendmsg") was backported to the 4.4 stable tree as commit [`be27b620a861`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=be27b620a861dc2a143b78e81e23f5622d9105da), it was slightly changed because mainline commit [`e2d118a1cb5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e2d118a1cb5e60d077131a09db1d81b90a5295fe) ("net: inet: Support UID-based routing in IP protocols.") is not present in the stable 4.4 tree. However, since CAF merged kernel/common from Google, it is present as commit [`344afd627cca`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=344afd627cca0223464079135926f611fdbb0574) ("net: inet: Support UID-based routing in IP protocols.") so adjust the diff to account for this (final diff matches both the stable and mainline commit). 177 | 178 | 179 | # 4.4.110 180 | 181 | * `kernel/fork.c` 182 | 183 | * **Resolution:** Take both sides 184 | 185 | * **Cause:** The commits to `kernel/fork.c` (viewable by running `git log v4.4.109..v4.4.110 kernel/fork.c`) were not expecting the changes from commit [`dae9a397e1d3`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=dae9a397e1d3d92b6f44f248972350cbc16828b5) ("kernel: fork: Call KASan alloc before release the thread info pages"). 186 | 187 | 188 | # 4.4.113 189 | 190 | * `arch/x86/include/asm/thread_info.h` 191 | 192 | * **Resolution:** Take right side (make final diff match upstream's) 193 | 194 | * **Cause:** The addition of commit [`fdb92b0de361`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=fdb92b0de361f9043f359a1de52e2bedd9da4599) ("mm: Implement stack frame object validation") prevented git from cleanly applying stable commit [`cfc8c1d61e46`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=cfc8c1d61e46fd3c60a34a5b1962eeeb03222a3d) ("x86/asm: Use register variable to get stack pointer value"). 195 | 196 | 197 | # 4.4.115 198 | 199 | * `drivers/usb/gadget/function/f_fs.c` 200 | 201 | * **Resolution:** Take left side (discard all changes) 202 | 203 | * **Cause:** Stable commit [`68b43caf4a4b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=68b43caf4a4b98256bdb67dba025f858bdf21725) ("usb: f_fs: Prevent gadget unbind if it is already unbound") is already present as commit [`35fdb9cd7e90`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=35fdb9cd7e90c08ac9697fa330e4e290b9d34f8a) ("usb: f_fs: Prevent gadget unbind if it is already unbound") with a slightly different resolution so it could not be cleanly resolved. 204 | 205 | 206 | # 4.4.118 207 | 208 | * `net/Kconfig` 209 | 210 | * **Resolution:** Take both sides (make final diff match upstream's) 211 | 212 | * **Cause:** Stable commit [`d365b297433c`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d365b297433cf2969fa94f243d7afddc073c7bf1) ("net: add dst_cache support") was not expecting the change to this file from commit [`016c030cc678`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=016c030cc67882b2143fc8098afa471c8bf33bdf) ("net: ipc_router: Add snapshot of IPC Router") to be present. 213 | 214 | * `net/core/Makefile` 215 | 216 | * **Resolution:** Take both sides (make final diff match upstream's) 217 | 218 | * **Cause:** Stable commit [`d365b297433c`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d365b297433cf2969fa94f243d7afddc073c7bf1) ("net: add dst_cache support") was not expecting the change to this file from commit [`274f3cfdd0a0`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=274f3cfdd0a0a14a73b510405cc6fc91abee74e0) ("net: sockev: Initial Commit") to be present. 219 | 220 | 221 | # 4.4.124 222 | 223 | * `drivers/gpu/drm/msm/msm_gem.c` 224 | 225 | * **Resolution:** Take left side (discard all changes) 226 | 227 | * **Cause:** Stable commit [`c1b1c1af967a`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=c1b1c1af967a84e986a9e893b4eebf6f7a40045c) ("drm/msm: fix leak in failed get_pages") is already present in this tree as commit [`0bcaa07af26c`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0bcaa07af26c3748fe4f838f69f2234b047bdb25) ("drm/msm: fix leak in failed get_pages"). Due to changes around each husk, git couldn't give a clean resolution. 228 | 229 | * `drivers/net/wireless/ath/regd.c` 230 | 231 | * **Resolution:** Take modified right side (make final diff match upstream's) 232 | 233 | * **Cause:** Commit [`92072eb888a2`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=92072eb888a2117ac532a4bf44a70e4a443d3075) ("ath10k: Update world regulatory rules") trivially conflicts with commit [`597457667513`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=597457667513e7412989e3395044ac7ae8c2d9fb) ("ath: Fix updating radar flags for coutry code India"). Make the two coexist. 234 | 235 | 236 | # 4.4.125 237 | 238 | * `arch/arm64/mm/mmu.c` 239 | 240 | * **Resolution:** Take both sides (make final diff match upstream's) 241 | 242 | * **Cause:** The backport of mainline commit [`b6bdb7517c3d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e) ("mm/vmalloc: add interfaces to free unmapped page table"), stable commit [`31895cfd7956`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=31895cfd79564111cdd5a9f48c5d491ae26a238e) ("mm/vmalloc: add interfaces to free unmapped page table"), was not expecting commit [`324420bf91f6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=324420bf91f60582bb481133db9547111768ef17) ("arm64: add support for ioremap() block mappings") to be present; however, it is in this tree as commit [`37cbc7db8e4f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=37cbc7db8e4fa9b66e15cf8661383a6b51c9a3e7) ("arm64: add support for ioremap() block mappings") so adjust the context to match mainline's version. 243 | -------------------------------------------------------------------------------- /conflict-notes/op3/oneplus-QC8996_O_8.0.0.md: -------------------------------------------------------------------------------- 1 | # 3.18.66 to 3.18.92 2 | 3 | 4 | * `Makefile` 5 | 6 | * **Resolution:** Take right side 7 | 8 | * **Cause:** CAF's upgrade from 3.18.63 to 3.18.66 was squashed in commit [`8cc3973a1385`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/commit/8cc3973a13855b9040c89e5d85572ab4e7c1d5db) ("Synchronize codes for OxygenOS 5.0.0"). 9 | 10 | 11 | * `drivers/gpu/drm/msm/msm_gem_submit.c` 12 | 13 | * **Resolution:** Take right side 14 | 15 | * **Cause:** 16 | 17 | * Commit [`77336ca65ccf`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=77336ca65ccf544bbca59d55b0a1bb10bf420fe3) ("drm/msm: fix an integer overflow test") had to be changed to work around the extra `nr` variable, added in commit [`f81b352dbb7f`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=f81b352dbb7f8ecd938527e2c8da7523b8ea63eb) ("drm/msm: Don't limit number of GPU commands"). 18 | 19 | * Commit [`f449835963f4`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=f449835963f47a3755d2f893a49928cf8d7ca58e) ("drm/msm: Fix potential buffer overflow issue") is already present as commit [`9be5b16de622`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=9be5b16de622c2426408425e3df29e945cd21d37) ("drm/msm: Fix potential buffer overflow issue". 20 | 21 | 22 | * `drivers/net/usb/qmi_wwan.c`, `drivers/usb/class/cdc-acm.c`, `drivers/usb/core/quirks.c`, `drivers/usb/serial/cp210x.c`, `drivers/usb/serial/option.c`, `drivers/usb/serial/qcserial.c`, and `sound/usb/quirks.c` 23 | 24 | * **Resolution:** Take right side (make final diff match upstream's) 25 | 26 | * **Cause:** The changes to these files were omitted by CAF during the merge up to 3.18.66 (every merge commit message states that USB changes were completely ignored). 27 | 28 | 29 | * `fs/f2fs/super.c` 30 | 31 | * **Resolution:** Take left side (discard all changes) 32 | 33 | * **Cause:** Stable commit [`64133595b549`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=64133595b549c1036ffe8598f4c53aa355d9e3f1) ("f2fs: sanity check checkpoint segno and blkoff") is already present in this tree as a part of OnePlus commit [`8cc3973a1385`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/commit/8cc3973a13855b9040c89e5d85572ab4e7c1d5db) ("Synchronize codes for OxygenOS 5.0.0") and the addition of mainline commit [`2040fce83fe1`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=2040fce83fe17763b07c97c1f691da2bb85e4135) ("f2fs: detect wrong layout") prevented git from resolving cleanly. 34 | 35 | 36 | * `include/linux/workqueue.h` 37 | 38 | * **Resolution:** Take right side 39 | 40 | * **Cause:** Stable commit [`06114f074b92`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=06114f074b92f87eeaf12e2560362a2105a1d5b3) ("workqueue: implicit ordered attribute should be overridable") is already present in this tree as part of OnePlus commit [`8cc3973a1385`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/commit/8cc3973a13855b9040c89e5d85572ab4e7c1d5db) ("Synchronize codes for OxygenOS 5.0.0") but the follow up fix in commit [`18f9ff5c8ad5`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=18f9ff5c8ad53a70aff203d79dc76fada3829101) ("workqueue: Fix flag collision") is not, meaning git couldn't resolve cleanly. 41 | 42 | 43 | * `mm/cma.c` 44 | 45 | * **Resolution:** Take modified right side (make diff match upstream's) 46 | 47 | * **Cause:** CAF commits [`263a20e2ca96`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=263a20e2ca967e1e68c1e7a87fa5c4cd882f8c81) ("mm: cma: sleep between retries in cma_alloc"), [`4d24f88f41ff`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=4d24f88f41ffce3195bd6f0faf16cd4bd5c66b27) ("cma: skip kmemleak for common cma region"), and [`91d62943f4e2`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=91d62943f4e2dcfeb3c1163900d67114fa9ec8c9) ("mm: cma: add trace events for CMA allocations and freeings") added various includes and changes to this file. 48 | 49 | 50 | * `net/ipv4/raw.c` 51 | 52 | * **Resolution:** Take right side (make final diff match upstream's) 53 | 54 | * **Cause:** When mainline commit [`8f659a03a0ba`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8f659a03a0ba9289b9aeb9b4470e6fb263d6f483) ("net: ipv4: fix for a race condition in raw_sendmsg") was backported to the 3.18 stable tree as commit [`000c7141a1fe`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=000c7141a1feace09bf4c0f65008e51fa69ecede), it was slightly changed because mainline commit [`e2d118a1cb5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e2d118a1cb5e60d077131a09db1d81b90a5295fe) ("net: inet: Support UID-based routing in IP protocols.") is not present in the stable 3.18 tree. However, since CAF merged kernel/common from Google, it is present as commit [`04c0eace816f`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=04c0eace816f2b2c33830ec7f5e882de674841ae) ("net: inet: Support UID-based routing in IP protocols.") so adjust the diff to account for this (final diff matches both the stable and mainline commit). 55 | 56 | 57 | * `net/ipv6/output_core.c` 58 | 59 | * **Resolution:** Take right side 60 | 61 | * **Cause:** The history of 3.18.64 that contained stable commit [`41d33a5b803b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=41d33a5b803bd1c3ca84f5bfb9ab77d06ce09fca) ("ipv6: avoid overflow of offset in ip6_find_1stfragopt") was lost in OnePlus commit [`8cc3973a1385`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/commit/8cc3973a13855b9040c89e5d85572ab4e7c1d5db) ("Synchronize codes for OxygenOS 5.0.0"), causing the application of stable commit [`51ef0b663c13`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=51ef0b663c13cffbc1cc74102122bd4013726c1b) ("ipv6: accept 64k - 1 packet length in ip6_find_1stfragopt()") to fail. 62 | 63 | 64 | * `net/ipv4/raw.c` 65 | 66 | * **Resolution:** Take right side (make final diff match upstream's) 67 | 68 | * **Cause:** When mainline commit [`8f659a03a0ba`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8f659a03a0ba9289b9aeb9b4470e6fb263d6f483) ("net: ipv4: fix for a race condition in raw_sendmsg") was backported to the 3.18 stable tree as commit [`000c7141a1fe`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=000c7141a1feace09bf4c0f65008e51fa69ecede), it was slightly changed because mainline commit [`e2d118a1cb5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e2d118a1cb5e60d077131a09db1d81b90a5295fe) ("net: inet: Support UID-based routing in IP protocols.") is not present in the stable 3.18 tree. However, since CAF merged kernel/common from Google, it is present as commit [`04c0eace816f`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=04c0eace816f2b2c33830ec7f5e882de674841ae) ("net: inet: Support UID-based routing in IP protocols.") so adjust the diff to account for this (final diff matches both the stable and mainline commit). 69 | 70 | 71 | * `net/sched/act_ipt.c` 72 | 73 | * **Resolution:** Take right side 74 | 75 | * **Cause:** The history of 3.18.65 that contained stable commit [`74926bfeaf9b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=74926bfeaf9bab3f6a6bedaef5ff79d32bd38c1a) ("net: sched: set xt_tgchk_param par.nft_compat as 0 in ipt_init_target") was lost in OnePlus commit [`8cc3973a1385`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/commit/8cc3973a13855b9040c89e5d85572ab4e7c1d5db) ("Synchronize codes for OxygenOS 5.0.0"), causing the application of stable commit [`28ae858736a4`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=28ae858736a42b37ff4352e3cb46e4a9e9299d2f) ("net: sched: fix NULL pointer dereference when action calls some targets") to fail. 76 | 77 | 78 | # 3.18.94 79 | 80 | * `drivers/input/input.c` 81 | 82 | * **Resolution:** Take left side (discard all changes) 83 | 84 | * **Cause:** Commit [`33fd368597ad`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=33fd368597ad615f9f7232ca9daa3ed3fdba1516) is already present in this tree as commit [`b7e92bfe94d1`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit?id=b7e92bfe94d17178fea6c12552ab5fbafd48ad96) but git couldn't tell because the context of the stable version was adjusted due to absence of mainline commit [`3e2b03dad54b`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3e2b03dad54bbcab5be948629a644d55ce7b5a2e), which is present in our tree as commit [`f4497aed6014`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit?id=f4497aed6014730521b7736db0139ebb6fadeee5). The version in our tree is identical to mainline commit [`00159f19a505`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=00159f19a5057cb779146afce1cceede692af346) so no changes are necessary. 85 | 86 | 87 | * `drivers/usb/gadget/function/f_fs.c` 88 | 89 | * **Resolution:** Take left side (discard all changes) 90 | 91 | * **Cause:** Commit [`3e6a2db8df25`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit?id=3e6a2db8df258fc6d609a2827d0e0cbe30fbbce0) removed the statement modified by stable commmit [`512b79f1410f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=512b79f1410fd05c2c7f2aab9fb4b0050560db89). 92 | 93 | 94 | # 3.18.102 95 | 96 | * `drivers/gpu/drm/msm/msm_gem.c` 97 | 98 | * **Resolution:** Take left side (discard all changes) 99 | 100 | * **Cause:** Commits [`46a5a5fd5fff`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=46a5a5fd5fffffaebfe1867396af0d653375c053) ("drm:msm move GEM back buffer from SHMEM to DMA") and [`a47d70392fcd`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=a47d70392fcdf0cf55daff156164e984383d63ff) ("drm:msm Fix issue of iommu unmap fails") heavily changed the area modified by stable commit [`1fa04de1af73`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1fa04de1af73874d7e0ef4ca7b91e513a2023f8f) ("drm/msm: fix leak in failed get_pages"). 101 | -------------------------------------------------------------------------------- /conflict-notes/op3/oneplus-QC8996_O_8.0.0_Beta.md: -------------------------------------------------------------------------------- 1 | # 3.18.66 to 3.18.92 2 | 3 | 4 | * `Makefile` 5 | 6 | * **Resolution:** Take right side 7 | 8 | * **Cause:** CAF's upgrade from 3.18.63 to 3.18.66 was squashed in commit [`8cc3973a1385`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/commit/8cc3973a13855b9040c89e5d85572ab4e7c1d5db) ("Synchronize codes for OxygenOS 5.0.0"). 9 | 10 | 11 | * `drivers/gpu/drm/msm/msm_gem_submit.c` 12 | 13 | * **Resolution:** Take right side 14 | 15 | * **Cause:** 16 | 17 | * Commit [`77336ca65ccf`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=77336ca65ccf544bbca59d55b0a1bb10bf420fe3) ("drm/msm: fix an integer overflow test") had to be changed to work around the extra `nr` variable, added in commit [`f81b352dbb7f`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=f81b352dbb7f8ecd938527e2c8da7523b8ea63eb) ("drm/msm: Don't limit number of GPU commands"). 18 | 19 | * Commit [`f449835963f4`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=f449835963f47a3755d2f893a49928cf8d7ca58e) ("drm/msm: Fix potential buffer overflow issue") is already present as commit [`9be5b16de622`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=9be5b16de622c2426408425e3df29e945cd21d37) ("drm/msm: Fix potential buffer overflow issue". 20 | 21 | 22 | * `drivers/net/usb/qmi_wwan.c`, `drivers/usb/class/cdc-acm.c`, `drivers/usb/core/quirks.c`, `drivers/usb/serial/cp210x.c`, `drivers/usb/serial/option.c`, `drivers/usb/serial/qcserial.c`, and `sound/usb/quirks.c` 23 | 24 | * **Resolution:** Take right side (make final diff match upstream's) 25 | 26 | * **Cause:** The changes to these files were omitted by CAF during the merge up to 3.18.66 (every merge commit message states that USB changes were completely ignored). 27 | 28 | 29 | * `fs/f2fs/super.c` 30 | 31 | * **Resolution:** Take left side (discard all changes) 32 | 33 | * **Cause:** Stable commit [`64133595b549`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=64133595b549c1036ffe8598f4c53aa355d9e3f1) ("f2fs: sanity check checkpoint segno and blkoff") is already present in this tree as a part of OnePlus commit [`326c14d87412`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/commit/326c14d87412a5e1f6c5090010f8657901191169) ("Synchronize codes for OP3_O2_Open_27 && OP3T_O2_Open_1") and the addition of mainline commit [`2040fce83fe1`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=2040fce83fe17763b07c97c1f691da2bb85e4135) ("f2fs: detect wrong layout") prevented git from resolving cleanly. 34 | 35 | 36 | * `include/linux/workqueue.h` 37 | 38 | * **Resolution:** Take right side 39 | 40 | * **Cause:** Stable commit [`06114f074b92`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=06114f074b92f87eeaf12e2560362a2105a1d5b3) ("workqueue: implicit ordered attribute should be overridable") is already present in this tree as part of OnePlus commit [`326c14d87412`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/commit/326c14d87412a5e1f6c5090010f8657901191169) ("Synchronize codes for OP3_O2_Open_27 && OP3T_O2_Open_1") but the follow up fix in commit [`18f9ff5c8ad5`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=18f9ff5c8ad53a70aff203d79dc76fada3829101) ("workqueue: Fix flag collision") is not, meaning git couldn't resolve cleanly. 41 | 42 | 43 | * `mm/cma.c` 44 | 45 | * **Resolution:** Take modified right side (make diff match upstream's) 46 | 47 | * **Cause:** CAF commits [`263a20e2ca96`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=263a20e2ca967e1e68c1e7a87fa5c4cd882f8c81) ("mm: cma: sleep between retries in cma_alloc"), [`4d24f88f41ff`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=4d24f88f41ffce3195bd6f0faf16cd4bd5c66b27) ("cma: skip kmemleak for common cma region"), and [`91d62943f4e2`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=91d62943f4e2dcfeb3c1163900d67114fa9ec8c9) ("mm: cma: add trace events for CMA allocations and freeings") added various includes and changes to this file. 48 | 49 | 50 | * `net/ipv4/raw.c` 51 | 52 | * **Resolution:** Take right side (make final diff match upstream's) 53 | 54 | * **Cause:** When mainline commit [`8f659a03a0ba`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8f659a03a0ba9289b9aeb9b4470e6fb263d6f483) ("net: ipv4: fix for a race condition in raw_sendmsg") was backported to the 3.18 stable tree as commit [`000c7141a1fe`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=000c7141a1feace09bf4c0f65008e51fa69ecede), it was slightly changed because mainline commit [`e2d118a1cb5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e2d118a1cb5e60d077131a09db1d81b90a5295fe) ("net: inet: Support UID-based routing in IP protocols.") is not present in the stable 3.18 tree. However, since CAF merged kernel/common from Google, it is present as commit [`04c0eace816f`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=04c0eace816f2b2c33830ec7f5e882de674841ae) ("net: inet: Support UID-based routing in IP protocols.") so adjust the diff to account for this (final diff matches both the stable and mainline commit). 55 | 56 | 57 | * `net/ipv6/output_core.c` 58 | 59 | * **Resolution:** Take right side 60 | 61 | * **Cause:** The history of 3.18.64 that contained stable commit [`41d33a5b803b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=41d33a5b803bd1c3ca84f5bfb9ab77d06ce09fca) ("ipv6: avoid overflow of offset in ip6_find_1stfragopt") was lost in OnePlus commit [`8cc3973a1385`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/commit/8cc3973a13855b9040c89e5d85572ab4e7c1d5db) ("Synchronize codes for OxygenOS 5.0.0"), causing the application of stable commit [`51ef0b663c13`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=51ef0b663c13cffbc1cc74102122bd4013726c1b) ("ipv6: accept 64k - 1 packet length in ip6_find_1stfragopt()") to fail. 62 | 63 | 64 | * `net/ipv4/raw.c` 65 | 66 | * **Resolution:** Take right side (make final diff match upstream's) 67 | 68 | * **Cause:** When mainline commit [`8f659a03a0ba`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8f659a03a0ba9289b9aeb9b4470e6fb263d6f483) ("net: ipv4: fix for a race condition in raw_sendmsg") was backported to the 3.18 stable tree as commit [`000c7141a1fe`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=000c7141a1feace09bf4c0f65008e51fa69ecede), it was slightly changed because mainline commit [`e2d118a1cb5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e2d118a1cb5e60d077131a09db1d81b90a5295fe) ("net: inet: Support UID-based routing in IP protocols.") is not present in the stable 3.18 tree. However, since CAF merged kernel/common from Google, it is present as commit [`04c0eace816f`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=04c0eace816f2b2c33830ec7f5e882de674841ae) ("net: inet: Support UID-based routing in IP protocols.") so adjust the diff to account for this (final diff matches both the stable and mainline commit). 69 | 70 | 71 | * `net/sched/act_ipt.c` 72 | 73 | * **Resolution:** Take right side 74 | 75 | * **Cause:** The history of 3.18.65 that contained stable commit [`74926bfeaf9b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=74926bfeaf9bab3f6a6bedaef5ff79d32bd38c1a) ("net: sched: set xt_tgchk_param par.nft_compat as 0 in ipt_init_target") was lost in OnePlus commit [`326c14d87412`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/commit/326c14d87412a5e1f6c5090010f8657901191169) ("Synchronize codes for OP3_O2_Open_27 && OP3T_O2_Open_1"), causing the application of stable commit [`28ae858736a4`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=28ae858736a42b37ff4352e3cb46e4a9e9299d2f) ("net: sched: fix NULL pointer dereference when action calls some targets") to fail. 76 | 77 | 78 | # 3.18.94 79 | 80 | * `drivers/input/input.c` 81 | 82 | * **Resolution:** Take left side (discard all changes) 83 | 84 | * **Cause:** Commit [`33fd368597ad`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=33fd368597ad615f9f7232ca9daa3ed3fdba1516) is already present in this tree as commit [`b7e92bfe94d1`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit?id=b7e92bfe94d17178fea6c12552ab5fbafd48ad96) but git couldn't tell because the context of the stable version was adjusted due to absence of mainline commit [`3e2b03dad54b`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3e2b03dad54bbcab5be948629a644d55ce7b5a2e), which is present in our tree as commit [`f4497aed6014`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit?id=f4497aed6014730521b7736db0139ebb6fadeee5). The version in our tree is identical to mainline commit [`00159f19a505`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=00159f19a5057cb779146afce1cceede692af346) so no changes are necessary. 85 | 86 | 87 | * `drivers/usb/gadget/function/f_fs.c` 88 | 89 | * **Resolution:** Take left side (discard all changes) 90 | 91 | * **Cause:** Commit [`3e6a2db8df25`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit?id=3e6a2db8df258fc6d609a2827d0e0cbe30fbbce0) removed the statement modified by stable commmit [`512b79f1410f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=512b79f1410fd05c2c7f2aab9fb4b0050560db89). 92 | 93 | 94 | # 3.18.102 95 | 96 | * `drivers/gpu/drm/msm/msm_gem.c` 97 | 98 | * **Resolution:** Take left side (discard all changes) 99 | 100 | * **Cause:** Commits [`46a5a5fd5fff`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=46a5a5fd5fffffaebfe1867396af0d653375c053) ("drm:msm move GEM back buffer from SHMEM to DMA") and [`a47d70392fcd`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit/?id=a47d70392fcdf0cf55daff156164e984383d63ff) ("drm:msm Fix issue of iommu unmap fails") heavily changed the area modified by stable commit [`1fa04de1af73`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1fa04de1af73874d7e0ef4ca7b91e513a2023f8f) ("drm/msm: fix leak in failed get_pages"). 101 | -------------------------------------------------------------------------------- /conflict-notes/op5/oneplus-QC8998_O_8.0.md: -------------------------------------------------------------------------------- 1 | # 4.4.78 to 4.4.105 2 | 3 | * `drivers/android/binder.c` 4 | 5 | * **Resolution:** Take left side (discard all changes) 6 | 7 | * **Causes:** 8 | 9 | * Commit [`596b97ec2e5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=596b97ec2e5e24c966b9cb4aa9a9766e53ecdd43) ("binder: use group leader instead of open thread") is already present as commit [`9036bcc59e36`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9036bcc59e36952da230f31187b1ab2f866ebfae) ("binder: use group leader instead of open thread") and commit [`359795138dc5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=359795138dc5440e09c58025e28ec1b38d648c09) ("binder: use group leader instead of open thread") and there have been other changes to this section since then. 10 | 11 | * Commit [`1792d6c17cb2`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1792d6c17cb282fd8e5cd197a8b33cb78484eb6a) ("binder: Use wake up hint for synchronous transactions.") is already present as commit [`0cebb407b2f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0cebb407b2f431d748d9cc85cf7e4232a9223342) ("FROMLIST: binder: Use wake up hint for synchronous transactions.") and commit [`3956eabb34de`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3956eabb34de6b24bdbe90013c7567867bb139ea) ("android: binder: Use wake up hint for synchronous transactions.") and there have been other changes to this section since then. 12 | 13 | * Commit [`9dac44d5d4b0`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=9dac44d5d4b0a7fffe04ad505e0a082e900ad767) ("ANDROID: binder: fix proc->tsk check.") was included as part of commit [`9036bcc59e36`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9036bcc59e36952da230f31187b1ab2f866ebfae) ("binder: use group leader instead of open thread"). 14 | 15 | 16 | * `drivers/gpu/drm/msm/adreno/adreno_gpu.c` 17 | 18 | * **Resolution:** Take left side (discard all changes) 19 | 20 | * **Cause:** Commit [`b54e58ccceb7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b54e58ccceb794176b37037e76df3a7ed876b360) ("drm/msm: Ensure that the hardware write pointer is valid") is already present as commit [`7d080736a4b4`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=7d080736a4b4601a16a2d81a4537d0202fc05157) ("drm/msm: Make sure that WPTR stays in bounds") and there have been other changes to this section since then. 21 | 22 | 23 | * `drivers/gpu/drm/msm/msm_gem_submit.c` 24 | 25 | * **Resolution:** Take right side (reworked upstream version) for first, take left side for others 26 | 27 | * **Cause:** 28 | 29 | * Commit [`ded34f97234`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ded34f972348b0f252256bee161839c1aa5d8ae4) ("drm/msm: fix an integer overflow test") has to be changed to work around the extra `nr` variable (added in commit [`c9d1b0f37a99`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=c9d1b0f37a99eb67d5f96e20ea37d7953558ce3c) ("drm/msm: deal with arbitrary # of cmd buffers"). 30 | 31 | * Commit [`031b02bc16ae`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=031b02bc16aeeb34c8038026cbbca1e6430c9d75) ("drm/msm: Fix potential buffer overflow issue") is already present as commit [`a61bcfad3278`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=a61bcfad32789785760c516299035d4c28e85670) ("drm/msm: Fix potential buffer overflow issue") and there have been other changes to this section since then. 32 | 33 | * Commit [`7de922c14e83`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7de922c14e838c46b3ce3ff4719bbb82ee307e8d) ("drm/msm: Verify that MSM_SUBMIT_BO_FLAGS are set") is already present as commit [`ef41564a3e4a`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=ef41564a3e4af0c3c101fae76f77b3ea65aca5be) ("drm/msm: Make sure that MSM_SUBMIT_BO_FLAGS are set"). 34 | 35 | 36 | * `drivers/gpu/drm/msm/msm_ringbuffer.c` 37 | 38 | * **Resolution:** Take left side (discard all changes) 39 | 40 | * **Cause:** The power of 2 alignment check in commit [`b54e58ccceb7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b54e58ccceb794176b37037e76df3a7ed876b360) ("drm/msm: Ensure that the hardware write pointer is valid") is already present in commit [`378583458fa1`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=378583458fa167277b15d145dccce253459393ec) ("drm/msm: Add support for multiple ringbuffers") and there have been other changes to this section since then. 41 | 42 | 43 | * `drivers/mmc/core/bus.c` 44 | 45 | * **Resolution:** Take left side (discard all changes) 46 | 47 | * **Cause:** Commit [`5c65b739389f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5c65b739389fbc353fb42d379e9b7379cfe6d3f6) ("mmc: core: Do not leave the block driver in a suspended state") was already resolved by [`192cfe16ca57`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=192cfe16ca5761bb7a5aafc016e79a21b2bd4002) ("mmc: bus: Handle error in case bus_ops suspend fails") but the latter has an extra comment block so git could not tell the fix was already present. 48 | 49 | 50 | * `drivers/net/wireless/ath/ath10k/core.c` 51 | 52 | * **Resolution:** Take left side (discard conflict) 53 | 54 | * **Cause:** Commit [`2c65494080c9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=2c65494080c900c8a0aa4a865b57a8001960ff26) ("ath10k: fix memory leak in rx ring buffer allocation") is already present as commit [`69a6025f67b4`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=69a6025f67b41a3b03e165db46ea7d346a45ae81) ("ath10k: fix memory leak in rx ring buffer allocation") and the former did not account for commit [`9eaeb4e0974b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9eaeb4e0974b976a037b7c55f0fe409bccbb7fdd) ("ath10k: fix spurious tx/rx during boot"), which was added by CAF to 4.4 (since it didn't appear upstream until v4.8-rc2). 55 | 56 | 57 | * `drivers/scsi/ufs/ufshcd.h` 58 | 59 | * **Solution:** Take left side (discard all changes) 60 | 61 | * **Cause:** Commit [`0c098158785b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=0c098158785b5c8091c0bae3aa505060414076cc) ("scsi: ufs: add capability to keep auto bkops always enabled") is already present as commit [`9f06dddf5bee`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9f06dddf5beecbcdf36535e0e587c23aaa7785f5) ("scsi: ufs: add capability to keep auto bkops always enabled") with a different shift value. 62 | 63 | 64 | * `drivers/usb/core/config.c` 65 | 66 | * **Resolution:** Take both sides (make final diff match upstream's) 67 | 68 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 69 | 70 | 71 | * `fs/ext4/crypto_key.c` 72 | 73 | * **Resolution:** Take right side (make final diff match upstream's) 74 | 75 | * **Cause:** Commit [`b47135257c42`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=b47135257c42a70a26247b05ff0ab42b6ad8fc8a) ("Merge branch 'android-4.4@c71ad0f' into branch 'msm-4.4'") omitted commit [`7a5202190810`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7a5202190810dde1467718235c1f650fcf57592a) ("fscrypt: remove broken support for detecting keyring key revocation"), which included the if statement right over the section that is modified by commit [`91bd72dd8c72`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=91bd72dd8c72c603132bbbfd348a4216b8c83f58) ("fscrypt: lock mutex before checking for bounce page pool"). 76 | 77 | 78 | * `fs/f2fs/crypto_key.c` 79 | 80 | * **Resolution:** Take right side (mainline version) 81 | 82 | * **Cause:** Commit [`4db9f1113196`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=4db9f1113196e7b4df4e754e7e770b22aee81c01) ("f2fs crypto: replace some BUG_ON()'s with error checks") conflicts with commit [`26bf3dc7e25b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=26bf3dc7e25b813ff5c92234f8165941fdc12a63) ("f2fs crypto: use per-inode tfm structure") because the latter is not in 4.4 upstream (it was added by CAF). Use the version from mainline, commit [`66aa3e1274fc`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=66aa3e1274fcf887e9d6501a68163270fc7718e7) ("f2fs crypto: replace some BUG_ON()'s with error checks"). 83 | 84 | 85 | * `fs/f2fs/file.c` 86 | 87 | * **Resolution:** Take left side (discard all changes) 88 | 89 | * **Cause:** When commit [`ba63f23d69a3`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ba63f23d69a3a10e7e527a02702023da68ef8a6d) ("fscrypto: require write access to mount to set encryption policy") was backported as commit [`1bb1d4252d1e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1bb1d4252d1ede47afea054979fb9d95fc891743) ("fscrypto: require write access to mount to set encryption policy"), it was reworked due to the fscrypto changes from 4.8 not being present. However, OnePlus (most likely) merged the f2fs-stable tree that Jaegeuk Kim provides, which includes the updated fscrypto code and f2fs backports around this. 90 | 91 | 92 | * `fs/f2fs/super.c` 93 | 94 | * **Resolution:** Take right side (mainline version) 95 | 96 | * **Cause:** Commit [`76517ed2a7fe`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=76517ed2a7fe059840c1984165984e69cb488568) ("f2fs: sanity check checkpoint segno and blkoff") does not expect commit [`2040fce83fe1`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=2040fce83fe17763b07c97c1f691da2bb85e4135) ("f2fs: detect wrong layout"), which it is here due to OnePlus merging the f2fs-stable tree. 97 | 98 | 99 | * `include/linux/pstore_ram.h` 100 | 101 | * **Resolution:** Take both sides 102 | 103 | * **Cause:** Commit [`aca5b1e3c5b7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=aca5b1e3c5b7e73f20b686ca712cb4cf9fccb219) ("pstore: Allow prz to control need for locking") was not expecting the `persistent_ram_buffer` struct to be commented out. 104 | 105 | 106 | * `include/linux/usb.h` 107 | 108 | * **Resolution:** Take both sides (make final diff match upstream's) 109 | 110 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 111 | 112 | 113 | * `include/uapi/linux/usb/ch9.h` 114 | 115 | * **Resolution:** Take both sides (make final diff match upstream's) 116 | 117 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 118 | 119 | 120 | * `kernel/power/process.c` 121 | 122 | * **Resolution:** Take both sides 123 | 124 | * **Cause:** Commits [`57caa2ad5ce3`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=57caa2ad5ce35bedb7ab374a2e5b4d7adf63da2b) ("power: Adds functionality to log the last suspend abort reason.") and [`3ea92be08321`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8998/commit/3ea92be083217b1aac8b4c328e3469bbb9cff73c) ("Synchronize codes for OnePlus5 O OPEN BETA 1 kernel device tree source code for OnePlus 5 O device") each added an include, which was not expected by commit [`90fd6738731b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=90fd6738731b6d105fc8f04832ae17a9ac82c05c) ("sched/cpuset/pm: Fix cpuset vs. suspend-resume bugs"). 125 | 126 | 127 | * `kernel/sched/sched.h` 128 | 129 | * **Resolution:** Take left side (discard conflict) 130 | 131 | * **Cause:** Commit [`62208707b466`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=62208707b466cc3c6ce951a7c4b7b4bb9b9192f6) ("sched/cputime: Fix prev steal time accouting during CPU hotplug") is already present as commit [`3366a508ffb6`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3366a508ffb6b0698dd309d1ca19a66522b886b1) ("Revert "sched/cputime: Fix steal time accounting vs. CPU hotplug"") and there have been a few commits to this section since then, namely commit [`f02702dcf231`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=f02702dcf231c3258aabd702023286f6c01aaa21) ("sched: backport cpufreq hooks from 4.9-rc4"). 132 | 133 | 134 | * `mm/debug-pagealloc.c` 135 | 136 | * **Resolution:** Take left side (discard all changes) 137 | 138 | * **Cause:** Commit [`5c69adad61e2`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=5c69adad61e27f467fa8e1671633e455741e3fae) ("mm/page_poison.c: enable PAGE_POISONING as a separate option") renamed this file to `mm/page_poison.c`. Commit [`e34e744f70a6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e34e744f70a68f8f16f945a286802898c56a8b5a) ("mm: check the return value of lookup_page_ext for all call sites") does not apply to `mm/page_poison.c` as there are no more instances of `lookup_page_ext` in that file after commit [`49118fe6a32a`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=49118fe6a32a49d198128a6dd1d6bfd0e3b189f8) ("mm: enable page poisoning early at boot"). 139 | 140 | 141 | * `mm/migrate.c` 142 | 143 | * **Resolution:** Take both sides 144 | 145 | * **Cause:** Commit [`e91e9112cb03`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e91e9112cb03570cf572365bfdaeacd1c13a3dbd) ("mm, page_owner: copy page owner info during migration") added an include, which was not expected by commit [`46d51a26efbc`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=46d51a26efbc7cbaa2bc1f01628a00a604193856) ("Sanitize 'move_pages()' permission checks"). 146 | 147 | 148 | * `mm/page_ext.c` 149 | 150 | * **Resolution:** Take right side 151 | 152 | * **Cause:** Commit [`2c00b603db67`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=2c00b603db67af40aa0b02c834cc58fec98d3023) ("mm/page_poisoning.c: allow for zero poisoning") added an extra condition to this block that commit [`3630b2801907`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=3630b28019075639a9db00491349e05fbf0f901e) ("mm/page_ext.c: check if page_ext is not prepared") did not expect. 153 | 154 | 155 | * `mm/page_owner.c` 156 | 157 | * **Resolution:** Take left side (discard all changes) 158 | 159 | * **Cause:** Commit [`e34e744f70a6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e34e744f70a68f8f16f945a286802898c56a8b5a) ("mm: check the return value of lookup_page_ext for all call sites") is already present as commit [`acda305dcb54`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=acda305dcb5474a401753912db382358b3436ab9) ("mm: check the return value of lookup_page_ext for all call sites") and there have been several changes to this file since then. 160 | 161 | 162 | * `net/wireless/nl80211.c` 163 | 164 | * **Resolution:** Take both sides 165 | 166 | * **Cause:** Commit [`6a6c61d8467d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=6a6c61d8467d2dd7059b7d52773c18f8122e4f68) ("nl80211: Define policy for packet pattern attributes") did not account for commit [`3fee1ede34a6`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3fee1ede34a6c3b2dd7d816643e887c2308f6a78) ("nl80211: add feature for BSS selection support") being present. 167 | 168 | 169 | * `sound/usb/card.c` 170 | 171 | * **Resolution:** Take right side (shuffle resolution) 172 | 173 | * **Cause:** Commit [`2ecedf5dc75b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=2ecedf5dc75bc770ec09bd2238e798063aeafc4b) ("sound: usb: Add support for parsing AudioStreaming intf for BADD devices") shuffled the function `snd_usb_create_streams`, which commit [`46c7b1fa4911`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=46c7b1fa4911a859a82575e3ffb55b34a89a222d) ("ALSA: usb-audio: Check out-of-bounds access by corrupted buffer descriptor") did not expect. Resolution is identical but has been moved into the `switch` statement to satisfy the changes made by CAF's shuffling. 174 | 175 | 176 | # 4.4.106 177 | 178 | * `arch/arm/include/asm/kvm_arm.h` 179 | 180 | * **Resolution:** Take right side (use mainline diff) 181 | 182 | * **Cause:** When mainline commit [`5553b142be11`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5553b142be11e794ebc0805950b2e8313f93d718) ("arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one") was backported as commit [`a5fa9efe4e01`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a5fa9efe4e019e1f8f213142836c84f010cc4faf) ("arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one") in the 4.4 tree, it did not expect mainline commit [`8420dcd37ef3`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8420dcd37ef34040c8fc5a27bf66887b3b2faf80) ("arm: KVM: Make kvm_arm.h friendly to assembly code") to be here, as it was introduced in 4.5. However, it is as commit [`516f3f777e5f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=516f3f777e5fb0710f1626c79e3dacca751b8c30) ("arm: KVM: Make kvm_arm.h friendly to assembly code") so we can just use mainline's version. 183 | 184 | 185 | # 4.4.109 186 | 187 | * `net/ipv4/raw.c` 188 | 189 | * **Resolution:** Take right side (make final diff match upstream's) 190 | 191 | * **Cause:** When mainline commit [`8f659a03a0ba`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8f659a03a0ba9289b9aeb9b4470e6fb263d6f483) ("net: ipv4: fix for a race condition in raw_sendmsg") was backported to the 4.4 stable tree as commit [`be27b620a861`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=be27b620a861dc2a143b78e81e23f5622d9105da), it was slightly changed because mainline commit [`e2d118a1cb5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e2d118a1cb5e60d077131a09db1d81b90a5295fe) ("net: inet: Support UID-based routing in IP protocols.") is not present in the stable 4.4 tree. However, since CAF merged kernel/common from Google, it is present as commit [`344afd627cca`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=344afd627cca0223464079135926f611fdbb0574) ("net: inet: Support UID-based routing in IP protocols.") so adjust the diff to account for this (final diff matches both the stable and mainline commit). 192 | 193 | 194 | # 4.4.110 195 | 196 | * `kernel/fork.c` 197 | 198 | * **Resolution:** Take both sides 199 | 200 | * **Cause:** The commits to `kernel/fork.c` (viewable by running `git log v4.4.109..v4.4.110 kernel/fork.c`) were not expecting the changes from commit [`dae9a397e1d3`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=dae9a397e1d3d92b6f44f248972350cbc16828b5) ("kernel: fork: Call KASan alloc before release the thread info pages"). 201 | 202 | 203 | # 4.4.113 204 | 205 | * `arch/x86/include/asm/thread_info.h` 206 | 207 | * **Resolution:** Take right side (make final diff match upstream's) 208 | 209 | * **Cause:** The addition of commit [`fdb92b0de361`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=fdb92b0de361f9043f359a1de52e2bedd9da4599) ("mm: Implement stack frame object validation") prevented git from cleanly applying stable commit [`cfc8c1d61e46`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=cfc8c1d61e46fd3c60a34a5b1962eeeb03222a3d) ("x86/asm: Use register variable to get stack pointer value"). 210 | 211 | 212 | # 4.4.115 213 | 214 | * `drivers/usb/gadget/function/f_fs.c` 215 | 216 | * **Resolution:** Take left side (discard all changes) 217 | 218 | * **Cause:** Stable commit [`68b43caf4a4b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=68b43caf4a4b98256bdb67dba025f858bdf21725) ("usb: f_fs: Prevent gadget unbind if it is already unbound") is already present as commit [`35fdb9cd7e90`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=35fdb9cd7e90c08ac9697fa330e4e290b9d34f8a) ("usb: f_fs: Prevent gadget unbind if it is already unbound") with a slightly different resolution so it could not be cleanly resolved. 219 | 220 | 221 | # 4.4.116 222 | 223 | * `fs/f2fs/namei.c` 224 | 225 | * **Resolution:** Take left side (discard all changes) 226 | 227 | * **Cause:** The f2fs part of stable commit [`076e4ab3279e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=076e4ab3279eb3ddb206de44d04df7aeb2428e09) ("don't put symlink bodies in pagecache into highmem") is already present in the f2fs changes brought in by OnePlus's initial squash in commit [`3ea92be08321`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8998/commit/3ea92be083217b1aac8b4c328e3469bbb9cff73c) ("Synchronize codes for OnePlus5 O OPEN BETA 1 kernel device tree source code for OnePlus 5 O device") and the additional changes to that file prevented a clean resolution. 228 | 229 | 230 | # 4.4.118 231 | 232 | * `net/Kconfig` 233 | 234 | * **Resolution:** Take both sides (make final diff match upstream's) 235 | 236 | * **Cause:** Stable commit [`d365b297433c`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d365b297433cf2969fa94f243d7afddc073c7bf1) ("net: add dst_cache support") was not expecting the change to this file from commit [`016c030cc678`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=016c030cc67882b2143fc8098afa471c8bf33bdf) ("net: ipc_router: Add snapshot of IPC Router") to be present. 237 | 238 | * `net/core/Makefile` 239 | 240 | * **Resolution:** Take both sides (make final diff match upstream's) 241 | 242 | * **Cause:** Stable commit [`d365b297433c`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d365b297433cf2969fa94f243d7afddc073c7bf1) ("net: add dst_cache support") was not expecting the change to this file from commit [`274f3cfdd0a0`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=274f3cfdd0a0a14a73b510405cc6fc91abee74e0) ("net: sockev: Initial Commit") to be present. 243 | 244 | 245 | # 4.4.120 246 | 247 | * `fs/f2fs/extent_cache.c` 248 | 249 | * **Resolution:** Take modified right side (make final diff match the mainline version) 250 | 251 | * **Cause:** OnePlus has included the f2fs mainline backports provided by Jaeguk Kim in [the f2fs-stable repo](https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-stable.git/), meaning we need to take [the mainline version](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=dad48e73127ba10279ea33e6dbc8d3905c4d31c0) of stable commit [`023ca5b884d2`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=023ca5b884d2759b56dc8d480942835881853513) ("f2fs: fix a bug caused by NULL extent tree"). 252 | 253 | 254 | # 4.4.124 255 | 256 | * `drivers/gpu/drm/msm/msm_gem.c` 257 | 258 | * **Resolution:** Take left side (discard all changes) 259 | 260 | * **Cause:** Stable commit [`c1b1c1af967a`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=c1b1c1af967a84e986a9e893b4eebf6f7a40045c) ("drm/msm: fix leak in failed get_pages") is already present in this tree as commit [`0bcaa07af26c`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0bcaa07af26c3748fe4f838f69f2234b047bdb25) ("drm/msm: fix leak in failed get_pages"). Due to changes around each husk, git couldn't give a clean resolution. 261 | 262 | * `drivers/net/wireless/ath/regd.c` 263 | 264 | * **Resolution:** Take modified right side (make final diff match upstream's) 265 | 266 | * **Cause:** Commit [`92072eb888a2`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=92072eb888a2117ac532a4bf44a70e4a443d3075) ("ath10k: Update world regulatory rules") trivially conflicts with commit [`597457667513`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=597457667513e7412989e3395044ac7ae8c2d9fb) ("ath: Fix updating radar flags for coutry code India"). Make the two coexist. 267 | 268 | 269 | # 4.4.125 270 | 271 | * `arch/arm64/mm/mmu.c` 272 | 273 | * **Resolution:** Take both sides (make final diff match upstream's) 274 | 275 | * **Cause:** The backport of mainline commit [`b6bdb7517c3d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e) ("mm/vmalloc: add interfaces to free unmapped page table"), stable commit [`31895cfd7956`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=31895cfd79564111cdd5a9f48c5d491ae26a238e) ("mm/vmalloc: add interfaces to free unmapped page table"), was not expecting commit [`324420bf91f6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=324420bf91f60582bb481133db9547111768ef17) ("arm64: add support for ioremap() block mappings") to be present; however, it is in this tree as commit [`37cbc7db8e4f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=37cbc7db8e4fa9b66e15cf8661383a6b51c9a3e7) ("arm64: add support for ioremap() block mappings") so adjust the context to match mainline's version. 276 | -------------------------------------------------------------------------------- /conflict-notes/op5/oneplus-QC8998_O_8.1.md: -------------------------------------------------------------------------------- 1 | # 4.4.80 2 | 3 | * `drivers/gpu/drm/msm/adreno/adreno_gpu.c` 4 | 5 | * **Resolution:** Take left side (discard all changes) 6 | 7 | * **Cause:** Commit [`b54e58ccceb7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b54e58ccceb794176b37037e76df3a7ed876b360) ("drm/msm: Ensure that the hardware write pointer is valid") is already present as commit [`7d080736a4b4`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=7d080736a4b4601a16a2d81a4537d0202fc05157) ("drm/msm: Make sure that WPTR stays in bounds") and there have been other changes to this section since then. 8 | 9 | 10 | * `drivers/gpu/drm/msm/msm_ringbuffer.c` 11 | 12 | * **Resolution:** Take left side (discard all changes) 13 | 14 | * **Cause:** The power of 2 alignment check in commit [`b54e58ccceb7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b54e58ccceb794176b37037e76df3a7ed876b360) ("drm/msm: Ensure that the hardware write pointer is valid") is already present in commit [`378583458fa1`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=378583458fa167277b15d145dccce253459393ec) ("drm/msm: Add support for multiple ringbuffers") and there have been other changes to this section since then. 15 | 16 | 17 | * `include/linux/pstore_ram.h` 18 | 19 | * **Resolution:** Take both sides 20 | 21 | * **Cause:** Commit [`aca5b1e3c5b7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=aca5b1e3c5b7e73f20b686ca712cb4cf9fccb219) ("pstore: Allow prz to control need for locking") was not expecting the `persistent_ram_buffer` struct to be commented out. 22 | 23 | 24 | * `kernel/sched/sched.h` 25 | 26 | * **Resolution:** Take left side (discard conflict) 27 | 28 | * **Cause:** Commit [`62208707b466`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=62208707b466cc3c6ce951a7c4b7b4bb9b9192f6) ("sched/cputime: Fix prev steal time accouting during CPU hotplug") is already present as commit [`3366a508ffb6`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3366a508ffb6b0698dd309d1ca19a66522b886b1) ("Revert "sched/cputime: Fix steal time accounting vs. CPU hotplug"") and there have been a few commits to this section since then, namely commit [`f02702dcf231`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=f02702dcf231c3258aabd702023286f6c01aaa21) ("sched: backport cpufreq hooks from 4.9-rc4"). 29 | 30 | 31 | 32 | 33 | # 4.4.81 34 | 35 | * `fs/f2fs/super.c` 36 | 37 | * **Resolution:** Take right side (mainline version) 38 | 39 | * **Cause:** Commit [`76517ed2a7fe`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=76517ed2a7fe059840c1984165984e69cb488568) ("f2fs: sanity check checkpoint segno and blkoff") does not expect commit [`2040fce83fe1`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=2040fce83fe17763b07c97c1f691da2bb85e4135) ("f2fs: detect wrong layout"), which it is here due to OnePlus merging the f2fs-stable tree. 40 | 41 | 42 | 43 | 44 | # 4.4.84 45 | 46 | * `mm/migrate.c` 47 | 48 | * **Resolution:** Take left side (discard all changes) 49 | 50 | * **Cause:** Stable commit [`46d51a26efbc`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=46d51a26efbc7cbaa2bc1f01628a00a604193856) ("Sanitize 'move_pages()' permission checks") is already present in this tree as commit [`3374c398a3e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3374c398a3e56d6853cedd688a72efd64fd80829) ("Sanitize 'move_pages()' permission checks") and commit [`e91e9112cb03`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e91e9112cb03570cf572365bfdaeacd1c13a3dbd) ("mm, page_owner: copy page owner info during migration") added an include, preventing a clean resolution. 51 | 52 | 53 | 54 | 55 | # 4.4.85 56 | 57 | * `drivers/android/binder.c` 58 | 59 | * **Resolution:** Take left side (discard all changes) 60 | 61 | * **Causes:** 62 | 63 | * Commit [`596b97ec2e5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=596b97ec2e5e24c966b9cb4aa9a9766e53ecdd43) ("binder: use group leader instead of open thread") is already present as commit [`9036bcc59e36`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9036bcc59e36952da230f31187b1ab2f866ebfae) ("binder: use group leader instead of open thread") and commit [`359795138dc5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=359795138dc5440e09c58025e28ec1b38d648c09) ("binder: use group leader instead of open thread") and there have been other changes to this section since then. 64 | 65 | * Commit [`1792d6c17cb2`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1792d6c17cb282fd8e5cd197a8b33cb78484eb6a) ("binder: Use wake up hint for synchronous transactions.") is already present as commit [`0cebb407b2f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0cebb407b2f431d748d9cc85cf7e4232a9223342) ("FROMLIST: binder: Use wake up hint for synchronous transactions.") and commit [`3956eabb34de`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3956eabb34de6b24bdbe90013c7567867bb139ea) ("android: binder: Use wake up hint for synchronous transactions.") and there have been other changes to this section since then. 66 | 67 | * Commit [`9dac44d5d4b0`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=9dac44d5d4b0a7fffe04ad505e0a082e900ad767) ("ANDROID: binder: fix proc->tsk check.") was included as part of commit [`9036bcc59e36`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9036bcc59e36952da230f31187b1ab2f866ebfae) ("binder: use group leader instead of open thread"). 68 | 69 | 70 | 71 | 72 | # 4.4.86 73 | 74 | * `drivers/scsi/sg.c` 75 | 76 | * **Resolution:** Take both sides 77 | 78 | * **Cause:** Stable commit [`a4075bbb67b9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a4075bbb67b9562b9599affc6fb38f04bd7073ff) ("scsi: sg: protect accesses to 'reserved' page array") wasn't expecting the mutex added by commit [`00d6789fbf2f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=00d6789fbf2f1a371f8f80230e9a9eea35ef376e) ("Prevent potential double frees in sg driver"). 79 | 80 | 81 | 82 | 83 | # 4.4.87 84 | 85 | * `drivers/net/wireless/ath/ath10k/core.c` 86 | 87 | * **Resolution:** Take left side (discard conflict) 88 | 89 | * **Cause:** Commit [`2c65494080c9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=2c65494080c900c8a0aa4a865b57a8001960ff26) ("ath10k: fix memory leak in rx ring buffer allocation") is already present as commit [`69a6025f67b4`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=69a6025f67b41a3b03e165db46ea7d346a45ae81) ("ath10k: fix memory leak in rx ring buffer allocation") and the former did not account for commit [`9eaeb4e0974b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9eaeb4e0974b976a037b7c55f0fe409bccbb7fdd) ("ath10k: fix spurious tx/rx during boot"), which was added by CAF to 4.4 (since it didn't appear upstream until v4.8-rc2). 90 | 91 | 92 | 93 | 94 | # 4.4.92 95 | 96 | * `kernel/power/process.c` 97 | 98 | * **Resolution:** Take both sides 99 | 100 | * **Cause:** Commits [`57caa2ad5ce3`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=57caa2ad5ce35bedb7ab374a2e5b4d7adf63da2b) ("power: Adds functionality to log the last suspend abort reason.") and commit [`b20f0e105816`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8998/commit/b20f0e105816c951efc48cd53f0b120b5dd5168a) ("Synchronize codes for OnePlus5 OPEN BETA 6 and OnePlus 5T OPEN BETA 4 kernel device tree source code for OnePlus 5 & 5T O MR1 device") each added an include, which was not expected by commit [`90fd6738731b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=90fd6738731b6d105fc8f04832ae17a9ac82c05c) ("sched/cpuset/pm: Fix cpuset vs. suspend-resume bugs"). 101 | 102 | 103 | * `sound/usb/card.c` 104 | 105 | * **Resolution:** Take right side (shuffle resolution) 106 | 107 | * **Cause:** Commit [`2ecedf5dc75b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=2ecedf5dc75bc770ec09bd2238e798063aeafc4b) ("sound: usb: Add support for parsing AudioStreaming intf for BADD devices") shuffled the function `snd_usb_create_streams`, which commit [`46c7b1fa4911`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=46c7b1fa4911a859a82575e3ffb55b34a89a222d) ("ALSA: usb-audio: Check out-of-bounds access by corrupted buffer descriptor") did not expect. Resolution is identical but has been moved into the `switch` statement to satisfy the changes made by CAF's shuffling. 108 | 109 | 110 | 111 | 112 | # 4.4.93 113 | 114 | * `net/wireless/nl80211.c` 115 | 116 | * **Resolution:** Take left side 117 | 118 | * **Cause:** Stable commit [`6a6c61d8467d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=6a6c61d8467d2dd7059b7d52773c18f8122e4f68) ("nl80211: Define policy for packet pattern attributes") is already present as commit [`b084c13dfb8f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=b084c13dfb8f9081192dc7168a94d48f419d09fc) ("nl80211: Define policy for packet pattern attributes") and commit [`3fee1ede34a6`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=3fee1ede34a6c3b2dd7d816643e887c2308f6a78) ("nl80211: add feature for BSS selection support") prevented a clean resolution. 119 | 120 | 121 | 122 | 123 | # 4.4.95 124 | 125 | * `fs/f2fs/crypto_key.c` 126 | 127 | * **Resolution:** Take right side (mainline version) 128 | 129 | * **Cause:** Commit [`4db9f1113196`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=4db9f1113196e7b4df4e754e7e770b22aee81c01) ("f2fs crypto: replace some BUG_ON()'s with error checks") conflicts with commit [`26bf3dc7e25b`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=26bf3dc7e25b813ff5c92234f8165941fdc12a63) ("f2fs crypto: use per-inode tfm structure") because the latter is not in 4.4 upstream (it was added by CAF). Use the version from mainline, commit [`66aa3e1274fc`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=66aa3e1274fcf887e9d6501a68163270fc7718e7) ("f2fs crypto: replace some BUG_ON()'s with error checks"). 130 | 131 | 132 | * `fs/f2fs/file.c` 133 | 134 | * **Resolution:** Take left side (discard all changes) 135 | 136 | * **Cause:** When commit [`ba63f23d69a3`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ba63f23d69a3a10e7e527a02702023da68ef8a6d) ("fscrypto: require write access to mount to set encryption policy") was backported as commit [`1bb1d4252d1e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1bb1d4252d1ede47afea054979fb9d95fc891743) ("fscrypto: require write access to mount to set encryption policy"), it was reworked due to the fscrypto changes from 4.8 not being present. However, OnePlus (most likely) merged the f2fs-stable tree that Jaegeuk Kim provides, which includes the updated fscrypto code and f2fs backports around this. 137 | 138 | 139 | 140 | 141 | # 4.4.96 142 | 143 | * `drivers/gpu/drm/msm/msm_gem_submit.c` 144 | 145 | * **Resolution:** Take right side (reworked upstream version) for first, take left side for others 146 | 147 | * **Cause:** 148 | 149 | * Commit [`ded34f97234`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ded34f972348b0f252256bee161839c1aa5d8ae4) ("drm/msm: fix an integer overflow test") has to be changed to work around the extra `nr` variable (added in commit [`c9d1b0f37a99`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=c9d1b0f37a99eb67d5f96e20ea37d7953558ce3c) ("drm/msm: deal with arbitrary # of cmd buffers"). 150 | 151 | * Commit [`031b02bc16ae`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=031b02bc16aeeb34c8038026cbbca1e6430c9d75) ("drm/msm: Fix potential buffer overflow issue") is already present as commit [`a61bcfad3278`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=a61bcfad32789785760c516299035d4c28e85670) ("drm/msm: Fix potential buffer overflow issue") and there have been other changes to this section since then. 152 | 153 | 154 | 155 | 156 | # 4.4.100 157 | 158 | * `drivers/scsi/ufs/ufshcd.h` 159 | 160 | * **Solution:** Take left side (discard all changes) 161 | 162 | * **Cause:** Commit [`0c098158785b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=0c098158785b5c8091c0bae3aa505060414076cc) ("scsi: ufs: add capability to keep auto bkops always enabled") is already present as commit [`9f06dddf5bee`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=9f06dddf5beecbcdf36535e0e587c23aaa7785f5) ("scsi: ufs: add capability to keep auto bkops always enabled") with a different shift value. 163 | 164 | 165 | 166 | 167 | # 4.4.101/4.4.102 168 | 169 | * `mm/debug-pagealloc.c` 170 | 171 | * **Resolution:** Take left side (discard all changes) 172 | 173 | * **Cause:** Commit [`5c69adad61e2`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=5c69adad61e27f467fa8e1671633e455741e3fae) ("mm/page_poison.c: enable PAGE_POISONING as a separate option") renamed this file to `mm/page_poison.c`. Commit [`e34e744f70a6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e34e744f70a68f8f16f945a286802898c56a8b5a) ("mm: check the return value of lookup_page_ext for all call sites") does not apply to `mm/page_poison.c` as there are no more instances of `lookup_page_ext` in that file after commit [`49118fe6a32a`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=49118fe6a32a49d198128a6dd1d6bfd0e3b189f8) ("mm: enable page poisoning early at boot"). 174 | 175 | 176 | * `mm/page_ext.c` 177 | 178 | * **Resolution:** Take right side 179 | 180 | * **Cause:** Commit [`2c00b603db67`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=2c00b603db67af40aa0b02c834cc58fec98d3023) ("mm/page_poisoning.c: allow for zero poisoning") added an extra condition to this block that commit [`3630b2801907`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=3630b28019075639a9db00491349e05fbf0f901e) ("mm/page_ext.c: check if page_ext is not prepared") did not expect. 181 | 182 | 183 | * `mm/page_owner.c` 184 | 185 | * **Resolution:** Take left side (discard all changes) 186 | 187 | * **Cause:** Commit [`e34e744f70a6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e34e744f70a68f8f16f945a286802898c56a8b5a) ("mm: check the return value of lookup_page_ext for all call sites") is already present as commit [`acda305dcb54`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=acda305dcb5474a401753912db382358b3436ab9) ("mm: check the return value of lookup_page_ext for all call sites") and there have been several changes to this file since then. 188 | 189 | 190 | 191 | 192 | # 4.4.103 193 | 194 | * `fs/ext4/crypto_key.c` 195 | 196 | * **Resolution:** Take right side (make final diff match upstream's) 197 | 198 | * **Cause:** Commit [`b47135257c42`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=b47135257c42a70a26247b05ff0ab42b6ad8fc8a) ("Merge branch 'android-4.4@c71ad0f' into branch 'msm-4.4'") omitted commit [`7a5202190810`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7a5202190810dde1467718235c1f650fcf57592a) ("fscrypt: remove broken support for detecting keyring key revocation"), which included the if statement right over the section that is modified by commit [`91bd72dd8c72`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=91bd72dd8c72c603132bbbfd348a4216b8c83f58) ("fscrypt: lock mutex before checking for bounce page pool"). 199 | 200 | 201 | 202 | 203 | # 4.4.104 204 | 205 | * `drivers/mmc/core/bus.c` 206 | 207 | * **Resolution:** Take left side (discard all changes) 208 | 209 | * **Cause:** Commit [`5c65b739389f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5c65b739389fbc353fb42d379e9b7379cfe6d3f6) ("mmc: core: Do not leave the block driver in a suspended state") was already resolved by [`192cfe16ca57`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=192cfe16ca5761bb7a5aafc016e79a21b2bd4002) ("mmc: bus: Handle error in case bus_ops suspend fails") but the latter has an extra comment block so git could not tell the fix was already present. 210 | 211 | 212 | 213 | 214 | # 4.4.105 215 | 216 | * `drivers/usb/core/config.c` 217 | 218 | * **Resolution:** Take both sides (make final diff match upstream's) 219 | 220 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 221 | 222 | 223 | * `include/linux/usb.h` 224 | 225 | * **Resolution:** Take both sides (make final diff match upstream's) 226 | 227 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 228 | 229 | 230 | * `include/uapi/linux/usb/ch9.h` 231 | 232 | * **Resolution:** Take both sides (make final diff match upstream's) 233 | 234 | * **Cause:** Commit [`e5223a9107e5`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=e5223a9107e5ee250ad67ea4cb68eac7f1365e17) ("usb: core: Add support to parse config summary capability descriptors" added additional statements that commit [`ddaa1ae2eb7f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ddaa1ae2eb7ffb4e270fdc9593c3d1138f61fb31) ("usb: Add USB 3.1 Precision time measurement capability descriptor support") was not expecting to be there. 235 | 236 | 237 | 238 | 239 | # 4.4.106 240 | 241 | * `arch/arm/include/asm/kvm_arm.h` 242 | 243 | * **Resolution:** Take right side (use mainline diff) 244 | 245 | * **Cause:** When mainline commit [`5553b142be11`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5553b142be11e794ebc0805950b2e8313f93d718) ("arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one") was backported as commit [`a5fa9efe4e01`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a5fa9efe4e019e1f8f213142836c84f010cc4faf) ("arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one") in the 4.4 tree, it did not expect mainline commit [`8420dcd37ef3`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8420dcd37ef34040c8fc5a27bf66887b3b2faf80) ("arm: KVM: Make kvm_arm.h friendly to assembly code") to be here, as it was introduced in 4.5. However, it is as commit [`516f3f777e5f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=516f3f777e5fb0710f1626c79e3dacca751b8c30) ("arm: KVM: Make kvm_arm.h friendly to assembly code") so we can just use mainline's version. 246 | 247 | 248 | 249 | 250 | # 4.4.109 251 | 252 | * `net/ipv4/raw.c` 253 | 254 | * **Resolution:** Take right side (make final diff match upstream's) 255 | 256 | * **Cause:** When mainline commit [`8f659a03a0ba`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8f659a03a0ba9289b9aeb9b4470e6fb263d6f483) ("net: ipv4: fix for a race condition in raw_sendmsg") was backported to the 4.4 stable tree as commit [`be27b620a861`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=be27b620a861dc2a143b78e81e23f5622d9105da), it was slightly changed because mainline commit [`e2d118a1cb5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e2d118a1cb5e60d077131a09db1d81b90a5295fe) ("net: inet: Support UID-based routing in IP protocols.") is not present in the stable 4.4 tree. However, since CAF merged kernel/common from Google, it is present as commit [`344afd627cca`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=344afd627cca0223464079135926f611fdbb0574) ("net: inet: Support UID-based routing in IP protocols.") so adjust the diff to account for this (final diff matches both the stable and mainline commit). 257 | 258 | 259 | 260 | 261 | # 4.4.110 262 | 263 | * `kernel/fork.c` 264 | 265 | * **Resolution:** Take both sides 266 | 267 | * **Cause:** The commits to `kernel/fork.c` (viewable by running `git log v4.4.109..v4.4.110 kernel/fork.c`) were not expecting the changes from commit [`dae9a397e1d3`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=dae9a397e1d3d92b6f44f248972350cbc16828b5) ("kernel: fork: Call KASan alloc before release the thread info pages"). 268 | 269 | 270 | 271 | 272 | # 4.4.113 273 | 274 | * `arch/x86/include/asm/thread_info.h` 275 | 276 | * **Resolution:** Take right side (make final diff match upstream's) 277 | 278 | * **Cause:** The addition of commit [`fdb92b0de361`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=fdb92b0de361f9043f359a1de52e2bedd9da4599) ("mm: Implement stack frame object validation") prevented git from cleanly applying stable commit [`cfc8c1d61e46`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=cfc8c1d61e46fd3c60a34a5b1962eeeb03222a3d) ("x86/asm: Use register variable to get stack pointer value"). 279 | 280 | 281 | 282 | 283 | # 4.4.115 284 | 285 | * `drivers/usb/gadget/function/f_fs.c` 286 | 287 | * **Resolution:** Take left side (discard all changes) 288 | 289 | * **Cause:** Stable commit [`68b43caf4a4b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=68b43caf4a4b98256bdb67dba025f858bdf21725) ("usb: f_fs: Prevent gadget unbind if it is already unbound") is already present as commit [`35fdb9cd7e90`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=35fdb9cd7e90c08ac9697fa330e4e290b9d34f8a) ("usb: f_fs: Prevent gadget unbind if it is already unbound") with a slightly different resolution so it could not be cleanly resolved. 290 | 291 | 292 | 293 | 294 | # 4.4.116 295 | 296 | * `fs/f2fs/namei.c` 297 | 298 | * **Resolution:** Take left side (discard all changes) 299 | 300 | * **Cause:** The f2fs part of stable commit [`076e4ab3279e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=076e4ab3279eb3ddb206de44d04df7aeb2428e09) ("don't put symlink bodies in pagecache into highmem") is already present in the f2fs changes brought in by OnePlus's initial squash in commit [`b20f0e105816`](https://github.com/OnePlusOSS/android_kernel_oneplus_msm8998/commit/b20f0e105816c951efc48cd53f0b120b5dd5168a) ("Synchronize codes for OnePlus5 OPEN BETA 6 and OnePlus 5T OPEN BETA 4 kernel device tree source code for OnePlus 5 & 5T O MR1 device") and the additional changes to that file prevented a clean resolution. 301 | 302 | 303 | 304 | 305 | # 4.4.118 306 | 307 | * `net/Kconfig` 308 | 309 | * **Resolution:** Take both sides (make final diff match upstream's) 310 | 311 | * **Cause:** Stable commit [`d365b297433c`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d365b297433cf2969fa94f243d7afddc073c7bf1) ("net: add dst_cache support") was not expecting the change to this file from commit [`016c030cc678`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=016c030cc67882b2143fc8098afa471c8bf33bdf) ("net: ipc_router: Add snapshot of IPC Router") to be present. 312 | 313 | * `net/core/Makefile` 314 | 315 | * **Resolution:** Take both sides (make final diff match upstream's) 316 | 317 | * **Cause:** Stable commit [`d365b297433c`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d365b297433cf2969fa94f243d7afddc073c7bf1) ("net: add dst_cache support") was not expecting the change to this file from commit [`274f3cfdd0a0`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=274f3cfdd0a0a14a73b510405cc6fc91abee74e0) ("net: sockev: Initial Commit") to be present. 318 | 319 | 320 | 321 | 322 | # 4.4.120 323 | 324 | * `fs/f2fs/extent_cache.c` 325 | 326 | * **Resolution:** Take modified right side (make final diff match the mainline version) 327 | 328 | * **Cause:** OnePlus has included the f2fs mainline backports provided by Jaeguk Kim in [the f2fs-stable repo](https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-stable.git/), meaning we need to take [the mainline version](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=dad48e73127ba10279ea33e6dbc8d3905c4d31c0) of stable commit [`023ca5b884d2`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=023ca5b884d2759b56dc8d480942835881853513) ("f2fs: fix a bug caused by NULL extent tree"). 329 | 330 | 331 | 332 | 333 | # 4.4.124 334 | 335 | * `drivers/gpu/drm/msm/msm_gem.c` 336 | 337 | * **Resolution:** Take left side (discard all changes) 338 | 339 | * **Cause:** Stable commit [`c1b1c1af967a`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=c1b1c1af967a84e986a9e893b4eebf6f7a40045c) ("drm/msm: fix leak in failed get_pages") is already present in this tree as commit [`0bcaa07af26c`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=0bcaa07af26c3748fe4f838f69f2234b047bdb25) ("drm/msm: fix leak in failed get_pages"). Due to changes around each husk, git couldn't give a clean resolution. 340 | 341 | 342 | * `drivers/net/wireless/ath/regd.c` 343 | 344 | * **Resolution:** Take modified right side (make final diff match upstream's) 345 | 346 | * **Cause:** Commit [`92072eb888a2`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=92072eb888a2117ac532a4bf44a70e4a443d3075) ("ath10k: Update world regulatory rules") trivially conflicts with commit [`597457667513`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=597457667513e7412989e3395044ac7ae8c2d9fb) ("ath: Fix updating radar flags for coutry code India"). Make the two coexist. 347 | 348 | 349 | # 4.4.125 350 | 351 | * `arch/arm64/mm/mmu.c` 352 | 353 | * **Resolution:** Take both sides (make final diff match upstream's) 354 | 355 | * **Cause:** The backport of mainline commit [`b6bdb7517c3d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e) ("mm/vmalloc: add interfaces to free unmapped page table"), stable commit [`31895cfd7956`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=31895cfd79564111cdd5a9f48c5d491ae26a238e) ("mm/vmalloc: add interfaces to free unmapped page table"), was not expecting commit [`324420bf91f6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=324420bf91f60582bb481133db9547111768ef17) ("arm64: add support for ioremap() block mappings") to be present; however, it is in this tree as commit [`37cbc7db8e4f`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=37cbc7db8e4fa9b66e15cf8661383a6b51c9a3e7) ("arm64: add support for ioremap() block mappings") so adjust the context to match mainline's version. 356 | -------------------------------------------------------------------------------- /conflict-notes/wahoo/android-msm-wahoo-4.4-oreo-dr1.md: -------------------------------------------------------------------------------- 1 | # 4.4.56 to 4.4.102 2 | 3 | * `arch/arm64/kernel/armv8_deprecated.c` 4 | 5 | * **Resolution:** Take both sides 6 | 7 | * **Causes:** Commit [`01ce16f40c97`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=01ce16f40c9767c2465fc86b1b54ad11192c6d10) ("arm64: armv8_deprecated: ensure extension of addr") was not expecting commit [`83f01e7ca215`](https://android.googlesource.com/kernel/msm/+/83f01e7ca2150ed9f996319c87e32782b42ce703) ("BACKPORT: arm64: Factor out PAN enabling/disabling into separate uaccess\_\* macros") to be present. Resulting diff is equivalent with both linux-stable and mainline. 8 | 9 | 10 | * `arch/arm64/kernel/entry.S` 11 | 12 | * **Resolution:** Take both sides (make final diff match upstream's) 13 | 14 | * **Causes:** Commit [`e946579e4bfd`](https://android.googlesource.com/kernel/msm/+/e946579e4bfdb5985f6d0d1450dbe6495a8319c8) ("BACKPORT: arm64: Disable TTBR0_EL1 during normal kernel execution") added an include, which was not expected by commit [`3ccf69562ac2`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=3ccf69562ac2ae701e274b30ac36165d15128ac6) ("arm64: entry: improve data abort handling of tagged pointers") 15 | 16 | 17 | * `arch/arm64/kernel/hw_breakpoint.c` 18 | 19 | * **Resolution:** Take mainline version 20 | 21 | * **Causes:** Commit [`4eaef3651815`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=4eaef365181564203f4f9fb8fb576c89481cca12) ("arm64: hw_breakpoint: fix watchpoint matching for tagged pointers") was reworked for 4.4 because it doesn't have commit [`fdfeff0f9e3d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=fdfeff0f9e3d9be2b68fa02566017ffc581ae17b) ("arm64: hw_breakpoint: Handle inexact watchpoint addresses"). However, the Pixel 2 tree does, as commit [`6bd71c8c03d1`](https://android.googlesource.com/kernel/msm/+/6bd71c8c03d1e4838bf34598307ec314923b08dc) ("BACKPORT: arm64: hw_breakpoint: Handle inexact watchpoint addresses"). Thus, we can use the upstream commit [`7dcd9dd8cebe`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7dcd9dd8cebe9fa626af7e2358d03a37041a70fb) ("arm64: hw_breakpoint: fix watchpoint matching for tagged pointers") for proper resolution. 22 | 23 | 24 | * `drivers/android/binder.c` 25 | 26 | * **Resolution:** Take left side (discard all changes) 27 | 28 | * **Causes:** 29 | 30 | * Commit [`596b97ec2e5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=596b97ec2e5e24c966b9cb4aa9a9766e53ecdd43) ("binder: use group leader instead of open thread") is already present as commit [`9036bcc59e36`](https://android.googlesource.com/kernel/msm/+/9036bcc59e36952da230f31187b1ab2f866ebfae) ("binder: use group leader instead of open thread") and commit [`359795138dc5`](https://android.googlesource.com/kernel/msm/+/359795138dc5440e09c58025e28ec1b38d648c09) ("binder: use group leader instead of open thread") and there have been other changes to this section since then. 31 | 32 | * Commit [`1792d6c17cb2`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1792d6c17cb282fd8e5cd197a8b33cb78484eb6a) ("binder: Use wake up hint for synchronous transactions.") is already present as commit [`0cebb407b2f`](https://android.googlesource.com/kernel/msm/+/0cebb407b2f431d748d9cc85cf7e4232a9223342) ("FROMLIST: binder: Use wake up hint for synchronous transactions.") and commit [`3956eabb34de`](https://android.googlesource.com/kernel/msm/+/3956eabb34de6b24bdbe90013c7567867bb139ea) ("android: binder: Use wake up hint for synchronous transactions.") and there have been other changes to this section since then. 33 | 34 | * Commit [`9dac44d5d4b0`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=9dac44d5d4b0a7fffe04ad505e0a082e900ad767) ("ANDROID: binder: fix proc->tsk check.") was included as part of commit [`9036bcc59e36`](https://android.googlesource.com/kernel/msm/+/9036bcc59e36952da230f31187b1ab2f866ebfae) ("binder: use group leader instead of open thread"). 35 | 36 | 37 | * `drivers/gpu/drm/msm/adreno/adreno_gpu.c` 38 | 39 | * **Resolution:** Take left side (discard all changes) 40 | 41 | * **Cause:** Commit [`b54e58ccceb7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b54e58ccceb794176b37037e76df3a7ed876b360) ("drm/msm: Ensure that the hardware write pointer is valid") is already present as commit [`7d080736a4b4`](https://android.googlesource.com/kernel/msm/+/7d080736a4b4601a16a2d81a4537d0202fc05157) ("drm/msm: Make sure that WPTR stays in bounds") and there have been other changes to this section since then. 42 | 43 | 44 | * `drivers/gpu/drm/msm/msm_gem_submit.c` 45 | 46 | * **Resolution:** Take both sides (make final diff match upstream's) 47 | 48 | * **Cause:** Commit [`031b02bc16ae`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=031b02bc16aeeb34c8038026cbbca1e6430c9d75) ("drm/msm: Fix potential buffer overflow issue") had to be adapted to work around the changed parameter (`struct msm_gem_address_space *aspac` instead of `struct msm_gpu *gpu`) that was introducted in commit [`231c57eeaf8e`](https://android.googlesource.com/kernel/msm/+/231c57eeaf8e10ec2a4510ffc98382ef1d7513ed) ("drm/msm: Pass the MMU domain index in struct msm_file_private"). 49 | 50 | 51 | * `drivers/gpu/drm/msm/msm_ringbuffer.c` 52 | 53 | * **Resolution:** Take left side (discard all changes) 54 | 55 | * **Cause:** The power of 2 alignment check in commit [`b54e58ccceb7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b54e58ccceb794176b37037e76df3a7ed876b360) ("drm/msm: Ensure that the hardware write pointer is valid") is already present in commit [`378583458fa1`](https://android.googlesource.com/kernel/msm/+/378583458fa167277b15d145dccce253459393ec) ("drm/msm: Add support for multiple ringbuffers") and there have been other changes to this section since then. 56 | 57 | 58 | * `drivers/mmc/host/sdhci.c` 59 | 60 | * **Resolution:** Take left side (discard all changes) 61 | 62 | * **Causes:** Commit [`81dd76ac077b`](https://android.googlesource.com/kernel/msm/+/81dd76ac077bdbc120ddb05ea9a27bc2ae8d7796) ("mmc: sdhci: Poll for register status much tightly") changed this same area and appears to resolve the same issue that commit [`74b4a5b7cf03`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=74b4a5b7cf03ff2d3ef9fab55b0e65588c00dd45) ("Revert some commits for cleaner 4.4.102 merge") does. However, because this wasn't a clearly equivalent swap, the platform change was taken over the upstream fix to avoid any regressions. 63 | 64 | 65 | * `drivers/net/wireless/ath/ath10k/core.c` 66 | 67 | * **Resolution:** Take both sides (make final diff match upstream's) 68 | 69 | * **Cause:** Commit [`2c65494080c9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=2c65494080c900c8a0aa4a865b57a8001960ff26) ("ath10k: fix memory leak in rx ring buffer allocation") did not account for commit [`9eaeb4e0974b`](https://android.googlesource.com/kernel/msm/+/9eaeb4e0974b976a037b7c55f0fe409bccbb7fdd) ("ath10k: fix spurious tx/rx during boot"), which was added by CAF to 4.4 (since it didn't appear upstream until v4.8-rc2). 70 | 71 | 72 | * `drivers/net/wireless/ath/ath10k/pci.c` 73 | 74 | * **Resolution:** Take both sides (make final diff match upstream's) 75 | 76 | * **Causes:** Commit [`483b1c69655d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=483b1c69655d61a4c15648cf96011cfb20aa2000) ("ath10k: override CE5 config for QCA9377") did not expect the location of the `if (QCA_REV_6174(ar))` statement to be moved by commit [`85541146968a`](https://android.googlesource.com/kernel/msm/+/85541146968a4753e28c6192948007960c46c36f) ("ath10k: pull reusable code from pci probe and remove for ahb"). 77 | 78 | 79 | * `drivers/net/wireless/iwlwifi/iwl-nvm-parse.c` 80 | 81 | * **Resolution:** Take both sides (use mainline version) 82 | 83 | * **Causes:** Commit [`fc29713fa7c7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=fc29713fa7c78fda30855444eeab2d5ea8088762) ("iwlwifi: add workaround to disable wide channels in 5GHz") was backported, ignoring the changes from commit [`57fbcce37be7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=57fbcce37be7c1d2622b56587c10ade00e96afa3) ("cfg80211: remove enum ieee80211_band"). However, the Pixel 2 tree as it as commit [`56f601d6bb9e`](https://android.googlesource.com/kernel/msm/+/56f601d6bb9e51c3c8a79a5f40878b8d1e6ff481) ("BACKPORT: cfg80211: remove enum ieee80211_band") so we can use mainline commit [`01a9c948a093`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=01a9c948a09348950515bf2abb6113ed83e696d8) ("iwlwifi: add workaround to disable wide channels in 5GHz"). 84 | 85 | 86 | * `drivers/regulator/core.c` 87 | 88 | * **Resolution:** Take left side (discard all changes) 89 | 90 | * **Causes:** Commit [`f9157b4ed20e`](https://android.googlesource.com/kernel/msm/+/f9157b4ed20e81a86d6316bff5c666b76ae6f1a0) ("Revert "regulator: Enable supply regulator if child rail is enabled."") removed the section changed by commit [`3e19487b9bf5`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=3e19487b9bf5076dcc2cd79da3dbd57b94d4e6b7) ("regulator: core: Clear the supply pointer if enabling fails"). Since the upstream commit doesn't appear to fix the issue described by the CAF commit, discard the change. 91 | 92 | 93 | * `drivers/scsi/sd.c` 94 | 95 | * **Resolution:** Take right side (make final diff match upstream's) 96 | 97 | * **Causes:** Commit [`7e83faf32824`](https://android.googlesource.com/kernel/msm/+/7e83faf32824cba959a710abcc13daeb0b673a86) ("Revert "sd: Fix rw_max for devices that report an optimal xfer size"") removed the curly brace before the `else` statement, which was expected in the diff of commit [`448961955592`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=448961955592c46f1490fb6ca8d3e52ce17e6222) ("scsi: sd: Consider max_xfer_blocks if opt_xfer_blocks is unusable") 98 | 99 | 100 | * `drivers/scsi/sg.c` 101 | 102 | * **Resolution:** Take both sides (leave mutex in place) 103 | 104 | * **Causes:** Commit [`82e2e0f9914d`](https://android.googlesource.com/kernel/msm/+/82e2e0f9914df19d910d3d249a12d416090a6802) ("Prevent potential double frees in sg driver") introduced a mutex, which commit [`a4075bbb67b9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a4075bbb67b9562b9599affc6fb38f04bd7073ff) ("scsi: sg: protect accesses to 'reserved' page array") did not expect. 105 | 106 | 107 | * `drivers/scsi/ufs/ufshcd.h` 108 | 109 | * **Solution:** Take left side (discard all changes) 110 | 111 | * **Cause:** Commit [`0c098158785b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=0c098158785b5c8091c0bae3aa505060414076cc) ("scsi: ufs: add capability to keep auto bkops always enabled") is already present as commit [`9f06dddf5bee`](https://android.googlesource.com/kernel/msm/+/9f06dddf5beecbcdf36535e0e587c23aaa7785f5) ("scsi: ufs: add capability to keep auto bkops always enabled") with a different shift value. 112 | 113 | 114 | * `drivers/staging/android/ion/ion.c` 115 | 116 | * **Resolution:** Take left side (discard all changes) 117 | 118 | * **Causes:** Commit [`a7544fdd1626`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a7544fdd1626b65db635022c9d36007bb32dd6d8) ("staging/android/ion : fix a race condition in the ion driver") is already present as commit [`cf229da50854`](https://android.googlesource.com/kernel/msm/+/cf229da5085451839eae40e5dc94164c74ae5b3a) ("staging/android/ion : fix a race condition in the ion driver") and there have been other changes to this file since then. 119 | 120 | 121 | * `drivers/usb/gadget/function/f_fs.c` 122 | 123 | * **Resolution:** Take left side (discard all changes) 124 | 125 | * **Causes:** 126 | 127 | * It appears commit [`4a1a3bb70fb4`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=4a1a3bb70fb4255a9f6052eb86db1ff2140255a6) ("usb: gadget: function: f_fs: pass companion descriptor along") was omitted in the CAF merge up to 4.4.55 in commit [`a4b9c109c2f9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a4b9c109c2f9143790c1d1a96475eecf7338713a) ("Merge tag v4.4.55 into branch 'msm-4.4'"). I assume this was done for a reason so the follow up fix in commit [`889caad4fbe4`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=889caad4fbe49e3a612ccb971e40c50912f90ace) ("usb: gadget: f_fs: avoid out of bounds access on comp_desc") is not needed. 128 | 129 | * The issue described by commit [`1e0f216195a6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1e0f216195a6d106ed50c386abffdf60f496d518) ("usb: gadget: f_fs: Fix possibe deadlock") is already fixed by commit [`dfe8b29ad1df`](https://android.googlesource.com/kernel/msm/+/dfe8b29ad1dfb84411c3c897a619b44c4cbf8905) ("usb: gadget: f_fs: Unlock mutex before unregistering gadget"). While the latter is much uglier than the former, there has been some minor code churn around that section since then so to avoid more conflicts from the CAF side of things, ignore this conflict as well. 130 | 131 | 132 | * `fs/ext4/crypto_key.c` 133 | 134 | * **Resolution:** Take left side (discard conflicting changes) 135 | 136 | * **Causes:** Commit [`7a5202190810`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7a5202190810dde1467718235c1f650fcf57592a) ("fscrypt: remove broken support for detecting keyring key revocation") is already present as commit [`8afa82212a86`](https://android.googlesource.com/kernel/msm/+/8afa82212a862d54386327710ef1ccd8c0d51263) ("fscrypt: remove broken support for detecting keyring key revocation") but git couldn't tell because of commit [`a8059e6d39ec`](https://android.googlesource.com/kernel/msm/+/a8059e6d39ecfab6c90abc8a7502652907cdf258) ("ext4 crypto: enable HW based encryption with ICE"). 137 | 138 | 139 | * `fs/ext4/ext4.h` 140 | 141 | * **Resolution:** Take left side (discard all changes) 142 | 143 | * **Causes:** 144 | 145 | * Commit [`7a5202190810`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7a5202190810dde1467718235c1f650fcf57592a) ("fscrypt: remove broken support for detecting keyring key revocation") is already present as commit [`8afa82212a86`](https://android.googlesource.com/kernel/msm/+/8afa82212a862d54386327710ef1ccd8c0d51263) ("fscrypt: remove broken support for detecting keyring key revocation") but git couldn't tell due to the functions added by commit [`a8059e6d39ec`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a8059e6d39ecfab6c90abc8a7502652907cdf258) ("ext4 crypto: enable HW based encryption with ICE"). 146 | 147 | 148 | * `fs/ext4/page-io.c` 149 | 150 | * **Resolution:** Take left side (discard all changes) 151 | 152 | * **Causes:** Commit [`0a76f023e6f2`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=0a76f023e6f2073936cc87ff839b2aaeccc4fb9a) ("ext4 crypto: don't let data integrity writebacks fail with ENOMEM") is already present as commit [`4dfa31b4af7e`](https://android.googlesource.com/kernel/msm/+/4dfa31b4af7e936832f657b18fd9f64eb26ed09d) ("ext4 crypto: don't let data integrity writebacks fail with ENOMEM") but git couldn't tell due to changes from commit [`a8059e6d39ec`](https://android.googlesource.com/kernel/msm/+/a8059e6d39ecfab6c90abc8a7502652907cdf258) ("ext4 crypto: enable HW based encryption with ICE"). 153 | 154 | 155 | * `fs/ext4/readpage.c` 156 | 157 | * **Resolution:** Take left side (discard all changes) 158 | 159 | * **Causes:** Commit [`0a76f023e6f2`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=0a76f023e6f2073936cc87ff839b2aaeccc4fb9a) ("ext4 crypto: don't let data integrity writebacks fail with ENOMEM") is already present as commit [`4dfa31b4af7e`](https://android.googlesource.com/kernel/msm/+/4dfa31b4af7e936832f657b18fd9f64eb26ed09d) ("ext4 crypto: don't let data integrity writebacks fail with ENOMEM") but git couldn't tell due to changes from commit [`d6567feb8f2b`](https://android.googlesource.com/kernel/msm/+/d6567feb8f2b6e479ec1a14aa6d04fdddd9b1092) ("ext4: don't allow ICE encryption on ICE-less block devices"). 160 | 161 | 162 | * `fs/f2fs/crypto_key.c` 163 | 164 | * **Resolution:** Take right side 165 | 166 | * **Causes:** Commit [`7a5202190810`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7a5202190810dde1467718235c1f650fcf57592a) ("fscrypt: remove broken support for detecting keyring key revocation") is already present as commit [`8afa82212a86`](https://android.googlesource.com/kernel/msm/+/8afa82212a862d54386327710ef1ccd8c0d51263) ("fscrypt: remove broken support for detecting keyring key revocation"), which causes git to fail to generate a proper diff from commit [`7a5202190810`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=7a5202190810dde1467718235c1f650fcf57592a) ("fscrypt: remove broken support for detecting keyring key revocation") to commit [`1dda04c761ab`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1dda04c761abf006402f7f5e9adb11f9044731c8) ("fscrypt: fix dereference of NULL user_key_payload"). 167 | 168 | 169 | * `fs/pstore/ram.c` 170 | 171 | * **Resolution:** Take both sides 172 | 173 | * **Causes:** Commit [`aca5b1e3c5b7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=aca5b1e3c5b7e73f20b686ca712cb4cf9fccb219) ("pstore: Allow prz to control need for locking") conflicts with commit [`b71d012395a4`](https://android.googlesource.com/kernel/msm/+/b71d012395a42ae6b58f36f5eaf460a9ff29e31a) ("fs/pstore/ramoops: add alternate encrypted buffer support") due to the added `*alt_paddr` parameter. 174 | 175 | 176 | * `fs/pstore/ram_core.c` 177 | 178 | * **Resolution:** Take left side 179 | 180 | * **Causes:** Commit [`9ece74e1006e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=9ece74e1006e1706a7c239fd158f93f126c04c2e) ("pstore: Correctly initialize spinlock and flags") conflicts with commit [`b71d012395a4`](https://android.googlesource.com/kernel/msm/+/b71d012395a42ae6b58f36f5eaf460a9ff29e31a) ("fs/pstore/ramoops: add alternate encrypted buffer support") 181 | 182 | 183 | * `kernel/power/process.c` 184 | 185 | * **Resolution:** Take both sides 186 | 187 | * **Cause:** Commit [`57caa2ad5ce3`](https://android.googlesource.com/kernel/msm/+/57caa2ad5ce35bedb7ab374a2e5b4d7adf63da2b) ("power: Adds functionality to log the last suspend abort reason.") added an include, which was not expected by commit [`90fd6738731b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=90fd6738731b6d105fc8f04832ae17a9ac82c05c) ("sched/cpuset/pm: Fix cpuset vs. suspend-resume bugs"). 188 | 189 | 190 | * `kernel/sched/sched.h` 191 | 192 | * **Resolution:** Take right side (make final diff match upstream's) 193 | 194 | * **Cause:** Commit [`62208707b466`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=62208707b466cc3c6ce951a7c4b7b4bb9b9192f6) ("sched/cputime: Fix prev steal time accouting during CPU hotplug") conflicts with both commit [`a2944ff05e77`](https://android.googlesource.com/kernel/msm/+/a2944ff05e7789f07a1f92164a697057d9613ef8) ("ANDROID: sched: avoid scheduling RT threads on cores currently handling softirqs") and commit [`87c4c5d01bb0`](https://android.googlesource.com/kernel/msm/+/87c4c5d01bb0d9414bb4a43f0631abf2b004c1d8) ("sched: backport cpufreq hooks from 4.9-rc4"), as they add functions above and below the removed section respectively. 195 | 196 | 197 | * `kernel/sysctl.c` 198 | 199 | * **Resolution:** Take right side (make final diff match upstream's) 200 | 201 | * **Causes:** Commit [`9cc5c789d91e`](https://android.googlesource.com/kernel/msm/+/9cc5c789d91e4174298c38cb5c7acafc5910a95d) ("Merge remote-tracking branch 'msm4.4/tmp-da9a92f' into msm-4.4") omitted the sysctl changes from commit [`fa6d0ba12a8e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=fa6d0ba12a8eb6a2e9a1646c5816da307c1f93a7) ("pipe: limit the per-user amount of pages allocated in pipes"), causing a conflict with commit [`c50fd34e1089`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=c50fd34e10897114a7be2120133bd7e0b4184024) ("mnt: Add a per mount namespace limit on the number of mounts"). 202 | 203 | 204 | * `mm/mempool.c` 205 | 206 | * **Resolution:** Take left side (discard all changes) 207 | 208 | * **Causes:** Commit [`d45aabadbcb9`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d45aabadbcb967d3b01451732f65da9ff7315450) ("mm/mempool: avoid KASAN marking mempool poison checks as use-after-free") is already present as commit [`42b909889a93`](https://android.googlesource.com/kernel/msm/+/42b909889a9337559417a24fc597010a904ece03) ("mm/mempool: avoid KASAN marking mempool poison checks as use-after-free") but git couldn't tell due to changes from commit [`13d2da8a5178`](https://android.googlesource.com/kernel/msm/+/13d2da8a5178820c49e73cc71f5470a064ae1268) ("mm, kasan: add GFP flags to KASAN API"). 209 | 210 | 211 | * `net/wireless/nl80211.c` 212 | 213 | * **Resolution:** Take left side 214 | 215 | * **Cause:** Commit [`6a6c61d8467d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=6a6c61d8467d2dd7059b7d52773c18f8122e4f68) ("nl80211: Define policy for packet pattern attributes") did not account for commit [`3fee1ede34a6`](https://android.googlesource.com/kernel/msm/+/3fee1ede34a6c3b2dd7d816643e887c2308f6a78) ("nl80211: add feature for BSS selection support") being present. 216 | 217 | 218 | * `sound/usb/card.c` 219 | 220 | * **Resolution:** Take right side (shuffle resolution) 221 | 222 | * **Cause:** Commit [`2ecedf5dc75b`](https://android.googlesource.com/kernel/msm/+/2ecedf5dc75bc770ec09bd2238e798063aeafc4b) ("sound: usb: Add support for parsing AudioStreaming intf for BADD devices") shuffled the function `snd_usb_create_streams`, which commit [`46c7b1fa4911`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=46c7b1fa4911a859a82575e3ffb55b34a89a222d) ("ALSA: usb-audio: Check out-of-bounds access by corrupted buffer descriptor") did not expect. Resolution is identical but has been moved into the `switch` statement to satisfy the changes made by CAF's shuffling. 223 | 224 | 225 | # 4.4.104 226 | 227 | * `drivers/mmc/core/bus.c` 228 | 229 | * **Resolution:** Take left side (discard all changes) 230 | 231 | * **Cause:** Commit [`5c65b739389f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5c65b739389fbc353fb42d379e9b7379cfe6d3f6) ("mmc: core: Do not leave the block driver in a suspended state") was already resolved by [`192cfe16ca57`](https://android.googlesource.com/kernel/msm/+/192cfe16ca5761bb7a5aafc016e79a21b2bd4002) ("mmc: bus: Handle error in case bus_ops suspend fails") but the latter has an extra comment block so git could not tell the fix was already present. 232 | -------------------------------------------------------------------------------- /conflict-notes/wahoo/android-msm-wahoo-4.4-oreo-mr1.md: -------------------------------------------------------------------------------- 1 | # 4.4.88 to 4.4.105 2 | 3 | * `drivers/gpu/drm/msm/msm_gem_submit.c` 4 | 5 | * **Resolution:** Take both sides (make final diff match upstream's) 6 | 7 | * **Cause:** Commit [`031b02bc16ae`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=031b02bc16aeeb34c8038026cbbca1e6430c9d75) ("drm/msm: Fix potential buffer overflow issue") had to be adapted to work around the changed parameter (`struct msm_gem_address_space *aspac` instead of `struct msm_gpu *gpu`) that was introducted in commit [`231c57eeaf8e`](https://android.googlesource.com/kernel/msm/+/231c57eeaf8e10ec2a4510ffc98382ef1d7513ed) ("drm/msm: Pass the MMU domain index in struct msm_file_private"). 8 | 9 | 10 | * `drivers/media/v4l2-core/v4l2-compat-ioctl32.c` 11 | 12 | * **Resolution:** Take left side (discard all changes) 13 | 14 | * **Cause:** Commit [`93ff127ef6c7`](https://android.googlesource.com/kernel/msm/+/93ff127ef6c7a2a120f7ed843c292b3cd5dca1c2) ("v4l2: Refactor, fix security bug in compat ioctl32") rewrote the `put_user` statements with a `convert_in_user` macro, which was unexpected by commit [`04affe4e1171`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=04affe4e117169e75c4ff1f12dd30d74c9a629fc) ("media: v4l2-compat-ioctl32: Fix timespec conversion"). The former fixes the issue described by the latter (as they are by the same author). 15 | 16 | 17 | * `drivers/mmc/core/bus.c` 18 | 19 | * **Resolution:** Take left side (discard all changes) 20 | 21 | * **Cause:** Commit [`5c65b739389f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5c65b739389fbc353fb42d379e9b7379cfe6d3f6) ("mmc: core: Do not leave the block driver in a suspended state") was already resolved by [`192cfe16ca57`](https://android.googlesource.com/kernel/msm/+/192cfe16ca5761bb7a5aafc016e79a21b2bd4002) ("mmc: bus: Handle error in case bus_ops suspend fails") but the latter has an extra comment block so git could not tell the fix was already present. 22 | 23 | 24 | * `drivers/net/wireless/iwlwifi/iwl-nvm-parse.c` 25 | 26 | * **Resolution:** Take both sides (use mainline version) 27 | 28 | * **Causes:** Commit [`fc29713fa7c7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=fc29713fa7c78fda30855444eeab2d5ea8088762) ("iwlwifi: add workaround to disable wide channels in 5GHz") was backported, ignoring the changes from commit [`57fbcce37be7`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=57fbcce37be7c1d2622b56587c10ade00e96afa3) ("cfg80211: remove enum ieee80211_band"). However, the Pixel 2 tree as it as commit [`56f601d6bb9e`](https://android.googlesource.com/kernel/msm/+/56f601d6bb9e51c3c8a79a5f40878b8d1e6ff481) ("BACKPORT: cfg80211: remove enum ieee80211_band") so we can use mainline commit [`01a9c948a093`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=01a9c948a09348950515bf2abb6113ed83e696d8) ("iwlwifi: add workaround to disable wide channels in 5GHz"). 29 | 30 | 31 | * `drivers/scsi/ufs/ufshcd.h` 32 | 33 | * **Solution:** Take left side (discard all changes) 34 | 35 | * **Cause:** Commit [`0c098158785b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=0c098158785b5c8091c0bae3aa505060414076cc) ("scsi: ufs: add capability to keep auto bkops always enabled") is already present as commit [`9f06dddf5bee`](https://android.googlesource.com/kernel/msm/+/9f06dddf5beecbcdf36535e0e587c23aaa7785f5) ("scsi: ufs: add capability to keep auto bkops always enabled") with a different shift value. 36 | 37 | 38 | * `kernel/power/process.c` 39 | 40 | * **Resolution:** Take both sides 41 | 42 | * **Cause:** Commit [`57caa2ad5ce3`](https://android.googlesource.com/kernel/msm/+/57caa2ad5ce35bedb7ab374a2e5b4d7adf63da2b) ("power: Adds functionality to log the last suspend abort reason.") added an include, which was not expected by commit [`90fd6738731b`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=90fd6738731b6d105fc8f04832ae17a9ac82c05c) ("sched/cpuset/pm: Fix cpuset vs. suspend-resume bugs"). 43 | 44 | 45 | * `net/wireless/nl80211.c` 46 | 47 | * **Resolution:** Take left side (discard conflict) 48 | 49 | * **Cause:** Commit [`6a6c61d8467d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=6a6c61d8467d2dd7059b7d52773c18f8122e4f68) ("nl80211: Define policy for packet pattern attributes") did not account for commit [`3fee1ede34a6`](https://android.googlesource.com/kernel/msm/+/3fee1ede34a6c3b2dd7d816643e887c2308f6a78) ("nl80211: add feature for BSS selection support") being present. 50 | 51 | 52 | * `sound/usb/card.c` 53 | 54 | * **Resolution:** Take right side (shuffle resolution) 55 | 56 | * **Cause:** Commit [`2ecedf5dc75b`](https://android.googlesource.com/kernel/msm/+/2ecedf5dc75bc770ec09bd2238e798063aeafc4b) ("sound: usb: Add support for parsing AudioStreaming intf for BADD devices") shuffled the function `snd_usb_create_streams`, which commit [`46c7b1fa4911`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=46c7b1fa4911a859a82575e3ffb55b34a89a222d) ("ALSA: usb-audio: Check out-of-bounds access by corrupted buffer descriptor") did not expect. Resolution is identical but has been moved into the `switch` statement to satisfy the changes made by CAF's shuffling. 57 | 58 | 59 | # 4.4.106 60 | 61 | * `arch/arm/include/asm/kvm_arm.h` 62 | 63 | * **Resolution:** Take right side (use mainline diff) 64 | 65 | * **Cause:** When mainline commit [`5553b142be11`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=5553b142be11e794ebc0805950b2e8313f93d718) ("arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one") was backported as commit [`a5fa9efe4e01`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a5fa9efe4e019e1f8f213142836c84f010cc4faf) ("arm: KVM: Fix VTTBR_BADDR_MASK BUG_ON off-by-one") in the 4.4 tree, it did not expect mainline commit [`8420dcd37ef3`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8420dcd37ef34040c8fc5a27bf66887b3b2faf80) ("arm: KVM: Make kvm_arm.h friendly to assembly code") to be here, as it was introduced in 4.5. However, it is as commit [`516f3f777e5f`](https://android.googlesource.com/kernel/msm/+/516f3f777e5fb0710f1626c79e3dacca751b8c30) ("arm: KVM: Make kvm_arm.h friendly to assembly code") so we can just use mainline's version. 66 | 67 | 68 | # 4.4.109 69 | 70 | * `net/ipv4/raw.c` 71 | 72 | * **Resolution:** Take right side (make final diff match upstream's) 73 | 74 | * **Cause:** When mainline commit [`8f659a03a0ba`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=8f659a03a0ba9289b9aeb9b4470e6fb263d6f483) ("net: ipv4: fix for a race condition in raw_sendmsg") was backported to the 4.4 stable tree as commit [`be27b620a861`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=be27b620a861dc2a143b78e81e23f5622d9105da), it was slightly changed because mainline commit [`e2d118a1cb5e`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=e2d118a1cb5e60d077131a09db1d81b90a5295fe) ("net: inet: Support UID-based routing in IP protocols.") is not present in the stable 4.4 tree. However, it is in this one since Google added it as a backport in commit [`b8ebf03fc6a9`](https://android.googlesource.com/kernel/msm/+/b8ebf03fc6a9cee79cb71a2921953425fdee8e97) ("net: inet: Support UID-based routing in IP protocols.") so adjust the diff to account for this (final diff matches both the stable and mainline commit). 75 | 76 | 77 | # 4.4.110 78 | 79 | * `kernel/fork.c` 80 | 81 | * **Resolution:** Modified right side (adjust context) 82 | 83 | * **Cause:** The changes to `kernel/fork.c` (viewable by running `git log v4.4.109..v4.4.110 kernel/fork.c`) had to be adjusted for Google's addition of commit [`059eb79ae99a`](https://android.googlesource.com/kernel/msm/+/059eb79ae99a798c2d7424e763d4e1ef335fa4db) ("UPSTREAM: Clarify naming of thread info/stack allocators"). Final diff matches what was merged into Google's 4.4 kernel/common branch by Greg Kroah-Hartman. 84 | 85 | 86 | # 4.4.112 87 | 88 | * `drivers/md/dm-bufio.c` 89 | 90 | * **Resolution:** Take right side (make final diff match upstream's with one note below) 91 | 92 | * **Cause:** When mainline commit [`fbc7c07ec23c`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=fbc7c07ec23c040179384a1f16b62b6030eb6bdd) ("dm bufio: fix shrinker scans when (nr_to_scan < retain_target)") was backported to the 4.4 tree as commit [`cbb1cc722aaa`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=cbb1cc722aaa9f55b6fa3f8f9be7635652ddc2ae) ("dm bufio: fix shrinker scans when (nr_to_scan < retain_target)"), it was modified to work around the absence of mainline commit [`d12067f428c0`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d12067f428c037b4575aaeb2be00847fc214c24a) ("dm bufio: don't take the lock in dm_bufio_shrink_count"). However, it is present in this tree as commit [`e3c2e858b996`](https://android.googlesource.com/kernel/msm/+/e3c2e858b996e0c1d9bc3e3702c7160ec5385215) ("BACKPORT: dm bufio: don't take the lock in dm_bufio_shrink_count"). Take the mainline diff and modify it to use ACCESS_ONCE instead of READ_ONCE due to lack of mainline commit [`6aa7de059173`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=6aa7de059173a986114ac43b8f50b297a86f09a8) ("locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE()"). 93 | 94 | 95 | # 4.4.113 96 | 97 | * `arch/x86/include/asm/thread_info.h` 98 | 99 | * **Resolution:** Take right side (make final diff match upstream's) 100 | 101 | * **Cause:** The addition of commit [`fdb92b0de361`](https://android.googlesource.com/kernel/msm/+/fdb92b0de361f9043f359a1de52e2bedd9da4599) ("mm: Implement stack frame object validation") prevented git from cleanly applying stable commit [`cfc8c1d61e46`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=cfc8c1d61e46fd3c60a34a5b1962eeeb03222a3d) ("x86/asm: Use register variable to get stack pointer value"). 102 | 103 | 104 | # 4.4.115 105 | 106 | * `drivers/usb/gadget/function/f_fs.c` 107 | 108 | * **Resolution:** Take left side (discard all changes) 109 | 110 | * **Cause:** Stable commit [`68b43caf4a4b`](https://android.googlesource.com/kernel/msm/+/68b43caf4a4b98256bdb67dba025f858bdf21725) ("usb: f_fs: Prevent gadget unbind if it is already unbound") is already present as commit [`35fdb9cd7e90`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=35fdb9cd7e90c08ac9697fa330e4e290b9d34f8a) ("usb: f_fs: Prevent gadget unbind if it is already unbound") with a slightly different resolution so it could not be cleanly resolved. 111 | 112 | 113 | # 4.4.118 114 | 115 | * `net/Kconfig` 116 | 117 | * **Resolution:** Take both sides (make final diff match upstream's) 118 | 119 | * **Cause:** Stable commit [`d365b297433c`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d365b297433cf2969fa94f243d7afddc073c7bf1) ("net: add dst_cache support") was not expecting the change to this file from commit [`016c030cc678`](https://android.googlesource.com/kernel/msm/+/016c030cc67882b2143fc8098afa471c8bf33bdf) ("net: ipc_router: Add snapshot of IPC Router") to be present. 120 | 121 | * `net/core/Makefile` 122 | 123 | * **Resolution:** Take both sides (make final diff match upstream's) 124 | 125 | * **Cause:** Stable commit [`d365b297433c`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d365b297433cf2969fa94f243d7afddc073c7bf1) ("net: add dst_cache support") was not expecting the change to this file from commit [`274f3cfdd0a0`](https://android.googlesource.com/kernel/msm/+/274f3cfdd0a0a14a73b510405cc6fc91abee74e0) ("net: sockev: Initial Commit") to be present. 126 | 127 | 128 | # 4.4.124 129 | 130 | * `drivers/gpu/drm/msm/msm_gem.c` 131 | 132 | * **Resolution:** Take both sides (make final diff match upstream's) 133 | 134 | * **Cause:** Commit [`a808f9895c87`](https://android.googlesource.com/kernel/msm/+/a808f9895c87773833650271eb7c5281fbc0d8ff) ("drm/msm: Use dma_sync_sg_for_device() to flush cache for new buffers") changed one of the sections modified by stable commit [`c1b1c1af967a`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=c1b1c1af967a84e986a9e893b4eebf6f7a40045c) ("drm/msm: fix leak in failed get_pages"), requiring a slight context change. 135 | 136 | 137 | # 4.4.125 138 | 139 | * `arch/arm64/mm/mmu.c` 140 | 141 | * **Resolution:** Take both sides (make final diff match upstream's) 142 | 143 | * **Cause:** The backport of mainline commit [`b6bdb7517c3d`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=b6bdb7517c3d3f41f20e5c2948d6bc3f8897394e) ("mm/vmalloc: add interfaces to free unmapped page table"), stable commit [`31895cfd7956`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=31895cfd79564111cdd5a9f48c5d491ae26a238e) ("mm/vmalloc: add interfaces to free unmapped page table"), was not expecting commit [`324420bf91f6`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=324420bf91f60582bb481133db9547111768ef17) ("arm64: add support for ioremap() block mappings") to be present; however, it is in this tree as commit [`37cbc7db8e4f`](https://android.googlesource.com/kernel/msm/+/37cbc7db8e4fa9b66e15cf8661383a6b51c9a3e7) ("arm64: add support for ioremap() block mappings") so adjust the context to match mainline's version. 144 | -------------------------------------------------------------------------------- /info/README.md: -------------------------------------------------------------------------------- 1 | # Index for info 2 | 3 | - [`what-is-linux-stable.md`](what-is-linux-stable.md) gives an overview of what linux-stable is and how it came about. 4 | - [`why-is-linux-stable-important.md`](why-is-linux-stable-important.md) gives some reasons why this is important and addresses some of the excuses that people give for not caring about it (when they definitely should). 5 | 6 | I also recommend reading all of this info from Greg Kroah-Hartman himself, at the following links: 7 | - https://lkml.org/lkml/2018/3/22/560 8 | - https://lkml.org/lkml/2018/3/22/647 9 | - http://kroah.com/log/blog/2018/02/05/linux-kernel-release-model/ 10 | -------------------------------------------------------------------------------- /info/what-is-linux-stable.md: -------------------------------------------------------------------------------- 1 | # What is linux-stable? 2 | 3 | 4 | ## Background 5 | 6 | [linux-stable](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git), as its name somewhat obviously implies, is the stable arm of the Linux kernel. The other arm is called "mainline", which is the master branch. All development happens in mainline, according to the following process: 7 | 1. [Linus Torvalds](https://github.com/torvalds) will take a bunch of patches from his maintainers for two weeks. 8 | 2. After this two weeks, he releases an rc1 (e.g. 4.14-rc1) kernel. 9 | 3. For each week for the next 6-8 weeks, he will release another RC (e.g. 4.14-rc2, 4.14-rc3, etc) kernel, which contains ONLY bug and regression fixes. 10 | 4. Once it is deemed stable, it will be released as a tarball for download on [kernel.org](https://www.kernel.org) (e.g. 4.14). 11 | 12 | The stable process exists because people don't want to worry about steps 1-3 in the above process. While there are not many issues during development, they can happen. This is the stable process: 13 | 1. Once a kernel is released on kernel.org, [Greg Kroah-Hartman](https://github.com/gregkh), the stable kernel maintainer, will take it and fork it to the linux-stable repo. 14 | 2. He'll add patches from mainline that fix issues or code in the older kernel(s). 15 | 3. After the patch has been added to his queue, he'll do an RC push for testing. 16 | 4. After the RC has been tested for two days, he'll release an stable kernel (e.g. 4.14.1, 4.14.2, etc). 17 | 18 | These two processes work side by side to make sure users are getting the highest quality end product. 19 | 20 | 21 | ## Long-term support kernels 22 | 23 | Every year, Greg will pick one kernel and maintain it for either two years (LTS) or six years (extended LTS). These are designed to have products that need stability (like Android phones or other IOT devices). The process is the exact same as above, it just happens for a longer time. There are currently six LTS kernels (which can always be viewed on [the kernel.org releases page](https://www.kernel.org/category/releases.html)): 24 | - [4.14 (LTS)](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.14.y), maintained by Greg Kroah-Hartman 25 | - [4.9 (LTS)](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.9.y), maintained by Greg Kroah-Hartman 26 | - [4.4 (eLTS)](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.4.y), maintained by Greg Kroah-Hartman 27 | - [4.1(LTS)](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.1.y), maintained by Sasha Levin 28 | - [3.16 (LTS)](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-3.16.y), maintained by Ben Hutchings 29 | - [3.2 (LTS)](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/?h=linux-3.2.y), maintained by Ben Hutchings 30 | 31 | When a company bases a product off of a long-term support kernel, they'll usually need to add platform specific patches. In Android, this is for stuff like the touchscreen, speakers, vibration motor, and SoC. Because this stuff is out of tree, it can take a long time to update those things for new kernel versions, necessitating something that is maintained for a long time. Taking these linux-stable patches are even more important because they can't jump ahead to a mainline kernel that would automatically have all this stuff. 32 | 33 | 34 | ## What is a stable patch? 35 | 36 | Thankfully, the stable maintainers have created a set of rules for what patches can and cannot go into a stable tree, which guarantees stability: 37 | - It must be obviously correct and tested. 38 | - It cannot be bigger than 100 lines, with context. 39 | - It must fix only one thing. 40 | - It must fix a real bug that bothers people (not a, "This could be a problem..." type thing). 41 | - It must fix a problem that causes a build error (but not for things marked CONFIG_BROKEN), an oops, a hang, data corruption, a real security issue, or some "oh, that's not good" issue. In short, something critical. 42 | - Serious issues as reported by a user of a distribution kernel may also be considered if they fix a notable performance or interactivity issue. As these fixes are not as obvious and have a higher risk of a subtle regression they should only be submitted by a distribution kernel maintainer and include an addendum linking to a bugzilla entry if it exists and additional information on the user-visible impact. 43 | - New device IDs and quirks are also accepted. 44 | - No "theoretical race condition" issues, unless an explanation of how the race can be exploited is also provided. 45 | - It cannot contain any "trivial" fixes in it (spelling changes, whitespace cleanups, etc). 46 | - It must follow the [Documentation/process/submitting-patches.rst](https://github.com/torvalds/linux/blob/master/Documentation/process/submitting-patches.rst) rules. 47 | - It or an equivalent fix must already exist in Linus' tree (upstream). 48 | 49 | The last one is super important because it makes sure that jumping forward (whenever possible) doesn't introduce new bugs. Everything else keeps the stable trees sane, which means you should update yours to match the latest! 50 | 51 | 52 | ## Sources 53 | 54 | - [2. Process.rst](https://github.com/torvalds/linux/blob/master/Documentation/process/2.Process.rst) 55 | - [stable-kernel-rules.rst](https://github.com/torvalds/linux/blob/master/Documentation/process/stable-kernel-rules.rst) 56 | - [Kernel Recipes 2017 - Linux Kernel release model - Greg KH](https://www.youtube.com/watch?v=RKadXpQLmPU) 57 | - [Linux Kernel Development, Greg Kroah-Hartman - Git Merge 2016](https://www.youtube.com/watch?v=vyenmLqJQjs) 58 | - [Keynote: State of the Linux Kernel, Greg Kroah-Hartman](https://www.youtube.com/watch?v=SIQr2-Dh0es) 59 | -------------------------------------------------------------------------------- /info/why-is-linux-stable-important.md: -------------------------------------------------------------------------------- 1 | # Why is linux-stable important? 2 | 3 | NOTE: Most of this information will be most revelant within the context of Android but it's also true for desktop distributions and such. 4 | 5 | 6 | ## Stable fixes 7 | 8 | These patches have been thoroughly vetted before getting into the stable tree. There are only two ways a patch can get into the stable tree: 9 | 10 | 1. It was explicitly requested with a `cc: stable ` when the patch went into Linus's tree. 11 | 2. It was explicitly requested with either a commit ID or backported patch sent to `stable@vger.kernel.org`. 12 | 13 | Additionally, these patches have at least three times to be validated as correct: 14 | 15 | 1. When they first go into Linus's tree (mainline) 16 | 2. When they go into the stable-queue (Greg's list of pending patches) 17 | 3. When they go into the stable-rc (Greg's list of patches that will be released after two days of review). 18 | 19 | The author and subsystem maintainer get an email for numbers 2 and 3, meaning that they can say if the patch is good or not. There are times where things are missed but the critical errors are often fixed within a few hours (Wi-Fi broke in 4.9.55, 4.9.56 was released 10 hours later and CONFIG_PAGE_POISON was broken in 4.4.101, 4.4.102 was released 5 hours later). 20 | 21 | Lastly, as stated in the [what is linux-stable](what-is-linux-stable.md), these patches fix legitimate issues, not theoretical ones. 22 | 23 | 24 | ## Lots of investment behind it 25 | 26 | First and foremost, the Linux kernel is the biggest software development project in the world and many many companies contribute to it, like Redhat, Intel, Google, Facebook, and many more. In fact, Google has been working with Greg to get these stable releases into their common Android kernel on the [android-3.18 branch](https://android.googlesource.com/kernel/common/+log/android-3.18/Makefile), [android-4.4 branch](https://android.googlesource.com/kernel/common/+log/android-4.4/Makefile), [android-4.9 branch](https://android.googlesource.com/kernel/common/+log/android-4.9/Makefile), and [android-4.14 branch](https://android.googlesource.com/kernel/common/+log/android-4.14/Makefile), which are in turn merged into Qualcomm's vendor kernel trees. They have also been merging it into their Pixel devices ([marlin](https://android.googlesource.com/kernel/msm/+log/android-msm-marlin-3.18-oreo-mr1/Makefile) and [wahoo](https://android.googlesource.com/kernel/msm/+log/android-msm-wahoo-4.4-oreo-mr1/Makefile)). Chromium merges stable updates into their [chromeos-4.4](https://chromium.googlesource.com/chromiumos/third_party/kernel/+log/chromeos-4.4) and [chromeos-4.14](https://chromium.googlesource.com/chromiumos/third_party/kernel/+log/chromeos-4.14) branches. If they weren't confident these releases weren't 100% stable or worthwhile, they wouldn't put the effort (and by extension, money) behind it. Facebook has stated that they upgrade their servers with the stable kernels and experience no issues when doing so. Furthermore, by companies merging in these updates, they can help with testing and figuring out issues. 27 | 28 | 29 | ## Get fixes as soon as they are available 30 | 31 | When important vulnerabilities are disclosed/fixed, the stable kernels are the first ones to get them. Sure, you could watch CVE lists to get the fixes but there are already other people doing that. It's easier to just take the stable release when it drops. Just two examples... 32 | 33 | * Commit [`9691eac5593f`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit?id=9691eac5593ff1e2f82391ad327f21d90322aec1) ("mm: remove gup_flags FOLL_WRITE games from __get_user_pages()"), otherwise referred to as the fix for the Dirty COW vulnerability, was released in 3.10.104 on October 21st. It wasn't added to Google trees until [their December 2016 security update](https://source.android.com/security/bulletin/2016-12-01). That is fast in the world of software development but by tracking linux-stable, that could be added and flashed day one. 34 | 35 | * Commit [`4f996e234dad`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=4f996e234dad488e5d9ba0858bc1bae12eff82c3) ("percpu: fix synchronization between chunk->map_extend_work and chunk destruction") was labeled as a "critical" security fix by Google in [their December 2016 security update](https://source.android.com/security/bulletin/2016-12-01). It was fixed in 3.18.37, which was released on July 13th, 2016. That's a gap of six months! 36 | 37 | There are certainly others I could find but the point is ignore CVEs, the fixes get added to linux-stable almost as soon as they are available so tracking those results in the least amount of effort for the most gain. 38 | 39 | 40 | ## Common complaints from Android developers 41 | 42 | ### "Most of the fixes are for architectures/drivers we don't use/run" 43 | 44 | Depending on your version of "mostly", this is true. There is a lot of code Android doesn't use in the Linux kernel. However, that means there will be no conflicts from those files when merging new version! Nobody builds every single part of the kernel, not even your most common distributions like Ubuntu or Mint. It doesn't mean you shouldn't be taking these fixes because there ARE fixes for drivers you DO run. Take arm/arm64 and ext4 for example, which are the most common Android architecture and file system respectively. In 4.4, from 4.4.78 (version of the latest Oreo CAF tag) to 4.4.121 (latest upstream tag), these are the following numbers for the commits of those systems: 45 | 46 | ```bash 47 | nathan@flashbox ~/kernels/linux-stable (master) $ git log --format=%h v4.4.78..v4.4.121 | wc -l 48 | 2285 49 | 50 | nathan@flashbox ~/kernels/linux-stable (master) $ git log --format=%h v4.4.78..v4.4.121 arch/arm | wc -l 51 | 58 52 | 53 | nathan@flashbox ~/kernels/linux-stable (master) $ git log --format=%h v4.4.78..v4.4.121 arch/arm64 | wc -l 54 | 22 55 | 56 | nathan@flashbox ~/kernels/linux-stable (master) $ git log --format=%h v4.4.78..v4.4.121 fs/ext4 | wc -l 57 | 18 58 | ``` 59 | 60 | Sure, there may even be patches in those folders that aren't run or built but that blanket statement is false. A quote from Greg Kroah-Hartman... 61 | 62 | > These are known bug fixes that you need to be taking. Take them all, don't cherry-pick. Don't say "this isn't good, this isn't bad", look at them and take them all. There's no reason you shouldn't be taking them all. If you say "oh I don't want to take them all because I don't build all those patches or I don't build those drivers" then take them anyways, it doesn't matter, it's just empty code in your tree. It makes your merge harder. Take them all and merge them in so you know you're clean and you're good going forward". 63 | 64 | ### "There is a lot of breakage when merging and using linux-stable in my tree" 65 | 66 | In fact, within the three Linux versions I have personally worked with (3.10, 3.18, 4.4), I have only had to revert a small handful of commits for various reasons. Yes, conflicts can sometimes be tricky to solve depending on the context but they are easily resolvable by looking at what was done to cause the conflict (using `git log` and `git blame`). 67 | 68 | * 3.10: Only commit [`9a76e683b643`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.10.y&id=9a76e683b64361450f3e331dd6634f5aa39ea51b) ("ASoC: compress: Fix compress device direction check") needed to be reverted, as it broke sound. For context, the Nexus 6P ships with a 3.10.73 kernel where as linux-stable is up to 3.10.108. 69 | ```bash 70 | nathan@flashbox ~/kernels/linux-stable (master) $ git log --format=%h v3.10.73..v3.10.108 | wc -l 71 | 2337 72 | ``` 73 | 74 | * 3.18: There have been no major regressions between 3.18.71 (latest available version from CAF) and 3.18.99 (latest version upstream) 75 | 76 | ```bash 77 | nathan@flashbox ~/kernels/linux-stable (master) $ git log --format=%h v3.18.71..v3.18.99 | wc -l 78 | 957 79 | ``` 80 | 81 | There was only one regression between 3.18.31 and 3.18.99: commit [`08b1ade02e58`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-3.18.y&id=08b1ade02e584ac5eb8d9c075debf202bed9d085) ("pinctrl: qcom: Don't clear status bit on irq_unmask") needed to be reverted, done by CAF in commit [`8b4f04992b06`](https://source.codeaurora.org/quic/la/kernel/msm-3.18/commit?id=8b4f04992b064cb0c6d78adc2c2593f1aec92773) ("pinctrl: qcom: Clear status bit on irq_unmask"). 82 | 83 | ```bash 84 | nathan@flashbox ~/kernels/linux-stable (master) $ git log --format=%h v3.18.31..v3.18.99 | wc -l 85 | 2935 86 | ``` 87 | 88 | * 4.4: There have been no major regressions between 4.4.78 (latest available version from CAF) and 4.4.121 (latest version upstream) 89 | 90 | ```bash 91 | nathan@flashbox ~/kernels/linux-stable (master) $ git log --format=%h v4.4.78..v4.4.121 | wc -l 92 | 2285 93 | ``` 94 | 95 | There were only two regressions between 4.4.21 and 4.4.121: commit [`800791e7e0fd`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-4.4.y&id=800791e7e0fd9835be2f55c55147c379888b7442) ("pinctrl: qcom: Don't clear status bit on irq_unmask") and commit [`e2968fb8e798`](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?h=linux-4.4.y&id=e2968fb8e7980dccc199dac2593ad476db20969f) ("ext4: require encryption feature for EXT4_IOC_SET_ENCRYPTION_POLICY") needed to be reverted. The former was done by Google in commit [`7d16e880c625`](https://android.googlesource.com/kernel/common/+/7d16e880c62547936b431cde966d17e39e6e92e0) ("Revert "ext4: require encryption feature for EXT4_IOC_SET_ENCRYPTION_POLICY"") and the latter was done by CAF in commit [`ce9e5bde6654`](https://source.codeaurora.org/quic/la/kernel/msm-4.4/commit/?id=ce9e5bde6654677cb61c4685f5f164d89cba2a0b) ("pinctrl: qcom: Clear status bit on irq_unmask"). 96 | 97 | ```bash 98 | nathan@flashbox ~/kernels/linux-stable (master) $ git log --format=%h v4.4.21..v4.4.121 | wc -l 99 | 4828 100 | ``` 101 | 102 | Those numbers don't lie: out of two to three thousand commits, there is almost next to zero breakage when merging in linux-stable and furthermore, git has built-in tools to easily deal with breakage (namely `git bisect`) so dealing with issues is not that difficult at all. Guenter Roeck, who works for Google on the Chromium kernels, has publicly stated that merging the 4.4 and 4.14 releases has resulted in very very few regressions ([source](https://lkml.org/lkml/2018/2/7/464)). 103 | 104 | 105 | ### "It takes too much time/effort" 106 | 107 | This can be true, especially for a bring up like 4.4.78 to 4.4.121. However, when I first did it for the OnePlus 5, it probably took me an evening (like 4-5 hours). The most time consuming part is the initial bring up; once you are all the way up to date, it takes no time at all to merge in a new release, which usually contains no more than 100 commits. The benefits that this brings (more stability and better security for your users) should necessitate this process though. 108 | 109 | 110 | ### "I'm secure enough with Google and CAF's patches" OR "We merge in all relevant CVEs" 111 | 112 | Not all fixes are labeled as security vulnerabilities even though they may be discovered to be so later on. Also, Google and CAF do not find all the relevant bug and security fixes in upstream. Just in the security update which I linked above, there was a critical security fix in a kernel released in July that was not released to the public via an Android security update until December. There are plenty of other instances where that happens. Greg Kroah-Hartman states it best in [his Kernel Recipes 2017 talk](https://youtu.be/RKadXpQLmPU?t=24m26s) and [a Google+ post regarding CVEs](https://plus.google.com/+gregkroahhartman/posts/EyRv8WjbWqR). Be sensible and merge everything. 113 | 114 | 115 | ## Demonstration 116 | 117 | Greg Kroah-Hartman gave [a talk at Kernel Recipes 2017](https://youtu.be/RKadXpQLmPU?t=46m37s) where he did a demonstration on the Pixel XL (Google's latest flagship at the time) with the latest security patch, running a 3.18.52. Using an untrusted app and context, he was able to shut down the device with a simple C program. The fix for this bug was available in 3.18.60, which was released two months later. By taking the latest update as soon as it is available, you make sure you are secure as possible. As Greg said himself: 118 | 119 | > If you are not using a[n up to date] stable / longterm kernel, your machine is insecure." 120 | 121 | Kees Cook would later say: 122 | 123 | >If you are not using the latest kernel, you don't have the most recently added security defenses, which, in the face of newly exploited bugs, may render your machine less secure than it could have been. 124 | 125 | Basically... take the updates!! 126 | -------------------------------------------------------------------------------- /process/README.md: -------------------------------------------------------------------------------- 1 | # Index for process 2 | 3 | - [`how-to.md`](how-to.md) goes over the proper process for adding the latest linux-stable into your kernel. 4 | - [`tips-and-tricks.md`](tips-and-tricks.md) contains a few pointers and hints regarding this process. 5 | -------------------------------------------------------------------------------- /process/how-to.md: -------------------------------------------------------------------------------- 1 | # How to merge linux-stable into an Android kernel 2 | 3 | ## 1. Figure out what version you are on 4 | 5 | As trivial as this seems, it is necessary to know where you need to begin. Run the following command in your kernel tree: 6 | ```bash 7 | make kernelversion 8 | ``` 9 | 10 | It will spit back some version. The first two number will be used to figure out the branch you need (e.g. linux-4.4.y for any 4.4 kernel) and the last number will be used to determine what version you need to start with merging (e.g. if you are on 4.4.21, you'll merge 4.4.22 next). 11 | 12 | ## 2. Fetch the latest kernel source from kernel.org 13 | 14 | [kernel.org](https://www.kernel.org/) houses the latest kernel source in [the linux-stable repository](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/). At the bottom of that page, there will be three fetch links. In my experience, Google's mirror tends to be the fastest but your results may vary. Run the following commands: 15 | ```bash 16 | git remote add linux-stable https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git 17 | git fetch linux-stable 18 | ``` 19 | 20 | ## 3. Decide if you want to merge or cherry-pick the commits in 21 | 22 | Next, you will need to choose if you want to merge the commits or cherry-pick. Here's the pros and cons of each and when you may want to do them. 23 | 24 | **NOTE:** If your kernel source is in the form of a tarball, you will most likely need to cherry-pick, otherwise you will get thousands of file conflicts because git is populating the history based purely on upstream, not what the OEM or CAF has changed. Just skip to step 4. 25 | 26 | ### Cherry-picking 27 | 28 | Pros: 29 | * Easier to resolve conflicts as you know exactly what conflict is causing an issue. 30 | * Easier to rebase as each commit is on its own. 31 | * Easier to bisect if running into issues 32 | 33 | Cons: 34 | * It takes longer as each commit has to be individually picked. 35 | * Little more difficult to tell if commit is from upstream on first glance 36 | 37 | ### Merge 38 | 39 | Pros: 40 | * It's faster as you do not have to wait for all of the clean patches to merge. 41 | * It's easier to see when a commit is from upstream as you will not be the committer, the upstream maintainer will be. 42 | 43 | Cons: 44 | * Resolving conflicts can be a bit more difficult as you will need to look up which commit is causing the conflict using `git log`/`git blame`, it will not directly tell you. 45 | * Rebasing is difficult as you cannot rebase a merge, it will offer to cherry-pick all of the commit individually. However, you should not be rebasing often, instead using `git revert` and `git merge` where possible. 46 | 47 | I would recommend doing a cherry-pick to figure out any problem conflicts initially, doing a merge, then revert the problem commits afterwards so updating is easier (as merging is quicker after being up to date). 48 | 49 | 50 | ## 4. Add the commits into your source, one version at a time 51 | 52 | The most important part of this process is the one version at a time part. There MAY be a problem patch in your upstream series, which could cause a problem with booting or break something like sound or charging (explained in the tips and tricks section). Doing incremental version changes is important for this reason, it's easier to find an issue in 50 commits than upwards of 2000 commits for some versions. I would only recommend doing a full merge once you know all of the problem commits and conflict resolutions. 53 | 54 | ### Cherry-picking 55 | 56 | Format: 57 | ```bash 58 | git cherry-pick .. 59 | ``` 60 | 61 | Example: 62 | ```bash 63 | git cherry-pick v3.10.73..v3.10.74 64 | ``` 65 | 66 | ### Merge 67 | 68 | Format: 69 | ```bash 70 | git merge 71 | ``` 72 | 73 | Example: 74 | ```bash 75 | git merge v3.10.74 76 | ``` 77 | 78 | I recommend keeping track of the conflicts in merge commits by removing the `#` markers. 79 | -------------------------------------------------------------------------------- /process/tips-and-tricks.md: -------------------------------------------------------------------------------- 1 | # Tips and tricks 2 | 3 | ## 1. How to resolve conflicts 4 | 5 | While I cannot possibly teach you how to resolve every conflict given that a lot of that involves understanding C, I can give you some helpful hints about how I resolve conflicts. 6 | 7 | 8 | * If you are merging, figure out what commit is causing the conflict. You can do this one of two ways: 9 | 10 | * `git log -p v$(make kernelversion)..` to get the changes between your current version and the latest from upstream. The `-p` flag will give you the changes done by each commit so you can see. 11 | 12 | * Run `git blame` on the file to get the hashes of each commit in the area. You can then run `git show --format=fuller` to see if the committer was from mainline/stable, Google, or CodeAurora. 13 | 14 | * Figure out if you already have the commit. Some vendors like Google or CAF will attempt to look upstream for critical bugs, like the Dirty COW fix, and their backports could conflict with upstream's. You can run `git log --grep=""` and see if it returns anything. If it does, you can skip the commit (if cherry-picking using `git reset --hard && git cherry-pick --continue`) or ignore the conflicts (remove the `<<<<<<` and everything between the `======` and `>>>>>>`). 15 | 16 | * Figure out if there has been a backport that is messing up resolution. Google and CAF like to backport certain patches that stable wouldn't. Stable will often need to adapt the resolution of the mainline commit to the abscence of certain patches that Google opts to backport. You can look at the mainline commit by running `git show ` (the mainline hash will be available in the commit message of the stable commit). If there is a backport messing it up, you can either discard the changes or you can use the mainline version (which is what you will usually need to do). 17 | 18 | * Read what the commit is trying to do and see if the problem is already fixed. Sometimes CAF may fix a bug independent of upstream, meaning you can either overwrite their fix for upstream's or discard it, like above. 19 | 20 | Otherwise, it may just be a result of a CAF/Google/OEM addition, in which case you just need to shuffle some things around. 21 | 22 | I have [a mirror of the linux-stable kernel.org repository](https://github.com/nathanchance/linux-stable) on GitHub, which can be easier for looking up commit lists and diffs for conflict resolution. I recommend going to the commit list view first and locating the problem commit to see the original diff to compare it to yours. 23 | 24 | Example URL: 25 | https://github.com/nathanchance/linux-stable/commits/linux-3.10.y/arch/arm64/mm/mmu.c 26 | 27 | You can also do it via the command line: 28 | ```bash 29 | git log .. 30 | git show 31 | ``` 32 | 33 | Solving resolutions is all about context. What you should ALWAYS do is make sure your final diff matches upstream's by running the following commands in two separate windows: 34 | 35 | ```bash 36 | git diff HEAD 37 | 38 | git diff v$(make kernelversion)..$(git tag --sort=-taggerdate -l v$(make kernelversion | cut -d . -f 1,2)* | head -n1) 39 | ``` 40 | 41 | 42 | ## 2. Enable rerere 43 | 44 | Git has a feature called rerere (standing for reuse recorded resolution), meaning that when it detects a conflict, it will record how you resolved it so you can reuse it later. This is especially helpful for both chronic rebasers with both merging and cherry-picking as you will just need to run 45 | `git add . && git --continue` 46 | when redoing the upstream bringup as the conflict will be resolved how you previously resolved it. 47 | 48 | It can be enabled by running the following command in your kernel repo: `git config rerere.enabled true` 49 | 50 | 51 | ## 3. How to git bisect when running into a compiler or runtime error 52 | 53 | Given that you will be adding a sizable number of commits, it's very possible for you to introduce a compiler or runtime error. Instead of just giving up, you can use git's built-in bisect tool to figure out the root cause of the issue! Ideally, you will be building and flashing every single kernel version as you add it so bisecting will take less time if needed but you can bisect 5000 commits without any issues. 54 | 55 | What `git bisect` will do is take a range of commits, from where the issue is present to where it wasn't present, and then start halving the commit range, allowing you to build and test and let it know if it is good or not. It will continue this until it spits out the commit causing your issue. At that point, you can either fix it or revert it. 56 | 57 | 1. Start bisecting: `git bisect start` 58 | 2. Label the current revision as bad: `git bisect bad` 59 | 3. Label a revision as good: `git bisect good ` 60 | 4. Build with the new revision 61 | 5. Based on the result (if the issue is present or not), tell git: `git bisect good` OR `git bisect bad` 62 | 6. Rinse and repeat steps 4-5 until the problem commit is found! 63 | 7. Revert or fix the problem commit. 64 | 65 | **NOTE:** Mergers will need to temporarily run `git rebase -i ` to apply all the patches to your branch for proper bisecting, as bisecting with the merges in place will often times checkout onto the upstream commits, meaning you have none of the Android specific commits. I can go into more depth on this upon request but trust me, it is needed. Once you have identified the problem commit, you can revert or rebase it into the merge. 66 | 67 | 68 | ## 4. Do NOT squash upstream updates 69 | 70 | A lot of new developers are tempted to do this as it is "cleaner" and "easier" to manage. This is terrible for a few reasons: 71 | 72 | * Authorship is lost. It's unfair to other developers to have their credit stipped for their work. 73 | * Bisecting is impossible. If you squash a series of commits and something is an issue in that series, it's impossible to tell what commit caused an issue in a squash. 74 | * Future cherry-picks are harder. If you need to rebase with a squashed series, it is difficult/impossible to tell where an conflict results from. 75 | 76 | Leave the updates unsquashed, you'll thank me later. 77 | 78 | 79 | ## 5. Subscribe to the Linux Kernel mailing list for timely updates 80 | 81 | In order to get notified whenever there is an upstream update, subscribe to [the linux-kernel-announce list](http://vger.kernel.org/vger-lists.html#linux-kernel-announce). This will allow you to get an email every time a new kernel is released so you can update and push as quick as possible. 82 | 83 | 84 | ## 6. Known problem commits 85 | 86 | See the [breakage section](/info/why-is-linux-stable-important.md#there-is-a-lot-of-breakage-when-merging-and-using-linux-stable-in-my-tree) of the "why is linux-stable important?" page. 87 | -------------------------------------------------------------------------------- /trees/README.md: -------------------------------------------------------------------------------- 1 | # Supported tree information 2 | 3 | ## Current trees 4 | 5 | All trees will have linux-stable promptly merged into them along with upstream updates. I try to ensure that everything works properly; however, every device has different hardware and I do not own all of them so it is entirely possible there may be a rogue commit or two. If there is, I am happy to help track it down and either fix it or revert it. If you have any questions, follow the getting help instructions in the main README file. 6 | 7 | * [Google Pixel and Pixel XL](marlin.md) 8 | * [Google Pixel 2 and Pixel 2 XL](wahoo.md) 9 | * [Huawei Nexus 6P](angler.md) 10 | * [LG Nexus 5X](bullhead.md) 11 | * [Moto Z2 Force](nash.md) 12 | * [msm-3.18](msm-3.18.md) 13 | * [msm-4.4](msm-4.4.md) 14 | * [msm-4.9](msm-4.9.md) 15 | * [OnePlus 3/T](op3.md) 16 | * [OnePlus 5/T](op5.md) 17 | * [OnePlus 6](op6.md) 18 | * [Xiaomi Mi Mix 2S](polaris.md) 19 | * [Xiaomi Mi 6 and Mi Mix 2](sagit.md) 20 | * [Xiaomi Mi A1](tissot.md) 21 | * [Xiaomi Mi A2](jasmine.md) 22 | * [Xiaomi Redmi Note 5 and Mi 6X1](whyred.md) 23 | 24 | ## Archived trees 25 | 26 | * [Essential Phone](mata.md): Lineage decided to use [Essential's stock source](https://github.com/EssentialOpenSource/linux) as a base, which has linux-stable merged in already. 27 | -------------------------------------------------------------------------------- /trees/angler.md: -------------------------------------------------------------------------------- 1 | # Huawei Nexus 6P (angler) 2 | 3 | * Device homepage: https://consumer.huawei.com/en/phones/nexus-6p/ 4 | 5 | * Branch information 6 | 7 | * `android-msm-angler-3.10` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-8.1.0_r0.50 12 | 13 | * `android-msm-angler-3.10-oreo-m3` 14 | 15 | * Status: Renamed to `android-msm-angler-3.10` on May 14th, 2018 16 | 17 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-msm-angler-3.10-oreo-m3 18 | 19 | * `android-msm-angler-3.10-oreo-m5` 20 | 21 | * Status: Superseded by `android-msm-angler-3.10-oreo-m3` with the April 2018 security update 22 | 23 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-msm-angler-3.10-oreo-m5 24 | -------------------------------------------------------------------------------- /trees/bullhead.md: -------------------------------------------------------------------------------- 1 | # LG Nexus 5X (bullhead) 2 | 3 | * Device homepage: http://www.lg.com/us/cell-phones/lg-H790-Carbon-nexus-5x 4 | 5 | * Branch information 6 | 7 | * `android-msm-bullhead-3.10` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-8.1.0_r0.53 12 | 13 | * `android-msm-bullhead-3.10-oreo-m2` 14 | 15 | * Status: Renamed to `android-msm-bullhead-3.10` on May 14th, 2018 16 | 17 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-msm-bullhead-3.10-oreo-m2 18 | 19 | * `android-msm-bullhead-3.10-oreo-m5` 20 | 21 | * Status: Superseded by `android-msm-bullhead-3.10-oreo-m2` with the April 2018 security update 22 | 23 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-msm-bullhead-3.10-oreo-m5 24 | -------------------------------------------------------------------------------- /trees/jasmine.md: -------------------------------------------------------------------------------- 1 | # Xiaomi Mi A2 (jasmine) 2 | 3 | * Device homepage: http://www.mi.com/en/mi-a2/ 4 | 5 | * Branch information 6 | 7 | * `jasmine-o-oss` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://github.com/MiCode/Xiaomi_Kernel_OpenSource/commits/jasmine-o-oss 12 | -------------------------------------------------------------------------------- /trees/marlin.md: -------------------------------------------------------------------------------- 1 | # Google Pixel (sailfish) and Pixel XL (marlin) 2 | 3 | * Device homepage: https://store.google.com/us/product/pixel_phone 4 | 5 | * Branch information 6 | 7 | * `android-msm-marlin-3.18` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-8.1.0_r0.54 12 | 13 | * `android-msm-marlin-3.18-oreo-m4` 14 | 15 | * Status: Renamed to `android-msm-marlin-3.18` on May 14th, 2018 16 | 17 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-msm-marlin-3.18-oreo-m4 18 | 19 | * `android-msm-marlin-3.18-oreo-m2` 20 | 21 | * Status: Superseded by `android-msm-marlin-3.18-oreo-m4` with the May 2018 security update 22 | 23 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-msm-marlin-3.18-oreo-m2 24 | 25 | * `android-msm-marlin-3.18-oreo-mr1` 26 | 27 | * Status: Superseded by `android-msm-marlin-3.18-oreo-m2` with the April 2018 security update 28 | 29 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-msm-marlin-3.18-oreo-mr1 30 | -------------------------------------------------------------------------------- /trees/mata.md: -------------------------------------------------------------------------------- 1 | # Essential Phone (mata) 2 | 3 | * Device homepage: https://www.essential.com 4 | 5 | * Branch information 6 | 7 | * `lineage-15.1` 8 | 9 | * Status: Archived as of April 11th, 2018 due to linux-stable being used upstream 10 | 11 | * Upstream location: https://github.com/LineageOS/android_kernel_essential_msm8998/commits/lineage-15.1 12 | -------------------------------------------------------------------------------- /trees/msm-3.18.md: -------------------------------------------------------------------------------- 1 | # msm-3.18 2 | 3 | * Device homepage: N/A 4 | 5 | * Branch information 6 | 7 | * `kernel.lnx.3.18.r34-rel` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://source.codeaurora.org/quic/la/kernel/msm-3.18/log/?h=kernel.lnx.3.18.r34-rel 12 | 13 | * `kernel.lnx.3.18.r33-rel` 14 | 15 | * Status: Supported 16 | 17 | * Upstream location: https://source.codeaurora.org/quic/la/kernel/msm-3.18/log/?h=kernel.lnx.3.18.r33-rel 18 | 19 | * `kernel.lnx.3.18.r22-rel` 20 | 21 | * Status: Superseded by `kernel.lnx.3.18.r33-rel` with LA.UM.6.6.r1-04500-89xx.0. 22 | 23 | * Upstream location: https://source.codeaurora.org/quic/la/kernel/msm-3.18/log/?h=kernel.lnx.3.18.r22-rel 24 | -------------------------------------------------------------------------------- /trees/msm-4.4.md: -------------------------------------------------------------------------------- 1 | # msm-4.4 2 | 3 | * Device homepage: N/A 4 | 5 | * Branch information 6 | 7 | * `kernel.lnx.4.4.r35-rel` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://source.codeaurora.org/quic/la/kernel/msm-4.4/log?h=kernel.lnx.4.4.r35-rel 12 | 13 | * `kernel.lnx.4.4.r34-rel` 14 | 15 | * Status: Supported 16 | 17 | * Upstream location: https://source.codeaurora.org/quic/la/kernel/msm-4.4/log?h=kernel.lnx.4.4.r34-rel 18 | 19 | * `kernel.lnx.4.4.r27-rel` 20 | 21 | * Status: Supported 22 | 23 | * Upstream location: https://source.codeaurora.org/quic/la/kernel/msm-4.4/log?h=kernel.lnx.4.4.r27-rel 24 | 25 | * `kernel.lnx.4.4.r18-rel` 26 | 27 | * Status: Superseded by `kernel.lnx.4.4.r27-rel` with LA.UM.6.4.r1-05400-8x98.0. 28 | 29 | * Upstream location: https://source.codeaurora.org/quic/la/kernel/msm-4.4/log?h=kernel.lnx.4.4.r18-rel 30 | -------------------------------------------------------------------------------- /trees/msm-4.9.md: -------------------------------------------------------------------------------- 1 | # msm-4.9 2 | 3 | * Device homepage: N/A 4 | 5 | * Branch information 6 | 7 | * `kernel.lnx.4.9.r7-rel` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://source.codeaurora.org/quic/la/kernel/msm-4.9/log?h=kernel.lnx.4.9.r7-rel 12 | -------------------------------------------------------------------------------- /trees/nash.md: -------------------------------------------------------------------------------- 1 | # Moto Z2 Force (nash) 2 | 3 | * Device homepage: https://www.motorola.com/us/products/moto-z-force-edition-gen-2 4 | 5 | * Branch information 6 | 7 | * `lineage-15.1` 8 | 9 | * Status: Archived as of July 12th, 2018 due to linux-stable being merged upstream 10 | 11 | * Upstream location: https://github.com/LineageOS/android_kernel_motorola_msm8998/commits/lineage-15.1 12 | 13 | * `oreo-8.0.0-release-nash` 14 | 15 | * Status: Supported 16 | 17 | * Upstream location: https://github.com/MotorolaMobilityLLC/kernel-msm/commits/oreo-8.0.0-release-nash 18 | -------------------------------------------------------------------------------- /trees/op3.md: -------------------------------------------------------------------------------- 1 | # OnePlus 3/3T 2 | 3 | * Device homepage: https://oneplus.net/3 and https://oneplus.net/3t 4 | 5 | * Branch information 6 | 7 | * `android-8.1` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://github.com/omnirom/android_kernel_oneplus_msm8996/commits/android-8.1 12 | 13 | * `lineage-15.1` 14 | 15 | * Status: Supported 16 | 17 | * Upstream location: https://github.com/LineageOS/android_kernel_oneplus_msm8996/commits/lineage-15.1 18 | 19 | * `oneplus/QC8996_O_8.0.0` 20 | 21 | * Status: Supported 22 | 23 | * Upstream location: https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/tree/oneplus/QC8996_O_8.0.0 24 | 25 | * `oneplus/QC8996_O_8.0.0_Beta` 26 | 27 | * Status: Discontinued as of July 31st, 2018 due to a lack of updates from OnePlus. 28 | 29 | * Upstream location: https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996/tree/oneplus/QC8996_O_8.0.0_Beta 30 | -------------------------------------------------------------------------------- /trees/op5.md: -------------------------------------------------------------------------------- 1 | # OnePlus 5 (cheeseburger) and OnePlus 5T (dumpling) 2 | 3 | * Device homepage: https://oneplus.net/5 and https://oneplus.net/5t 4 | 5 | * Branch information 6 | 7 | * `android-8.1` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://github.com/omnirom/android_kernel_oneplus_msm8998/commits/android-8.1 12 | 13 | * `android-9.0` 14 | 15 | * Status: Supported 16 | 17 | * Upstream location: https://github.com/omnirom/android_kernel_oneplus_msm8998/commits/android-9.0 18 | 19 | * `lineage-15.1` 20 | 21 | * Status: Supported 22 | 23 | * Upstream location: https://github.com/LineageOS/android_kernel_oneplus_msm8998/commits/lineage-15.1 24 | 25 | * `lineage-16.0` 26 | 27 | * Status: Supported 28 | 29 | * Upstream location: https://github.com/LineageOS/android_kernel_oneplus_msm8998/commits/lineage-16.0 30 | 31 | * `oneplus/QC8998_O_8.0` 32 | 33 | * Status: Discontinued as of April 24th, 2018; superceded by `oneplus/QC8998_O_8.1` due to OxygenOS 5.1.0 34 | 35 | * Upstream location: https://github.com/OnePlusOSS/android_kernel_oneplus_msm8998/commits/oneplus/QC8998_O_8.0 36 | 37 | * `oneplus/QC8998_O_8.1` 38 | 39 | * Status: Supported 40 | 41 | * Upstream location: https://github.com/OnePlusOSS/android_kernel_oneplus_msm8998/commits/oneplus/QC8998_O_8.1 42 | 43 | * `oneplus/QC8998_O_8.1_Beta` 44 | 45 | * Status: Supported 46 | 47 | * Upstream location: https://github.com/OnePlusOSS/android_kernel_oneplus_msm8998/commits/oneplus/QC8998_O_8.1_Beta 48 | 49 | * `oneplus/QC8998_P_9.0` 50 | 51 | * Status: Supported 52 | 53 | * Upstream location: https://github.com/OnePlusOSS/android_kernel_oneplus_msm8998/commits/oneplus/QC8998_P_9.0 54 | 55 | * `oneplus/QC8998_P_9.0_Beta` 56 | 57 | * Status: Supported 58 | 59 | * Upstream location: https://github.com/OnePlusOSS/android_kernel_oneplus_msm8998/commits/oneplus/QC8998_P_9.0_Beta 60 | -------------------------------------------------------------------------------- /trees/op6.md: -------------------------------------------------------------------------------- 1 | # OnePlus 6 (enchilada) 2 | 3 | * Device homepage: https://oneplus.com/6 4 | 5 | * Branch information 6 | 7 | * `android-8.1` 8 | 9 | * Status: Superseded by android-9.0 10 | 11 | * Upstream location: https://github.com/omnirom/android_kernel_oneplus_sdm845/commits/android-8.1 12 | 13 | * `android-9.0` 14 | 15 | * Status: Supported 16 | 17 | * Upstream location: https://github.com/omnirom/android_kernel_oneplus_sdm845/commits/android-9.0 18 | 19 | * `lineage-15.1` 20 | 21 | * Status: Supported 22 | 23 | * Upstream location: https://github.com/LineageOS/android_kernel_oneplus_sdm845/commits/lineage-15.1 24 | 25 | * `oneplus/SDM845_O_8.1` 26 | 27 | * Status: Supported 28 | 29 | * Upstream location: https://github.com/OnePlusOSS/android_kernel_oneplus_sdm845/commits/oneplus/SDM845_O_8.1 30 | 31 | * `oneplus/SDM845_P_9.0_Beta` 32 | 33 | * Status: Supported 34 | 35 | * Upstream location: https://github.com/OnePlusOSS/android_kernel_oneplus_sdm845/commits/oneplus/SDM845_P_9.0_Beta 36 | -------------------------------------------------------------------------------- /trees/polaris.md: -------------------------------------------------------------------------------- 1 | # Xiaomi Mi Mix 2S (polaris) 2 | 3 | * Device homepage: http://www.mi.com/en/mix2s/ 4 | 5 | * Branch information 6 | 7 | * `polaris-o-oss` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://github.com/MiCode/Xiaomi_Kernel_OpenSource/commits/polaris-o-oss 12 | -------------------------------------------------------------------------------- /trees/sagit.md: -------------------------------------------------------------------------------- 1 | # Xiaomi Mi 6 (sagit) and Mi Mix 2 (chiron) 2 | 3 | * Device homepage: http://www.mi.com/en/mi6/ and http://www.mi.com/en/mix2/ 4 | 5 | * Branch information 6 | 7 | * `android-8.1` 8 | 9 | * Status: Archived as of April 21st, 2018 due to linux-stable being merged upstream 10 | 11 | * Upstream location: https://github.com/omnirom/android_kernel_xiaomi_msm8998/commits/android-8.1 12 | 13 | * `sagit-o-oss` 14 | 15 | * Status: Supported 16 | 17 | * Upstream location: https://github.com/MiCode/Xiaomi_Kernel_OpenSource/commits/sagit-o-oss 18 | -------------------------------------------------------------------------------- /trees/tissot.md: -------------------------------------------------------------------------------- 1 | # Xiaomi Mi A1 (tissot) 2 | 3 | * Device homepage: http://www.mi.com/en/mi-a1/ 4 | 5 | * Branch information 6 | 7 | * `tissot-o-oss-8.1` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://github.com/MiCode/Xiaomi_Kernel_OpenSource/commits/tissot-o-oss-8.1 12 | 13 | * `tissot-o-oss` 14 | 15 | * Status: Discontinued on August 17th, 2018, superceded by `tissot-o-oss-8.1` 16 | 17 | * Upstream location: https://github.com/MiCode/Xiaomi_Kernel_OpenSource/commits/tissot-o-oss 18 | -------------------------------------------------------------------------------- /trees/wahoo.md: -------------------------------------------------------------------------------- 1 | # Google Pixel 2 (walleye) and Pixel 2 XL (taimen) 2 | 3 | * Device homepage: https://store.google.com/us/product/pixel_2 4 | 5 | * Branch information 6 | 7 | * `android-msm-wahoo-4.4` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-8.1.0_r0.55 12 | 13 | * `android-msm-wahoo-4.4-oreo-m2` 14 | 15 | * Status: Renamed to `android-msm-wahoo-4.4` on May 14th, 2018 16 | 17 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-msm-wahoo-4.4-oreo-m2 18 | 19 | * `android-msm-wahoo-4.4-oreo-mr1` 20 | 21 | * Status: Superseded by `android-msm-wahoo-4.4-oreo-m2` with the April 2018 security update. 22 | 23 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-msm-wahoo-4.4-oreo-mr1 24 | 25 | * `android-msm-wahoo-4.4-oreo-dr1` 26 | 27 | * Status: Superseded by `android-msm-wahoo-4.4-oreo-mr1` with 8.1.0. 28 | 29 | * Upstream location: https://android.googlesource.com/kernel/msm/+/android-msm-wahoo-4.4-oreo-dr1 30 | -------------------------------------------------------------------------------- /trees/whyred.md: -------------------------------------------------------------------------------- 1 | # Xiaomi Redmi Note 5 (Pro) [whyred] and Mi 6X (wayne) 2 | 3 | * Device homepage: http://www.mi.com/in/redmi-note5/ and https://www.mi.com/mi6x/ 4 | 5 | * Branch information 6 | 7 | * `whyred-o-oss` 8 | 9 | * Status: Supported 10 | 11 | * Upstream location: https://github.com/MiCode/Xiaomi_Kernel_OpenSource/commits/whyred-o-oss 12 | -------------------------------------------------------------------------------- /usability-notes/README.md: -------------------------------------------------------------------------------- 1 | # Index for usability-notes 2 | 3 | - [`wahoo.md`](wahoo.md) for using the Pixel 2 and Pixel 2 XL kernel source 4 | - [`op5.md`](op5.md) for using the OnePlus 5 kernel source 5 | -------------------------------------------------------------------------------- /usability-notes/op5.md: -------------------------------------------------------------------------------- 1 | # How to modify the OnePlus 5 kernel source for on-device use 2 | 3 | The OnePlus 5 kernel source OnePlus provides needs a few modifications to get it to work properly. 4 | 5 | * CAF drivers mandate that the kernel be compiled using an out folder. Add `O=out` to all of your make commands (i.e. change all instances of `make` to `make O=out`). 6 | 7 | * Since flashing the modules will modify the `/system` partition, dm-verity must be disabled in order to boot. Add the following commit to disable it: [`3cd2728daf46`](https://github.com/nathanchance/op5/commit/3cd2728daf469202e866fb63f54d76613e82d39b) ("cheeseburger/dumpling: Disable verity on /system"). 8 | 9 | * The Wi-Fi driver for this device is not included in the kernel tree so it must be fetched. This process can be used for both adding it initially and updating it. 10 | 11 | 1. Run these commands in the root of your kernel tree: 12 | 13 | For 8.0: `export TAG=LA.UM.6.4.r1-04900-8x98.0` 14 | 15 | For 8.1: `export TAG=LA.UM.6.4.r1-06100-8x98.0` 16 | 17 | Then: 18 | 19 | ```bash 20 | for REPO in "fw-api" "qca-wifi-host-cmn" "qcacld-3.0"; do 21 | rm -rf drivers/staging/${REPO} 22 | git clone -b ${TAG} https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/${REPO} drivers/staging/${REPO} 23 | rm -rf drivers/staging/${REPO}/.git 24 | done 25 | ``` 26 | 27 | 2. Add the following to `drivers/staging/Kconfig` towards the bottom above the `endif # STAGING`: 28 | 29 | ``` 30 | source "drivers/staging/qcacld-3.0/Kconfig" 31 | ``` 32 | 33 | 3. Add the following to `drivers/staging/Makefile` at the bottom of the file: 34 | 35 | ``` 36 | obj-$(CONFIG_QCA_CLD_WLAN) += qcacld-3.0/ 37 | ``` 38 | 39 | 4. Add the following `CONFIG_` options to `msmcortex-perf_defconfig`: 40 | 41 | ``` 42 | CONFIG_QCA_CLD_WLAN=m 43 | CONFIG_QCACLD_WLAN_LFR3=y 44 | CONFIG_PRIMA_WLAN_OKC=y 45 | CONFIG_PRIMA_WLAN_11AC_HIGH_TP=y 46 | CONFIG_WLAN_FEATURE_11W=y 47 | CONFIG_WLAN_FEATURE_LPSS=y 48 | CONFIG_QCOM_VOWIFI_11R=y 49 | CONFIG_QCACLD_FEATURE_NAN=y 50 | CONFIG_QCACLD_FEATURE_GREEN_AP=y 51 | CONFIG_HELIUMPLUS=y 52 | CONFIG_QCOM_TDLS=y 53 | CONFIG_QCOM_LTE_COEX=y 54 | CONFIG_WLAN_OFFLOAD_PACKETS=y 55 | CONFIG_WLAN_FEATURE_MEMDUMP=y 56 | CONFIG_WLAN_FASTPATH=y 57 | CONFIG_WLAN_NAPI=y 58 | CONFIG_MCC_TO_SCC_SWITCH=y 59 | CONFIG_QCACLD_WLAN_LFR2=y 60 | CONFIG_WLAN_FEATURE_DISA=y 61 | ``` 62 | 63 | * The generated modules should be stripped as they can be quite large. This would normally be done on `module_install` but we don't run this on Android kernels (because we aren't building on device). Use the `strip` command from your cross compiler to do this. If you have exported `CROSS_COMPILE`, you can run this one-liner in your kernel tree to strip all modules: 64 | ```bash 65 | find ./ -name "*.ko" -exec ${CROSS_COMPILE}strip --strip-unneeded {} \; 66 | ``` 67 | 68 | * The generated modules need to be resigned to avoid triggering `CONFIG_MODULE_SIG_FORCE` or `CONFIG_MODVERSIONS` (neither of these should be disabled). Assuming your out folder from point 1 was `out`, run the following one-liner in your kernel tree to resign all modules: 69 | ```bash 70 | find ./ -name "*.ko" -exec out/scripts/sign-file sha512 out/certs/signing_key.pem out/certs/signing_key.x509 {} \; 71 | ``` 72 | 73 | * To flash the kernel and accompanying modules, use [AnyKernel2](https://github.com/osm0sis/AnyKernel2) and [TWRP](https://twrp.me/oneplus/oneplus5.html). The README explains how to properly setup AK2 and an example tree is available in [my fork](https://github.com/nathanchance/AnyKernel2/tree/op5-flash-8.0.0). Use this one-liner in your kernel tree to move all kernel modules to the AnyKernel folder: 74 | ```bash 75 | find ./ -name "*.ko" -exec cp {} /modules/system/lib/modules \; 76 | ``` 77 | -------------------------------------------------------------------------------- /usability-notes/wahoo.md: -------------------------------------------------------------------------------- 1 | # How to modify the Wahoo kernel source for on-device use 2 | 3 | The Wahoo kernel source Google provides needs a few modifications to get it to work properly. 4 | 5 | * Google has been pushing for kernel modules as part of Project Treble and insisting on the `/vendor` partition for their location (see [here](https://source.android.com/devices/architecture/kernel/modular-kernels) for more info). As a result, the touchscreen and battery drivers are located in `/vendor/lib/modules`. This is an extremely inconvenient location to modify as it is protected by both Android Verified Boot 2.0 (avb) and it can't be modified without root or breaking apart the image and reflashing. There are two ways to work around this: 6 | 7 | * Force the stock modules to load by ignoring them in the `check_version` function in `kernel/module.c` 8 | * [`ada01ae47140`](https://github.com/nathanchance/wahoo/commit/ada01ae4714044a9986b56dad0babcd6d5d8a3b8) ("walleye: Allow stock modules to load") 9 | * [`1a4f1c84b7cc`](https://github.com/nathanchance/wahoo/commit/1a4f1c84b7cca5559ab49b2be62be9b95e2c2408) ("taimen: allow stock modules to load") 10 | 11 | * Build the drivers into the kernel image. Apply the following changes depending on your device: 12 | 13 | * Pixel 2: 14 | 15 | * Change from `=m` to `=y` in wahoo_defconfig 16 | 17 | ``` 18 | CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_HTC=y 19 | CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE_HTC=y 20 | CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_HTC=y 21 | CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_HTC=y 22 | CONFIG_HTC_BATTERY=y 23 | ``` 24 | 25 | * Delete in wahoo_defconfig 26 | 27 | ``` 28 | CONFIG_LGE_TOUCH_CORE=y 29 | CONFIG_LGE_TOUCH_LGSIC_SW49408=y 30 | CONFIG_TOUCHSCREEN_FTM4=y 31 | CONFIG_LGE_BATTERY=y 32 | ``` 33 | 34 | 35 | * Pixel 2 XL: 36 | 37 | * Change from `=m` to `=y` in wahoo_defconfig 38 | 39 | ``` 40 | CONFIG_LGE_TOUCH_CORE=y 41 | CONFIG_LGE_TOUCH_LGSIC_SW49408=y 42 | CONFIG_TOUCHSCREEN_FTM4=y 43 | CONFIG_LGE_BATTERY=y 44 | ``` 45 | 46 | * Delete in wahoo_defconfig 47 | 48 | ``` 49 | CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_HTC=y 50 | CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE_HTC=y 51 | CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_HTC=y 52 | CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_HTC=y 53 | CONFIG_HTC_BATTERY=y 54 | ``` 55 | 56 | * Apply [`117ffa9fe699`](https://github.com/nathanchance/wahoo/commit/117ffa9fe6994b82604c71f93332537e362f3cb7) ("lge_battery: Use EPROBE_DEFER instead of ENODEV during probe") 57 | 58 | 59 | * Google compiles the stock kernel with Clang 4.0 on 8.0 and Clang 5.0 on 8.1. As a result, the typical kernel commands like for GCC change a bit. Additionally, they also require the versions of `dtc` and `mkdtimg` provided by AOSP. I go over how this changes your compilation in the README of [my pixel2-manifest repo](https://github.com/nathanchance/pixel2-manifest). 60 | 61 | * Flashing the kernel can be done of two ways: 62 | 63 | * A compiled boot image (which I cover in the pixel2-manifest repo linked right above), which can be flashed with `fastboot`. 64 | * An AnyKernel2 zip you can flash in TWRP. The support for the Pixel 2 is currently pending ([pull request](https://github.com/osm0sis/AnyKernel2/pull/12)). Once that has been merged, follow the instructions in the README, zip it up, and flash it with TWRP. Instructions for TWRP installation can be found on their website ([taimen](https://twrp.me/google/googlepixel2xl.html) and [walleye](https://twrp.me/google/googlepixel2.html)). 65 | --------------------------------------------------------------------------------