diff options
author | Björn Bidar | 2022-10-16 19:01:17 +0300 |
---|---|---|
committer | Björn Bidar | 2022-10-19 21:07:24 +0300 |
commit | 640c8732d2f7f523f501989a32efe1db6a681b64 (patch) | |
tree | 7bba76a10048655bc6eb6b53ec39e4012586ac49 | |
parent | dafa8d62d3f6493d66afc5d568273f5a7e7b8924 (diff) | |
download | aur-640c8732d2f7f523f501989a32efe1db6a681b64.tar.gz |
Update to 6.0.2.pf2-1
- New upstream release based on 6.0.2
- Sync kernel config with Arch and Arch32
- Store patches in git
Signed-off-by: Björn Bidar <bjorn.bidar@thaodan.de>
106 files changed, 442 insertions, 10517 deletions
@@ -1,8 +1,8 @@ # Generated by mksrcinfo v8 -# Tue Sep 6 00:31:17 UTC 2022 +# Wed Oct 19 14:32:04 UTC 2022 pkgbase = linux-pf pkgdesc = Linux with the pf-kernel patch (uksm, ZSTD, FSGSBASE and more) - pkgver = 5.19.7.pf3 + pkgver = 6.0.2.pf2 pkgrel = 1 url = https://codeberg.org/pf-kernel/linux/wiki/README arch = i686 @@ -19,214 +19,20 @@ pkgbase = linux-pf makedepends = pahole makedepends = cpio options = !strip - source = linux-pf::git+https://codeberg.org/pf-kernel/linux.git#tag=v5.19-pf3 + source = linux-pf::git+https://codeberg.org/thaodan/linux.git#tag=v6.0.2.pf2.thao1 source = config.x86_64 source = config.i686 source = pf_defconfig source = linux.preset source = 90-linux.hook source = 60-linux.hook - source = 0002-ZEN-Add-VHBA-driver.patch - source = 0003-ZEN-Add-OpenRGB-patches.patch - source = 0004-ZEN-Add-ACS-override-support.patch - source = 0005-ZEN-PCI-Add-Intel-remapped-NVMe-device-support.patch - source = 0008-ZEN-Disable-stack-conservation-for-GCC.patch - source = 0009-ZEN-Initialize-ata-before-graphics.patch - source = 0010-ZEN-Input-evdev-use-call_rcu-when-detaching-client.patch - source = 0012-ZEN-cpufreq-Remove-schedutil-dependency-on-Intel-AMD.patch - source = 0013-ZEN-intel-pstate-Implement-enable-parameter.patch - source = 0014-ZEN-mm-Disable-watermark-boosting-by-default.patch - source = 0015-ZEN-mm-Stop-kswapd-early-when-nothing-s-waiting-for-.patch - source = 0016-ZEN-mm-Increment-kswapd_waiters-for-throttled-direct.patch - source = 0017-ZEN-mm-Lower-the-non-hugetlbpage-pageblock-size-to-r.patch - source = 0018-ZEN-mm-Don-t-hog-the-CPU-and-zone-lock-in-rmqueue_bu.patch - source = 0019-ZEN-INTERACTIVE-Base-config-item.patch - source = 0020-ZEN-INTERACTIVE-Use-BFQ-as-our-elevator.patch - source = 0021-ZEN-INTERACTIVE-Use-Kyber-as-our-elevator-for-multi-.patch - source = 0022-ZEN-INTERACTIVE-Enable-background-reclaim-of-hugepag.patch - source = 0023-ZEN-INTERACTIVE-Add-help-text-for-the-MG-LRU-tweaks.patch - source = 0024-ZEN-INTERACTIVE-Tune-CFS-for-interactivity.patch - source = 0025-ZEN-INTERACTIVE-Tune-ondemand-governor-for-interacti.patch - source = 0026-ZEN-INTERACTIVE-Document-PDS-BMQ-configuration.patch - source = 0027-ZEN-INTERACTIVE-mm-Disable-unevictable-compaction.patch - source = 0028-ZEN-INTERACTIVE-mm-Disable-proactive-compaction-by-d.patch - source = 0029-ZEN-INTERACTIVE-dm-crypt-Disable-workqueues-for-cryp.patch - source = 0001-drm-vc4-hdmi-Rework-power-up.patch - source = 0002-drm-vc4-hdmi-Depends-on-CONFIG_PM.patch - source = 0003-firmware-tegra-bpmp-Do-only-aligned-access-to-IPC-me.patch - source = 0004-crypto-lib-remove-unneeded-selection-of-XOR_BLOCKS.patch - source = 0005-docs-kerneldoc-preamble-Test-xeCJK.sty-before-loadin.patch - source = 0006-arm64-errata-Add-Cortex-A510-to-the-repeat-tlbi-list.patch - source = 0007-Bluetooth-L2CAP-Fix-build-errors-in-some-archs.patch - source = 0008-Revert-PCI-portdrv-Don-t-disable-AER-reporting-in-ge.patch - source = 0009-HID-steam-Prevent-NULL-pointer-dereference-in-steam_.patch - source = 0010-udmabuf-Set-the-DMA-mask-for-the-udmabuf-device-v2.patch - source = 0011-media-pvrusb2-fix-memory-leak-in-pvr_probe.patch - source = 0012-USB-gadget-Fix-use-after-free-Read-in-usb_udc_uevent.patch - source = 0013-HID-hidraw-fix-memory-leak-in-hidraw_release.patch - source = 0014-net-fix-refcount-bug-in-sk_psock_get-2.patch - source = 0015-fbdev-fb_pm2fb-Avoid-potential-divide-by-zero-error.patch - source = 0016-ftrace-Fix-NULL-pointer-dereference-in-is_ftrace_tra.patch - source = 0017-bpf-Don-t-redirect-packets-with-invalid-pkt_len.patch - source = 0018-mm-rmap-Fix-anon_vma-degree-ambiguity-leading-to-dou.patch - source = 0019-ALSA-usb-audio-Add-quirk-for-LH-Labs-Geek-Out-HD-Aud.patch - source = 0020-HID-input-fix-uclogic-tablets.patch - source = 0021-HID-add-Lenovo-Yoga-C630-battery-quirk.patch - source = 0022-HID-AMD_SFH-Add-a-DMI-quirk-entry-for-Chromebooks.patch - source = 0023-HID-Add-Apple-Touchbar-on-T2-Macs-in-hid_have_specia.patch - source = 0024-HID-asus-ROG-NKey-Ignore-portion-of-0x5a-report.patch - source = 0025-HID-nintendo-fix-rumble-worker-null-pointer-deref.patch - source = 0026-HID-thrustmaster-Add-sparco-wheel-and-fix-array-leng.patch - source = 0027-HID-intel-ish-hid-ipc-Add-Meteor-Lake-PCI-device-ID.patch - source = 0028-mmc-mtk-sd-Clear-interrupts-when-cqe-off-disable.patch - source = 0029-mmc-sdhci-of-dwcmshc-add-reset-call-back-for-rockchi.patch - source = 0030-mmc-sdhci-of-dwcmshc-rename-rk3568-to-rk35xx.patch - source = 0031-mmc-sdhci-of-dwcmshc-Re-enable-support-for-the-BlueF.patch - source = 0032-fs-ntfs3-Fix-work-with-fragmented-xattr.patch - source = 0033-ASoC-sh-rz-ssi-Improve-error-handling-in-rz_ssi_prob.patch - source = 0034-ASoC-rt5640-Fix-the-JD-voltage-dropping-issue.patch - source = 0035-rtla-Fix-tracer-name.patch - source = 0036-drm-amd-display-Add-a-missing-register-field-for-HPO.patch - source = 0037-drm-amd-display-Device-flash-garbage-before-get-in-O.patch - source = 0038-drm-amd-display-Avoid-MPC-infinite-loop.patch - source = 0039-drm-amd-display-Fix-HDMI-VSIF-V3-incorrect-issue.patch - source = 0040-drm-amd-display-For-stereo-keep-FLIP_ANY_FRAME.patch - source = 0041-drm-amd-display-clear-optc-underflow-before-turn-off.patch - source = 0042-drm-amd-display-Fix-TDR-eDP-and-USB4-display-light-u.patch - source = 0043-drm-amd-pm-skip-pptable-override-for-smu_v13_0_7.patch - source = 0044-drm-amdkfd-Handle-restart-of-kfd_ioctl_wait_events.patch - source = 0045-drm-amd-pm-Fix-a-potential-gpu_metrics_table-memory-.patch - source = 0046-ksmbd-return-STATUS_BAD_NETWORK_NAME-error-status-if.patch - source = 0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch - source = 0048-neigh-fix-possible-DoS-due-to-net-iface-start-stop-l.patch - source = 0049-ALSA-hda-realtek-Add-quirks-for-ASUS-Zenbooks-using-.patch - source = 0050-s390-hypfs-avoid-error-message-under-KVM.patch - source = 0051-ksmbd-don-t-remove-dos-attribute-xattr-on-O_TRUNC-op.patch - source = 0052-drm-amdgpu-disable-3DCGCG-CGLS-temporarily-due-to-st.patch - source = 0053-drm-amd-pm-add-missing-fini_microcode-interface-for-.patch - source = 0054-drm-amd-pm-add-missing-fini_xxxx-interfaces-for-some.patch - source = 0055-drm-amd-display-Fix-pixel-clock-programming.patch - source = 0056-drm-amdgpu-Increase-tlb-flush-timeout-for-sriov.patch - source = 0057-drm-amd-display-Fix-plug-unplug-external-monitor-wil.patch - source = 0058-drm-amd-display-avoid-doing-vm_init-multiple-time.patch - source = 0059-drm-amdgpu-Add-decode_iv_ts-helper-for-ih_v6-block.patch - source = 0060-drm-amdgpu-Add-secure-display-TA-load-for-Renoir.patch - source = 0061-drm-amdgpu-Fix-interrupt-handling-on-ih_soft-ring.patch - source = 0062-netfilter-conntrack-NF_CONNTRACK_PROCFS-should-no-lo.patch - source = 0063-testing-selftests-nft_flowtable.sh-use-random-netns-.patch - source = 0064-platform-x86-serial-multi-instantiate-Add-CLSA0101-L.patch - source = 0065-ALSA-hda-cs8409-Support-new-Dolphin-Variants.patch - source = 0066-btrfs-move-lockdep-class-helpers-to-locking.c.patch - source = 0067-btrfs-fix-lockdep-splat-with-reloc-root-extent-buffe.patch - source = 0068-btrfs-tree-checker-check-for-overlapping-extent-item.patch - source = 0069-android-binder-fix-lockdep-check-on-clearing-vma.patch - source = 0070-net-af_packet-check-len-when-min_header_len-equals-t.patch - source = 0071-net-neigh-don-t-call-kfree_skb-under-spin_lock_irqsa.patch - source = 0072-arm64-cacheinfo-Fix-incorrect-assignment-of-signed-e.patch sha256sums = SKIP - sha256sums = 49c471ab3cf341c6333f08957c0c3cfccc38a7cef2c9ca1895888f4674b441ec - sha256sums = 2b4b6887e75c9e6d40d1fa00e4405745da4c0649f7bf8c48e1bb35d511270443 - sha256sums = 30566498a4f549e972fcd430d2fc44b2bd643c55bae20096f083f8837d8c43e4 + sha256sums = 4415388555aab8845e60f6b3996e3a75b8159d516b7b04a6adb8ade54de3ff9c + sha256sums = 64632c7d7d68954da4ecfbd639878eea3041bbbad2d2621c7a6943d89950cb6e + sha256sums = 5439b9ed0f03f4e4c69e8d2a1352ee109092c6bc49e4d15c80ed11e084094266 sha256sums = 82d660caa11db0cd34fd550a049d7296b4a9dcd28f2a50c81418066d6e598864 sha256sums = 75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919 sha256sums = ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21 - sha256sums = f78b6b40cad97fd38b15e161d2dcfbdc98b2681a180c6a4f493b6ea362ad311b - sha256sums = 764bbbad55f251627f7c93a08a70f3a4004e03c74f162df349267686b2167a00 - sha256sums = 28df2ac08a81fc720d46908f239e0e8bfd70d5ba7d6e576c8598c3982a9a2cc4 - sha256sums = 7b2b7cd3846aeadefd5d1e9978078e3feaff53456378cb31489b9cf0971f958f - sha256sums = 1137f4d0d65ef8985307d1deccdc6fc47f68ef2a0d549ab5a27d5c9a45bec9a7 - sha256sums = 39a6dafe65ae512d3802dd25976bce171826a947568c236ce382f8a12836c9b5 - sha256sums = fd0ecbc2948a490ece2cbd90623c80e210c1674ea8d8f95642c6f67cef435c4a - sha256sums = cdeacc91b32801c2e46691f5f2bb3612bffd42619cb7b025f4ecba29dec9eaf1 - sha256sums = 20892d64352398893920f48507709d0ff5494c3853c157b87917a086155ce723 - sha256sums = f40434c60dee7731ae88107046dd1400ffe11c1ba4de58850a8319f9bb4847b9 - sha256sums = 70d269b5e1d9b5259481f87e00f7b17d96fa5b389e4b500f1e6862c0116bfa4f - sha256sums = 8bef9463e0cebb578d4df15b06a447c3b4c850a5eef9ff80c59fb8e2cac81474 - sha256sums = ec795347155a2f509491fb60c9f4e01704d86a2af432278d7bf5efd7db29f9a2 - sha256sums = 07775d7a0e3ba474976f7a28f069aaf009cdc70576aabf861b630268df2ad469 - sha256sums = f1828a4c636138bc53432a057922362399a72055f635a577b791449304d98afe - sha256sums = 5e6d6aee7f79c9c97c822d3eec8cfa3ca725bf01a60b249175dc0e3b0ca5390f - sha256sums = aa93dd01631204ac71b902662f58a48186049e2e573e06e6818ab72fa139bdd4 - sha256sums = 854a432bdaf6f94baa92c03e78e10f00c53bc666c4b367adf2d5d330f872c8c5 - sha256sums = f52b1703f39ab0b52978e48d129ec38ace74d3dec790cb87ca7030fd187354fd - sha256sums = 3d85f031166d16ebb41430b3f17ed4683b85e7640819b0fb61bd927e6cec5139 - sha256sums = ca52bf43327f2c6b0941d3da8fd2a25055bf8f74564be331944c123d18e54330 - sha256sums = 9676de79d5ab66565ab8e19de3f1f70c8ad5994eaf8d5ca1fb6e9ed8426787d9 - sha256sums = 1a2598a00966da4e9985644edb900af7204409411464771c31d67d472595d817 - sha256sums = 3d329b5153230184e270355f61697f5f7248787a4da045ac7b660e837c088630 - sha256sums = c6730df729723340475fa64cf0ce4fee02ff0a1739f355166324bb2abeca5168 - sha256sums = e44a5e123fb22092a009630a8d80c496b70feaf9f9e244d76760290608edf277 - sha256sums = 54676e48e43b41351e3e7e195c5e752f855f44db7a3fe0d4bd66499344da8386 - sha256sums = 33bc73315a5f5757a093bd21fcc68e7a37a9c86ee2b731a85ef3c5067729199a - sha256sums = f84e76eca884191d9abc0b1876f9d9587e8bfde6a19a4d194445528d5b084f9b - sha256sums = b5a2082541aeec7162c6e673ea2dd0098f36d97c5deb03059afbf723b6789faa - sha256sums = 20a3c119838e4487bcc7fc28d4301f39e016afc24c76a33c25a84b9c911e3eed - sha256sums = 0bbaaf956dcc460bafe874c23b8ed495a46ced76918b044764b172b5719c9d44 - sha256sums = e9a7b6ef185818f1472a15a98bbeb7be020e38c4d25ad3d9fead11961602bc03 - sha256sums = c15ea9caacb98a4d61de2e3c6ecf1fcd083a8ed5a5ee69dc6a05b4583463badc - sha256sums = 70353d1e4bec0bc3c895887c4b1557e2222b257c34cf0c303781e5ac6b0efec9 - sha256sums = 84301e69155a2404c24f18d8f2cc4986f355a86b9c072d59df9aca787e1abac2 - sha256sums = 9c405a65a4d5d532fc1517e8c67e5d6703cc5bad7daf4c38a3771216fc1719ad - sha256sums = 96766d4ec6bae908fe6048f39e93fbc8627531daf6b5986cec99edd056581fac - sha256sums = 05995c977c1cc77fbc49b220d95390147fa448aae2bfa9698a402e8a56b41877 - sha256sums = 9e16ce1da7499d2351dac47649c44a57ac1ec813f2d678d6da270e98359a51e4 - sha256sums = 0c99d880164142334e7b4e0eb87f073ff4d6d15ec7d4490ee5e046b44e20562d - sha256sums = 83967bcd17746052db9cd95c92456658e51b22a717dfee004a9f34dc7fa26dfb - sha256sums = a307e5269cee8ae850997b93c14a4e3abb220a553dd7ece5337422c2e8770cfb - sha256sums = 83c68bdd89892c9c1b747de8eaee210ae6578881a0d5c79431148e8712046493 - sha256sums = 2adff7cf24c62c13343e4821627c0a482ca139166147a76a76f520632d526cff - sha256sums = e9579fe46b98590d61d89cff16f719fe2b7eae88509c1ee168d85639a3cf2c0e - sha256sums = 8dab0a83aafbd2374696ced71d8fd53db35423d6db52340c8991e4e1ba134249 - sha256sums = a8f65f98ae26eb5039e4998634a11b6ef43d9f632596b5a291e2c9107bc45901 - sha256sums = 492191b1cd02c7f30ef0c77fb8ac8658cc1571a8953b7dae115ff90932b7391e - sha256sums = 348c3d85a8942f3b9e9b7ba1e33ad33f5454277badfa17baede5e7ee0623a85a - sha256sums = 809ad3f9f8a3b7933a8f5a174273b81fbd7ca875790a862984550bd53f08379d - sha256sums = 244cce4734c37ba829580e21ca7f828433653d79260d9e20ebc524f05aa0fdb2 - sha256sums = 2b8fca8395d936999a41d3a5ed1d58931222fabed89f8748dba0ef8ce6e3b51a - sha256sums = cf06c51563c0eb21e2596cb516ce6cf0dbf3ece5573259ea59291a9b5a8cc40d - sha256sums = a6d9099008a7d4e90f91a417bbb8d42b6ac8ae3c4dc1a713530a24c78b90b06f - sha256sums = 8a569cb9a6df4b6833234690931461620c4759c6f8591f163648a250bb97c2eb - sha256sums = 1cb5fadc9854b97419a909ebf72dae3a2def66ee316c73292d42d85a60604757 - sha256sums = 2274585298c76b59dfb5b0f27d0e51f44e6dd0f0cd10627c5a3c51fa893d7bc0 - sha256sums = 02567508d03043eee5a0b2c4fe00db21873fc280c29e75942233b522dafe7234 - sha256sums = ad574f61903c6db66110f4c607cd1ead2ce173e3dd95c5287aa392cb550dc973 - sha256sums = b17687196d098311e7cc58af9e7f434cbc96c7075e6c24ed36362a24473b547e - sha256sums = 150487680af2d7da5731b045d764d3501f6188e083cb5299a163edd894f9eb73 - sha256sums = 34ba987a290a3779a47f92468e834275925abaa11b008a846e5689e173128844 - sha256sums = 3267cf5af76e8253263220536b51c8203287148f2d1b564c41de151a9c3ff41e - sha256sums = dc6505ce152095aa7048977d2a4457918b8ba780bc4ae6d4188cf81321592068 - sha256sums = 71a27a759b2a8b990386b4d52ca95417205bb1674123f874b89fd17a929370fa - sha256sums = e2f6cc6c4a3443d26b852e252438564fe1fa80ab02a93b1bd325204da67663ae - sha256sums = 6d87fb84681433d5508e1c225fbd54d9b606b1a0f4c6d54b1d3970fb69fae881 - sha256sums = 29f17c6768ee91706d1772758ddfabc9242331efef8d8a7eecb4b8c04deae394 - sha256sums = dd88a730ac985b8c015ced758c7445f966acb0509e61296448b45d65d8d630a2 - sha256sums = 9fe796c6177a9faf99b1edc4656be8ec2303e8757600b557e9dde3258952bc7e - sha256sums = 9ef664c55663f953ffb37087da1f1ad4b9a9f2519c84b1ac1add97178169095a - sha256sums = 42ac5d9000ef8e2ff7ab5f88f6203c559ce727766cc2b2f4f089041b0d9e6ee8 - sha256sums = 3bbd0a5869969297ec2d5d8f062e346978be47e43480daf8255c67fe4c661ccf - sha256sums = ba79c549d798540c50ed17912eacc1f1651293b345f6aae8bd59cbe9633b4d0c - sha256sums = 851f44e92b6266bfa79f4acdd860f44f95c6ab327b685998a9ae68e9e75a08cf - sha256sums = aa0d9b3c7225d664b5faa3385d3f3f736956d7f61052154c6b0ea0ec09bbbc89 - sha256sums = 60fe115a02d56ef029df6313f9e1c14a98da34ad742968845fbeaebc9237140f - sha256sums = 17017d9d552d36e27cf11ac07c3ae678bb0c1f45761ef9796acf106c86234d95 - sha256sums = 73416c7b125bd78ceab3b3c0bb213a666976f7db3208b52d8735f81669d16650 - sha256sums = 6c7e2bcb0823892fffc1a6f86a01928e5931e1fc37cb3cfad911740d3f7d1854 - sha256sums = f3dbd4095f7cbafb2f8f7407d6f5a2f592ef8aef1270f3c6ab10e0c666262ba9 - sha256sums = 1e8a5eb92ac2b5ecc17fdbfc7b5885a5991cdb2af5300817954102f1c5bfb5ec - sha256sums = b308b21874ca0b86cfb95ddcc76432daa2d4cc6d0053981367ab66fdeea6a01c - sha256sums = e0956a1f8785fdae0b68e2ac79d9187499662e9f6b8347be8eecb36717f8a63d - sha256sums = 03bee283b4ec139b2722c1531ad566ff0d674e44a2ec49689686ca85a89c7f82 - sha256sums = 154c5f66ae84300ab69a4c9502a5893d9563f8b774887bda6959b930e3bbc6e0 - sha256sums = d73dda2abcc118ea197cc3a61b5487b28d0fc584b0eb9deecba7d4b98b19f4ae - sha256sums = 10c74ccc91d7b993c91dea5ec1f6d3710e642d35dce6001a27aa6d8bc4404dde - sha256sums = 7c734ed61313ec21dc1c2c5adc6b828fac60f5a6f67de8869d2e7acfccbf4867 - sha256sums = cb21bf8906fa812e46405269bf7e78361d05082dc63dfbf1c9719205768e49ac - sha256sums = c1f7da7edfb26701817a1fb3bb9b592e8966cf4b79b6305a1a3761bc8a4d2ab7 - sha256sums = 676cfac9acbf8ed66d2e90ff5127ae5920aaa0eece3f512d9e43fb06e6e83495 - sha256sums = e151e8dc209e32a584a5b96752073f976acf823d758c34cbef5955e1172e50d5 - sha256sums = d4903b81e4102ccaed88f7605c7208f57048cf087edbcc03a64e64580f404cae - sha256sums = 15ff60a67694331a54435a4bb8d75c60d4e1c2895bd4fdb82401fe76da87e45d - sha256sums = 08ba24891b0115a2b355b5b17da2b485c6e8c7fadabe08d7fb71716ae0d2d05e pkgname = linux-pf pkgdesc = The Linux with the pf-kernel patch (uksm, ZSTD, FSGSBASE and more) kernel and modules diff --git a/0001-drm-vc4-hdmi-Rework-power-up.patch b/0001-drm-vc4-hdmi-Rework-power-up.patch deleted file mode 100644 index e034db07090c..000000000000 --- a/0001-drm-vc4-hdmi-Rework-power-up.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 1a289a16857062e704da52683a49aaf16e826cbf Mon Sep 17 00:00:00 2001 -From: Maxime Ripard <maxime@cerno.tech> -Date: Wed, 29 Jun 2022 14:34:37 +0200 -Subject: [PATCH 01/73] drm/vc4: hdmi: Rework power up - -commit 258e483a4d5e97a6a8caa74381ddc1f395ac1c71 upstream. - -The current code tries to handle the case where CONFIG_PM isn't selected -by first calling our runtime_resume implementation and then properly -report the power state to the runtime_pm core. - -This allows to have a functionning device even if pm_runtime_get_* -functions are nops. - -However, the device power state if CONFIG_PM is enabled is -RPM_SUSPENDED, and thus our vc4_hdmi_write() and vc4_hdmi_read() calls -in the runtime_pm hooks will now report a warning since the device might -not be properly powered. - -Even more so, we need CONFIG_PM enabled since the previous RaspberryPi -have a power domain that needs to be powered up for the HDMI controller -to be usable. - -The previous patch has created a dependency on CONFIG_PM, now we can -just assume it's there and only call pm_runtime_resume_and_get() to make -sure our device is powered in bind. - -Link: https://lore.kernel.org/r/20220629123510.1915022-39-maxime@cerno.tech -Acked-by: Thomas Zimmermann <tzimmermann@suse.de> -Tested-by: Stefan Wahren <stefan.wahren@i2se.com> -Signed-off-by: Maxime Ripard <maxime@cerno.tech> -(cherry picked from commit 53565c28e6af2cef6bbf438c34250135e3564459) -Signed-off-by: Maxime Ripard <maxime@cerno.tech> -Cc: "Sudip Mukherjee (Codethink)" <sudipm.mukherjee@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 23ff6aa5e8f6..844a031a3663 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2992,17 +2992,15 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) - vc4_hdmi->disable_4kp60 = true; - } - -+ pm_runtime_enable(dev); -+ - /* -- * We need to have the device powered up at this point to call -- * our reset hook and for the CEC init. -+ * We need to have the device powered up at this point to call -+ * our reset hook and for the CEC init. - */ -- ret = vc4_hdmi_runtime_resume(dev); -+ ret = pm_runtime_resume_and_get(dev); - if (ret) -- goto err_put_ddc; -- -- pm_runtime_get_noresume(dev); -- pm_runtime_set_active(dev); -- pm_runtime_enable(dev); -+ goto err_disable_runtime_pm; - - if ((of_device_is_compatible(dev->of_node, "brcm,bcm2711-hdmi0") || - of_device_is_compatible(dev->of_node, "brcm,bcm2711-hdmi1")) && -@@ -3048,6 +3046,7 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) - err_destroy_encoder: - drm_encoder_cleanup(encoder); - pm_runtime_put_sync(dev); -+err_disable_runtime_pm: - pm_runtime_disable(dev); - err_put_ddc: - put_device(&vc4_hdmi->ddc->dev); --- -2.37.3 - diff --git a/0002-ZEN-Add-VHBA-driver.patch b/0002-ZEN-Add-VHBA-driver.patch deleted file mode 100644 index 3efe62c072a0..000000000000 --- a/0002-ZEN-Add-VHBA-driver.patch +++ /dev/null @@ -1,1196 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org> -Date: Mon, 26 Apr 2021 22:12:46 +0200 -Subject: [PATCH] ZEN: Add VHBA driver - -remote https://github.com/cdemu/cdemu -tag vhba-module-20211218 ---- - drivers/scsi/Kconfig | 2 + - drivers/scsi/Makefile | 1 + - drivers/scsi/vhba/Kconfig | 9 + - drivers/scsi/vhba/Makefile | 4 + - drivers/scsi/vhba/vhba.c | 1124 ++++++++++++++++++++++++++++++++++++ - 5 files changed, 1140 insertions(+) - create mode 100644 drivers/scsi/vhba/Kconfig - create mode 100644 drivers/scsi/vhba/Makefile - create mode 100644 drivers/scsi/vhba/vhba.c - -diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig -index a9fe5152addd3a6703cee5b480a4d698d1ebb565..c971da97ad5271c3875b6ef9aba4e109256b38bc 100644 ---- a/drivers/scsi/Kconfig -+++ b/drivers/scsi/Kconfig -@@ -1534,4 +1534,6 @@ endif # SCSI_LOWLEVEL - - source "drivers/scsi/device_handler/Kconfig" - -+source "drivers/scsi/vhba/Kconfig" -+ - endmenu -diff --git a/drivers/scsi/Makefile b/drivers/scsi/Makefile -index 2ad3bc0525316ad7cce702724b6d4f3321856596..840d41493f0501ce687b41a7aa20b85f6f7b5730 100644 ---- a/drivers/scsi/Makefile -+++ b/drivers/scsi/Makefile -@@ -152,6 +152,7 @@ obj-$(CONFIG_CHR_DEV_SCH) += ch.o - obj-$(CONFIG_SCSI_ENCLOSURE) += ses.o - - obj-$(CONFIG_SCSI_HISI_SAS) += hisi_sas/ -+obj-$(CONFIG_VHBA) += vhba/ - - # This goes last, so that "real" scsi devices probe earlier - obj-$(CONFIG_SCSI_DEBUG) += scsi_debug.o -diff --git a/drivers/scsi/vhba/Kconfig b/drivers/scsi/vhba/Kconfig -new file mode 100644 -index 0000000000000000000000000000000000000000..e70a381fe3dff807a4bfc6991aa257c345a289d9 ---- /dev/null -+++ b/drivers/scsi/vhba/Kconfig -@@ -0,0 +1,9 @@ -+config VHBA -+ tristate "Virtual (SCSI) Host Bus Adapter" -+ depends on SCSI -+ help -+ This is the in-kernel part of CDEmu, a CD/DVD-ROM device -+ emulator. -+ -+ This driver can also be built as a module. If so, the module -+ will be called vhba. -diff --git a/drivers/scsi/vhba/Makefile b/drivers/scsi/vhba/Makefile -new file mode 100644 -index 0000000000000000000000000000000000000000..ad8b7c6442af0757fc052e9d373d91e815059afb ---- /dev/null -+++ b/drivers/scsi/vhba/Makefile -@@ -0,0 +1,4 @@ -+VHBA_VERSION := 20211218 -+ -+obj-$(CONFIG_VHBA) += vhba.o -+ccflags-y := -DVHBA_VERSION=\"$(VHBA_VERSION)\" -Werror -diff --git a/drivers/scsi/vhba/vhba.c b/drivers/scsi/vhba/vhba.c -new file mode 100644 -index 0000000000000000000000000000000000000000..676af31c33ad9518ca7ae4db40bf1b5102798f50 ---- /dev/null -+++ b/drivers/scsi/vhba/vhba.c -@@ -0,0 +1,1124 @@ -+/* -+ * vhba.c -+ * -+ * Copyright (C) 2007-2012 Chia-I Wu <olvaffe AT gmail DOT com> -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License along -+ * with this program; if not, write to the Free Software Foundation, Inc., -+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ */ -+ -+#define pr_fmt(fmt) "vhba: " fmt -+ -+#include <linux/version.h> -+ -+#include <linux/init.h> -+#include <linux/module.h> -+#include <linux/highmem.h> -+#include <linux/fs.h> -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) -+#include <linux/sched/signal.h> -+#else -+#include <linux/sched.h> -+#endif -+#include <linux/platform_device.h> -+#include <linux/miscdevice.h> -+#include <linux/poll.h> -+#include <linux/slab.h> -+#include <linux/scatterlist.h> -+#ifdef CONFIG_COMPAT -+#include <linux/compat.h> -+#endif -+#include <asm/uaccess.h> -+#include <scsi/scsi.h> -+#include <scsi/scsi_host.h> -+#include <scsi/scsi_cmnd.h> -+#include <scsi/scsi_device.h> -+#include <scsi/scsi_tcq.h> -+ -+ -+MODULE_AUTHOR("Chia-I Wu"); -+MODULE_VERSION(VHBA_VERSION); -+MODULE_DESCRIPTION("Virtual SCSI HBA"); -+MODULE_LICENSE("GPL"); -+ -+ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 15, 0) -+#define sdev_dbg(sdev, fmt, a...) \ -+ dev_dbg(&(sdev)->sdev_gendev, fmt, ##a) -+#define scmd_dbg(scmd, fmt, a...) \ -+ dev_dbg(&(scmd)->device->sdev_gendev, fmt, ##a) -+#endif -+ -+#define VHBA_MAX_SECTORS_PER_IO 256 -+#define VHBA_MAX_BUS 16 -+#define VHBA_MAX_ID 16 -+#define VHBA_MAX_DEVICES (VHBA_MAX_BUS * (VHBA_MAX_ID-1)) -+#define VHBA_KBUF_SIZE PAGE_SIZE -+ -+#define DATA_TO_DEVICE(dir) ((dir) == DMA_TO_DEVICE || (dir) == DMA_BIDIRECTIONAL) -+#define DATA_FROM_DEVICE(dir) ((dir) == DMA_FROM_DEVICE || (dir) == DMA_BIDIRECTIONAL) -+ -+ -+static int vhba_can_queue = 32; -+module_param_named(can_queue, vhba_can_queue, int, 0); -+ -+ -+enum vhba_req_state { -+ VHBA_REQ_FREE, -+ VHBA_REQ_PENDING, -+ VHBA_REQ_READING, -+ VHBA_REQ_SENT, -+ VHBA_REQ_WRITING, -+}; -+ -+struct vhba_command { -+ struct scsi_cmnd *cmd; -+ /* metatags are per-host. not to be confused with -+ queue tags that are usually per-lun */ -+ unsigned long metatag; -+ int status; -+ struct list_head entry; -+}; -+ -+struct vhba_device { -+ unsigned int num; -+ spinlock_t cmd_lock; -+ struct list_head cmd_list; -+ wait_queue_head_t cmd_wq; -+ atomic_t refcnt; -+ -+ unsigned char *kbuf; -+ size_t kbuf_size; -+}; -+ -+struct vhba_host { -+ struct Scsi_Host *shost; -+ spinlock_t cmd_lock; -+ int cmd_next; -+ struct vhba_command *commands; -+ spinlock_t dev_lock; -+ struct vhba_device *devices[VHBA_MAX_DEVICES]; -+ int num_devices; -+ DECLARE_BITMAP(chgmap, VHBA_MAX_DEVICES); -+ int chgtype[VHBA_MAX_DEVICES]; -+ struct work_struct scan_devices; -+}; -+ -+#define MAX_COMMAND_SIZE 16 -+ -+struct vhba_request { -+ __u32 metatag; -+ __u32 lun; -+ __u8 cdb[MAX_COMMAND_SIZE]; -+ __u8 cdb_len; -+ __u32 data_len; -+}; -+ -+struct vhba_response { -+ __u32 metatag; -+ __u32 status; -+ __u32 data_len; -+}; -+ -+ -+ -+struct vhba_command *vhba_alloc_command (void); -+void vhba_free_command (struct vhba_command *vcmd); -+ -+static struct platform_device vhba_platform_device; -+ -+ -+ -+/* These functions define a symmetric 1:1 mapping between device numbers and -+ the bus and id. We have reserved the last id per bus for the host itself. */ -+void devnum_to_bus_and_id(unsigned int devnum, unsigned int *bus, unsigned int *id) -+{ -+ *bus = devnum / (VHBA_MAX_ID-1); -+ *id = devnum % (VHBA_MAX_ID-1); -+} -+ -+unsigned int bus_and_id_to_devnum(unsigned int bus, unsigned int id) -+{ -+ return (bus * (VHBA_MAX_ID-1)) + id; -+} -+ -+struct vhba_device *vhba_device_alloc (void) -+{ -+ struct vhba_device *vdev; -+ -+ vdev = kzalloc(sizeof(struct vhba_device), GFP_KERNEL); -+ if (!vdev) { -+ return NULL; -+ } -+ -+ spin_lock_init(&vdev->cmd_lock); -+ INIT_LIST_HEAD(&vdev->cmd_list); -+ init_waitqueue_head(&vdev->cmd_wq); -+ atomic_set(&vdev->refcnt, 1); -+ -+ vdev->kbuf = NULL; -+ vdev->kbuf_size = 0; -+ -+ return vdev; -+} -+ -+void vhba_device_put (struct vhba_device *vdev) -+{ -+ if (atomic_dec_and_test(&vdev->refcnt)) { -+ kfree(vdev); -+ } -+} -+ -+struct vhba_device *vhba_device_get (struct vhba_device *vdev) -+{ -+ atomic_inc(&vdev->refcnt); -+ -+ return vdev; -+} -+ -+int vhba_device_queue (struct vhba_device *vdev, struct scsi_cmnd *cmd) -+{ -+ struct vhba_host *vhost; -+ struct vhba_command *vcmd; -+ unsigned long flags; -+ -+ vhost = platform_get_drvdata(&vhba_platform_device); -+ -+ vcmd = vhba_alloc_command(); -+ if (!vcmd) { -+ return SCSI_MLQUEUE_HOST_BUSY; -+ } -+ -+ vcmd->cmd = cmd; -+ -+ spin_lock_irqsave(&vdev->cmd_lock, flags); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0) -+ vcmd->metatag = scsi_cmd_to_rq(vcmd->cmd)->tag; -+#else -+ vcmd->metatag = vcmd->cmd->request->tag; -+#endif -+ list_add_tail(&vcmd->entry, &vdev->cmd_list); -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ -+ wake_up_interruptible(&vdev->cmd_wq); -+ -+ return 0; -+} -+ -+int vhba_device_dequeue (struct vhba_device *vdev, struct scsi_cmnd *cmd) -+{ -+ struct vhba_command *vcmd; -+ int retval; -+ unsigned long flags; -+ -+ spin_lock_irqsave(&vdev->cmd_lock, flags); -+ list_for_each_entry(vcmd, &vdev->cmd_list, entry) { -+ if (vcmd->cmd == cmd) { -+ list_del_init(&vcmd->entry); -+ break; -+ } -+ } -+ -+ /* command not found */ -+ if (&vcmd->entry == &vdev->cmd_list) { -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ return SUCCESS; -+ } -+ -+ while (vcmd->status == VHBA_REQ_READING || vcmd->status == VHBA_REQ_WRITING) { -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ scmd_dbg(cmd, "wait for I/O before aborting\n"); -+ schedule_timeout(1); -+ spin_lock_irqsave(&vdev->cmd_lock, flags); -+ } -+ -+ retval = (vcmd->status == VHBA_REQ_SENT) ? FAILED : SUCCESS; -+ -+ vhba_free_command(vcmd); -+ -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ -+ return retval; -+} -+ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) -+int vhba_slave_alloc(struct scsi_device *sdev) -+{ -+ struct Scsi_Host *shost = sdev->host; -+ -+ sdev_dbg(sdev, "enabling tagging (queue depth: %i).\n", sdev->queue_depth); -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0) -+ if (!shost_use_blk_mq(shost) && shost->bqt) { -+#else -+ if (shost->bqt) { -+#endif -+ blk_queue_init_tags(sdev->request_queue, sdev->queue_depth, shost->bqt); -+ } -+ scsi_adjust_queue_depth(sdev, 0, sdev->queue_depth); -+ -+ return 0; -+} -+#endif -+ -+void vhba_scan_devices_add (struct vhba_host *vhost, int bus, int id) -+{ -+ struct scsi_device *sdev; -+ -+ sdev = scsi_device_lookup(vhost->shost, bus, id, 0); -+ if (!sdev) { -+ scsi_add_device(vhost->shost, bus, id, 0); -+ } else { -+ dev_warn(&vhost->shost->shost_gendev, "tried to add an already-existing device %d:%d:0!\n", bus, id); -+ scsi_device_put(sdev); -+ } -+} -+ -+void vhba_scan_devices_remove (struct vhba_host *vhost, int bus, int id) -+{ -+ struct scsi_device *sdev; -+ -+ sdev = scsi_device_lookup(vhost->shost, bus, id, 0); -+ if (sdev) { -+ scsi_remove_device(sdev); -+ scsi_device_put(sdev); -+ } else { -+ dev_warn(&vhost->shost->shost_gendev, "tried to remove non-existing device %d:%d:0!\n", bus, id); -+ } -+} -+ -+void vhba_scan_devices (struct work_struct *work) -+{ -+ struct vhba_host *vhost = container_of(work, struct vhba_host, scan_devices); -+ unsigned long flags; -+ int change, exists; -+ unsigned int devnum; -+ unsigned int bus, id; -+ -+ for (;;) { -+ spin_lock_irqsave(&vhost->dev_lock, flags); -+ -+ devnum = find_first_bit(vhost->chgmap, VHBA_MAX_DEVICES); -+ if (devnum >= VHBA_MAX_DEVICES) { -+ spin_unlock_irqrestore(&vhost->dev_lock, flags); -+ break; -+ } -+ change = vhost->chgtype[devnum]; -+ exists = vhost->devices[devnum] != NULL; -+ -+ vhost->chgtype[devnum] = 0; -+ clear_bit(devnum, vhost->chgmap); -+ -+ spin_unlock_irqrestore(&vhost->dev_lock, flags); -+ -+ devnum_to_bus_and_id(devnum, &bus, &id); -+ -+ if (change < 0) { -+ dev_dbg(&vhost->shost->shost_gendev, "trying to remove target %d:%d:0\n", bus, id); -+ vhba_scan_devices_remove(vhost, bus, id); -+ } else if (change > 0) { -+ dev_dbg(&vhost->shost->shost_gendev, "trying to add target %d:%d:0\n", bus, id); -+ vhba_scan_devices_add(vhost, bus, id); -+ } else { -+ /* quick sequence of add/remove or remove/add; we determine -+ which one it was by checking if device structure exists */ -+ if (exists) { -+ /* remove followed by add: remove and (re)add */ -+ dev_dbg(&vhost->shost->shost_gendev, "trying to (re)add target %d:%d:0\n", bus, id); -+ vhba_scan_devices_remove(vhost, bus, id); -+ vhba_scan_devices_add(vhost, bus, id); -+ } else { -+ /* add followed by remove: no-op */ -+ dev_dbg(&vhost->shost->shost_gendev, "no-op for target %d:%d:0\n", bus, id); -+ } -+ } -+ } -+} -+ -+int vhba_add_device (struct vhba_device *vdev) -+{ -+ struct vhba_host *vhost; -+ unsigned int devnum; -+ unsigned long flags; -+ -+ vhost = platform_get_drvdata(&vhba_platform_device); -+ -+ vhba_device_get(vdev); -+ -+ spin_lock_irqsave(&vhost->dev_lock, flags); -+ if (vhost->num_devices >= VHBA_MAX_DEVICES) { -+ spin_unlock_irqrestore(&vhost->dev_lock, flags); -+ vhba_device_put(vdev); -+ return -EBUSY; -+ } -+ -+ for (devnum = 0; devnum < VHBA_MAX_DEVICES; devnum++) { -+ if (vhost->devices[devnum] == NULL) { -+ vdev->num = devnum; -+ vhost->devices[devnum] = vdev; -+ vhost->num_devices++; -+ set_bit(devnum, vhost->chgmap); -+ vhost->chgtype[devnum]++; -+ break; -+ } -+ } -+ spin_unlock_irqrestore(&vhost->dev_lock, flags); -+ -+ schedule_work(&vhost->scan_devices); -+ -+ return 0; -+} -+ -+int vhba_remove_device (struct vhba_device *vdev) -+{ -+ struct vhba_host *vhost; -+ unsigned long flags; -+ -+ vhost = platform_get_drvdata(&vhba_platform_device); -+ -+ spin_lock_irqsave(&vhost->dev_lock, flags); -+ set_bit(vdev->num, vhost->chgmap); -+ vhost->chgtype[vdev->num]--; -+ vhost->devices[vdev->num] = NULL; -+ vhost->num_devices--; -+ spin_unlock_irqrestore(&vhost->dev_lock, flags); -+ -+ vhba_device_put(vdev); -+ -+ schedule_work(&vhost->scan_devices); -+ -+ return 0; -+} -+ -+struct vhba_device *vhba_lookup_device (int devnum) -+{ -+ struct vhba_host *vhost; -+ struct vhba_device *vdev = NULL; -+ unsigned long flags; -+ -+ vhost = platform_get_drvdata(&vhba_platform_device); -+ -+ if (likely(devnum < VHBA_MAX_DEVICES)) { -+ spin_lock_irqsave(&vhost->dev_lock, flags); -+ vdev = vhost->devices[devnum]; -+ if (vdev) { -+ vdev = vhba_device_get(vdev); -+ } -+ -+ spin_unlock_irqrestore(&vhost->dev_lock, flags); -+ } -+ -+ return vdev; -+} -+ -+struct vhba_command *vhba_alloc_command (void) -+{ -+ struct vhba_host *vhost; -+ struct vhba_command *vcmd; -+ unsigned long flags; -+ int i; -+ -+ vhost = platform_get_drvdata(&vhba_platform_device); -+ -+ spin_lock_irqsave(&vhost->cmd_lock, flags); -+ -+ vcmd = vhost->commands + vhost->cmd_next++; -+ if (vcmd->status != VHBA_REQ_FREE) { -+ for (i = 0; i < vhba_can_queue; i++) { -+ vcmd = vhost->commands + i; -+ -+ if (vcmd->status == VHBA_REQ_FREE) { -+ vhost->cmd_next = i + 1; -+ break; -+ } -+ } -+ -+ if (i == vhba_can_queue) { -+ vcmd = NULL; -+ } -+ } -+ -+ if (vcmd) { -+ vcmd->status = VHBA_REQ_PENDING; -+ } -+ -+ vhost->cmd_next %= vhba_can_queue; -+ -+ spin_unlock_irqrestore(&vhost->cmd_lock, flags); -+ -+ return vcmd; -+} -+ -+void vhba_free_command (struct vhba_command *vcmd) -+{ -+ struct vhba_host *vhost; -+ unsigned long flags; -+ -+ vhost = platform_get_drvdata(&vhba_platform_device); -+ -+ spin_lock_irqsave(&vhost->cmd_lock, flags); -+ vcmd->status = VHBA_REQ_FREE; -+ spin_unlock_irqrestore(&vhost->cmd_lock, flags); -+} -+ -+int vhba_queuecommand (struct Scsi_Host *shost, struct scsi_cmnd *cmd) -+{ -+ struct vhba_device *vdev; -+ int retval; -+ unsigned int devnum; -+ -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 15, 0) -+ scmd_dbg(cmd, "queue %p tag %i\n", cmd, scsi_cmd_to_rq(cmd)->tag); -+#else -+ scmd_dbg(cmd, "queue %p tag %i\n", cmd, cmd->request->tag); -+#endif -+ -+ devnum = bus_and_id_to_devnum(cmd->device->channel, cmd->device->id); -+ vdev = vhba_lookup_device(devnum); -+ if (!vdev) { -+ scmd_dbg(cmd, "no such device\n"); -+ -+ cmd->result = DID_NO_CONNECT << 16; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 16, 0) -+ scsi_done(cmd); -+#else -+ cmd->scsi_done(cmd); -+#endif -+ -+ return 0; -+ } -+ -+ retval = vhba_device_queue(vdev, cmd); -+ -+ vhba_device_put(vdev); -+ -+ return retval; -+} -+ -+int vhba_abort (struct scsi_cmnd *cmd) -+{ -+ struct vhba_device *vdev; -+ int retval = SUCCESS; -+ unsigned int devnum; -+ -+ scmd_dbg(cmd, "abort %p\n", cmd); -+ -+ devnum = bus_and_id_to_devnum(cmd->device->channel, cmd->device->id); -+ vdev = vhba_lookup_device(devnum); -+ if (vdev) { -+ retval = vhba_device_dequeue(vdev, cmd); -+ vhba_device_put(vdev); -+ } else { -+ cmd->result = DID_NO_CONNECT << 16; -+ } -+ -+ return retval; -+} -+ -+static struct scsi_host_template vhba_template = { -+ .module = THIS_MODULE, -+ .name = "vhba", -+ .proc_name = "vhba", -+ .queuecommand = vhba_queuecommand, -+ .eh_abort_handler = vhba_abort, -+ .this_id = -1, -+ .max_sectors = VHBA_MAX_SECTORS_PER_IO, -+ .sg_tablesize = 256, -+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) -+ .slave_alloc = vhba_slave_alloc, -+#endif -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0) -+ .tag_alloc_policy = BLK_TAG_ALLOC_RR, -+#endif -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0) -+ .use_blk_tags = 1, -+#endif -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0) -+ .max_segment_size = VHBA_KBUF_SIZE, -+#endif -+}; -+ -+ssize_t do_request (struct vhba_device *vdev, unsigned long metatag, struct scsi_cmnd *cmd, char __user *buf, size_t buf_len) -+{ -+ struct vhba_request vreq; -+ ssize_t ret; -+ -+ scmd_dbg(cmd, "request %lu (%p), cdb 0x%x, bufflen %d, sg count %d\n", -+ metatag, cmd, cmd->cmnd[0], scsi_bufflen(cmd), scsi_sg_count(cmd)); -+ -+ ret = sizeof(vreq); -+ if (DATA_TO_DEVICE(cmd->sc_data_direction)) { -+ ret += scsi_bufflen(cmd); -+ } -+ -+ if (ret > buf_len) { -+ scmd_dbg(cmd, "buffer too small (%zd < %zd) for a request\n", buf_len, ret); -+ return -EIO; -+ } -+ -+ vreq.metatag = metatag; -+ vreq.lun = cmd->device->lun; -+ memcpy(vreq.cdb, cmd->cmnd, MAX_COMMAND_SIZE); -+ vreq.cdb_len = cmd->cmd_len; -+ vreq.data_len = scsi_bufflen(cmd); -+ -+ if (copy_to_user(buf, &vreq, sizeof(vreq))) { -+ return -EFAULT; -+ } -+ -+ if (DATA_TO_DEVICE(cmd->sc_data_direction) && vreq.data_len) { -+ buf += sizeof(vreq); -+ -+ if (scsi_sg_count(cmd)) { -+ unsigned char *kaddr, *uaddr; -+ struct scatterlist *sglist = scsi_sglist(cmd); -+ struct scatterlist *sg; -+ int i; -+ -+ uaddr = (unsigned char *) buf; -+ -+ for_each_sg(sglist, sg, scsi_sg_count(cmd), i) { -+ size_t len = sg->length; -+ -+ if (len > vdev->kbuf_size) { -+ scmd_dbg(cmd, "segment size (%zu) exceeds kbuf size (%zu)!", len, vdev->kbuf_size); -+ len = vdev->kbuf_size; -+ } -+ -+ kaddr = kmap_atomic(sg_page(sg)); -+ memcpy(vdev->kbuf, kaddr + sg->offset, len); -+ kunmap_atomic(kaddr); -+ -+ if (copy_to_user(uaddr, vdev->kbuf, len)) { -+ return -EFAULT; -+ } -+ uaddr += len; -+ } -+ } else { -+ if (copy_to_user(buf, scsi_sglist(cmd), vreq.data_len)) { -+ return -EFAULT; -+ } -+ } -+ } -+ -+ return ret; -+} -+ -+ssize_t do_response (struct vhba_device *vdev, unsigned long metatag, struct scsi_cmnd *cmd, const char __user *buf, size_t buf_len, struct vhba_response *res) -+{ -+ ssize_t ret = 0; -+ -+ scmd_dbg(cmd, "response %lu (%p), status %x, data len %d, sg count %d\n", -+ metatag, cmd, res->status, res->data_len, scsi_sg_count(cmd)); -+ -+ if (res->status) { -+ if (res->data_len > SCSI_SENSE_BUFFERSIZE) { -+ scmd_dbg(cmd, "truncate sense (%d < %d)", SCSI_SENSE_BUFFERSIZE, res->data_len); -+ res->data_len = SCSI_SENSE_BUFFERSIZE; -+ } -+ -+ if (copy_from_user(cmd->sense_buffer, buf, res->data_len)) { -+ return -EFAULT; -+ } -+ -+ cmd->result = res->status; -+ -+ ret += res->data_len; -+ } else if (DATA_FROM_DEVICE(cmd->sc_data_direction) && scsi_bufflen(cmd)) { -+ size_t to_read; -+ -+ if (res->data_len > scsi_bufflen(cmd)) { -+ scmd_dbg(cmd, "truncate data (%d < %d)\n", scsi_bufflen(cmd), res->data_len); -+ res->data_len = scsi_bufflen(cmd); -+ } -+ -+ to_read = res->data_len; -+ -+ if (scsi_sg_count(cmd)) { -+ unsigned char *kaddr, *uaddr; -+ struct scatterlist *sglist = scsi_sglist(cmd); -+ struct scatterlist *sg; -+ int i; -+ -+ uaddr = (unsigned char *)buf; -+ -+ for_each_sg(sglist, sg, scsi_sg_count(cmd), i) { -+ size_t len = (sg->length < to_read) ? sg->length : to_read; -+ -+ if (len > vdev->kbuf_size) { -+ scmd_dbg(cmd, "segment size (%zu) exceeds kbuf size (%zu)!", len, vdev->kbuf_size); -+ len = vdev->kbuf_size; -+ } -+ -+ if (copy_from_user(vdev->kbuf, uaddr, len)) { -+ return -EFAULT; -+ } -+ uaddr += len; -+ -+ kaddr = kmap_atomic(sg_page(sg)); -+ memcpy(kaddr + sg->offset, vdev->kbuf, len); -+ kunmap_atomic(kaddr); -+ -+ to_read -= len; -+ if (to_read == 0) { -+ break; -+ } -+ } -+ } else { -+ if (copy_from_user(scsi_sglist(cmd), buf, res->data_len)) { -+ return -EFAULT; -+ } -+ -+ to_read -= res->data_len; -+ } -+ -+ scsi_set_resid(cmd, to_read); -+ -+ ret += res->data_len - to_read; -+ } -+ -+ return ret; -+} -+ -+struct vhba_command *next_command (struct vhba_device *vdev) -+{ -+ struct vhba_command *vcmd; -+ -+ list_for_each_entry(vcmd, &vdev->cmd_list, entry) { -+ if (vcmd->status == VHBA_REQ_PENDING) { -+ break; -+ } -+ } -+ -+ if (&vcmd->entry == &vdev->cmd_list) { -+ vcmd = NULL; -+ } -+ -+ return vcmd; -+} -+ -+struct vhba_command *match_command (struct vhba_device *vdev, __u32 metatag) -+{ -+ struct vhba_command *vcmd; -+ -+ list_for_each_entry(vcmd, &vdev->cmd_list, entry) { -+ if (vcmd->metatag == metatag) { -+ break; -+ } -+ } -+ -+ if (&vcmd->entry == &vdev->cmd_list) { -+ vcmd = NULL; -+ } -+ -+ return vcmd; -+} -+ -+struct vhba_command *wait_command (struct vhba_device *vdev, unsigned long flags) -+{ -+ struct vhba_command *vcmd; -+ DEFINE_WAIT(wait); -+ -+ while (!(vcmd = next_command(vdev))) { -+ if (signal_pending(current)) { -+ break; -+ } -+ -+ prepare_to_wait(&vdev->cmd_wq, &wait, TASK_INTERRUPTIBLE); -+ -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ -+ schedule(); -+ -+ spin_lock_irqsave(&vdev->cmd_lock, flags); -+ } -+ -+ finish_wait(&vdev->cmd_wq, &wait); -+ if (vcmd) { -+ vcmd->status = VHBA_REQ_READING; -+ } -+ -+ return vcmd; -+} -+ -+ssize_t vhba_ctl_read (struct file *file, char __user *buf, size_t buf_len, loff_t *offset) -+{ -+ struct vhba_device *vdev; -+ struct vhba_command *vcmd; -+ ssize_t ret; -+ unsigned long flags; -+ -+ vdev = file->private_data; -+ -+ /* Get next command */ -+ if (file->f_flags & O_NONBLOCK) { -+ /* Non-blocking variant */ -+ spin_lock_irqsave(&vdev->cmd_lock, flags); -+ vcmd = next_command(vdev); -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ -+ if (!vcmd) { -+ return -EWOULDBLOCK; -+ } -+ } else { -+ /* Blocking variant */ -+ spin_lock_irqsave(&vdev->cmd_lock, flags); -+ vcmd = wait_command(vdev, flags); -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ -+ if (!vcmd) { -+ return -ERESTARTSYS; -+ } -+ } -+ -+ ret = do_request(vdev, vcmd->metatag, vcmd->cmd, buf, buf_len); -+ -+ spin_lock_irqsave(&vdev->cmd_lock, flags); -+ if (ret >= 0) { -+ vcmd->status = VHBA_REQ_SENT; -+ *offset += ret; -+ } else { -+ vcmd->status = VHBA_REQ_PENDING; -+ } -+ -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ -+ return ret; -+} -+ -+ssize_t vhba_ctl_write (struct file *file, const char __user *buf, size_t buf_len, loff_t *offset) -+{ -+ struct vhba_device *vdev; -+ struct vhba_command *vcmd; -+ struct vhba_response res; -+ ssize_t ret; -+ unsigned long flags; -+ -+ if (buf_len < sizeof(res)) { -+ return -EIO; -+ } -+ -+ if (copy_from_user(&res, buf, sizeof(res))) { -+ return -EFAULT; -+ } -+ -+ vdev = file->private_data; -+ -+ spin_lock_irqsave(&vdev->cmd_lock, flags); -+ vcmd = match_command(vdev, res.metatag); -+ if (!vcmd || vcmd->status != VHBA_REQ_SENT) { -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ pr_debug("ctl dev #%u not expecting response\n", vdev->num); -+ return -EIO; -+ } -+ vcmd->status = VHBA_REQ_WRITING; -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ -+ ret = do_response(vdev, vcmd->metatag, vcmd->cmd, buf + sizeof(res), buf_len - sizeof(res), &res); -+ -+ spin_lock_irqsave(&vdev->cmd_lock, flags); -+ if (ret >= 0) { -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 16, 0) -+ scsi_done(vcmd->cmd); -+#else -+ vcmd->cmd->scsi_done(vcmd->cmd); -+#endif -+ ret += sizeof(res); -+ -+ /* don't compete with vhba_device_dequeue */ -+ if (!list_empty(&vcmd->entry)) { -+ list_del_init(&vcmd->entry); -+ vhba_free_command(vcmd); -+ } -+ } else { -+ vcmd->status = VHBA_REQ_SENT; -+ } -+ -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ -+ return ret; -+} -+ -+long vhba_ctl_ioctl (struct file *file, unsigned int cmd, unsigned long arg) -+{ -+ struct vhba_device *vdev = file->private_data; -+ struct vhba_host *vhost = platform_get_drvdata(&vhba_platform_device); -+ -+ switch (cmd) { -+ case 0xBEEF001: { -+ unsigned int ident[4]; /* host, channel, id, lun */ -+ -+ ident[0] = vhost->shost->host_no; -+ devnum_to_bus_and_id(vdev->num, &ident[1], &ident[2]); -+ ident[3] = 0; /* lun */ -+ -+ if (copy_to_user((void *) arg, ident, sizeof(ident))) { -+ return -EFAULT; -+ } -+ -+ return 0; -+ } -+ case 0xBEEF002: { -+ unsigned int devnum = vdev->num; -+ -+ if (copy_to_user((void *) arg, &devnum, sizeof(devnum))) { -+ return -EFAULT; -+ } -+ -+ return 0; -+ } -+ } -+ -+ return -ENOTTY; -+} -+ -+#ifdef CONFIG_COMPAT -+long vhba_ctl_compat_ioctl (struct file *file, unsigned int cmd, unsigned long arg) -+{ -+ unsigned long compat_arg = (unsigned long)compat_ptr(arg); -+ return vhba_ctl_ioctl(file, cmd, compat_arg); -+} -+#endif -+ -+unsigned int vhba_ctl_poll (struct file *file, poll_table *wait) -+{ -+ struct vhba_device *vdev = file->private_data; -+ unsigned int mask = 0; -+ unsigned long flags; -+ -+ poll_wait(file, &vdev->cmd_wq, wait); -+ -+ spin_lock_irqsave(&vdev->cmd_lock, flags); -+ if (next_command(vdev)) { -+ mask |= POLLIN | POLLRDNORM; -+ } -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ -+ return mask; -+} -+ -+int vhba_ctl_open (struct inode *inode, struct file *file) -+{ -+ struct vhba_device *vdev; -+ int retval; -+ -+ pr_debug("ctl dev open\n"); -+ -+ /* check if vhba is probed */ -+ if (!platform_get_drvdata(&vhba_platform_device)) { -+ return -ENODEV; -+ } -+ -+ vdev = vhba_device_alloc(); -+ if (!vdev) { -+ return -ENOMEM; -+ } -+ -+ vdev->kbuf_size = VHBA_KBUF_SIZE; -+ vdev->kbuf = kzalloc(vdev->kbuf_size, GFP_KERNEL); -+ if (!vdev->kbuf) { -+ return -ENOMEM; -+ } -+ -+ if (!(retval = vhba_add_device(vdev))) { -+ file->private_data = vdev; -+ } -+ -+ vhba_device_put(vdev); -+ -+ return retval; -+} -+ -+int vhba_ctl_release (struct inode *inode, struct file *file) -+{ -+ struct vhba_device *vdev; -+ struct vhba_command *vcmd; -+ unsigned long flags; -+ -+ vdev = file->private_data; -+ -+ pr_debug("ctl dev release\n"); -+ -+ vhba_device_get(vdev); -+ vhba_remove_device(vdev); -+ -+ spin_lock_irqsave(&vdev->cmd_lock, flags); -+ list_for_each_entry(vcmd, &vdev->cmd_list, entry) { -+ WARN_ON(vcmd->status == VHBA_REQ_READING || vcmd->status == VHBA_REQ_WRITING); -+ -+ scmd_dbg(vcmd->cmd, "device released with command %lu (%p)\n", vcmd->metatag, vcmd->cmd); -+ vcmd->cmd->result = DID_NO_CONNECT << 16; -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 16, 0) -+ scsi_done(vcmd->cmd); -+#else -+ vcmd->cmd->scsi_done(vcmd->cmd); -+#endif -+ vhba_free_command(vcmd); -+ } -+ INIT_LIST_HEAD(&vdev->cmd_list); -+ spin_unlock_irqrestore(&vdev->cmd_lock, flags); -+ -+ kfree(vdev->kbuf); -+ vdev->kbuf = NULL; -+ -+ vhba_device_put(vdev); -+ -+ return 0; -+} -+ -+static struct file_operations vhba_ctl_fops = { -+ .owner = THIS_MODULE, -+ .open = vhba_ctl_open, -+ .release = vhba_ctl_release, -+ .read = vhba_ctl_read, -+ .write = vhba_ctl_write, -+ .poll = vhba_ctl_poll, -+ .unlocked_ioctl = vhba_ctl_ioctl, -+#ifdef CONFIG_COMPAT -+ .compat_ioctl = vhba_ctl_compat_ioctl, -+#endif -+}; -+ -+static struct miscdevice vhba_miscdev = { -+ .minor = MISC_DYNAMIC_MINOR, -+ .name = "vhba_ctl", -+ .fops = &vhba_ctl_fops, -+}; -+ -+int vhba_probe (struct platform_device *pdev) -+{ -+ struct Scsi_Host *shost; -+ struct vhba_host *vhost; -+ int i; -+ -+ vhba_can_queue = clamp(vhba_can_queue, 1, 256); -+ -+ shost = scsi_host_alloc(&vhba_template, sizeof(struct vhba_host)); -+ if (!shost) { -+ return -ENOMEM; -+ } -+ -+ shost->max_channel = VHBA_MAX_BUS-1; -+ shost->max_id = VHBA_MAX_ID; -+ /* we don't support lun > 0 */ -+ shost->max_lun = 1; -+ shost->max_cmd_len = MAX_COMMAND_SIZE; -+ shost->can_queue = vhba_can_queue; -+ shost->cmd_per_lun = vhba_can_queue; -+ -+ vhost = (struct vhba_host *)shost->hostdata; -+ memset(vhost, 0, sizeof(struct vhba_host)); -+ -+ vhost->shost = shost; -+ vhost->num_devices = 0; -+ spin_lock_init(&vhost->dev_lock); -+ spin_lock_init(&vhost->cmd_lock); -+ INIT_WORK(&vhost->scan_devices, vhba_scan_devices); -+ vhost->cmd_next = 0; -+ vhost->commands = kzalloc(vhba_can_queue * sizeof(struct vhba_command), GFP_KERNEL); -+ if (!vhost->commands) { -+ return -ENOMEM; -+ } -+ -+ for (i = 0; i < vhba_can_queue; i++) { -+ vhost->commands[i].status = VHBA_REQ_FREE; -+ } -+ -+ platform_set_drvdata(pdev, vhost); -+ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 4, 0) -+ i = scsi_init_shared_tag_map(shost, vhba_can_queue); -+ if (i) return i; -+#endif -+ -+ if (scsi_add_host(shost, &pdev->dev)) { -+ scsi_host_put(shost); -+ return -ENOMEM; -+ } -+ -+ return 0; -+} -+ -+int vhba_remove (struct platform_device *pdev) -+{ -+ struct vhba_host *vhost; -+ struct Scsi_Host *shost; -+ -+ vhost = platform_get_drvdata(pdev); -+ shost = vhost->shost; -+ -+ scsi_remove_host(shost); -+ scsi_host_put(shost); -+ -+ kfree(vhost->commands); -+ -+ return 0; -+} -+ -+void vhba_release (struct device * dev) -+{ -+ return; -+} -+ -+static struct platform_device vhba_platform_device = { -+ .name = "vhba", -+ .id = -1, -+ .dev = { -+ .release = vhba_release, -+ }, -+}; -+ -+static struct platform_driver vhba_platform_driver = { -+ .driver = { -+ .owner = THIS_MODULE, -+ .name = "vhba", -+ }, -+ .probe = vhba_probe, -+ .remove = vhba_remove, -+}; -+ -+int __init vhba_init (void) -+{ -+ int ret; -+ -+ ret = platform_device_register(&vhba_platform_device); -+ if (ret < 0) { -+ return ret; -+ } -+ -+ ret = platform_driver_register(&vhba_platform_driver); -+ if (ret < 0) { -+ platform_device_unregister(&vhba_platform_device); -+ return ret; -+ } -+ -+ ret = misc_register(&vhba_miscdev); -+ if (ret < 0) { -+ platform_driver_unregister(&vhba_platform_driver); -+ platform_device_unregister(&vhba_platform_device); -+ return ret; -+ } -+ -+ return 0; -+} -+ -+void __exit vhba_exit(void) -+{ -+ misc_deregister(&vhba_miscdev); -+ platform_driver_unregister(&vhba_platform_driver); -+ platform_device_unregister(&vhba_platform_device); -+} -+ -+module_init(vhba_init); -+module_exit(vhba_exit); -+ diff --git a/0002-drm-vc4-hdmi-Depends-on-CONFIG_PM.patch b/0002-drm-vc4-hdmi-Depends-on-CONFIG_PM.patch deleted file mode 100644 index ba593124dff6..000000000000 --- a/0002-drm-vc4-hdmi-Depends-on-CONFIG_PM.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 1cf82931822dbf3b24945147b5330d8fdd86cdff Mon Sep 17 00:00:00 2001 -From: Maxime Ripard <maxime@cerno.tech> -Date: Wed, 29 Jun 2022 14:34:36 +0200 -Subject: [PATCH 02/73] drm/vc4: hdmi: Depends on CONFIG_PM - -commit 72e2329e7c9bbe15e7a813670497ec9c6f919af3 upstream. - -We already depend on runtime PM to get the power domains and clocks for -most of the devices supported by the vc4 driver, so let's just select it -to make sure it's there. - -Link: https://lore.kernel.org/r/20220629123510.1915022-38-maxime@cerno.tech -Acked-by: Thomas Zimmermann <tzimmermann@suse.de> -Tested-by: Stefan Wahren <stefan.wahren@i2se.com> -Signed-off-by: Maxime Ripard <maxime@cerno.tech> -(cherry picked from commit f1bc386b319e93e56453ae27e9e83817bb1f6f95) -Signed-off-by: Maxime Ripard <maxime@cerno.tech> -Cc: "Sudip Mukherjee (Codethink)" <sudipm.mukherjee@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/gpu/drm/vc4/Kconfig | 1 + - drivers/gpu/drm/vc4/vc4_hdmi.c | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/vc4/Kconfig b/drivers/gpu/drm/vc4/Kconfig -index 061be9a6619d..b0f3117102ca 100644 ---- a/drivers/gpu/drm/vc4/Kconfig -+++ b/drivers/gpu/drm/vc4/Kconfig -@@ -8,6 +8,7 @@ config DRM_VC4 - depends on DRM - depends on SND && SND_SOC - depends on COMMON_CLK -+ depends on PM - select DRM_DISPLAY_HDMI_HELPER - select DRM_DISPLAY_HELPER - select DRM_KMS_HELPER -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index 844a031a3663..199bc398817f 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -2875,7 +2875,7 @@ static int vc5_hdmi_init_resources(struct vc4_hdmi *vc4_hdmi) - return 0; - } - --static int __maybe_unused vc4_hdmi_runtime_suspend(struct device *dev) -+static int vc4_hdmi_runtime_suspend(struct device *dev) - { - struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); - --- -2.37.3 - diff --git a/0003-ZEN-Add-OpenRGB-patches.patch b/0003-ZEN-Add-OpenRGB-patches.patch deleted file mode 100644 index 72d0cb7b9a70..000000000000 --- a/0003-ZEN-Add-OpenRGB-patches.patch +++ /dev/null @@ -1,745 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org> -Date: Mon, 3 Aug 2020 21:18:53 +0200 -Subject: [PATCH] ZEN: Add OpenRGB patches - -Squashed commit of the following: - -commit 942ded8f8652a4b4e6b46d04938bb66f1eac4c78 -Author: Steven Barrett <steven@liquorix.net> -Date: Sat Jul 4 21:28:54 2020 -0500 - - openrgb: Deduplicate piix4 setup for HUDSON2/KERNCZ SMBUS - - In the original OpenRGB patches, the initialization code for CZ - secondary SMBus controllers was copied. Later, an upstream commit - landed in 5.7 stable that combined the initialization code for both - primary/secondary smbus channels. - - Combine the initialization code ahead of time so upstream merges - correctly with OpenRGB. - - Fixes: https://github.com/zen-kernel/zen-kernel/issues/176 - -commit a65e3ecf90b24fd44689cc0713af602965ffaf4e -Author: Steven Barrett <steven@liquorix.net> -Date: Wed Jun 17 14:24:20 2020 -0500 - - Add OpenRGB patch - 0c45e26c - - Source: - https://gitlab.com/CalcProgrammer1/OpenRGB/-/raw/master/OpenRGB.patch - - History: - https://gitlab.com/CalcProgrammer1/OpenRGB/-/commits/master/OpenRGB.patch ---- - drivers/i2c/busses/Kconfig | 9 + - drivers/i2c/busses/Makefile | 1 + - drivers/i2c/busses/i2c-nct6775.c | 647 +++++++++++++++++++++++++++++++ - drivers/i2c/busses/i2c-piix4.c | 4 +- - 4 files changed, 659 insertions(+), 2 deletions(-) - create mode 100644 drivers/i2c/busses/i2c-nct6775.c - -diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index a1bae59208e346572063dc8a16fe8b9c89ecf583..901471a36cab097b6f30d03a82f7546ff2985b6b 100644 ---- a/drivers/i2c/busses/Kconfig -+++ b/drivers/i2c/busses/Kconfig -@@ -227,6 +227,15 @@ config I2C_CHT_WC - combined with a FUSB302 Type-C port-controller as such it is advised - to also select CONFIG_TYPEC_FUSB302=m. - -+config I2C_NCT6775 -+ tristate "Nuvoton NCT6775 and compatible SMBus controller" -+ help -+ If you say yes to this option, support will be included for the -+ Nuvoton NCT6775 and compatible SMBus controllers. -+ -+ This driver can also be built as a module. If so, the module -+ will be called i2c-nct6775. -+ - config I2C_NFORCE2 - tristate "Nvidia nForce2, nForce3 and nForce4" - depends on PCI -diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile -index 479f60e4ee3d6f6e0715fba000a4f70f8ec4c932..e8f6d8b41781cbc39a3c785ba02abbec7791bf74 100644 ---- a/drivers/i2c/busses/Makefile -+++ b/drivers/i2c/busses/Makefile -@@ -20,6 +20,7 @@ obj-$(CONFIG_I2C_CHT_WC) += i2c-cht-wc.o - obj-$(CONFIG_I2C_I801) += i2c-i801.o - obj-$(CONFIG_I2C_ISCH) += i2c-isch.o - obj-$(CONFIG_I2C_ISMT) += i2c-ismt.o -+obj-$(CONFIG_I2C_NCT6775) += i2c-nct6775.o - obj-$(CONFIG_I2C_NFORCE2) += i2c-nforce2.o - obj-$(CONFIG_I2C_NFORCE2_S4985) += i2c-nforce2-s4985.o - obj-$(CONFIG_I2C_NVIDIA_GPU) += i2c-nvidia-gpu.o -diff --git a/drivers/i2c/busses/i2c-nct6775.c b/drivers/i2c/busses/i2c-nct6775.c -new file mode 100644 -index 0000000000000000000000000000000000000000..0462f0952043112cddf1b1fcacbf777dfd358bca ---- /dev/null -+++ b/drivers/i2c/busses/i2c-nct6775.c -@@ -0,0 +1,647 @@ -+/* -+ * i2c-nct6775 - Driver for the SMBus master functionality of -+ * Nuvoton NCT677x Super-I/O chips -+ * -+ * Copyright (C) 2019 Adam Honse <calcprogrammer1@gmail.com> -+ * -+ * Derived from nct6775 hwmon driver -+ * Copyright (C) 2012 Guenter Roeck <linux@roeck-us.net> -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ * -+ */ -+ -+#include <linux/module.h> -+#include <linux/init.h> -+#include <linux/slab.h> -+#include <linux/jiffies.h> -+#include <linux/platform_device.h> -+#include <linux/hwmon.h> -+#include <linux/hwmon-sysfs.h> -+#include <linux/hwmon-vid.h> -+#include <linux/err.h> -+#include <linux/mutex.h> -+#include <linux/delay.h> -+#include <linux/ioport.h> -+#include <linux/i2c.h> -+#include <linux/acpi.h> -+#include <linux/bitops.h> -+#include <linux/dmi.h> -+#include <linux/io.h> -+#include <linux/nospec.h> -+ -+#define DRVNAME "i2c-nct6775" -+ -+/* Nuvoton SMBus address offsets */ -+#define SMBHSTDAT (0 + nuvoton_nct6793d_smba) -+#define SMBBLKSZ (1 + nuvoton_nct6793d_smba) -+#define SMBHSTCMD (2 + nuvoton_nct6793d_smba) -+#define SMBHSTIDX (3 + nuvoton_nct6793d_smba) //Index field is the Command field on other controllers -+#define SMBHSTCTL (4 + nuvoton_nct6793d_smba) -+#define SMBHSTADD (5 + nuvoton_nct6793d_smba) -+#define SMBHSTERR (9 + nuvoton_nct6793d_smba) -+#define SMBHSTSTS (0xE + nuvoton_nct6793d_smba) -+ -+/* Command register */ -+#define NCT6793D_READ_BYTE 0 -+#define NCT6793D_READ_WORD 1 -+#define NCT6793D_READ_BLOCK 2 -+#define NCT6793D_BLOCK_WRITE_READ_PROC_CALL 3 -+#define NCT6793D_PROC_CALL 4 -+#define NCT6793D_WRITE_BYTE 8 -+#define NCT6793D_WRITE_WORD 9 -+#define NCT6793D_WRITE_BLOCK 10 -+ -+/* Control register */ -+#define NCT6793D_MANUAL_START 128 -+#define NCT6793D_SOFT_RESET 64 -+ -+/* Error register */ -+#define NCT6793D_NO_ACK 32 -+ -+/* Status register */ -+#define NCT6793D_FIFO_EMPTY 1 -+#define NCT6793D_FIFO_FULL 2 -+#define NCT6793D_MANUAL_ACTIVE 4 -+ -+#define NCT6775_LD_SMBUS 0x0B -+ -+/* Other settings */ -+#define MAX_RETRIES 400 -+ -+enum kinds { nct6106, nct6775, nct6776, nct6779, nct6791, nct6792, nct6793, -+ nct6795, nct6796, nct6798 }; -+ -+struct nct6775_sio_data { -+ int sioreg; -+ enum kinds kind; -+}; -+ -+/* used to set data->name = nct6775_device_names[data->sio_kind] */ -+static const char * const nct6775_device_names[] = { -+ "nct6106", -+ "nct6775", -+ "nct6776", -+ "nct6779", -+ "nct6791", -+ "nct6792", -+ "nct6793", -+ "nct6795", -+ "nct6796", -+ "nct6798", -+}; -+ -+static const char * const nct6775_sio_names[] __initconst = { -+ "NCT6106D", -+ "NCT6775F", -+ "NCT6776D/F", -+ "NCT6779D", -+ "NCT6791D", -+ "NCT6792D", -+ "NCT6793D", -+ "NCT6795D", -+ "NCT6796D", -+ "NCT6798D", -+}; -+ -+#define SIO_REG_LDSEL 0x07 /* Logical device select */ -+#define SIO_REG_DEVID 0x20 /* Device ID (2 bytes) */ -+#define SIO_REG_SMBA 0x62 /* SMBus base address register */ -+ -+#define SIO_NCT6106_ID 0xc450 -+#define SIO_NCT6775_ID 0xb470 -+#define SIO_NCT6776_ID 0xc330 -+#define SIO_NCT6779_ID 0xc560 -+#define SIO_NCT6791_ID 0xc800 -+#define SIO_NCT6792_ID 0xc910 -+#define SIO_NCT6793_ID 0xd120 -+#define SIO_NCT6795_ID 0xd350 -+#define SIO_NCT6796_ID 0xd420 -+#define SIO_NCT6798_ID 0xd428 -+#define SIO_ID_MASK 0xFFF0 -+ -+static inline void -+superio_outb(int ioreg, int reg, int val) -+{ -+ outb(reg, ioreg); -+ outb(val, ioreg + 1); -+} -+ -+static inline int -+superio_inb(int ioreg, int reg) -+{ -+ outb(reg, ioreg); -+ return inb(ioreg + 1); -+} -+ -+static inline void -+superio_select(int ioreg, int ld) -+{ -+ outb(SIO_REG_LDSEL, ioreg); -+ outb(ld, ioreg + 1); -+} -+ -+static inline int -+superio_enter(int ioreg) -+{ -+ /* -+ * Try to reserve <ioreg> and <ioreg + 1> for exclusive access. -+ */ -+ if (!request_muxed_region(ioreg, 2, DRVNAME)) -+ return -EBUSY; -+ -+ outb(0x87, ioreg); -+ outb(0x87, ioreg); -+ -+ return 0; -+} -+ -+static inline void -+superio_exit(int ioreg) -+{ -+ outb(0xaa, ioreg); -+ outb(0x02, ioreg); -+ outb(0x02, ioreg + 1); -+ release_region(ioreg, 2); -+} -+ -+/* -+ * ISA constants -+ */ -+ -+#define IOREGION_ALIGNMENT (~7) -+#define IOREGION_LENGTH 2 -+#define ADDR_REG_OFFSET 0 -+#define DATA_REG_OFFSET 1 -+ -+#define NCT6775_REG_BANK 0x4E -+#define NCT6775_REG_CONFIG 0x40 -+ -+static struct i2c_adapter *nct6775_adapter; -+ -+struct i2c_nct6775_adapdata { -+ unsigned short smba; -+}; -+ -+/* Return negative errno on error. */ -+static s32 nct6775_access(struct i2c_adapter * adap, u16 addr, -+ unsigned short flags, char read_write, -+ u8 command, int size, union i2c_smbus_data * data) -+{ -+ struct i2c_nct6775_adapdata *adapdata = i2c_get_adapdata(adap); -+ unsigned short nuvoton_nct6793d_smba = adapdata->smba; -+ int i, len, cnt; -+ union i2c_smbus_data tmp_data; -+ int timeout = 0; -+ -+ tmp_data.word = 0; -+ cnt = 0; -+ len = 0; -+ -+ outb_p(NCT6793D_SOFT_RESET, SMBHSTCTL); -+ -+ switch (size) { -+ case I2C_SMBUS_QUICK: -+ outb_p((addr << 1) | read_write, -+ SMBHSTADD); -+ break; -+ case I2C_SMBUS_BYTE_DATA: -+ tmp_data.byte = data->byte; -+ case I2C_SMBUS_BYTE: -+ outb_p((addr << 1) | read_write, -+ SMBHSTADD); -+ outb_p(command, SMBHSTIDX); -+ if (read_write == I2C_SMBUS_WRITE) { -+ outb_p(tmp_data.byte, SMBHSTDAT); -+ outb_p(NCT6793D_WRITE_BYTE, SMBHSTCMD); -+ } -+ else { -+ outb_p(NCT6793D_READ_BYTE, SMBHSTCMD); -+ } -+ break; -+ case I2C_SMBUS_WORD_DATA: -+ outb_p((addr << 1) | read_write, -+ SMBHSTADD); -+ outb_p(command, SMBHSTIDX); -+ if (read_write == I2C_SMBUS_WRITE) { -+ outb_p(data->word & 0xff, SMBHSTDAT); -+ outb_p((data->word & 0xff00) >> 8, SMBHSTDAT); -+ outb_p(NCT6793D_WRITE_WORD, SMBHSTCMD); -+ } -+ else { -+ outb_p(NCT6793D_READ_WORD, SMBHSTCMD); -+ } -+ break; -+ case I2C_SMBUS_BLOCK_DATA: -+ outb_p((addr << 1) | read_write, -+ SMBHSTADD); -+ outb_p(command, SMBHSTIDX); -+ if (read_write == I2C_SMBUS_WRITE) { -+ len = data->block[0]; -+ if (len == 0 || len > I2C_SMBUS_BLOCK_MAX) -+ return -EINVAL; -+ outb_p(len, SMBBLKSZ); -+ -+ cnt = 1; -+ if (len >= 4) { -+ for (i = cnt; i <= 4; i++) { -+ outb_p(data->block[i], SMBHSTDAT); -+ } -+ -+ len -= 4; -+ cnt += 4; -+ } -+ else { -+ for (i = cnt; i <= len; i++ ) { -+ outb_p(data->block[i], SMBHSTDAT); -+ } -+ -+ len = 0; -+ } -+ -+ outb_p(NCT6793D_WRITE_BLOCK, SMBHSTCMD); -+ } -+ else { -+ return -ENOTSUPP; -+ } -+ break; -+ default: -+ dev_warn(&adap->dev, "Unsupported transaction %d\n", size); -+ return -EOPNOTSUPP; -+ } -+ -+ outb_p(NCT6793D_MANUAL_START, SMBHSTCTL); -+ -+ while ((size == I2C_SMBUS_BLOCK_DATA) && (len > 0)) { -+ if (read_write == I2C_SMBUS_WRITE) { -+ timeout = 0; -+ while ((inb_p(SMBHSTSTS) & NCT6793D_FIFO_EMPTY) == 0) -+ { -+ if(timeout > MAX_RETRIES) -+ { -+ return -ETIMEDOUT; -+ } -+ usleep_range(250, 500); -+ timeout++; -+ } -+ -+ //Load more bytes into FIFO -+ if (len >= 4) { -+ for (i = cnt; i <= (cnt + 4); i++) { -+ outb_p(data->block[i], SMBHSTDAT); -+ } -+ -+ len -= 4; -+ cnt += 4; -+ } -+ else { -+ for (i = cnt; i <= (cnt + len); i++) { -+ outb_p(data->block[i], SMBHSTDAT); -+ } -+ -+ len = 0; -+ } -+ } -+ else { -+ return -ENOTSUPP; -+ } -+ -+ } -+ -+ //wait for manual mode to complete -+ timeout = 0; -+ while ((inb_p(SMBHSTSTS) & NCT6793D_MANUAL_ACTIVE) != 0) -+ { -+ if(timeout > MAX_RETRIES) -+ { -+ return -ETIMEDOUT; -+ } -+ usleep_range(250, 500); -+ timeout++; -+ } -+ -+ if ((inb_p(SMBHSTERR) & NCT6793D_NO_ACK) != 0) { -+ return -ENXIO; -+ } -+ else if ((read_write == I2C_SMBUS_WRITE) || (size == I2C_SMBUS_QUICK)) { -+ return 0; -+ } -+ -+ switch (size) { -+ case I2C_SMBUS_QUICK: -+ case I2C_SMBUS_BYTE_DATA: -+ data->byte = inb_p(SMBHSTDAT); -+ break; -+ case I2C_SMBUS_WORD_DATA: -+ data->word = inb_p(SMBHSTDAT) + (inb_p(SMBHSTDAT) << 8); -+ break; -+ } -+ return 0; -+} -+ -+static u32 nct6775_func(struct i2c_adapter *adapter) -+{ -+ return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE | -+ I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA | -+ I2C_FUNC_SMBUS_BLOCK_DATA; -+} -+ -+static const struct i2c_algorithm smbus_algorithm = { -+ .smbus_xfer = nct6775_access, -+ .functionality = nct6775_func, -+}; -+ -+static int nct6775_add_adapter(unsigned short smba, const char *name, struct i2c_adapter **padap) -+{ -+ struct i2c_adapter *adap; -+ struct i2c_nct6775_adapdata *adapdata; -+ int retval; -+ -+ adap = kzalloc(sizeof(*adap), GFP_KERNEL); -+ if (adap == NULL) { -+ return -ENOMEM; -+ } -+ -+ adap->owner = THIS_MODULE; -+ adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD; -+ adap->algo = &smbus_algorithm; -+ -+ adapdata = kzalloc(sizeof(*adapdata), GFP_KERNEL); -+ if (adapdata == NULL) { -+ kfree(adap); -+ return -ENOMEM; -+ } -+ -+ adapdata->smba = smba; -+ -+ snprintf(adap->name, sizeof(adap->name), -+ "SMBus NCT67xx adapter%s at %04x", name, smba); -+ -+ i2c_set_adapdata(adap, adapdata); -+ -+ retval = i2c_add_adapter(adap); -+ if (retval) { -+ kfree(adapdata); -+ kfree(adap); -+ return retval; -+ } -+ -+ *padap = adap; -+ return 0; -+} -+ -+static void nct6775_remove_adapter(struct i2c_adapter *adap) -+{ -+ struct i2c_nct6775_adapdata *adapdata = i2c_get_adapdata(adap); -+ -+ if (adapdata->smba) { -+ i2c_del_adapter(adap); -+ kfree(adapdata); -+ kfree(adap); -+ } -+} -+ -+//static SIMPLE_DEV_PM_OPS(nct6775_dev_pm_ops, nct6775_suspend, nct6775_resume); -+ -+/* -+ * when Super-I/O functions move to a separate file, the Super-I/O -+ * bus will manage the lifetime of the device and this module will only keep -+ * track of the nct6775 driver. But since we use platform_device_alloc(), we -+ * must keep track of the device -+ */ -+static struct platform_device *pdev[2]; -+ -+static int nct6775_probe(struct platform_device *pdev) -+{ -+ struct device *dev = &pdev->dev; -+ struct nct6775_sio_data *sio_data = dev_get_platdata(dev); -+ struct resource *res; -+ -+ res = platform_get_resource(pdev, IORESOURCE_IO, 0); -+ if (!devm_request_region(&pdev->dev, res->start, IOREGION_LENGTH, -+ DRVNAME)) -+ return -EBUSY; -+ -+ switch (sio_data->kind) { -+ case nct6791: -+ case nct6792: -+ case nct6793: -+ case nct6795: -+ case nct6796: -+ case nct6798: -+ nct6775_add_adapter(res->start, "", &nct6775_adapter); -+ break; -+ default: -+ return -ENODEV; -+ } -+ -+ return 0; -+} -+/* -+static void nct6791_enable_io_mapping(int sioaddr) -+{ -+ int val; -+ -+ val = superio_inb(sioaddr, NCT6791_REG_HM_IO_SPACE_LOCK_ENABLE); -+ if (val & 0x10) { -+ pr_info("Enabling hardware monitor logical device mappings.\n"); -+ superio_outb(sioaddr, NCT6791_REG_HM_IO_SPACE_LOCK_ENABLE, -+ val & ~0x10); -+ } -+}*/ -+ -+static struct platform_driver i2c_nct6775_driver = { -+ .driver = { -+ .name = DRVNAME, -+// .pm = &nct6775_dev_pm_ops, -+ }, -+ .probe = nct6775_probe, -+}; -+ -+static void __exit i2c_nct6775_exit(void) -+{ -+ int i; -+ -+ if(nct6775_adapter) -+ nct6775_remove_adapter(nct6775_adapter); -+ -+ for (i = 0; i < ARRAY_SIZE(pdev); i++) { -+ if (pdev[i]) -+ platform_device_unregister(pdev[i]); -+ } -+ platform_driver_unregister(&i2c_nct6775_driver); -+} -+ -+/* nct6775_find() looks for a '627 in the Super-I/O config space */ -+static int __init nct6775_find(int sioaddr, struct nct6775_sio_data *sio_data) -+{ -+ u16 val; -+ int err; -+ int addr; -+ -+ err = superio_enter(sioaddr); -+ if (err) -+ return err; -+ -+ val = (superio_inb(sioaddr, SIO_REG_DEVID) << 8) | -+ superio_inb(sioaddr, SIO_REG_DEVID + 1); -+ -+ switch (val & SIO_ID_MASK) { -+ case SIO_NCT6106_ID: -+ sio_data->kind = nct6106; -+ break; -+ case SIO_NCT6775_ID: -+ sio_data->kind = nct6775; -+ break; -+ case SIO_NCT6776_ID: -+ sio_data->kind = nct6776; -+ break; -+ case SIO_NCT6779_ID: -+ sio_data->kind = nct6779; -+ break; -+ case SIO_NCT6791_ID: -+ sio_data->kind = nct6791; -+ break; -+ case SIO_NCT6792_ID: -+ sio_data->kind = nct6792; -+ break; -+ case SIO_NCT6793_ID: -+ sio_data->kind = nct6793; -+ break; -+ case SIO_NCT6795_ID: -+ sio_data->kind = nct6795; -+ break; -+ case SIO_NCT6796_ID: -+ sio_data->kind = nct6796; -+ break; -+ case SIO_NCT6798_ID: -+ sio_data->kind = nct6798; -+ break; -+ default: -+ if (val != 0xffff) -+ pr_debug("unsupported chip ID: 0x%04x\n", val); -+ superio_exit(sioaddr); -+ return -ENODEV; -+ } -+ -+ /* We have a known chip, find the SMBus I/O address */ -+ superio_select(sioaddr, NCT6775_LD_SMBUS); -+ val = (superio_inb(sioaddr, SIO_REG_SMBA) << 8) -+ | superio_inb(sioaddr, SIO_REG_SMBA + 1); -+ addr = val & IOREGION_ALIGNMENT; -+ if (addr == 0) { -+ pr_err("Refusing to enable a Super-I/O device with a base I/O port 0\n"); -+ superio_exit(sioaddr); -+ return -ENODEV; -+ } -+ -+ //if (sio_data->kind == nct6791 || sio_data->kind == nct6792 || -+ // sio_data->kind == nct6793 || sio_data->kind == nct6795 || -+ // sio_data->kind == nct6796) -+ // nct6791_enable_io_mapping(sioaddr); -+ -+ superio_exit(sioaddr); -+ pr_info("Found %s or compatible chip at %#x:%#x\n", -+ nct6775_sio_names[sio_data->kind], sioaddr, addr); -+ sio_data->sioreg = sioaddr; -+ -+ return addr; -+} -+ -+static int __init i2c_nct6775_init(void) -+{ -+ int i, err; -+ bool found = false; -+ int address; -+ struct resource res; -+ struct nct6775_sio_data sio_data; -+ int sioaddr[2] = { 0x2e, 0x4e }; -+ -+ err = platform_driver_register(&i2c_nct6775_driver); -+ if (err) -+ return err; -+ -+ /* -+ * initialize sio_data->kind and sio_data->sioreg. -+ * -+ * when Super-I/O functions move to a separate file, the Super-I/O -+ * driver will probe 0x2e and 0x4e and auto-detect the presence of a -+ * nct6775 hardware monitor, and call probe() -+ */ -+ for (i = 0; i < ARRAY_SIZE(pdev); i++) { -+ address = nct6775_find(sioaddr[i], &sio_data); -+ if (address <= 0) -+ continue; -+ -+ found = true; -+ -+ pdev[i] = platform_device_alloc(DRVNAME, address); -+ if (!pdev[i]) { -+ err = -ENOMEM; -+ goto exit_device_unregister; -+ } -+ -+ err = platform_device_add_data(pdev[i], &sio_data, -+ sizeof(struct nct6775_sio_data)); -+ if (err) -+ goto exit_device_put; -+ -+ memset(&res, 0, sizeof(res)); -+ res.name = DRVNAME; -+ res.start = address; -+ res.end = address + IOREGION_LENGTH - 1; -+ res.flags = IORESOURCE_IO; -+ -+ err = acpi_check_resource_conflict(&res); -+ if (err) { -+ platform_device_put(pdev[i]); -+ pdev[i] = NULL; -+ continue; -+ } -+ -+ err = platform_device_add_resources(pdev[i], &res, 1); -+ if (err) -+ goto exit_device_put; -+ -+ /* platform_device_add calls probe() */ -+ err = platform_device_add(pdev[i]); -+ if (err) -+ goto exit_device_put; -+ } -+ if (!found) { -+ err = -ENODEV; -+ goto exit_unregister; -+ } -+ -+ return 0; -+ -+exit_device_put: -+ platform_device_put(pdev[i]); -+exit_device_unregister: -+ while (--i >= 0) { -+ if (pdev[i]) -+ platform_device_unregister(pdev[i]); -+ } -+exit_unregister: -+ platform_driver_unregister(&i2c_nct6775_driver); -+ return err; -+} -+ -+MODULE_AUTHOR("Adam Honse <calcprogrammer1@gmail.com>"); -+MODULE_DESCRIPTION("SMBus driver for NCT6775F and compatible chips"); -+MODULE_LICENSE("GPL"); -+ -+module_init(i2c_nct6775_init); -+module_exit(i2c_nct6775_exit); -diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c -index 39cb1b7bb8656c6f34bc194b9ed7537ad70cf293..9d0b0c24b94eb0a1ed2ba740f94474d50f56f06d 100644 ---- a/drivers/i2c/busses/i2c-piix4.c -+++ b/drivers/i2c/busses/i2c-piix4.c -@@ -568,11 +568,11 @@ static int piix4_transaction(struct i2c_adapter *piix4_adapter) - if (srvrworks_csb5_delay) /* Extra delay for SERVERWORKS_CSB5 */ - usleep_range(2000, 2100); - else -- usleep_range(250, 500); -+ usleep_range(25, 50); - - while ((++timeout < MAX_TIMEOUT) && - ((temp = inb_p(SMBHSTSTS)) & 0x01)) -- usleep_range(250, 500); -+ usleep_range(25, 50); - - /* If the SMBus is still busy, we give up */ - if (timeout == MAX_TIMEOUT) { diff --git a/0003-firmware-tegra-bpmp-Do-only-aligned-access-to-IPC-me.patch b/0003-firmware-tegra-bpmp-Do-only-aligned-access-to-IPC-me.patch deleted file mode 100644 index 216708899a77..000000000000 --- a/0003-firmware-tegra-bpmp-Do-only-aligned-access-to-IPC-me.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 515af71adf3d5e05587c7bb27c1725c20cd259a0 Mon Sep 17 00:00:00 2001 -From: Timo Alho <talho@nvidia.com> -Date: Wed, 22 Jun 2022 16:22:59 +0300 -Subject: [PATCH 03/73] firmware: tegra: bpmp: Do only aligned access to IPC - memory area - -commit a4740b148a04dc60e14fe6a1dfe216d3bae214fd upstream. - -Use memcpy_toio and memcpy_fromio variants of memcpy to guarantee no -unaligned access to IPC memory area. This is to allow the IPC memory to -be mapped as Device memory to further suppress speculative reads from -happening within the 64 kB memory area above the IPC memory when 64 kB -memory pages are used. - -Signed-off-by: Timo Alho <talho@nvidia.com> -Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> -Signed-off-by: Thierry Reding <treding@nvidia.com> -Cc: Jon Hunter <jonathanh@nvidia.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/firmware/tegra/bpmp.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/drivers/firmware/tegra/bpmp.c b/drivers/firmware/tegra/bpmp.c -index 5654c5e9862b..037db21de510 100644 ---- a/drivers/firmware/tegra/bpmp.c -+++ b/drivers/firmware/tegra/bpmp.c -@@ -201,7 +201,7 @@ static ssize_t __tegra_bpmp_channel_read(struct tegra_bpmp_channel *channel, - int err; - - if (data && size > 0) -- memcpy(data, channel->ib->data, size); -+ memcpy_fromio(data, channel->ib->data, size); - - err = tegra_bpmp_ack_response(channel); - if (err < 0) -@@ -245,7 +245,7 @@ static ssize_t __tegra_bpmp_channel_write(struct tegra_bpmp_channel *channel, - channel->ob->flags = flags; - - if (data && size > 0) -- memcpy(channel->ob->data, data, size); -+ memcpy_toio(channel->ob->data, data, size); - - return tegra_bpmp_post_request(channel); - } -@@ -420,7 +420,7 @@ void tegra_bpmp_mrq_return(struct tegra_bpmp_channel *channel, int code, - channel->ob->code = code; - - if (data && size > 0) -- memcpy(channel->ob->data, data, size); -+ memcpy_toio(channel->ob->data, data, size); - - err = tegra_bpmp_post_response(channel); - if (WARN_ON(err < 0)) --- -2.37.3 - diff --git a/0004-ZEN-Add-ACS-override-support.patch b/0004-ZEN-Add-ACS-override-support.patch deleted file mode 100644 index 902bea88f44a..000000000000 --- a/0004-ZEN-Add-ACS-override-support.patch +++ /dev/null @@ -1,150 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Steven Barrett <steven@liquorix.net> -Date: Sat, 30 Jan 2021 11:34:18 -0600 -Subject: [PATCH] ZEN: Add ACS override support - -Source: https://gitlab.com/Queuecumber/linux-acs-override/-/raw/master/workspaces/5.10.4/acso.patch ---- - .../admin-guide/kernel-parameters.txt | 9 ++ - drivers/pci/quirks.c | 101 ++++++++++++++++++ - 2 files changed, 110 insertions(+) - -diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index cc3ea8febc623e84abec9a28a73174c60fc1f57f..0185df52bb49883434327779aa6fc37383f9e7e4 100644 ---- a/Documentation/admin-guide/kernel-parameters.txt -+++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -4084,6 +4084,15 @@ - nomsi [MSI] If the PCI_MSI kernel config parameter is - enabled, this kernel boot option can be used to - disable the use of MSI interrupts system-wide. -+ pcie_acs_override = -+ [PCIE] Override missing PCIe ACS support for: -+ downstream -+ All downstream ports - full ACS capabilities -+ multfunction -+ All multifunction devices - multifunction ACS subset -+ id:nnnn:nnnn -+ Specfic device - full ACS capabilities -+ Specified as vid:did (vendor/device ID) in hex - noioapicquirk [APIC] Disable all boot interrupt quirks. - Safety option to keep boot IRQs enabled. This - should never be necessary. -diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index 41aeaa23513224a3836910a39ea12abac291ccbc..f76b7abd7d11af5c3b8250f738d8ef4a26fd8da6 100644 ---- a/drivers/pci/quirks.c -+++ b/drivers/pci/quirks.c -@@ -3601,6 +3601,106 @@ static void quirk_no_bus_reset(struct pci_dev *dev) - dev->dev_flags |= PCI_DEV_FLAGS_NO_BUS_RESET; - } - -+static bool acs_on_downstream; -+static bool acs_on_multifunction; -+ -+#define NUM_ACS_IDS 16 -+struct acs_on_id { -+ unsigned short vendor; -+ unsigned short device; -+}; -+static struct acs_on_id acs_on_ids[NUM_ACS_IDS]; -+static u8 max_acs_id; -+ -+static __init int pcie_acs_override_setup(char *p) -+{ -+ if (!p) -+ return -EINVAL; -+ -+ while (*p) { -+ if (!strncmp(p, "downstream", 10)) -+ acs_on_downstream = true; -+ if (!strncmp(p, "multifunction", 13)) -+ acs_on_multifunction = true; -+ if (!strncmp(p, "id:", 3)) { -+ char opt[5]; -+ int ret; -+ long val; -+ -+ if (max_acs_id >= NUM_ACS_IDS - 1) { -+ pr_warn("Out of PCIe ACS override slots (%d)\n", -+ NUM_ACS_IDS); -+ goto next; -+ } -+ -+ p += 3; -+ snprintf(opt, 5, "%s", p); -+ ret = kstrtol(opt, 16, &val); -+ if (ret) { -+ pr_warn("PCIe ACS ID parse error %d\n", ret); -+ goto next; -+ } -+ acs_on_ids[max_acs_id].vendor = val; -+ -+ p += strcspn(p, ":"); -+ if (*p != ':') { -+ pr_warn("PCIe ACS invalid ID\n"); -+ goto next; -+ } -+ -+ p++; -+ snprintf(opt, 5, "%s", p); -+ ret = kstrtol(opt, 16, &val); -+ if (ret) { -+ pr_warn("PCIe ACS ID parse error %d\n", ret); -+ goto next; -+ } -+ acs_on_ids[max_acs_id].device = val; -+ max_acs_id++; -+ } -+next: -+ p += strcspn(p, ","); -+ if (*p == ',') -+ p++; -+ } -+ -+ if (acs_on_downstream || acs_on_multifunction || max_acs_id) -+ pr_warn("Warning: PCIe ACS overrides enabled; This may allow non-IOMMU protected peer-to-peer DMA\n"); -+ -+ return 0; -+} -+early_param("pcie_acs_override", pcie_acs_override_setup); -+ -+static int pcie_acs_overrides(struct pci_dev *dev, u16 acs_flags) -+{ -+ int i; -+ -+ /* Never override ACS for legacy devices or devices with ACS caps */ -+ if (!pci_is_pcie(dev) || -+ pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS)) -+ return -ENOTTY; -+ -+ for (i = 0; i < max_acs_id; i++) -+ if (acs_on_ids[i].vendor == dev->vendor && -+ acs_on_ids[i].device == dev->device) -+ return 1; -+ -+ switch (pci_pcie_type(dev)) { -+ case PCI_EXP_TYPE_DOWNSTREAM: -+ case PCI_EXP_TYPE_ROOT_PORT: -+ if (acs_on_downstream) -+ return 1; -+ break; -+ case PCI_EXP_TYPE_ENDPOINT: -+ case PCI_EXP_TYPE_UPSTREAM: -+ case PCI_EXP_TYPE_LEG_END: -+ case PCI_EXP_TYPE_RC_END: -+ if (acs_on_multifunction && dev->multifunction) -+ return 1; -+ } -+ -+ return -ENOTTY; -+} - /* - * Some NVIDIA GPU devices do not work with bus reset, SBR needs to be - * prevented for those affected devices. -@@ -4966,6 +5066,7 @@ static const struct pci_dev_acs_enabled { - { PCI_VENDOR_ID_NXP, 0x8d9b, pci_quirk_nxp_rp_acs }, - /* Zhaoxin Root/Downstream Ports */ - { PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs }, -+ { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides }, - { 0 } - }; - diff --git a/0004-crypto-lib-remove-unneeded-selection-of-XOR_BLOCKS.patch b/0004-crypto-lib-remove-unneeded-selection-of-XOR_BLOCKS.patch deleted file mode 100644 index 768851474be3..000000000000 --- a/0004-crypto-lib-remove-unneeded-selection-of-XOR_BLOCKS.patch +++ /dev/null @@ -1,40 +0,0 @@ -From e120a63532946bad71dc6255579a3219a9caf66c Mon Sep 17 00:00:00 2001 -From: Eric Biggers <ebiggers@google.com> -Date: Thu, 25 Aug 2022 22:04:56 -0700 -Subject: [PATCH 04/73] crypto: lib - remove unneeded selection of XOR_BLOCKS - -commit 874b301985ef2f89b8b592ad255e03fb6fbfe605 upstream. - -CRYPTO_LIB_CHACHA_GENERIC doesn't need to select XOR_BLOCKS. It perhaps -was thought that it's needed for __crypto_xor, but that's not the case. - -Enabling XOR_BLOCKS is problematic because the XOR_BLOCKS code runs a -benchmark when it is initialized. That causes a boot time regression on -systems that didn't have it enabled before. - -Therefore, remove this unnecessary and problematic selection. - -Fixes: e56e18985596 ("lib/crypto: add prompts back to crypto libraries") -Cc: stable@vger.kernel.org -Signed-off-by: Eric Biggers <ebiggers@google.com> -Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - lib/crypto/Kconfig | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/lib/crypto/Kconfig b/lib/crypto/Kconfig -index 2082af43d51f..0717a0dcefed 100644 ---- a/lib/crypto/Kconfig -+++ b/lib/crypto/Kconfig -@@ -33,7 +33,6 @@ config CRYPTO_ARCH_HAVE_LIB_CHACHA - - config CRYPTO_LIB_CHACHA_GENERIC - tristate -- select XOR_BLOCKS - help - This symbol can be depended upon by arch implementations of the - ChaCha library interface that require the generic code as a --- -2.37.3 - diff --git a/0005-ZEN-PCI-Add-Intel-remapped-NVMe-device-support.patch b/0005-ZEN-PCI-Add-Intel-remapped-NVMe-device-support.patch deleted file mode 100644 index f8f08f65ed54..000000000000 --- a/0005-ZEN-PCI-Add-Intel-remapped-NVMe-device-support.patch +++ /dev/null @@ -1,637 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Daniel Drake <drake@endlessm.com> -Date: Tue, 4 Jun 2019 14:51:21 +0800 -Subject: [PATCH] ZEN: PCI: Add Intel remapped NVMe device support - -Contains: - - PCI: Add Intel remapped NVMe device support - - Consumer products that are configured by default to run the Intel SATA AHCI - controller in "RAID" or "Intel RST Premium With Intel Optane System - Acceleration" mode are becoming increasingly prevalent. - - Unde this mode, NVMe devices are remapped into the SATA device and become - hidden from the PCI bus, which means that Linux users cannot access their - storage devices unless they go into the firmware setup menu to revert back - to AHCI mode - assuming such option is available. Lack of support for this - mode is also causing complications for vendors who distribute Linux. - - Add support for the remapped NVMe mode by creating a virtual PCI bus, - where the AHCI and NVMe devices are presented separately, allowing the - ahci and nvme drivers to bind in the normal way. - - Unfortunately the NVMe device configuration space is inaccesible under - this scheme, so we provide a fake one, and hope that no DeviceID-based - quirks are needed. The interrupt is shared between the AHCI and NVMe - devices. - - Allow pci_real_dma_dev() to traverse back to the real DMA device from - the PCI devices created on our virtual bus, in case the iommu driver - will be involved with data transfers here. - - The existing ahci driver is modified to not claim devices where remapped - NVMe devices are present, allowing this new driver to step in. - - The details of the remapping scheme came from patches previously - posted by Dan Williams and the resulting discussion. - - https://phabricator.endlessm.com/T24358 - https://phabricator.endlessm.com/T29119 - - Signed-off-by: Daniel Drake <drake@endlessm.com> - - - PCI: Fix order of remapped NVMe devices ---- - arch/x86/include/asm/pci.h | 6 + - arch/x86/pci/common.c | 7 +- - drivers/ata/ahci.c | 23 +- - drivers/pci/controller/Makefile | 6 + - drivers/pci/controller/intel-nvme-remap.c | 462 ++++++++++++++++++++++ - 5 files changed, 488 insertions(+), 16 deletions(-) - create mode 100644 drivers/pci/controller/intel-nvme-remap.c - -diff --git a/arch/x86/include/asm/pci.h b/arch/x86/include/asm/pci.h -index f3fd5928bcbb58d29ad1ad9fa02acf527669272f..f7488c2b203cf6b90cd257cfd81334230ebd69c1 100644 ---- a/arch/x86/include/asm/pci.h -+++ b/arch/x86/include/asm/pci.h -@@ -27,6 +27,7 @@ struct pci_sysdata { - #if IS_ENABLED(CONFIG_VMD) - struct pci_dev *vmd_dev; /* VMD Device if in Intel VMD domain */ - #endif -+ struct pci_dev *nvme_remap_dev; /* AHCI Device if NVME remapped bus */ - }; - - extern int pci_routeirq; -@@ -70,6 +71,11 @@ static inline bool is_vmd(struct pci_bus *bus) - #define is_vmd(bus) false - #endif /* CONFIG_VMD */ - -+static inline bool is_nvme_remap(struct pci_bus *bus) -+{ -+ return to_pci_sysdata(bus)->nvme_remap_dev != NULL; -+} -+ - /* Can be used to override the logic in pci_scan_bus for skipping - already-configured bus numbers - to be used for buggy BIOSes - or architectures with incomplete PCI setup by the loader */ -diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c -index ddb798603201ef79dd6c554d10b746a936ec2a84..7c20387d82029ac485f42c5fbc7e26545a536d3c 100644 ---- a/arch/x86/pci/common.c -+++ b/arch/x86/pci/common.c -@@ -723,12 +723,15 @@ int pci_ext_cfg_avail(void) - return 0; - } - --#if IS_ENABLED(CONFIG_VMD) - struct pci_dev *pci_real_dma_dev(struct pci_dev *dev) - { -+#if IS_ENABLED(CONFIG_VMD) - if (is_vmd(dev->bus)) - return to_pci_sysdata(dev->bus)->vmd_dev; -+#endif -+ -+ if (is_nvme_remap(dev->bus)) -+ return to_pci_sysdata(dev->bus)->nvme_remap_dev; - - return dev; - } --#endif -diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c -index c1eca72b4575df73f32dc24ddc23d460cf5de581..974d877659113afc952c4ce617c44095423f480a 100644 ---- a/drivers/ata/ahci.c -+++ b/drivers/ata/ahci.c -@@ -1503,7 +1503,7 @@ static irqreturn_t ahci_thunderx_irq_handler(int irq, void *dev_instance) - } - #endif - --static void ahci_remap_check(struct pci_dev *pdev, int bar, -+static int ahci_remap_check(struct pci_dev *pdev, int bar, - struct ahci_host_priv *hpriv) - { - int i; -@@ -1516,7 +1516,7 @@ static void ahci_remap_check(struct pci_dev *pdev, int bar, - pci_resource_len(pdev, bar) < SZ_512K || - bar != AHCI_PCI_BAR_STANDARD || - !(readl(hpriv->mmio + AHCI_VSCAP) & 1)) -- return; -+ return 0; - - cap = readq(hpriv->mmio + AHCI_REMAP_CAP); - for (i = 0; i < AHCI_MAX_REMAP; i++) { -@@ -1531,18 +1531,11 @@ static void ahci_remap_check(struct pci_dev *pdev, int bar, - } - - if (!hpriv->remapped_nvme) -- return; -- -- dev_warn(&pdev->dev, "Found %u remapped NVMe devices.\n", -- hpriv->remapped_nvme); -- dev_warn(&pdev->dev, -- "Switch your BIOS from RAID to AHCI mode to use them.\n"); -+ return 0; - -- /* -- * Don't rely on the msi-x capability in the remap case, -- * share the legacy interrupt across ahci and remapped devices. -- */ -- hpriv->flags |= AHCI_HFLAG_NO_MSI; -+ /* Abort probe, allowing intel-nvme-remap to step in when available */ -+ dev_info(&pdev->dev, "Device will be handled by intel-nvme-remap.\n"); -+ return -ENODEV; - } - - static int ahci_get_irq_vector(struct ata_host *host, int port) -@@ -1765,7 +1758,9 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) - hpriv->mmio = pcim_iomap_table(pdev)[ahci_pci_bar]; - - /* detect remapped nvme devices */ -- ahci_remap_check(pdev, ahci_pci_bar, hpriv); -+ rc = ahci_remap_check(pdev, ahci_pci_bar, hpriv); -+ if (rc) -+ return rc; - - sysfs_add_file_to_group(&pdev->dev.kobj, - &dev_attr_remapped_nvme.attr, -diff --git a/drivers/pci/controller/Makefile b/drivers/pci/controller/Makefile -index 37c8663de7fe1ff7c9c948cd39f4b6ce1a912f5b..897d19f92edeb123826596db8d3e65949cfe6678 100644 ---- a/drivers/pci/controller/Makefile -+++ b/drivers/pci/controller/Makefile -@@ -1,4 +1,10 @@ - # SPDX-License-Identifier: GPL-2.0 -+ifdef CONFIG_X86_64 -+ifdef CONFIG_SATA_AHCI -+obj-y += intel-nvme-remap.o -+endif -+endif -+ - obj-$(CONFIG_PCIE_CADENCE) += cadence/ - obj-$(CONFIG_PCI_FTPCI100) += pci-ftpci100.o - obj-$(CONFIG_PCI_IXP4XX) += pci-ixp4xx.o -diff --git a/drivers/pci/controller/intel-nvme-remap.c b/drivers/pci/controller/intel-nvme-remap.c -new file mode 100644 -index 0000000000000000000000000000000000000000..e105e6f5cc91d1b99db4c9b1c79b500bb4beb22a ---- /dev/null -+++ b/drivers/pci/controller/intel-nvme-remap.c -@@ -0,0 +1,462 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* -+ * Intel remapped NVMe device support. -+ * -+ * Copyright (c) 2019 Endless Mobile, Inc. -+ * Author: Daniel Drake <drake@endlessm.com> -+ * -+ * Some products ship by default with the SATA controller in "RAID" or -+ * "Intel RST Premium With Intel Optane System Acceleration" mode. Under this -+ * mode, which we refer to as "remapped NVMe" mode, any installed NVMe -+ * devices disappear from the PCI bus, and instead their I/O memory becomes -+ * available within the AHCI device BARs. -+ * -+ * This scheme is understood to be a way of avoiding usage of the standard -+ * Windows NVMe driver under that OS, instead mandating usage of Intel's -+ * driver instead, which has better power management, and presumably offers -+ * some RAID/disk-caching solutions too. -+ * -+ * Here in this driver, we support the remapped NVMe mode by claiming the -+ * AHCI device and creating a fake PCIe root port. On the new bus, the -+ * original AHCI device is exposed with only minor tweaks. Then, fake PCI -+ * devices corresponding to the remapped NVMe devices are created. The usual -+ * ahci and nvme drivers are then expected to bind to these devices and -+ * operate as normal. -+ * -+ * The PCI configuration space for the NVMe devices is completely -+ * unavailable, so we fake a minimal one and hope for the best. -+ * -+ * Interrupts are shared between the AHCI and NVMe devices. For simplicity, -+ * we only support the legacy interrupt here, although MSI support -+ * could potentially be added later. -+ */ -+ -+#define MODULE_NAME "intel-nvme-remap" -+ -+#include <linux/ahci-remap.h> -+#include <linux/irq.h> -+#include <linux/kernel.h> -+#include <linux/module.h> -+#include <linux/pci.h> -+ -+#define AHCI_PCI_BAR_STANDARD 5 -+ -+struct nvme_remap_dev { -+ struct pci_dev *dev; /* AHCI device */ -+ struct pci_bus *bus; /* our fake PCI bus */ -+ struct pci_sysdata sysdata; -+ int irq_base; /* our fake interrupts */ -+ -+ /* -+ * When we detect an all-ones write to a BAR register, this flag -+ * is set, so that we return the BAR size on the next read (a -+ * standard PCI behaviour). -+ * This includes the assumption that an all-ones BAR write is -+ * immediately followed by a read of the same register. -+ */ -+ bool bar_sizing; -+ -+ /* -+ * Resources copied from the AHCI device, to be regarded as -+ * resources on our fake bus. -+ */ -+ struct resource ahci_resources[PCI_NUM_RESOURCES]; -+ -+ /* Resources corresponding to the NVMe devices. */ -+ struct resource remapped_dev_mem[AHCI_MAX_REMAP]; -+ -+ /* Number of remapped NVMe devices found. */ -+ int num_remapped_devices; -+}; -+ -+static inline struct nvme_remap_dev *nrdev_from_bus(struct pci_bus *bus) -+{ -+ return container_of(bus->sysdata, struct nvme_remap_dev, sysdata); -+} -+ -+ -+/******** PCI configuration space **********/ -+ -+/* -+ * Helper macros for tweaking returned contents of PCI configuration space. -+ * -+ * value contains len bytes of data read from reg. -+ * If fixup_reg is included in that range, fix up the contents of that -+ * register to fixed_value. -+ */ -+#define NR_FIX8(fixup_reg, fixed_value) do { \ -+ if (reg <= fixup_reg && fixup_reg < reg + len) \ -+ ((u8 *) value)[fixup_reg - reg] = (u8) (fixed_value); \ -+ } while (0) -+ -+#define NR_FIX16(fixup_reg, fixed_value) do { \ -+ NR_FIX8(fixup_reg, fixed_value); \ -+ NR_FIX8(fixup_reg + 1, fixed_value >> 8); \ -+ } while (0) -+ -+#define NR_FIX24(fixup_reg, fixed_value) do { \ -+ NR_FIX8(fixup_reg, fixed_value); \ -+ NR_FIX8(fixup_reg + 1, fixed_value >> 8); \ -+ NR_FIX8(fixup_reg + 2, fixed_value >> 16); \ -+ } while (0) -+ -+#define NR_FIX32(fixup_reg, fixed_value) do { \ -+ NR_FIX16(fixup_reg, (u16) fixed_value); \ -+ NR_FIX16(fixup_reg + 2, fixed_value >> 16); \ -+ } while (0) -+ -+/* -+ * Read PCI config space of the slot 0 (AHCI) device. -+ * We pass through the read request to the underlying device, but -+ * tweak the results in some cases. -+ */ -+static int nvme_remap_pci_read_slot0(struct pci_bus *bus, int reg, -+ int len, u32 *value) -+{ -+ struct nvme_remap_dev *nrdev = nrdev_from_bus(bus); -+ struct pci_bus *ahci_dev_bus = nrdev->dev->bus; -+ int ret; -+ -+ ret = ahci_dev_bus->ops->read(ahci_dev_bus, nrdev->dev->devfn, -+ reg, len, value); -+ if (ret) -+ return ret; -+ -+ /* -+ * Adjust the device class, to prevent this driver from attempting to -+ * additionally probe the device we're simulating here. -+ */ -+ NR_FIX24(PCI_CLASS_PROG, PCI_CLASS_STORAGE_SATA_AHCI); -+ -+ /* -+ * Unset interrupt pin, otherwise ACPI tries to find routing -+ * info for our virtual IRQ, fails, and complains. -+ */ -+ NR_FIX8(PCI_INTERRUPT_PIN, 0); -+ -+ /* -+ * Truncate the AHCI BAR to not include the region that covers the -+ * hidden devices. This will cause the ahci driver to successfully -+ * probe th new device (instead of handing it over to this driver). -+ */ -+ if (nrdev->bar_sizing) { -+ NR_FIX32(PCI_BASE_ADDRESS_5, ~(SZ_16K - 1)); -+ nrdev->bar_sizing = false; -+ } -+ -+ return PCIBIOS_SUCCESSFUL; -+} -+ -+/* -+ * Read PCI config space of a remapped device. -+ * Since the original PCI config space is inaccessible, we provide a minimal, -+ * fake config space instead. -+ */ -+static int nvme_remap_pci_read_remapped(struct pci_bus *bus, unsigned int port, -+ int reg, int len, u32 *value) -+{ -+ struct nvme_remap_dev *nrdev = nrdev_from_bus(bus); -+ struct resource *remapped_mem; -+ -+ if (port > nrdev->num_remapped_devices) -+ return PCIBIOS_DEVICE_NOT_FOUND; -+ -+ *value = 0; -+ remapped_mem = &nrdev->remapped_dev_mem[port - 1]; -+ -+ /* Set a Vendor ID, otherwise Linux assumes no device is present */ -+ NR_FIX16(PCI_VENDOR_ID, PCI_VENDOR_ID_INTEL); -+ -+ /* Always appear on & bus mastering */ -+ NR_FIX16(PCI_COMMAND, PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER); -+ -+ /* Set class so that nvme driver probes us */ -+ NR_FIX24(PCI_CLASS_PROG, PCI_CLASS_STORAGE_EXPRESS); -+ -+ if (nrdev->bar_sizing) { -+ NR_FIX32(PCI_BASE_ADDRESS_0, -+ ~(resource_size(remapped_mem) - 1)); -+ nrdev->bar_sizing = false; -+ } else { -+ resource_size_t mem_start = remapped_mem->start; -+ -+ mem_start |= PCI_BASE_ADDRESS_MEM_TYPE_64; -+ NR_FIX32(PCI_BASE_ADDRESS_0, mem_start); -+ mem_start >>= 32; -+ NR_FIX32(PCI_BASE_ADDRESS_1, mem_start); -+ } -+ -+ return PCIBIOS_SUCCESSFUL; -+} -+ -+/* Read PCI configuration space. */ -+static int nvme_remap_pci_read(struct pci_bus *bus, unsigned int devfn, -+ int reg, int len, u32 *value) -+{ -+ if (PCI_SLOT(devfn) == 0) -+ return nvme_remap_pci_read_slot0(bus, reg, len, value); -+ else -+ return nvme_remap_pci_read_remapped(bus, PCI_SLOT(devfn), -+ reg, len, value); -+} -+ -+/* -+ * Write PCI config space of the slot 0 (AHCI) device. -+ * Apart from the special case of BAR sizing, we disable all writes. -+ * Otherwise, the ahci driver could make changes (e.g. unset PCI bus master) -+ * that would affect the operation of the NVMe devices. -+ */ -+static int nvme_remap_pci_write_slot0(struct pci_bus *bus, int reg, -+ int len, u32 value) -+{ -+ struct nvme_remap_dev *nrdev = nrdev_from_bus(bus); -+ struct pci_bus *ahci_dev_bus = nrdev->dev->bus; -+ -+ if (reg >= PCI_BASE_ADDRESS_0 && reg <= PCI_BASE_ADDRESS_5) { -+ /* -+ * Writing all-ones to a BAR means that the size of the -+ * memory region is being checked. Flag this so that we can -+ * reply with an appropriate size on the next read. -+ */ -+ if (value == ~0) -+ nrdev->bar_sizing = true; -+ -+ return ahci_dev_bus->ops->write(ahci_dev_bus, -+ nrdev->dev->devfn, -+ reg, len, value); -+ } -+ -+ return PCIBIOS_SET_FAILED; -+} -+ -+/* -+ * Write PCI config space of a remapped device. -+ * Since the original PCI config space is inaccessible, we reject all -+ * writes, except for the special case of BAR probing. -+ */ -+static int nvme_remap_pci_write_remapped(struct pci_bus *bus, -+ unsigned int port, -+ int reg, int len, u32 value) -+{ -+ struct nvme_remap_dev *nrdev = nrdev_from_bus(bus); -+ -+ if (port > nrdev->num_remapped_devices) -+ return PCIBIOS_DEVICE_NOT_FOUND; -+ -+ /* -+ * Writing all-ones to a BAR means that the size of the memory -+ * region is being checked. Flag this so that we can reply with -+ * an appropriate size on the next read. -+ */ -+ if (value == ~0 && reg >= PCI_BASE_ADDRESS_0 -+ && reg <= PCI_BASE_ADDRESS_5) { -+ nrdev->bar_sizing = true; -+ return PCIBIOS_SUCCESSFUL; -+ } -+ -+ return PCIBIOS_SET_FAILED; -+} -+ -+/* Write PCI configuration space. */ -+static int nvme_remap_pci_write(struct pci_bus *bus, unsigned int devfn, -+ int reg, int len, u32 value) -+{ -+ if (PCI_SLOT(devfn) == 0) -+ return nvme_remap_pci_write_slot0(bus, reg, len, value); -+ else -+ return nvme_remap_pci_write_remapped(bus, PCI_SLOT(devfn), -+ reg, len, value); -+} -+ -+static struct pci_ops nvme_remap_pci_ops = { -+ .read = nvme_remap_pci_read, -+ .write = nvme_remap_pci_write, -+}; -+ -+ -+/******** Initialization & exit **********/ -+ -+/* -+ * Find a PCI domain ID to use for our fake bus. -+ * Start at 0x10000 to not clash with ACPI _SEG domains (16 bits). -+ */ -+static int find_free_domain(void) -+{ -+ int domain = 0xffff; -+ struct pci_bus *bus = NULL; -+ -+ while ((bus = pci_find_next_bus(bus)) != NULL) -+ domain = max_t(int, domain, pci_domain_nr(bus)); -+ -+ return domain + 1; -+} -+ -+static int find_remapped_devices(struct nvme_remap_dev *nrdev, -+ struct list_head *resources) -+{ -+ void __iomem *mmio; -+ int i, count = 0; -+ u32 cap; -+ -+ mmio = pcim_iomap(nrdev->dev, AHCI_PCI_BAR_STANDARD, -+ pci_resource_len(nrdev->dev, -+ AHCI_PCI_BAR_STANDARD)); -+ if (!mmio) -+ return -ENODEV; -+ -+ /* Check if this device might have remapped nvme devices. */ -+ if (pci_resource_len(nrdev->dev, AHCI_PCI_BAR_STANDARD) < SZ_512K || -+ !(readl(mmio + AHCI_VSCAP) & 1)) -+ return -ENODEV; -+ -+ cap = readq(mmio + AHCI_REMAP_CAP); -+ for (i = AHCI_MAX_REMAP-1; i >= 0; i--) { -+ struct resource *remapped_mem; -+ -+ if ((cap & (1 << i)) == 0) -+ continue; -+ if (readl(mmio + ahci_remap_dcc(i)) -+ != PCI_CLASS_STORAGE_EXPRESS) -+ continue; -+ -+ /* We've found a remapped device */ -+ remapped_mem = &nrdev->remapped_dev_mem[count++]; -+ remapped_mem->start = -+ pci_resource_start(nrdev->dev, AHCI_PCI_BAR_STANDARD) -+ + ahci_remap_base(i); -+ remapped_mem->end = remapped_mem->start -+ + AHCI_REMAP_N_SIZE - 1; -+ remapped_mem->flags = IORESOURCE_MEM | IORESOURCE_PCI_FIXED; -+ pci_add_resource(resources, remapped_mem); -+ } -+ -+ pcim_iounmap(nrdev->dev, mmio); -+ -+ if (count == 0) -+ return -ENODEV; -+ -+ nrdev->num_remapped_devices = count; -+ dev_info(&nrdev->dev->dev, "Found %d remapped NVMe devices\n", -+ nrdev->num_remapped_devices); -+ return 0; -+} -+ -+static void nvme_remap_remove_root_bus(void *data) -+{ -+ struct pci_bus *bus = data; -+ -+ pci_stop_root_bus(bus); -+ pci_remove_root_bus(bus); -+} -+ -+static int nvme_remap_probe(struct pci_dev *dev, -+ const struct pci_device_id *id) -+{ -+ struct nvme_remap_dev *nrdev; -+ LIST_HEAD(resources); -+ int i; -+ int ret; -+ struct pci_dev *child; -+ -+ nrdev = devm_kzalloc(&dev->dev, sizeof(*nrdev), GFP_KERNEL); -+ nrdev->sysdata.domain = find_free_domain(); -+ nrdev->sysdata.nvme_remap_dev = dev; -+ nrdev->dev = dev; -+ pci_set_drvdata(dev, nrdev); -+ -+ ret = pcim_enable_device(dev); -+ if (ret < 0) -+ return ret; -+ -+ pci_set_master(dev); -+ -+ ret = find_remapped_devices(nrdev, &resources); -+ if (ret) -+ return ret; -+ -+ /* Add resources from the original AHCI device */ -+ for (i = 0; i < PCI_NUM_RESOURCES; i++) { -+ struct resource *res = &dev->resource[i]; -+ -+ if (res->start) { -+ struct resource *nr_res = &nrdev->ahci_resources[i]; -+ -+ nr_res->start = res->start; -+ nr_res->end = res->end; -+ nr_res->flags = res->flags; -+ pci_add_resource(&resources, nr_res); -+ } -+ } -+ -+ /* Create virtual interrupts */ -+ nrdev->irq_base = devm_irq_alloc_descs(&dev->dev, -1, 0, -+ nrdev->num_remapped_devices + 1, -+ 0); -+ if (nrdev->irq_base < 0) -+ return nrdev->irq_base; -+ -+ /* Create and populate PCI bus */ -+ nrdev->bus = pci_create_root_bus(&dev->dev, 0, &nvme_remap_pci_ops, -+ &nrdev->sysdata, &resources); -+ if (!nrdev->bus) -+ return -ENODEV; -+ -+ if (devm_add_action_or_reset(&dev->dev, nvme_remap_remove_root_bus, -+ nrdev->bus)) -+ return -ENOMEM; -+ -+ /* We don't support sharing MSI interrupts between these devices */ -+ nrdev->bus->bus_flags |= PCI_BUS_FLAGS_NO_MSI; -+ -+ pci_scan_child_bus(nrdev->bus); -+ -+ list_for_each_entry(child, &nrdev->bus->devices, bus_list) { -+ /* -+ * Prevent PCI core from trying to move memory BARs around. -+ * The hidden NVMe devices are at fixed locations. -+ */ -+ for (i = 0; i < PCI_NUM_RESOURCES; i++) { -+ struct resource *res = &child->resource[i]; -+ -+ if (res->flags & IORESOURCE_MEM) -+ res->flags |= IORESOURCE_PCI_FIXED; -+ } -+ -+ /* Share the legacy IRQ between all devices */ -+ child->irq = dev->irq; -+ } -+ -+ pci_assign_unassigned_bus_resources(nrdev->bus); -+ pci_bus_add_devices(nrdev->bus); -+ -+ return 0; -+} -+ -+static const struct pci_device_id nvme_remap_ids[] = { -+ /* -+ * Match all Intel RAID controllers. -+ * -+ * There's overlap here with the set of devices detected by the ahci -+ * driver, but ahci will only successfully probe when there -+ * *aren't* any remapped NVMe devices, and this driver will only -+ * successfully probe when there *are* remapped NVMe devices that -+ * need handling. -+ */ -+ { -+ PCI_VDEVICE(INTEL, PCI_ANY_ID), -+ .class = PCI_CLASS_STORAGE_RAID << 8, -+ .class_mask = 0xffffff00, -+ }, -+ {0,} -+}; -+MODULE_DEVICE_TABLE(pci, nvme_remap_ids); -+ -+static struct pci_driver nvme_remap_drv = { -+ .name = MODULE_NAME, -+ .id_table = nvme_remap_ids, -+ .probe = nvme_remap_probe, -+}; -+module_pci_driver(nvme_remap_drv); -+ -+MODULE_AUTHOR("Daniel Drake <drake@endlessm.com>"); -+MODULE_LICENSE("GPL v2"); diff --git a/0005-docs-kerneldoc-preamble-Test-xeCJK.sty-before-loadin.patch b/0005-docs-kerneldoc-preamble-Test-xeCJK.sty-before-loadin.patch deleted file mode 100644 index 5f9b72dbe4af..000000000000 --- a/0005-docs-kerneldoc-preamble-Test-xeCJK.sty-before-loadin.patch +++ /dev/null @@ -1,88 +0,0 @@ -From a8ba16e9f171e9638401ff39daebdd2b84553e2d Mon Sep 17 00:00:00 2001 -From: Akira Yokosawa <akiyks@gmail.com> -Date: Mon, 8 Aug 2022 17:53:57 +0900 -Subject: [PATCH 05/73] docs: kerneldoc-preamble: Test xeCJK.sty before loading - -commit cee7db1b0239468b22c295cf04a8c40c34ecd35a upstream. - -On distros whose texlive packaging is fine-grained, texlive-xecjk -can be installed/removed independently of other texlive packages. -Conditionally loading xeCJK depending only on the existence of the -"Noto Sans CJK SC" font might end up in xelatex error of -"xeCJK.sty not found!". - -Improve the situation by testing existence of xeCJK.sty before -loading it. - -This is useful on RHEL 9 and its clone distros where texlive-xecjk -doesn't work at the moment due to a missing dependency [1]. -"make pdfdocs" for non-CJK contents should work after removing -texlive-xecjk. - -Link: [1] https://bugzilla.redhat.com/show_bug.cgi?id=2086254 -Fixes: 398f7abdcb7e ("docs: pdfdocs: Pull LaTeX preamble part out of conf.py") -Cc: stable@vger.kernel.org # v5.18+ -Signed-off-by: Akira Yokosawa <akiyks@gmail.com> -Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org> -Link: https://lore.kernel.org/r/c24c2a87-70b2-5342-bcc9-de467940466e@gmail.com -Signed-off-by: Jonathan Corbet <corbet@lwn.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - Documentation/sphinx/kerneldoc-preamble.sty | 22 +++++++++++++++------ - 1 file changed, 16 insertions(+), 6 deletions(-) - -diff --git a/Documentation/sphinx/kerneldoc-preamble.sty b/Documentation/sphinx/kerneldoc-preamble.sty -index 2a29cbe51396..9707e033c8c4 100644 ---- a/Documentation/sphinx/kerneldoc-preamble.sty -+++ b/Documentation/sphinx/kerneldoc-preamble.sty -@@ -70,8 +70,16 @@ - - % Translations have Asian (CJK) characters which are only displayed if - % xeCJK is used -+\usepackage{ifthen} -+\newboolean{enablecjk} -+\setboolean{enablecjk}{false} - \IfFontExistsTF{Noto Sans CJK SC}{ -- % Load xeCJK when CJK font is available -+ \IfFileExists{xeCJK.sty}{ -+ \setboolean{enablecjk}{true} -+ }{} -+}{} -+\ifthenelse{\boolean{enablecjk}}{ -+ % Load xeCJK when both the Noto Sans CJK font and xeCJK.sty are available. - \usepackage{xeCJK} - % Noto CJK fonts don't provide slant shape. [AutoFakeSlant] permits - % its emulation. -@@ -196,7 +204,7 @@ - % Inactivate CJK after tableofcontents - \apptocmd{\sphinxtableofcontents}{\kerneldocCJKoff}{}{} - \xeCJKsetup{CJKspace = true}% For inter-phrase space of Korean TOC --}{ % No CJK font found -+}{ % Don't enable CJK - % Custom macros to on/off CJK and switch CJK fonts (Dummy) - \newcommand{\kerneldocCJKon}{} - \newcommand{\kerneldocCJKoff}{} -@@ -204,14 +212,16 @@ - %% and ignore the argument (#1) in their definitions, whole contents of - %% CJK chapters can be ignored. - \newcommand{\kerneldocBeginSC}[1]{% -- %% Put a note on missing CJK fonts in place of zh_CN translation. -- \begin{sphinxadmonition}{note}{Note on missing fonts:} -+ %% Put a note on missing CJK fonts or the xecjk package in place of -+ %% zh_CN translation. -+ \begin{sphinxadmonition}{note}{Note on missing fonts and a package:} - Translations of Simplified Chinese (zh\_CN), Traditional Chinese - (zh\_TW), Korean (ko\_KR), and Japanese (ja\_JP) were skipped -- due to the lack of suitable font families. -+ due to the lack of suitable font families and/or the texlive-xecjk -+ package. - - If you want them, please install ``Noto Sans CJK'' font families -- by following instructions from -+ along with the texlive-xecjk package by following instructions from - \sphinxcode{./scripts/sphinx-pre-install}. - Having optional ``Noto Serif CJK'' font families will improve - the looks of those translations. --- -2.37.3 - diff --git a/0006-arm64-errata-Add-Cortex-A510-to-the-repeat-tlbi-list.patch b/0006-arm64-errata-Add-Cortex-A510-to-the-repeat-tlbi-list.patch deleted file mode 100644 index 2622a4a106ef..000000000000 --- a/0006-arm64-errata-Add-Cortex-A510-to-the-repeat-tlbi-list.patch +++ /dev/null @@ -1,96 +0,0 @@ -From d3916da4bc6c022c9c41c576f6538fa78e5ce746 Mon Sep 17 00:00:00 2001 -From: James Morse <james.morse@arm.com> -Date: Mon, 4 Jul 2022 16:57:32 +0100 -Subject: [PATCH 06/73] arm64: errata: Add Cortex-A510 to the repeat tlbi list - -commit 39fdb65f52e9a53d32a6ba719f96669fd300ae78 upstream. - -Cortex-A510 is affected by an erratum where in rare circumstances the -CPUs may not handle a race between a break-before-make sequence on one -CPU, and another CPU accessing the same page. This could allow a store -to a page that has been unmapped. - -Work around this by adding the affected CPUs to the list that needs -TLB sequences to be done twice. - -Signed-off-by: James Morse <james.morse@arm.com> -Link: https://lore.kernel.org/r/20220704155732.21216-1-james.morse@arm.com -Signed-off-by: Will Deacon <will@kernel.org> -Cc: Lucas Wei <lucaswei@google.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - Documentation/arm64/silicon-errata.rst | 2 ++ - arch/arm64/Kconfig | 17 +++++++++++++++++ - arch/arm64/kernel/cpu_errata.c | 8 +++++++- - 3 files changed, 26 insertions(+), 1 deletion(-) - -diff --git a/Documentation/arm64/silicon-errata.rst b/Documentation/arm64/silicon-errata.rst -index 0b4235b1f8c4..33b04db8408f 100644 ---- a/Documentation/arm64/silicon-errata.rst -+++ b/Documentation/arm64/silicon-errata.rst -@@ -106,6 +106,8 @@ stable kernels. - +----------------+-----------------+-----------------+-----------------------------+ - | ARM | Cortex-A510 | #2077057 | ARM64_ERRATUM_2077057 | - +----------------+-----------------+-----------------+-----------------------------+ -+| ARM | Cortex-A510 | #2441009 | ARM64_ERRATUM_2441009 | -++----------------+-----------------+-----------------+-----------------------------+ - | ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 | - +----------------+-----------------+-----------------+-----------------------------+ - | ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 | -diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index a5d1b561ed53..001eaba5a6b4 100644 ---- a/arch/arm64/Kconfig -+++ b/arch/arm64/Kconfig -@@ -838,6 +838,23 @@ config ARM64_ERRATUM_2224489 - - If unsure, say Y. - -+config ARM64_ERRATUM_2441009 -+ bool "Cortex-A510: Completion of affected memory accesses might not be guaranteed by completion of a TLBI" -+ default y -+ select ARM64_WORKAROUND_REPEAT_TLBI -+ help -+ This option adds a workaround for ARM Cortex-A510 erratum #2441009. -+ -+ Under very rare circumstances, affected Cortex-A510 CPUs -+ may not handle a race between a break-before-make sequence on one -+ CPU, and another CPU accessing the same page. This could allow a -+ store to a page that has been unmapped. -+ -+ Work around this by adding the affected CPUs to the list that needs -+ TLB sequences to be done twice. -+ -+ If unsure, say Y. -+ - config ARM64_ERRATUM_2064142 - bool "Cortex-A510: 2064142: workaround TRBE register writes while disabled" - depends on CORESIGHT_TRBE -diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c -index b374e258f705..5f4117dae888 100644 ---- a/arch/arm64/kernel/cpu_errata.c -+++ b/arch/arm64/kernel/cpu_errata.c -@@ -213,6 +213,12 @@ static const struct arm64_cpu_capabilities arm64_repeat_tlbi_list[] = { - /* Kryo4xx Gold (rcpe to rfpe) => (r0p0 to r3p0) */ - ERRATA_MIDR_RANGE(MIDR_QCOM_KRYO_4XX_GOLD, 0xc, 0xe, 0xf, 0xe), - }, -+#endif -+#ifdef CONFIG_ARM64_ERRATUM_2441009 -+ { -+ /* Cortex-A510 r0p0 -> r1p1. Fixed in r1p2 */ -+ ERRATA_MIDR_RANGE(MIDR_CORTEX_A510, 0, 0, 1, 1), -+ }, - #endif - {}, - }; -@@ -490,7 +496,7 @@ const struct arm64_cpu_capabilities arm64_errata[] = { - #endif - #ifdef CONFIG_ARM64_WORKAROUND_REPEAT_TLBI - { -- .desc = "Qualcomm erratum 1009, or ARM erratum 1286807", -+ .desc = "Qualcomm erratum 1009, or ARM erratum 1286807, 2441009", - .capability = ARM64_WORKAROUND_REPEAT_TLBI, - .type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM, - .matches = cpucap_multi_entry_cap_matches, --- -2.37.3 - diff --git a/0007-Bluetooth-L2CAP-Fix-build-errors-in-some-archs.patch b/0007-Bluetooth-L2CAP-Fix-build-errors-in-some-archs.patch deleted file mode 100644 index b399cefe0e85..000000000000 --- a/0007-Bluetooth-L2CAP-Fix-build-errors-in-some-archs.patch +++ /dev/null @@ -1,66 +0,0 @@ -From e8fcbce5424966ddbe9e426c163b2e63ff91b789 Mon Sep 17 00:00:00 2001 -From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> -Date: Fri, 12 Aug 2022 15:33:57 -0700 -Subject: [PATCH 07/73] Bluetooth: L2CAP: Fix build errors in some archs - -commit b840304fb46cdf7012722f456bce06f151b3e81b upstream. - -This attempts to fix the follow errors: - -In function 'memcmp', - inlined from 'bacmp' at ./include/net/bluetooth/bluetooth.h:347:9, - inlined from 'l2cap_global_chan_by_psm' at - net/bluetooth/l2cap_core.c:2003:15: -./include/linux/fortify-string.h:44:33: error: '__builtin_memcmp' -specified bound 6 exceeds source size 0 [-Werror=stringop-overread] - 44 | #define __underlying_memcmp __builtin_memcmp - | ^ -./include/linux/fortify-string.h:420:16: note: in expansion of macro -'__underlying_memcmp' - 420 | return __underlying_memcmp(p, q, size); - | ^~~~~~~~~~~~~~~~~~~ -In function 'memcmp', - inlined from 'bacmp' at ./include/net/bluetooth/bluetooth.h:347:9, - inlined from 'l2cap_global_chan_by_psm' at - net/bluetooth/l2cap_core.c:2004:15: -./include/linux/fortify-string.h:44:33: error: '__builtin_memcmp' -specified bound 6 exceeds source size 0 [-Werror=stringop-overread] - 44 | #define __underlying_memcmp __builtin_memcmp - | ^ -./include/linux/fortify-string.h:420:16: note: in expansion of macro -'__underlying_memcmp' - 420 | return __underlying_memcmp(p, q, size); - | ^~~~~~~~~~~~~~~~~~~ - -Fixes: 332f1795ca20 ("Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression") -Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> -Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - net/bluetooth/l2cap_core.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c -index f18d0c72713f..48fbd0ae882b 100644 ---- a/net/bluetooth/l2cap_core.c -+++ b/net/bluetooth/l2cap_core.c -@@ -1991,11 +1991,11 @@ static struct l2cap_chan *l2cap_global_chan_by_psm(int state, __le16 psm, - src_match = !bacmp(&c->src, src); - dst_match = !bacmp(&c->dst, dst); - if (src_match && dst_match) { -- c = l2cap_chan_hold_unless_zero(c); -- if (c) { -- read_unlock(&chan_list_lock); -- return c; -- } -+ if (!l2cap_chan_hold_unless_zero(c)) -+ continue; -+ -+ read_unlock(&chan_list_lock); -+ return c; - } - - /* Closest match */ --- -2.37.3 - diff --git a/0008-Revert-PCI-portdrv-Don-t-disable-AER-reporting-in-ge.patch b/0008-Revert-PCI-portdrv-Don-t-disable-AER-reporting-in-ge.patch deleted file mode 100644 index 6d735d532707..000000000000 --- a/0008-Revert-PCI-portdrv-Don-t-disable-AER-reporting-in-ge.patch +++ /dev/null @@ -1,55 +0,0 @@ -From adb9caabcd16a4a7535f3fcce79d98eab185d434 Mon Sep 17 00:00:00 2001 -From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Date: Thu, 1 Sep 2022 13:01:03 +0200 -Subject: [PATCH 08/73] Revert "PCI/portdrv: Don't disable AER reporting in - get_port_device_capability()" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This reverts commit 65e393fddc5379b2c41ca7e73cd4bb9572c4d90e which is -commit 8795e182b02dc87e343c79e73af6b8b7f9c5e635 upstream. - -It is reported to cause problems, so drop it from the stable trees for -now until it gets sorted out. - -Link: https://lore.kernel.org/r/47b775c5-57fa-5edf-b59e-8a9041ffbee7@candelatech.com -Reported-by: Ben Greear <greearb@candelatech.com> -Cc: Stefan Roese <sr@denx.de> -Cc: Bjorn Helgaas <bhelgaas@google.com> -Cc: Pali Rohár <pali@kernel.org> -Cc: Rafael J. Wysocki <rjw@rjwysocki.net> -Cc: Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com> -Cc: Michal Simek <michal.simek@xilinx.com> -Cc: Yao Hongbo <yaohongbo@linux.alibaba.com> -Cc: Naveen Naidu <naveennaidu479@gmail.com> -Cc: Sasha Levin <sashal@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/pci/pcie/portdrv_core.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c -index 1ac7fec47d6f..604feeb84ee4 100644 ---- a/drivers/pci/pcie/portdrv_core.c -+++ b/drivers/pci/pcie/portdrv_core.c -@@ -222,8 +222,15 @@ static int get_port_device_capability(struct pci_dev *dev) - - #ifdef CONFIG_PCIEAER - if (dev->aer_cap && pci_aer_available() && -- (pcie_ports_native || host->native_aer)) -+ (pcie_ports_native || host->native_aer)) { - services |= PCIE_PORT_SERVICE_AER; -+ -+ /* -+ * Disable AER on this port in case it's been enabled by the -+ * BIOS (the AER service driver will enable it when necessary). -+ */ -+ pci_disable_pcie_error_reporting(dev); -+ } - #endif - - /* Root Ports and Root Complex Event Collectors may generate PMEs */ --- -2.37.3 - diff --git a/0008-ZEN-Disable-stack-conservation-for-GCC.patch b/0008-ZEN-Disable-stack-conservation-for-GCC.patch deleted file mode 100644 index c9365acc6954..000000000000 --- a/0008-ZEN-Disable-stack-conservation-for-GCC.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sultan Alsawaf <sultan@kerneltoast.com> -Date: Sun, 8 Mar 2020 00:31:35 -0800 -Subject: [PATCH] ZEN: Disable stack conservation for GCC - -There's plenty of room on the stack for a few more inlined bytes here -and there. The measured stack usage at runtime is still safe without -this, and performance is surely improved at a microscopic level, so -remove it. - -Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> ---- - Makefile | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/Makefile b/Makefile -index 158e3bda7d35644e1fe978d66e72382c665d1079..09576ba3a533234686e803a0c1665b82ad4b745a 100644 ---- a/Makefile -+++ b/Makefile -@@ -992,11 +992,6 @@ KBUILD_CFLAGS += -fno-strict-overflow - # Make sure -fstack-check isn't enabled (like gentoo apparently did) - KBUILD_CFLAGS += -fno-stack-check - --# conserve stack if available --ifdef CONFIG_CC_IS_GCC --KBUILD_CFLAGS += -fconserve-stack --endif -- - # Prohibit date/time macros, which would make the build non-deterministic - KBUILD_CFLAGS += -Werror=date-time - diff --git a/0009-HID-steam-Prevent-NULL-pointer-dereference-in-steam_.patch b/0009-HID-steam-Prevent-NULL-pointer-dereference-in-steam_.patch deleted file mode 100644 index c6fe61c40ebb..000000000000 --- a/0009-HID-steam-Prevent-NULL-pointer-dereference-in-steam_.patch +++ /dev/null @@ -1,55 +0,0 @@ -From dee1e51b54794e90763e70a3c78f27ba4fa930ec Mon Sep 17 00:00:00 2001 -From: Lee Jones <lee.jones@linaro.org> -Date: Fri, 8 Jul 2022 08:40:09 +0100 -Subject: [PATCH 09/73] HID: steam: Prevent NULL pointer dereference in - steam_{recv,send}_report - -commit cd11d1a6114bd4bc6450ae59f6e110ec47362126 upstream. - -It is possible for a malicious device to forgo submitting a Feature -Report. The HID Steam driver presently makes no prevision for this -and de-references the 'struct hid_report' pointer obtained from the -HID devices without first checking its validity. Let's change that. - -Cc: Jiri Kosina <jikos@kernel.org> -Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com> -Cc: linux-input@vger.kernel.org -Fixes: c164d6abf3841 ("HID: add driver for Valve Steam Controller") -Signed-off-by: Lee Jones <lee.jones@linaro.org> -Signed-off-by: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hid/hid-steam.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/drivers/hid/hid-steam.c b/drivers/hid/hid-steam.c -index a3b151b29bd7..fc616db4231b 100644 ---- a/drivers/hid/hid-steam.c -+++ b/drivers/hid/hid-steam.c -@@ -134,6 +134,11 @@ static int steam_recv_report(struct steam_device *steam, - int ret; - - r = steam->hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[0]; -+ if (!r) { -+ hid_err(steam->hdev, "No HID_FEATURE_REPORT submitted - nothing to read\n"); -+ return -EINVAL; -+ } -+ - if (hid_report_len(r) < 64) - return -EINVAL; - -@@ -165,6 +170,11 @@ static int steam_send_report(struct steam_device *steam, - int ret; - - r = steam->hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[0]; -+ if (!r) { -+ hid_err(steam->hdev, "No HID_FEATURE_REPORT submitted - nothing to read\n"); -+ return -EINVAL; -+ } -+ - if (hid_report_len(r) < 64) - return -EINVAL; - --- -2.37.3 - diff --git a/0009-ZEN-Initialize-ata-before-graphics.patch b/0009-ZEN-Initialize-ata-before-graphics.patch deleted file mode 100644 index 7bb50cfc667d..000000000000 --- a/0009-ZEN-Initialize-ata-before-graphics.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Arjan van de Ven <arjan@linux.intel.com> -Date: Thu, 2 Jun 2016 23:36:32 -0500 -Subject: [PATCH] ZEN: Initialize ata before graphics - -ATA init is the long pole in the boot process, and its asynchronous. -move the graphics init after it so that ata and graphics initialize -in parallel ---- - drivers/Makefile | 15 ++++++++------- - 1 file changed, 8 insertions(+), 7 deletions(-) - -diff --git a/drivers/Makefile b/drivers/Makefile -index 9a30842b22c5411bf00245761f472da9c13370b7..32afd317d95ecab6f1fe9a42d3977b6c0a917023 100644 ---- a/drivers/Makefile -+++ b/drivers/Makefile -@@ -59,15 +59,8 @@ obj-y += char/ - # iommu/ comes before gpu as gpu are using iommu controllers - obj-y += iommu/ - --# gpu/ comes after char for AGP vs DRM startup and after iommu --obj-y += gpu/ -- - obj-$(CONFIG_CONNECTOR) += connector/ - --# i810fb and intelfb depend on char/agp/ --obj-$(CONFIG_FB_I810) += video/fbdev/i810/ --obj-$(CONFIG_FB_INTEL) += video/fbdev/intelfb/ -- - obj-$(CONFIG_PARPORT) += parport/ - obj-y += base/ block/ misc/ mfd/ nfc/ - obj-$(CONFIG_LIBNVDIMM) += nvdimm/ -@@ -79,6 +72,14 @@ obj-y += macintosh/ - obj-y += scsi/ - obj-y += nvme/ - obj-$(CONFIG_ATA) += ata/ -+ -+# gpu/ comes after char for AGP vs DRM startup and after iommu -+obj-y += gpu/ -+ -+# i810fb and intelfb depend on char/agp/ -+obj-$(CONFIG_FB_I810) += video/fbdev/i810/ -+obj-$(CONFIG_FB_INTEL) += video/fbdev/intelfb/ -+ - obj-$(CONFIG_TARGET_CORE) += target/ - obj-$(CONFIG_MTD) += mtd/ - obj-$(CONFIG_SPI) += spi/ diff --git a/0010-ZEN-Input-evdev-use-call_rcu-when-detaching-client.patch b/0010-ZEN-Input-evdev-use-call_rcu-when-detaching-client.patch deleted file mode 100644 index 28a066ead711..000000000000 --- a/0010-ZEN-Input-evdev-use-call_rcu-when-detaching-client.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Kenny Levinsen <kl@kl.wtf> -Date: Sun, 27 Dec 2020 14:43:13 +0000 -Subject: [PATCH] ZEN: Input: evdev - use call_rcu when detaching client - -Significant time was spent on synchronize_rcu in evdev_detach_client -when applications closed evdev devices. Switching VT away from a -graphical environment commonly leads to mass input device closures, -which could lead to noticable delays on systems with many input devices. - -Replace synchronize_rcu with call_rcu, deferring reclaim of the evdev -client struct till after the RCU grace period instead of blocking the -calling application. - -While this does not solve all slow evdev fd closures, it takes care of a -good portion of them, including this simple test: - - #include <fcntl.h> - #include <unistd.h> - - int main(int argc, char *argv[]) - { - int idx, fd; - const char *path = "/dev/input/event0"; - for (idx = 0; idx < 1000; idx++) { - if ((fd = open(path, O_RDWR)) == -1) { - return -1; - } - close(fd); - } - return 0; - } - -Time to completion of above test when run locally: - - Before: 0m27.111s - After: 0m0.018s - -Signed-off-by: Kenny Levinsen <kl@kl.wtf> ---- - drivers/input/evdev.c | 19 +++++++++++-------- - 1 file changed, 11 insertions(+), 8 deletions(-) - -diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c -index 95f90699d2b17b4e42e067bf44b6deac611fdb8b..2b10fe29d2c8d9028a2f8d6c2c8987f01802f471 100644 ---- a/drivers/input/evdev.c -+++ b/drivers/input/evdev.c -@@ -46,6 +46,7 @@ struct evdev_client { - struct fasync_struct *fasync; - struct evdev *evdev; - struct list_head node; -+ struct rcu_head rcu; - enum input_clock_type clk_type; - bool revoked; - unsigned long *evmasks[EV_CNT]; -@@ -377,13 +378,22 @@ static void evdev_attach_client(struct evdev *evdev, - spin_unlock(&evdev->client_lock); - } - -+static void evdev_reclaim_client(struct rcu_head *rp) -+{ -+ struct evdev_client *client = container_of(rp, struct evdev_client, rcu); -+ unsigned int i; -+ for (i = 0; i < EV_CNT; ++i) -+ bitmap_free(client->evmasks[i]); -+ kvfree(client); -+} -+ - static void evdev_detach_client(struct evdev *evdev, - struct evdev_client *client) - { - spin_lock(&evdev->client_lock); - list_del_rcu(&client->node); - spin_unlock(&evdev->client_lock); -- synchronize_rcu(); -+ call_rcu(&client->rcu, evdev_reclaim_client); - } - - static int evdev_open_device(struct evdev *evdev) -@@ -436,7 +446,6 @@ static int evdev_release(struct inode *inode, struct file *file) - { - struct evdev_client *client = file->private_data; - struct evdev *evdev = client->evdev; -- unsigned int i; - - mutex_lock(&evdev->mutex); - -@@ -448,11 +457,6 @@ static int evdev_release(struct inode *inode, struct file *file) - - evdev_detach_client(evdev, client); - -- for (i = 0; i < EV_CNT; ++i) -- bitmap_free(client->evmasks[i]); -- -- kvfree(client); -- - evdev_close_device(evdev); - - return 0; -@@ -495,7 +499,6 @@ static int evdev_open(struct inode *inode, struct file *file) - - err_free_client: - evdev_detach_client(evdev, client); -- kvfree(client); - return error; - } - diff --git a/0010-udmabuf-Set-the-DMA-mask-for-the-udmabuf-device-v2.patch b/0010-udmabuf-Set-the-DMA-mask-for-the-udmabuf-device-v2.patch deleted file mode 100644 index 2e31ced32f92..000000000000 --- a/0010-udmabuf-Set-the-DMA-mask-for-the-udmabuf-device-v2.patch +++ /dev/null @@ -1,104 +0,0 @@ -From f2f6ea1a8da1317430a84701fc0170449ee88315 Mon Sep 17 00:00:00 2001 -From: Vivek Kasireddy <vivek.kasireddy@intel.com> -Date: Fri, 20 May 2022 13:52:35 -0700 -Subject: [PATCH 10/73] udmabuf: Set the DMA mask for the udmabuf device (v2) - -commit 9e9fa6a9198b767b00f48160800128e83a038f9f upstream. - -If the DMA mask is not set explicitly, the following warning occurs -when the userspace tries to access the dma-buf via the CPU as -reported by syzbot here: - -WARNING: CPU: 1 PID: 3595 at kernel/dma/mapping.c:188 -__dma_map_sg_attrs+0x181/0x1f0 kernel/dma/mapping.c:188 -Modules linked in: -CPU: 0 PID: 3595 Comm: syz-executor249 Not tainted -5.17.0-rc2-syzkaller-00316-g0457e5153e0e #0 -Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS -Google 01/01/2011 -RIP: 0010:__dma_map_sg_attrs+0x181/0x1f0 kernel/dma/mapping.c:188 -Code: 00 00 00 00 00 fc ff df 48 c1 e8 03 80 3c 10 00 75 71 4c 8b 3d c0 -83 b5 0d e9 db fe ff ff e8 b6 0f 13 00 0f 0b e8 af 0f 13 00 <0f> 0b 45 - 31 e4 e9 54 ff ff ff e8 a0 0f 13 00 49 8d 7f 50 48 b8 00 -RSP: 0018:ffffc90002a07d68 EFLAGS: 00010293 -RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000 -RDX: ffff88807e25e2c0 RSI: ffffffff81649e91 RDI: ffff88801b848408 -RBP: ffff88801b848000 R08: 0000000000000002 R09: ffff88801d86c74f -R10: ffffffff81649d72 R11: 0000000000000001 R12: 0000000000000002 -R13: ffff88801d86c680 R14: 0000000000000001 R15: 0000000000000000 -FS: 0000555556e30300(0000) GS:ffff8880b9d00000(0000) -knlGS:0000000000000000 -CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 -CR2: 00000000200000cc CR3: 000000001d74a000 CR4: 00000000003506e0 -DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 -DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 -Call Trace: - <TASK> - dma_map_sgtable+0x70/0xf0 kernel/dma/mapping.c:264 - get_sg_table.isra.0+0xe0/0x160 drivers/dma-buf/udmabuf.c:72 - begin_cpu_udmabuf+0x130/0x1d0 drivers/dma-buf/udmabuf.c:126 - dma_buf_begin_cpu_access+0xfd/0x1d0 drivers/dma-buf/dma-buf.c:1164 - dma_buf_ioctl+0x259/0x2b0 drivers/dma-buf/dma-buf.c:363 - vfs_ioctl fs/ioctl.c:51 [inline] - __do_sys_ioctl fs/ioctl.c:874 [inline] - __se_sys_ioctl fs/ioctl.c:860 [inline] - __x64_sys_ioctl+0x193/0x200 fs/ioctl.c:860 - do_syscall_x64 arch/x86/entry/common.c:50 [inline] - do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 - entry_SYSCALL_64_after_hwframe+0x44/0xae -RIP: 0033:0x7f62fcf530f9 -Code: 28 c3 e8 2a 14 00 00 66 2e 0f 1f 84 00 00 00 00 00 48 89 f8 48 89 -f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 -f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48 -RSP: 002b:00007ffe3edab9b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 -RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f62fcf530f9 -RDX: 0000000020000200 RSI: 0000000040086200 RDI: 0000000000000006 -RBP: 00007f62fcf170e0 R08: 0000000000000000 R09: 0000000000000000 -R10: 0000000000000000 R11: 0000000000000246 R12: 00007f62fcf17170 -R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 - </TASK> - -v2: Dont't forget to deregister if DMA mask setup fails. - -Reported-by: syzbot+10e27961f4da37c443b2@syzkaller.appspotmail.com -Cc: Gerd Hoffmann <kraxel@redhat.com> -Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com> -Link: http://patchwork.freedesktop.org/patch/msgid/20220520205235.3687336-1-vivek.kasireddy@intel.com -Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/dma-buf/udmabuf.c | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - -diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c -index 9631f2fd2faf..38e8767ec371 100644 ---- a/drivers/dma-buf/udmabuf.c -+++ b/drivers/dma-buf/udmabuf.c -@@ -368,7 +368,23 @@ static struct miscdevice udmabuf_misc = { - - static int __init udmabuf_dev_init(void) - { -- return misc_register(&udmabuf_misc); -+ int ret; -+ -+ ret = misc_register(&udmabuf_misc); -+ if (ret < 0) { -+ pr_err("Could not initialize udmabuf device\n"); -+ return ret; -+ } -+ -+ ret = dma_coerce_mask_and_coherent(udmabuf_misc.this_device, -+ DMA_BIT_MASK(64)); -+ if (ret < 0) { -+ pr_err("Could not setup DMA mask for udmabuf device\n"); -+ misc_deregister(&udmabuf_misc); -+ return ret; -+ } -+ -+ return 0; - } - - static void __exit udmabuf_dev_exit(void) --- -2.37.3 - diff --git a/0011-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/0011-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch deleted file mode 100644 index 0eabb77caa36..000000000000 --- a/0011-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch +++ /dev/null @@ -1,151 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> -Date: Mon, 16 Sep 2019 04:53:20 +0200 -Subject: [PATCH] ZEN: Add sysctl and CONFIG to disallow unprivileged - CLONE_NEWUSER - -Our default behavior continues to match the vanilla kernel. ---- - include/linux/user_namespace.h | 4 ++++ - init/Kconfig | 16 ++++++++++++++++ - kernel/fork.c | 14 ++++++++++++++ - kernel/sysctl.c | 12 ++++++++++++ - kernel/user_namespace.c | 7 +++++++ - 5 files changed, 53 insertions(+) - -diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h -index 33a4240e6a6f1789f8a3153a264030e62f4645d7..82213f9c4c17fb48d35daa421915403cc4195238 100644 ---- a/include/linux/user_namespace.h -+++ b/include/linux/user_namespace.h -@@ -139,6 +139,8 @@ static inline void set_rlimit_ucount_max(struct user_namespace *ns, - - #ifdef CONFIG_USER_NS - -+extern int unprivileged_userns_clone; -+ - static inline struct user_namespace *get_user_ns(struct user_namespace *ns) - { - if (ns) -@@ -172,6 +174,8 @@ extern bool current_in_userns(const struct user_namespace *target_ns); - struct ns_common *ns_get_owner(struct ns_common *ns); - #else - -+#define unprivileged_userns_clone 0 -+ - static inline struct user_namespace *get_user_ns(struct user_namespace *ns) - { - return &init_user_ns; -diff --git a/init/Kconfig b/init/Kconfig -index 97c2df3ac17a90339da76a7e411598ee02c5803e..5b5f9ea153d3ea7d54601950d6332ee1cec21df2 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -1235,6 +1235,22 @@ config USER_NS - - If unsure, say N. - -+config USER_NS_UNPRIVILEGED -+ bool "Allow unprivileged users to create namespaces" -+ default y -+ depends on USER_NS -+ help -+ When disabled, unprivileged users will not be able to create -+ new namespaces. Allowing users to create their own namespaces -+ has been part of several recent local privilege escalation -+ exploits, so if you need user namespaces but are -+ paranoid^Wsecurity-conscious you want to disable this. -+ -+ This setting can be overridden at runtime via the -+ kernel.unprivileged_userns_clone sysctl. -+ -+ If unsure, say Y. -+ - config PID_NS - bool "PID Namespaces" - default y -diff --git a/kernel/fork.c b/kernel/fork.c -index 9d44f2d46c6964d5cf7e29e06ad377b03fe25dc2..e5ba00a7e3b27c698cc9a426f82a7529bbcc2776 100644 ---- a/kernel/fork.c -+++ b/kernel/fork.c -@@ -99,6 +99,10 @@ - #include <linux/bpf.h> - #include <linux/sched/mm.h> - -+#ifdef CONFIG_USER_NS -+#include <linux/user_namespace.h> -+#endif -+ - #include <asm/pgalloc.h> - #include <linux/uaccess.h> - #include <asm/mmu_context.h> -@@ -1995,6 +1999,10 @@ static __latent_entropy struct task_struct *copy_process( - if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) - return ERR_PTR(-EINVAL); - -+ if ((clone_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) -+ if (!capable(CAP_SYS_ADMIN)) -+ return ERR_PTR(-EPERM); -+ - /* - * Thread groups must share signals as well, and detached threads - * can only be started up within the thread group. -@@ -3143,6 +3151,12 @@ int ksys_unshare(unsigned long unshare_flags) - if (unshare_flags & CLONE_NEWNS) - unshare_flags |= CLONE_FS; - -+ if ((unshare_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) { -+ err = -EPERM; -+ if (!capable(CAP_SYS_ADMIN)) -+ goto bad_unshare_out; -+ } -+ - err = check_unshare_flags(unshare_flags); - if (err) - goto bad_unshare_out; -diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index 35d0342195132e3873c32b3063b72f921daa377e..8e2c7326f0e813e91a859c5b80dbb1edd197ce08 100644 ---- a/kernel/sysctl.c -+++ b/kernel/sysctl.c -@@ -81,6 +81,9 @@ - #ifdef CONFIG_RT_MUTEXES - #include <linux/rtmutex.h> - #endif -+#ifdef CONFIG_USER_NS -+#include <linux/user_namespace.h> -+#endif - - #if defined(CONFIG_SYSCTL) - -@@ -1608,6 +1611,15 @@ static struct ctl_table kern_table[] = { - .mode = 0644, - .proc_handler = proc_dointvec, - }, -+#ifdef CONFIG_USER_NS -+ { -+ .procname = "unprivileged_userns_clone", -+ .data = &unprivileged_userns_clone, -+ .maxlen = sizeof(int), -+ .mode = 0644, -+ .proc_handler = proc_dointvec, -+ }, -+#endif - #ifdef CONFIG_PROC_SYSCTL - { - .procname = "tainted", -diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c -index 5481ba44a8d68463aa01f529a4886a8905190550..423ab2563ad7579338ddbd1112df727409eed857 100644 ---- a/kernel/user_namespace.c -+++ b/kernel/user_namespace.c -@@ -21,6 +21,13 @@ - #include <linux/bsearch.h> - #include <linux/sort.h> - -+/* sysctl */ -+#ifdef CONFIG_USER_NS_UNPRIVILEGED -+int unprivileged_userns_clone = 1; -+#else -+int unprivileged_userns_clone; -+#endif -+ - static struct kmem_cache *user_ns_cachep __read_mostly; - static DEFINE_MUTEX(userns_state_mutex); - diff --git a/0011-media-pvrusb2-fix-memory-leak-in-pvr_probe.patch b/0011-media-pvrusb2-fix-memory-leak-in-pvr_probe.patch deleted file mode 100644 index c53a8dd18ab8..000000000000 --- a/0011-media-pvrusb2-fix-memory-leak-in-pvr_probe.patch +++ /dev/null @@ -1,39 +0,0 @@ -From c02d2a91a85c4c4d05826cd1ea74a9b8d42e4280 Mon Sep 17 00:00:00 2001 -From: Dongliang Mu <mudongliangabcd@gmail.com> -Date: Thu, 9 Jun 2022 08:35:28 +0100 -Subject: [PATCH 11/73] media: pvrusb2: fix memory leak in pvr_probe - -commit 945a9a8e448b65bec055d37eba58f711b39f66f0 upstream. - -The error handling code in pvr2_hdw_create forgets to unregister the -v4l2 device. When pvr2_hdw_create returns back to pvr2_context_create, -it calls pvr2_context_destroy to destroy context, but mp->hdw is NULL, -which leads to that pvr2_hdw_destroy directly returns. - -Fix this by adding v4l2_device_unregister to decrease the refcount of -usb interface. - -Reported-by: syzbot+77b432d57c4791183ed4@syzkaller.appspotmail.com -Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com> -Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> -Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c -index a9666373af6b..92d6db1ad00f 100644 ---- a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c -+++ b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c -@@ -2610,6 +2610,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf, - del_timer_sync(&hdw->encoder_run_timer); - del_timer_sync(&hdw->encoder_wait_timer); - flush_work(&hdw->workpoll); -+ v4l2_device_unregister(&hdw->v4l2_dev); - usb_free_urb(hdw->ctl_read_urb); - usb_free_urb(hdw->ctl_write_urb); - kfree(hdw->ctl_read_buffer); --- -2.37.3 - diff --git a/0012-USB-gadget-Fix-use-after-free-Read-in-usb_udc_uevent.patch b/0012-USB-gadget-Fix-use-after-free-Read-in-usb_udc_uevent.patch deleted file mode 100644 index 0f4d4bc28c6d..000000000000 --- a/0012-USB-gadget-Fix-use-after-free-Read-in-usb_udc_uevent.patch +++ /dev/null @@ -1,76 +0,0 @@ -From f44b0b95d50fffeca036e1ba36770390e0b519dd Mon Sep 17 00:00:00 2001 -From: Alan Stern <stern@rowland.harvard.edu> -Date: Thu, 21 Jul 2022 11:07:10 -0400 -Subject: [PATCH 12/73] USB: gadget: Fix use-after-free Read in - usb_udc_uevent() - -commit 2191c00855b03aa59c20e698be713d952d51fc18 upstream. - -The syzbot fuzzer found a race between uevent callbacks and gadget -driver unregistration that can cause a use-after-free bug: - ---------------------------------------------------------------- -BUG: KASAN: use-after-free in usb_udc_uevent+0x11f/0x130 -drivers/usb/gadget/udc/core.c:1732 -Read of size 8 at addr ffff888078ce2050 by task udevd/2968 - -CPU: 1 PID: 2968 Comm: udevd Not tainted 5.19.0-rc4-next-20220628-syzkaller #0 -Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google -06/29/2022 -Call Trace: - <TASK> - __dump_stack lib/dump_stack.c:88 [inline] - dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 - print_address_description mm/kasan/report.c:317 [inline] - print_report.cold+0x2ba/0x719 mm/kasan/report.c:433 - kasan_report+0xbe/0x1f0 mm/kasan/report.c:495 - usb_udc_uevent+0x11f/0x130 drivers/usb/gadget/udc/core.c:1732 - dev_uevent+0x290/0x770 drivers/base/core.c:2424 ---------------------------------------------------------------- - -The bug occurs because usb_udc_uevent() dereferences udc->driver but -does so without acquiring the udc_lock mutex, which protects this -field. If the gadget driver is unbound from the udc concurrently with -uevent processing, the driver structure may be accessed after it has -been deallocated. - -To prevent the race, we make sure that the routine holds the mutex -around the racing accesses. - -Link: <https://lore.kernel.org/all/0000000000004de90405a719c951@google.com> -CC: stable@vger.kernel.org # fc274c1e9973 -Reported-and-tested-by: syzbot+b0de012ceb1e2a97891b@syzkaller.appspotmail.com -Signed-off-by: Alan Stern <stern@rowland.harvard.edu> -Link: https://lore.kernel.org/r/YtlrnhHyrHsSky9m@rowland.harvard.edu -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/usb/gadget/udc/core.c | 11 ++++++----- - 1 file changed, 6 insertions(+), 5 deletions(-) - -diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c -index 7886497253cc..cafcf260394c 100644 ---- a/drivers/usb/gadget/udc/core.c -+++ b/drivers/usb/gadget/udc/core.c -@@ -1728,13 +1728,14 @@ static int usb_udc_uevent(struct device *dev, struct kobj_uevent_env *env) - return ret; - } - -- if (udc->driver) { -+ mutex_lock(&udc_lock); -+ if (udc->driver) - ret = add_uevent_var(env, "USB_UDC_DRIVER=%s", - udc->driver->function); -- if (ret) { -- dev_err(dev, "failed to add uevent USB_UDC_DRIVER\n"); -- return ret; -- } -+ mutex_unlock(&udc_lock); -+ if (ret) { -+ dev_err(dev, "failed to add uevent USB_UDC_DRIVER\n"); -+ return ret; - } - - return 0; --- -2.37.3 - diff --git a/0012-ZEN-cpufreq-Remove-schedutil-dependency-on-Intel-AMD.patch b/0012-ZEN-cpufreq-Remove-schedutil-dependency-on-Intel-AMD.patch deleted file mode 100644 index 55a60072ec3c..000000000000 --- a/0012-ZEN-cpufreq-Remove-schedutil-dependency-on-Intel-AMD.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Steven Barrett <steven@liquorix.net> -Date: Mon, 11 Jul 2022 19:10:30 -0500 -Subject: [PATCH] ZEN: cpufreq: Remove schedutil dependency on Intel/AMD - P-State drivers - -Although both P-State drivers depend on schedutil in Kconfig, both code -bases do not use any schedutil code. This arbitrarily enables schedutil -when unwanted in some configurations. ---- - drivers/cpufreq/Kconfig.x86 | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/drivers/cpufreq/Kconfig.x86 b/drivers/cpufreq/Kconfig.x86 -index 55516043b656bd0d43cd506e7a09424c78de00dd..c7b80779566b9c68b1fee74dc553fe210efc3980 100644 ---- a/drivers/cpufreq/Kconfig.x86 -+++ b/drivers/cpufreq/Kconfig.x86 -@@ -9,7 +9,6 @@ config X86_INTEL_PSTATE - select ACPI_PROCESSOR if ACPI - select ACPI_CPPC_LIB if X86_64 && ACPI && SCHED_MC_PRIO - select CPU_FREQ_GOV_PERFORMANCE -- select CPU_FREQ_GOV_SCHEDUTIL if SMP - help - This driver provides a P state for Intel core processors. - The driver implements an internal governor and will become -@@ -39,7 +38,6 @@ config X86_AMD_PSTATE - depends on X86 && ACPI - select ACPI_PROCESSOR - select ACPI_CPPC_LIB if X86_64 -- select CPU_FREQ_GOV_SCHEDUTIL if SMP - help - This driver adds a CPUFreq driver which utilizes a fine grain - processor performance frequency control range instead of legacy diff --git a/0013-HID-hidraw-fix-memory-leak-in-hidraw_release.patch b/0013-HID-hidraw-fix-memory-leak-in-hidraw_release.patch deleted file mode 100644 index c49afc1c8a48..000000000000 --- a/0013-HID-hidraw-fix-memory-leak-in-hidraw_release.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 52a3c62a815161c2dcf38ac421f6c41d8679462b Mon Sep 17 00:00:00 2001 -From: Karthik Alapati <mail@karthek.com> -Date: Thu, 28 Jul 2022 21:13:17 +0530 -Subject: [PATCH 13/73] HID: hidraw: fix memory leak in hidraw_release() - -commit a5623a203cffe2d2b84d2f6c989d9017db1856af upstream. - -Free the buffered reports before deleting the list entry. - -BUG: memory leak -unreferenced object 0xffff88810e72f180 (size 32): - comm "softirq", pid 0, jiffies 4294945143 (age 16.080s) - hex dump (first 32 bytes): - 64 f3 c6 6a d1 88 07 04 00 00 00 00 00 00 00 00 d..j............ - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ - backtrace: - [<ffffffff814ac6c3>] kmemdup+0x23/0x50 mm/util.c:128 - [<ffffffff8357c1d2>] kmemdup include/linux/fortify-string.h:440 [inline] - [<ffffffff8357c1d2>] hidraw_report_event+0xa2/0x150 drivers/hid/hidraw.c:521 - [<ffffffff8356ddad>] hid_report_raw_event+0x27d/0x740 drivers/hid/hid-core.c:1992 - [<ffffffff8356e41e>] hid_input_report+0x1ae/0x270 drivers/hid/hid-core.c:2065 - [<ffffffff835f0d3f>] hid_irq_in+0x1ff/0x250 drivers/hid/usbhid/hid-core.c:284 - [<ffffffff82d3c7f9>] __usb_hcd_giveback_urb+0xf9/0x230 drivers/usb/core/hcd.c:1670 - [<ffffffff82d3cc26>] usb_hcd_giveback_urb+0x1b6/0x1d0 drivers/usb/core/hcd.c:1747 - [<ffffffff82ef1e14>] dummy_timer+0x8e4/0x14c0 drivers/usb/gadget/udc/dummy_hcd.c:1988 - [<ffffffff812f50a8>] call_timer_fn+0x38/0x200 kernel/time/timer.c:1474 - [<ffffffff812f5586>] expire_timers kernel/time/timer.c:1519 [inline] - [<ffffffff812f5586>] __run_timers.part.0+0x316/0x430 kernel/time/timer.c:1790 - [<ffffffff812f56e4>] __run_timers kernel/time/timer.c:1768 [inline] - [<ffffffff812f56e4>] run_timer_softirq+0x44/0x90 kernel/time/timer.c:1803 - [<ffffffff848000e6>] __do_softirq+0xe6/0x2ea kernel/softirq.c:571 - [<ffffffff81246db0>] invoke_softirq kernel/softirq.c:445 [inline] - [<ffffffff81246db0>] __irq_exit_rcu kernel/softirq.c:650 [inline] - [<ffffffff81246db0>] irq_exit_rcu+0xc0/0x110 kernel/softirq.c:662 - [<ffffffff84574f02>] sysvec_apic_timer_interrupt+0xa2/0xd0 arch/x86/kernel/apic/apic.c:1106 - [<ffffffff84600c8b>] asm_sysvec_apic_timer_interrupt+0x1b/0x20 arch/x86/include/asm/idtentry.h:649 - [<ffffffff8458a070>] native_safe_halt arch/x86/include/asm/irqflags.h:51 [inline] - [<ffffffff8458a070>] arch_safe_halt arch/x86/include/asm/irqflags.h:89 [inline] - [<ffffffff8458a070>] acpi_safe_halt drivers/acpi/processor_idle.c:111 [inline] - [<ffffffff8458a070>] acpi_idle_do_entry+0xc0/0xd0 drivers/acpi/processor_idle.c:554 - -Link: https://syzkaller.appspot.com/bug?id=19a04b43c75ed1092021010419b5e560a8172c4f -Reported-by: syzbot+f59100a0428e6ded9443@syzkaller.appspotmail.com -Signed-off-by: Karthik Alapati <mail@karthek.com> -Signed-off-by: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hid/hidraw.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c -index 681614a8302a..197b1e7bf029 100644 ---- a/drivers/hid/hidraw.c -+++ b/drivers/hid/hidraw.c -@@ -350,6 +350,8 @@ static int hidraw_release(struct inode * inode, struct file * file) - down_write(&minors_rwsem); - - spin_lock_irqsave(&hidraw_table[minor]->list_lock, flags); -+ for (int i = list->tail; i < list->head; i++) -+ kfree(list->buffer[i].value); - list_del(&list->node); - spin_unlock_irqrestore(&hidraw_table[minor]->list_lock, flags); - kfree(list); --- -2.37.3 - diff --git a/0013-ZEN-intel-pstate-Implement-enable-parameter.patch b/0013-ZEN-intel-pstate-Implement-enable-parameter.patch deleted file mode 100644 index 63d187b7915e..000000000000 --- a/0013-ZEN-intel-pstate-Implement-enable-parameter.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Steven Barrett <steven@liquorix.net> -Date: Wed, 15 Jan 2020 20:43:56 -0600 -Subject: [PATCH] ZEN: intel-pstate: Implement "enable" parameter - -If intel-pstate is compiled into the kernel, it will preempt the loading -of acpi-cpufreq so you can take advantage of hardware p-states without -any friction. - -However, intel-pstate is not completely superior to cpufreq's ondemand -for one reason. There's no concept of an up_threshold property. - -In ondemand, up_threshold essentially reduces the maximum utilization to -compare against, allowing you to hit max frequencies and turbo boost -from a much lower core utilization. - -With intel-pstate, you have the concept of minimum and maximum -performance, but no tunable that lets you define, maximum frequency -means 50% core utilization. For just this oversight, there's reasons -you may want ondemand. - -Lets support setting "enable" in kernel boot parameters. This lets -kernel maintainers include "intel_pstate=disable" statically in the -static boot parameters, but let users of the kernel override this -selection. ---- - Documentation/admin-guide/kernel-parameters.txt | 3 +++ - drivers/cpufreq/intel_pstate.c | 2 ++ - 2 files changed, 5 insertions(+) - -diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index 0185df52bb49883434327779aa6fc37383f9e7e4..7dd12dc178f9db6b043f0e2ab3cfa344906a1ef6 100644 ---- a/Documentation/admin-guide/kernel-parameters.txt -+++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -2057,6 +2057,9 @@ - disable - Do not enable intel_pstate as the default - scaling driver for the supported processors -+ enable -+ Enable intel_pstate in-case "disable" was passed -+ previously in the kernel boot parameters - passive - Use intel_pstate as a scaling driver, but configure it - to work with generic cpufreq governors (instead of -diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c -index 57cdb36798854a941d1258b611c6e57bceddafcb..08091cfac5550a0e107a931e6ef6e625b2235cfb 100644 ---- a/drivers/cpufreq/intel_pstate.c -+++ b/drivers/cpufreq/intel_pstate.c -@@ -3540,6 +3540,8 @@ static int __init intel_pstate_setup(char *str) - - if (!strcmp(str, "disable")) - no_load = 1; -+ else if (!strcmp(str, "enable")) -+ no_load = 0; - else if (!strcmp(str, "active")) - default_driver = &intel_pstate; - else if (!strcmp(str, "passive")) diff --git a/0014-ZEN-mm-Disable-watermark-boosting-by-default.patch b/0014-ZEN-mm-Disable-watermark-boosting-by-default.patch deleted file mode 100644 index 82cc95865f15..000000000000 --- a/0014-ZEN-mm-Disable-watermark-boosting-by-default.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sultan Alsawaf <sultan@kerneltoast.com> -Date: Sat, 28 Mar 2020 13:06:28 -0700 -Subject: [PATCH] ZEN: mm: Disable watermark boosting by default - -What watermark boosting does is preemptively fire up kswapd to free -memory when there hasn't been an allocation failure. It does this by -increasing kswapd's high watermark goal and then firing up kswapd. The -reason why this causes freezes is because, with the increased high -watermark goal, kswapd will steal memory from processes that need it in -order to make forward progress. These processes will, in turn, try to -allocate memory again, which will cause kswapd to steal necessary pages -from those processes again, in a positive feedback loop known as page -thrashing. When page thrashing occurs, your system is essentially -livelocked until the necessary forward progress can be made to stop -processes from trying to continuously allocate memory and trigger -kswapd to steal it back. - -This problem already occurs with kswapd *without* watermark boosting, -but it's usually only encountered on machines with a small amount of -memory and/or a slow CPU. Watermark boosting just makes the existing -problem worse enough to notice on higher spec'd machines. - -Disable watermark boosting by default since it's a total dumpster fire. -I can't imagine why anyone would want to explicitly enable it, but the -option is there in case someone does. - -Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> ---- - mm/page_alloc.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index b5b14b78c4fd4844cb071022570fd4b7e6959eb2..d6fc4723c4e9137a3bf8193fcbad1bb23f041c43 100644 ---- a/mm/page_alloc.c -+++ b/mm/page_alloc.c -@@ -342,7 +342,7 @@ compound_page_dtor * const compound_page_dtors[NR_COMPOUND_DTORS] = { - - int min_free_kbytes = 1024; - int user_min_free_kbytes = -1; --int watermark_boost_factor __read_mostly = 15000; -+int watermark_boost_factor __read_mostly; - int watermark_scale_factor = 10; - - static unsigned long nr_kernel_pages __initdata; diff --git a/0014-net-fix-refcount-bug-in-sk_psock_get-2.patch b/0014-net-fix-refcount-bug-in-sk_psock_get-2.patch deleted file mode 100644 index 7617995a8867..000000000000 --- a/0014-net-fix-refcount-bug-in-sk_psock_get-2.patch +++ /dev/null @@ -1,199 +0,0 @@ -From 86026be8535c16fcc5e4f960286faf04d7f77815 Mon Sep 17 00:00:00 2001 -From: Hawkins Jiawei <yin31149@gmail.com> -Date: Fri, 5 Aug 2022 15:48:34 +0800 -Subject: [PATCH 14/73] net: fix refcount bug in sk_psock_get (2) - -commit 2a0133723f9ebeb751cfce19f74ec07e108bef1f upstream. - -Syzkaller reports refcount bug as follows: -------------[ cut here ]------------ -refcount_t: saturated; leaking memory. -WARNING: CPU: 1 PID: 3605 at lib/refcount.c:19 refcount_warn_saturate+0xf4/0x1e0 lib/refcount.c:19 -Modules linked in: -CPU: 1 PID: 3605 Comm: syz-executor208 Not tainted 5.18.0-syzkaller-03023-g7e062cda7d90 #0 - <TASK> - __refcount_add_not_zero include/linux/refcount.h:163 [inline] - __refcount_inc_not_zero include/linux/refcount.h:227 [inline] - refcount_inc_not_zero include/linux/refcount.h:245 [inline] - sk_psock_get+0x3bc/0x410 include/linux/skmsg.h:439 - tls_data_ready+0x6d/0x1b0 net/tls/tls_sw.c:2091 - tcp_data_ready+0x106/0x520 net/ipv4/tcp_input.c:4983 - tcp_data_queue+0x25f2/0x4c90 net/ipv4/tcp_input.c:5057 - tcp_rcv_state_process+0x1774/0x4e80 net/ipv4/tcp_input.c:6659 - tcp_v4_do_rcv+0x339/0x980 net/ipv4/tcp_ipv4.c:1682 - sk_backlog_rcv include/net/sock.h:1061 [inline] - __release_sock+0x134/0x3b0 net/core/sock.c:2849 - release_sock+0x54/0x1b0 net/core/sock.c:3404 - inet_shutdown+0x1e0/0x430 net/ipv4/af_inet.c:909 - __sys_shutdown_sock net/socket.c:2331 [inline] - __sys_shutdown_sock net/socket.c:2325 [inline] - __sys_shutdown+0xf1/0x1b0 net/socket.c:2343 - __do_sys_shutdown net/socket.c:2351 [inline] - __se_sys_shutdown net/socket.c:2349 [inline] - __x64_sys_shutdown+0x50/0x70 net/socket.c:2349 - do_syscall_x64 arch/x86/entry/common.c:50 [inline] - do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 - entry_SYSCALL_64_after_hwframe+0x46/0xb0 - </TASK> - -During SMC fallback process in connect syscall, kernel will -replaces TCP with SMC. In order to forward wakeup -smc socket waitqueue after fallback, kernel will sets -clcsk->sk_user_data to origin smc socket in -smc_fback_replace_callbacks(). - -Later, in shutdown syscall, kernel will calls -sk_psock_get(), which treats the clcsk->sk_user_data -as psock type, triggering the refcnt warning. - -So, the root cause is that smc and psock, both will use -sk_user_data field. So they will mismatch this field -easily. - -This patch solves it by using another bit(defined as -SK_USER_DATA_PSOCK) in PTRMASK, to mark whether -sk_user_data points to a psock object or not. -This patch depends on a PTRMASK introduced in commit f1ff5ce2cd5e -("net, sk_msg: Clear sk_user_data pointer on clone if tagged"). - -For there will possibly be more flags in the sk_user_data field, -this patch also refactor sk_user_data flags code to be more generic -to improve its maintainability. - -Reported-and-tested-by: syzbot+5f26f85569bd179c18ce@syzkaller.appspotmail.com -Suggested-by: Jakub Kicinski <kuba@kernel.org> -Acked-by: Wen Gu <guwen@linux.alibaba.com> -Signed-off-by: Hawkins Jiawei <yin31149@gmail.com> -Reviewed-by: Jakub Sitnicki <jakub@cloudflare.com> -Signed-off-by: Jakub Kicinski <kuba@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - include/linux/skmsg.h | 3 +- - include/net/sock.h | 68 ++++++++++++++++++++++++++++++------------- - net/core/skmsg.c | 4 ++- - 3 files changed, 53 insertions(+), 22 deletions(-) - -diff --git a/include/linux/skmsg.h b/include/linux/skmsg.h -index c5a2d6f50f25..c5bdc5975a5c 100644 ---- a/include/linux/skmsg.h -+++ b/include/linux/skmsg.h -@@ -277,7 +277,8 @@ static inline void sk_msg_sg_copy_clear(struct sk_msg *msg, u32 start) - - static inline struct sk_psock *sk_psock(const struct sock *sk) - { -- return rcu_dereference_sk_user_data(sk); -+ return __rcu_dereference_sk_user_data_with_flags(sk, -+ SK_USER_DATA_PSOCK); - } - - static inline void sk_psock_set_state(struct sk_psock *psock, -diff --git a/include/net/sock.h b/include/net/sock.h -index 13944ceea7ed..bf45b572f289 100644 ---- a/include/net/sock.h -+++ b/include/net/sock.h -@@ -545,14 +545,26 @@ enum sk_pacing { - SK_PACING_FQ = 2, - }; - --/* Pointer stored in sk_user_data might not be suitable for copying -- * when cloning the socket. For instance, it can point to a reference -- * counted object. sk_user_data bottom bit is set if pointer must not -- * be copied. -+/* flag bits in sk_user_data -+ * -+ * - SK_USER_DATA_NOCOPY: Pointer stored in sk_user_data might -+ * not be suitable for copying when cloning the socket. For instance, -+ * it can point to a reference counted object. sk_user_data bottom -+ * bit is set if pointer must not be copied. -+ * -+ * - SK_USER_DATA_BPF: Mark whether sk_user_data field is -+ * managed/owned by a BPF reuseport array. This bit should be set -+ * when sk_user_data's sk is added to the bpf's reuseport_array. -+ * -+ * - SK_USER_DATA_PSOCK: Mark whether pointer stored in -+ * sk_user_data points to psock type. This bit should be set -+ * when sk_user_data is assigned to a psock object. - */ - #define SK_USER_DATA_NOCOPY 1UL --#define SK_USER_DATA_BPF 2UL /* Managed by BPF */ --#define SK_USER_DATA_PTRMASK ~(SK_USER_DATA_NOCOPY | SK_USER_DATA_BPF) -+#define SK_USER_DATA_BPF 2UL -+#define SK_USER_DATA_PSOCK 4UL -+#define SK_USER_DATA_PTRMASK ~(SK_USER_DATA_NOCOPY | SK_USER_DATA_BPF |\ -+ SK_USER_DATA_PSOCK) - - /** - * sk_user_data_is_nocopy - Test if sk_user_data pointer must not be copied -@@ -565,24 +577,40 @@ static inline bool sk_user_data_is_nocopy(const struct sock *sk) - - #define __sk_user_data(sk) ((*((void __rcu **)&(sk)->sk_user_data))) - -+/** -+ * __rcu_dereference_sk_user_data_with_flags - return the pointer -+ * only if argument flags all has been set in sk_user_data. Otherwise -+ * return NULL -+ * -+ * @sk: socket -+ * @flags: flag bits -+ */ -+static inline void * -+__rcu_dereference_sk_user_data_with_flags(const struct sock *sk, -+ uintptr_t flags) -+{ -+ uintptr_t sk_user_data = (uintptr_t)rcu_dereference(__sk_user_data(sk)); -+ -+ WARN_ON_ONCE(flags & SK_USER_DATA_PTRMASK); -+ -+ if ((sk_user_data & flags) == flags) -+ return (void *)(sk_user_data & SK_USER_DATA_PTRMASK); -+ return NULL; -+} -+ - #define rcu_dereference_sk_user_data(sk) \ -+ __rcu_dereference_sk_user_data_with_flags(sk, 0) -+#define __rcu_assign_sk_user_data_with_flags(sk, ptr, flags) \ - ({ \ -- void *__tmp = rcu_dereference(__sk_user_data((sk))); \ -- (void *)((uintptr_t)__tmp & SK_USER_DATA_PTRMASK); \ --}) --#define rcu_assign_sk_user_data(sk, ptr) \ --({ \ -- uintptr_t __tmp = (uintptr_t)(ptr); \ -- WARN_ON_ONCE(__tmp & ~SK_USER_DATA_PTRMASK); \ -- rcu_assign_pointer(__sk_user_data((sk)), __tmp); \ --}) --#define rcu_assign_sk_user_data_nocopy(sk, ptr) \ --({ \ -- uintptr_t __tmp = (uintptr_t)(ptr); \ -- WARN_ON_ONCE(__tmp & ~SK_USER_DATA_PTRMASK); \ -+ uintptr_t __tmp1 = (uintptr_t)(ptr), \ -+ __tmp2 = (uintptr_t)(flags); \ -+ WARN_ON_ONCE(__tmp1 & ~SK_USER_DATA_PTRMASK); \ -+ WARN_ON_ONCE(__tmp2 & SK_USER_DATA_PTRMASK); \ - rcu_assign_pointer(__sk_user_data((sk)), \ -- __tmp | SK_USER_DATA_NOCOPY); \ -+ __tmp1 | __tmp2); \ - }) -+#define rcu_assign_sk_user_data(sk, ptr) \ -+ __rcu_assign_sk_user_data_with_flags(sk, ptr, 0) - - static inline - struct net *sock_net(const struct sock *sk) -diff --git a/net/core/skmsg.c b/net/core/skmsg.c -index a8dbea559c7f..84209e661171 100644 ---- a/net/core/skmsg.c -+++ b/net/core/skmsg.c -@@ -735,7 +735,9 @@ struct sk_psock *sk_psock_init(struct sock *sk, int node) - sk_psock_set_state(psock, SK_PSOCK_TX_ENABLED); - refcount_set(&psock->refcnt, 1); - -- rcu_assign_sk_user_data_nocopy(sk, psock); -+ __rcu_assign_sk_user_data_with_flags(sk, psock, -+ SK_USER_DATA_NOCOPY | -+ SK_USER_DATA_PSOCK); - sock_hold(sk); - - out: --- -2.37.3 - diff --git a/0015-ZEN-Tune-mgLRU-to-protect-cache-used-in-the-last-sec.patch b/0015-ZEN-Tune-mgLRU-to-protect-cache-used-in-the-last-sec.patch deleted file mode 100644 index 5c22355ebfce..000000000000 --- a/0015-ZEN-Tune-mgLRU-to-protect-cache-used-in-the-last-sec.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Steven Barrett <steven@liquorix.net> -Date: Wed, 11 Aug 2021 18:41:50 -0500 -Subject: [PATCH] ZEN: Tune mgLRU to protect cache used in the last second - -Although not identical to the le9 patches that protect a byte-amount of -cache through tunables, multigenerational LRU now supports protecting -cache accessed in the last X milliseconds. - -In #218, Yu recommends starting with 1000ms and tuning as needed. This -looks like a safe default and turning on this feature should help users -that don't know they need it. ---- - mm/vmscan.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/mm/vmscan.c b/mm/vmscan.c -index 7096ff7836dbf133ca2f6d4c13258780e98d72d8..adcaf8250b2b497a99f9394ee3fd476dc339df0d 100644 ---- a/mm/vmscan.c -+++ b/mm/vmscan.c -@@ -4434,7 +4434,11 @@ static bool age_lruvec(struct lruvec *lruvec, struct scan_control *sc, unsigned - } - - /* to protect the working set of the last N jiffies */ -+#ifdef CONFIG_ZEN_INTERACTIVE -+static unsigned long lru_gen_min_ttl __read_mostly = HZ; -+#else - static unsigned long lru_gen_min_ttl __read_mostly; -+#endif - - static void lru_gen_age_node(struct pglist_data *pgdat, struct scan_control *sc) - { diff --git a/0015-ZEN-mm-Stop-kswapd-early-when-nothing-s-waiting-for-.patch b/0015-ZEN-mm-Stop-kswapd-early-when-nothing-s-waiting-for-.patch deleted file mode 100644 index fedcdd3f6a29..000000000000 --- a/0015-ZEN-mm-Stop-kswapd-early-when-nothing-s-waiting-for-.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sultan Alsawaf <sultan@kerneltoast.com> -Date: Sun, 19 Apr 2020 19:59:18 -0700 -Subject: [PATCH] ZEN: mm: Stop kswapd early when nothing's waiting for it to - free pages - -Contains: - - mm: Stop kswapd early when nothing's waiting for it to free pages - - Keeping kswapd running when all the failed allocations that invoked it - are satisfied incurs a high overhead due to unnecessary page eviction - and writeback, as well as spurious VM pressure events to various - registered shrinkers. When kswapd doesn't need to work to make an - allocation succeed anymore, stop it prematurely to save resources. - - Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> - - - mm: Don't stop kswapd on a per-node basis when there are no waiters - - The page allocator wakes all kswapds in an allocation context's allowed - nodemask in the slow path, so it doesn't make sense to have the kswapd- - waiter count per each NUMA node. Instead, it should be a global counter - to stop all kswapds when there are no failed allocation requests. - - Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> ---- - mm/internal.h | 1 + - mm/page_alloc.c | 17 ++++++++++++++--- - mm/vmscan.c | 3 ++- - 3 files changed, 17 insertions(+), 4 deletions(-) - -diff --git a/mm/internal.h b/mm/internal.h -index c0f8fbe0445b5f1704c41e2a4f2b664456b9768f..cd447101241b1e7245c84cf25c2fba4d56c1df72 100644 ---- a/mm/internal.h -+++ b/mm/internal.h -@@ -361,6 +361,7 @@ extern void prep_compound_page(struct page *page, unsigned int order); - extern void post_alloc_hook(struct page *page, unsigned int order, - gfp_t gfp_flags); - extern int user_min_free_kbytes; -+extern atomic_long_t kswapd_waiters; - - extern void free_unref_page(struct page *page, unsigned int order); - extern void free_unref_page_list(struct list_head *list); -diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index d6fc4723c4e9137a3bf8193fcbad1bb23f041c43..d86f3da635751e00a5ca5f9c386415523d2ff40a 100644 ---- a/mm/page_alloc.c -+++ b/mm/page_alloc.c -@@ -122,6 +122,8 @@ typedef int __bitwise fpi_t; - */ - #define FPI_SKIP_KASAN_POISON ((__force fpi_t)BIT(2)) - -+atomic_long_t kswapd_waiters = ATOMIC_LONG_INIT(0); -+ - /* prevent >1 _updater_ of zone percpu pageset ->high and ->batch fields */ - static DEFINE_MUTEX(pcp_batch_high_lock); - #define MIN_PERCPU_PAGELIST_HIGH_FRACTION (8) -@@ -4921,6 +4923,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, - int no_progress_loops; - unsigned int cpuset_mems_cookie; - int reserve_flags; -+ bool woke_kswapd = false; - - /* - * We also sanity check to catch abuse of atomic reserves being used by -@@ -4967,8 +4970,13 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, - goto nopage; - } - -- if (alloc_flags & ALLOC_KSWAPD) -+ if (alloc_flags & ALLOC_KSWAPD) { -+ if (!woke_kswapd) { -+ atomic_long_inc(&kswapd_waiters); -+ woke_kswapd = true; -+ } - wake_all_kswapds(order, gfp_mask, ac); -+ } - - /* - * The adjusted alloc_flags might result in immediate success, so try -@@ -5173,9 +5181,12 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, - goto retry; - } - fail: -- warn_alloc(gfp_mask, ac->nodemask, -- "page allocation failure: order:%u", order); - got_pg: -+ if (woke_kswapd) -+ atomic_long_dec(&kswapd_waiters); -+ if (!page) -+ warn_alloc(gfp_mask, ac->nodemask, -+ "page allocation failure: order:%u", order); - return page; - } - -diff --git a/mm/vmscan.c b/mm/vmscan.c -index f7d9a683e3a7d38fe1ffd0265b9f7d7acad938b4..c1936a256ed1e858febfe8f090f889f4a6238ff0 100644 ---- a/mm/vmscan.c -+++ b/mm/vmscan.c -@@ -4228,7 +4228,8 @@ static int balance_pgdat(pg_data_t *pgdat, int order, int highest_zoneidx) - __fs_reclaim_release(_THIS_IP_); - ret = try_to_freeze(); - __fs_reclaim_acquire(_THIS_IP_); -- if (ret || kthread_should_stop()) -+ if (ret || kthread_should_stop() || -+ !atomic_long_read(&kswapd_waiters)) - break; - - /* diff --git a/0015-fbdev-fb_pm2fb-Avoid-potential-divide-by-zero-error.patch b/0015-fbdev-fb_pm2fb-Avoid-potential-divide-by-zero-error.patch deleted file mode 100644 index 0b6da2f4f43e..000000000000 --- a/0015-fbdev-fb_pm2fb-Avoid-potential-divide-by-zero-error.patch +++ /dev/null @@ -1,50 +0,0 @@ -From cb4bb011a683532841344ca7f281b5e04389b4f8 Mon Sep 17 00:00:00 2001 -From: Letu Ren <fantasquex@gmail.com> -Date: Thu, 18 Aug 2022 18:44:24 +0800 -Subject: [PATCH 15/73] fbdev: fb_pm2fb: Avoid potential divide by zero error - -commit 19f953e7435644b81332dd632ba1b2d80b1e37af upstream. - -In `do_fb_ioctl()` of fbmem.c, if cmd is FBIOPUT_VSCREENINFO, var will be -copied from user, then go through `fb_set_var()` and -`info->fbops->fb_check_var()` which could may be `pm2fb_check_var()`. -Along the path, `var->pixclock` won't be modified. This function checks -whether reciprocal of `var->pixclock` is too high. If `var->pixclock` is -zero, there will be a divide by zero error. So, it is necessary to check -whether denominator is zero to avoid crash. As this bug is found by -Syzkaller, logs are listed below. - -divide error in pm2fb_check_var -Call Trace: - <TASK> - fb_set_var+0x367/0xeb0 drivers/video/fbdev/core/fbmem.c:1015 - do_fb_ioctl+0x234/0x670 drivers/video/fbdev/core/fbmem.c:1110 - fb_ioctl+0xdd/0x130 drivers/video/fbdev/core/fbmem.c:1189 - -Reported-by: Zheyu Ma <zheyuma97@gmail.com> -Signed-off-by: Letu Ren <fantasquex@gmail.com> -Signed-off-by: Helge Deller <deller@gmx.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/video/fbdev/pm2fb.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c -index d3be2c64f1c0..8fd79deb1e2a 100644 ---- a/drivers/video/fbdev/pm2fb.c -+++ b/drivers/video/fbdev/pm2fb.c -@@ -617,6 +617,11 @@ static int pm2fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) - return -EINVAL; - } - -+ if (!var->pixclock) { -+ DPRINTK("pixclock is zero\n"); -+ return -EINVAL; -+ } -+ - if (PICOS2KHZ(var->pixclock) > PM2_MAX_PIXCLOCK) { - DPRINTK("pixclock too high (%ldKHz)\n", - PICOS2KHZ(var->pixclock)); --- -2.37.3 - diff --git a/0016-ZEN-mm-Increment-kswapd_waiters-for-throttled-direct.patch b/0016-ZEN-mm-Increment-kswapd_waiters-for-throttled-direct.patch deleted file mode 100644 index 31f070145587..000000000000 --- a/0016-ZEN-mm-Increment-kswapd_waiters-for-throttled-direct.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sultan Alsawaf <sultan@kerneltoast.com> -Date: Fri, 16 Jul 2021 23:35:47 -0700 -Subject: [PATCH] ZEN: mm: Increment kswapd_waiters for throttled direct - reclaimers - -Throttled direct reclaimers will wake up kswapd and wait for kswapd to -satisfy their page allocation request, even when the failed allocation -lacks the __GFP_KSWAPD_RECLAIM flag in its gfp mask. As a result, kswapd -may think that there are no waiters and thus exit prematurely, causing -throttled direct reclaimers lacking __GFP_KSWAPD_RECLAIM to stall on -waiting for kswapd to wake them up. Incrementing the kswapd_waiters -counter when such direct reclaimers become throttled fixes the problem. - -Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> ---- - mm/vmscan.c | 17 ++++++++++++----- - 1 file changed, 12 insertions(+), 5 deletions(-) - -diff --git a/mm/vmscan.c b/mm/vmscan.c -index c1936a256ed1e858febfe8f090f889f4a6238ff0..cd9d3535a2f757e464b3a41b24001fd51bc33aa7 100644 ---- a/mm/vmscan.c -+++ b/mm/vmscan.c -@@ -3608,7 +3608,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist, - return 0; - } - --static bool allow_direct_reclaim(pg_data_t *pgdat) -+static bool allow_direct_reclaim(pg_data_t *pgdat, bool using_kswapd) - { - struct zone *zone; - unsigned long pfmemalloc_reserve = 0; -@@ -3637,6 +3637,10 @@ static bool allow_direct_reclaim(pg_data_t *pgdat) - - wmark_ok = free_pages > pfmemalloc_reserve / 2; - -+ /* The throttled direct reclaimer is now a kswapd waiter */ -+ if (unlikely(!using_kswapd && !wmark_ok)) -+ atomic_long_inc(&kswapd_waiters); -+ - /* kswapd must be awake if processes are being throttled */ - if (!wmark_ok && waitqueue_active(&pgdat->kswapd_wait)) { - if (READ_ONCE(pgdat->kswapd_highest_zoneidx) > ZONE_NORMAL) -@@ -3702,7 +3706,7 @@ static bool throttle_direct_reclaim(gfp_t gfp_mask, struct zonelist *zonelist, - - /* Throttle based on the first usable node */ - pgdat = zone->zone_pgdat; -- if (allow_direct_reclaim(pgdat)) -+ if (allow_direct_reclaim(pgdat, gfp_mask & __GFP_KSWAPD_RECLAIM)) - goto out; - break; - } -@@ -3724,11 +3728,14 @@ static bool throttle_direct_reclaim(gfp_t gfp_mask, struct zonelist *zonelist, - */ - if (!(gfp_mask & __GFP_FS)) - wait_event_interruptible_timeout(pgdat->pfmemalloc_wait, -- allow_direct_reclaim(pgdat), HZ); -+ allow_direct_reclaim(pgdat, true), HZ); - else - /* Throttle until kswapd wakes the process */ - wait_event_killable(zone->zone_pgdat->pfmemalloc_wait, -- allow_direct_reclaim(pgdat)); -+ allow_direct_reclaim(pgdat, true)); -+ -+ if (unlikely(!(gfp_mask & __GFP_KSWAPD_RECLAIM))) -+ atomic_long_dec(&kswapd_waiters); - - if (fatal_signal_pending(current)) - return true; -@@ -4221,7 +4228,7 @@ static int balance_pgdat(pg_data_t *pgdat, int order, int highest_zoneidx) - * able to safely make forward progress. Wake them - */ - if (waitqueue_active(&pgdat->pfmemalloc_wait) && -- allow_direct_reclaim(pgdat)) -+ allow_direct_reclaim(pgdat, true)) - wake_up_all(&pgdat->pfmemalloc_wait); - - /* Check if kswapd should be suspending */ diff --git a/0016-ftrace-Fix-NULL-pointer-dereference-in-is_ftrace_tra.patch b/0016-ftrace-Fix-NULL-pointer-dereference-in-is_ftrace_tra.patch deleted file mode 100644 index 26e1c1126386..000000000000 --- a/0016-ftrace-Fix-NULL-pointer-dereference-in-is_ftrace_tra.patch +++ /dev/null @@ -1,97 +0,0 @@ -From d81bd6671f45fde4c3ac7fd7733c6e3082ae9d8e Mon Sep 17 00:00:00 2001 -From: Yang Jihong <yangjihong1@huawei.com> -Date: Thu, 18 Aug 2022 11:26:59 +0800 -Subject: [PATCH 16/73] ftrace: Fix NULL pointer dereference in - is_ftrace_trampoline when ftrace is dead - -commit c3b0f72e805f0801f05fa2aa52011c4bfc694c44 upstream. - -ftrace_startup does not remove ops from ftrace_ops_list when -ftrace_startup_enable fails: - -register_ftrace_function - ftrace_startup - __register_ftrace_function - ... - add_ftrace_ops(&ftrace_ops_list, ops) - ... - ... - ftrace_startup_enable // if ftrace failed to modify, ftrace_disabled is set to 1 - ... - return 0 // ops is in the ftrace_ops_list. - -When ftrace_disabled = 1, unregister_ftrace_function simply returns without doing anything: -unregister_ftrace_function - ftrace_shutdown - if (unlikely(ftrace_disabled)) - return -ENODEV; // return here, __unregister_ftrace_function is not executed, - // as a result, ops is still in the ftrace_ops_list - __unregister_ftrace_function - ... - -If ops is dynamically allocated, it will be free later, in this case, -is_ftrace_trampoline accesses NULL pointer: - -is_ftrace_trampoline - ftrace_ops_trampoline - do_for_each_ftrace_op(op, ftrace_ops_list) // OOPS! op may be NULL! - -Syzkaller reports as follows: -[ 1203.506103] BUG: kernel NULL pointer dereference, address: 000000000000010b -[ 1203.508039] #PF: supervisor read access in kernel mode -[ 1203.508798] #PF: error_code(0x0000) - not-present page -[ 1203.509558] PGD 800000011660b067 P4D 800000011660b067 PUD 130fb8067 PMD 0 -[ 1203.510560] Oops: 0000 [#1] SMP KASAN PTI -[ 1203.511189] CPU: 6 PID: 29532 Comm: syz-executor.2 Tainted: G B W 5.10.0 #8 -[ 1203.512324] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014 -[ 1203.513895] RIP: 0010:is_ftrace_trampoline+0x26/0xb0 -[ 1203.514644] Code: ff eb d3 90 41 55 41 54 49 89 fc 55 53 e8 f2 00 fd ff 48 8b 1d 3b 35 5d 03 e8 e6 00 fd ff 48 8d bb 90 00 00 00 e8 2a 81 26 00 <48> 8b ab 90 00 00 00 48 85 ed 74 1d e8 c9 00 fd ff 48 8d bb 98 00 -[ 1203.518838] RSP: 0018:ffffc900012cf960 EFLAGS: 00010246 -[ 1203.520092] RAX: 0000000000000000 RBX: 000000000000007b RCX: ffffffff8a331866 -[ 1203.521469] RDX: 0000000000000000 RSI: 0000000000000008 RDI: 000000000000010b -[ 1203.522583] RBP: 0000000000000000 R08: 0000000000000000 R09: ffffffff8df18b07 -[ 1203.523550] R10: fffffbfff1be3160 R11: 0000000000000001 R12: 0000000000478399 -[ 1203.524596] R13: 0000000000000000 R14: ffff888145088000 R15: 0000000000000008 -[ 1203.525634] FS: 00007f429f5f4700(0000) GS:ffff8881daf00000(0000) knlGS:0000000000000000 -[ 1203.526801] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 -[ 1203.527626] CR2: 000000000000010b CR3: 0000000170e1e001 CR4: 00000000003706e0 -[ 1203.528611] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 -[ 1203.529605] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 - -Therefore, when ftrace_startup_enable fails, we need to rollback registration -process and remove ops from ftrace_ops_list. - -Link: https://lkml.kernel.org/r/20220818032659.56209-1-yangjihong1@huawei.com - -Suggested-by: Steven Rostedt <rostedt@goodmis.org> -Signed-off-by: Yang Jihong <yangjihong1@huawei.com> -Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - kernel/trace/ftrace.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c -index 601ccf1b2f09..4baa99363b16 100644 ---- a/kernel/trace/ftrace.c -+++ b/kernel/trace/ftrace.c -@@ -2937,6 +2937,16 @@ int ftrace_startup(struct ftrace_ops *ops, int command) - - ftrace_startup_enable(command); - -+ /* -+ * If ftrace is in an undefined state, we just remove ops from list -+ * to prevent the NULL pointer, instead of totally rolling it back and -+ * free trampoline, because those actions could cause further damage. -+ */ -+ if (unlikely(ftrace_disabled)) { -+ __unregister_ftrace_function(ops); -+ return -ENODEV; -+ } -+ - ops->flags &= ~FTRACE_OPS_FL_ADDING; - - return 0; --- -2.37.3 - diff --git a/0017-ZEN-mm-Lower-the-non-hugetlbpage-pageblock-size-to-r.patch b/0017-ZEN-mm-Lower-the-non-hugetlbpage-pageblock-size-to-r.patch deleted file mode 100644 index 11b98001f453..000000000000 --- a/0017-ZEN-mm-Lower-the-non-hugetlbpage-pageblock-size-to-r.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sultan Alsawaf <sultan@kerneltoast.com> -Date: Wed, 20 Oct 2021 20:50:11 -0700 -Subject: [PATCH] ZEN: mm: Lower the non-hugetlbpage pageblock size to reduce - scheduling delays - -The page allocator processes free pages in groups of pageblocks, where -the size of a pageblock is typically quite large (1024 pages without -hugetlbpage support). Pageblocks are processed atomically with the zone -lock held, which can cause severe scheduling delays on both the CPU -going through the pageblock and any other CPUs waiting to acquire the -zone lock. A frequent offender is move_freepages_block(), which is used -by rmqueue() for page allocation. - -As it turns out, there's no requirement for pageblocks to be so large, -so the pageblock order can simply be reduced to ease the scheduling -delays and zone lock contention. PAGE_ALLOC_COSTLY_ORDER is used as a -reasonable setting to ensure non-costly page allocation requests can -still be serviced without always needing to free up more than one -pageblock's worth of pages at a time. - -This has a noticeable effect on overall system latency when memory -pressure is elevated. The various mm functions which operate on -pageblocks no longer appear in the preemptoff tracer, where previously -they would spend up to 100 ms on a mobile arm64 CPU processing a -pageblock with preemption disabled and the zone lock held. - -Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> ---- - include/linux/pageblock-flags.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/linux/pageblock-flags.h b/include/linux/pageblock-flags.h -index 83c7248053a1eb745e0bff410be66d0f04a5e8bb..d2b8741eabf7e01802dbb0705a12cb2e5c80ea1d 100644 ---- a/include/linux/pageblock-flags.h -+++ b/include/linux/pageblock-flags.h -@@ -48,7 +48,7 @@ extern unsigned int pageblock_order; - #else /* CONFIG_HUGETLB_PAGE */ - - /* If huge pages are not used, group by MAX_ORDER_NR_PAGES */ --#define pageblock_order (MAX_ORDER-1) -+#define pageblock_order PAGE_ALLOC_COSTLY_ORDER - - #endif /* CONFIG_HUGETLB_PAGE */ - diff --git a/0017-bpf-Don-t-redirect-packets-with-invalid-pkt_len.patch b/0017-bpf-Don-t-redirect-packets-with-invalid-pkt_len.patch deleted file mode 100644 index 3eab5b5de836..000000000000 --- a/0017-bpf-Don-t-redirect-packets-with-invalid-pkt_len.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 72f2dc8993f10262092745a88cb2dd0fef094f23 Mon Sep 17 00:00:00 2001 -From: Zhengchao Shao <shaozhengchao@huawei.com> -Date: Fri, 15 Jul 2022 19:55:59 +0800 -Subject: [PATCH 17/73] bpf: Don't redirect packets with invalid pkt_len - -commit fd1894224407c484f652ad456e1ce423e89bb3eb upstream. - -Syzbot found an issue [1]: fq_codel_drop() try to drop a flow whitout any -skbs, that is, the flow->head is null. -The root cause, as the [2] says, is because that bpf_prog_test_run_skb() -run a bpf prog which redirects empty skbs. -So we should determine whether the length of the packet modified by bpf -prog or others like bpf_prog_test is valid before forwarding it directly. - -LINK: [1] https://syzkaller.appspot.com/bug?id=0b84da80c2917757915afa89f7738a9d16ec96c5 -LINK: [2] https://www.spinics.net/lists/netdev/msg777503.html - -Reported-by: syzbot+7a12909485b94426aceb@syzkaller.appspotmail.com -Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com> -Reviewed-by: Stanislav Fomichev <sdf@google.com> -Link: https://lore.kernel.org/r/20220715115559.139691-1-shaozhengchao@huawei.com -Signed-off-by: Alexei Starovoitov <ast@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - include/linux/skbuff.h | 8 ++++++++ - net/bpf/test_run.c | 3 +++ - net/core/dev.c | 1 + - 3 files changed, 12 insertions(+) - -diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h -index d3d10556f0fa..2f41364a6791 100644 ---- a/include/linux/skbuff.h -+++ b/include/linux/skbuff.h -@@ -2624,6 +2624,14 @@ static inline void skb_set_tail_pointer(struct sk_buff *skb, const int offset) - - #endif /* NET_SKBUFF_DATA_USES_OFFSET */ - -+static inline void skb_assert_len(struct sk_buff *skb) -+{ -+#ifdef CONFIG_DEBUG_NET -+ if (WARN_ONCE(!skb->len, "%s\n", __func__)) -+ DO_ONCE_LITE(skb_dump, KERN_ERR, skb, false); -+#endif /* CONFIG_DEBUG_NET */ -+} -+ - /* - * Add data to an sk_buff - */ -diff --git a/net/bpf/test_run.c b/net/bpf/test_run.c -index 56f059b3c242..42f8de4ebbd7 100644 ---- a/net/bpf/test_run.c -+++ b/net/bpf/test_run.c -@@ -955,6 +955,9 @@ static int convert___skb_to_skb(struct sk_buff *skb, struct __sk_buff *__skb) - { - struct qdisc_skb_cb *cb = (struct qdisc_skb_cb *)skb->cb; - -+ if (!skb->len) -+ return -EINVAL; -+ - if (!__skb) - return 0; - -diff --git a/net/core/dev.c b/net/core/dev.c -index a77a979a4bf7..ecaeb3ef8e5c 100644 ---- a/net/core/dev.c -+++ b/net/core/dev.c -@@ -4168,6 +4168,7 @@ int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) - bool again = false; - - skb_reset_mac_header(skb); -+ skb_assert_len(skb); - - if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_SCHED_TSTAMP)) - __skb_tstamp_tx(skb, NULL, NULL, skb->sk, SCM_TSTAMP_SCHED); --- -2.37.3 - diff --git a/0018-ZEN-mm-Don-t-hog-the-CPU-and-zone-lock-in-rmqueue_bu.patch b/0018-ZEN-mm-Don-t-hog-the-CPU-and-zone-lock-in-rmqueue_bu.patch deleted file mode 100644 index bda483b83cfc..000000000000 --- a/0018-ZEN-mm-Don-t-hog-the-CPU-and-zone-lock-in-rmqueue_bu.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sultan Alsawaf <sultan@kerneltoast.com> -Date: Wed, 20 Oct 2021 20:50:32 -0700 -Subject: [PATCH] ZEN: mm: Don't hog the CPU and zone lock in rmqueue_bulk() - -There is noticeable scheduling latency and heavy zone lock contention -stemming from rmqueue_bulk's single hold of the zone lock while doing -its work, as seen with the preemptoff tracer. There's no actual need for -rmqueue_bulk() to hold the zone lock the entire time; it only does so -for supposed efficiency. As such, we can relax the zone lock and even -reschedule when IRQs are enabled in order to keep the scheduling delays -and zone lock contention at bay. Forward progress is still guaranteed, -as the zone lock can only be relaxed after page removal. - -With this change, rmqueue_bulk() no longer appears as a serious offender -in the preemptoff tracer, and system latency is noticeably improved. - -Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> ---- - mm/page_alloc.c | 23 ++++++++++++++++++----- - 1 file changed, 18 insertions(+), 5 deletions(-) - -diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index d86f3da635751e00a5ca5f9c386415523d2ff40a..2cdff4eafea54a2ca8ad58549746148e1390e031 100644 ---- a/mm/page_alloc.c -+++ b/mm/page_alloc.c -@@ -3036,15 +3036,16 @@ __rmqueue(struct zone *zone, unsigned int order, int migratetype, - } - - /* -- * Obtain a specified number of elements from the buddy allocator, all under -- * a single hold of the lock, for efficiency. Add them to the supplied list. -- * Returns the number of new pages which were placed at *list. -+ * Obtain a specified number of elements from the buddy allocator, and relax the -+ * zone lock when needed. Add them to the supplied list. Returns the number of -+ * new pages which were placed at *list. - */ - static int rmqueue_bulk(struct zone *zone, unsigned int order, - unsigned long count, struct list_head *list, - int migratetype, unsigned int alloc_flags) - { -- int i, allocated = 0; -+ const bool can_resched = !preempt_count() && !irqs_disabled(); -+ int i, allocated = 0, last_mod = 0; - - /* - * local_lock_irq held so equivalent to spin_lock_irqsave for -@@ -3057,6 +3058,18 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order, - if (unlikely(page == NULL)) - break; - -+ /* Reschedule and ease the contention on the lock if needed */ -+ if (i + 1 < count && ((can_resched && need_resched()) || -+ spin_needbreak(&zone->lock))) { -+ __mod_zone_page_state(zone, NR_FREE_PAGES, -+ -((i + 1 - last_mod) << order)); -+ last_mod = i + 1; -+ spin_unlock(&zone->lock); -+ if (can_resched) -+ cond_resched(); -+ spin_lock(&zone->lock); -+ } -+ - if (unlikely(check_pcp_refill(page, order))) - continue; - -@@ -3083,7 +3096,7 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order, - * on i. Do not confuse with 'allocated' which is the number of - * pages added to the pcp list. - */ -- __mod_zone_page_state(zone, NR_FREE_PAGES, -(i << order)); -+ __mod_zone_page_state(zone, NR_FREE_PAGES, -((i - last_mod) << order)); - spin_unlock(&zone->lock); - return allocated; - } diff --git a/0018-mm-rmap-Fix-anon_vma-degree-ambiguity-leading-to-dou.patch b/0018-mm-rmap-Fix-anon_vma-degree-ambiguity-leading-to-dou.patch deleted file mode 100644 index f638a0c847fe..000000000000 --- a/0018-mm-rmap-Fix-anon_vma-degree-ambiguity-leading-to-dou.patch +++ /dev/null @@ -1,173 +0,0 @@ -From 7877eaa1131147b4d6a063962f3aac0ab1b8ea1c Mon Sep 17 00:00:00 2001 -From: Jann Horn <jannh@google.com> -Date: Wed, 31 Aug 2022 19:06:00 +0200 -Subject: [PATCH 18/73] mm/rmap: Fix anon_vma->degree ambiguity leading to - double-reuse - -commit 2555283eb40df89945557273121e9393ef9b542b upstream. - -anon_vma->degree tracks the combined number of child anon_vmas and VMAs -that use the anon_vma as their ->anon_vma. - -anon_vma_clone() then assumes that for any anon_vma attached to -src->anon_vma_chain other than src->anon_vma, it is impossible for it to -be a leaf node of the VMA tree, meaning that for such VMAs ->degree is -elevated by 1 because of a child anon_vma, meaning that if ->degree -equals 1 there are no VMAs that use the anon_vma as their ->anon_vma. - -This assumption is wrong because the ->degree optimization leads to leaf -nodes being abandoned on anon_vma_clone() - an existing anon_vma is -reused and no new parent-child relationship is created. So it is -possible to reuse an anon_vma for one VMA while it is still tied to -another VMA. - -This is an issue because is_mergeable_anon_vma() and its callers assume -that if two VMAs have the same ->anon_vma, the list of anon_vmas -attached to the VMAs is guaranteed to be the same. When this assumption -is violated, vma_merge() can merge pages into a VMA that is not attached -to the corresponding anon_vma, leading to dangling page->mapping -pointers that will be dereferenced during rmap walks. - -Fix it by separately tracking the number of child anon_vmas and the -number of VMAs using the anon_vma as their ->anon_vma. - -Fixes: 7a3ef208e662 ("mm: prevent endless growth of anon_vma hierarchy") -Cc: stable@kernel.org -Acked-by: Michal Hocko <mhocko@suse.com> -Acked-by: Vlastimil Babka <vbabka@suse.cz> -Signed-off-by: Jann Horn <jannh@google.com> -Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - include/linux/rmap.h | 7 +++++-- - mm/rmap.c | 29 ++++++++++++++++------------- - 2 files changed, 21 insertions(+), 15 deletions(-) - -diff --git a/include/linux/rmap.h b/include/linux/rmap.h -index bf80adca980b..b89b4b86951f 100644 ---- a/include/linux/rmap.h -+++ b/include/linux/rmap.h -@@ -41,12 +41,15 @@ struct anon_vma { - atomic_t refcount; - - /* -- * Count of child anon_vmas and VMAs which points to this anon_vma. -+ * Count of child anon_vmas. Equals to the count of all anon_vmas that -+ * have ->parent pointing to this one, including itself. - * - * This counter is used for making decision about reusing anon_vma - * instead of forking new one. See comments in function anon_vma_clone. - */ -- unsigned degree; -+ unsigned long num_children; -+ /* Count of VMAs whose ->anon_vma pointer points to this object. */ -+ unsigned long num_active_vmas; - - struct anon_vma *parent; /* Parent of this anon_vma */ - -diff --git a/mm/rmap.c b/mm/rmap.c -index 746c05acad27..f6dd281df410 100644 ---- a/mm/rmap.c -+++ b/mm/rmap.c -@@ -93,7 +93,8 @@ static inline struct anon_vma *anon_vma_alloc(void) - anon_vma = kmem_cache_alloc(anon_vma_cachep, GFP_KERNEL); - if (anon_vma) { - atomic_set(&anon_vma->refcount, 1); -- anon_vma->degree = 1; /* Reference for first vma */ -+ anon_vma->num_children = 0; -+ anon_vma->num_active_vmas = 0; - anon_vma->parent = anon_vma; - /* - * Initialise the anon_vma root to point to itself. If called -@@ -201,6 +202,7 @@ int __anon_vma_prepare(struct vm_area_struct *vma) - anon_vma = anon_vma_alloc(); - if (unlikely(!anon_vma)) - goto out_enomem_free_avc; -+ anon_vma->num_children++; /* self-parent link for new root */ - allocated = anon_vma; - } - -@@ -210,8 +212,7 @@ int __anon_vma_prepare(struct vm_area_struct *vma) - if (likely(!vma->anon_vma)) { - vma->anon_vma = anon_vma; - anon_vma_chain_link(vma, avc, anon_vma); -- /* vma reference or self-parent link for new root */ -- anon_vma->degree++; -+ anon_vma->num_active_vmas++; - allocated = NULL; - avc = NULL; - } -@@ -296,19 +297,19 @@ int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src) - anon_vma_chain_link(dst, avc, anon_vma); - - /* -- * Reuse existing anon_vma if its degree lower than two, -- * that means it has no vma and only one anon_vma child. -+ * Reuse existing anon_vma if it has no vma and only one -+ * anon_vma child. - * -- * Do not choose parent anon_vma, otherwise first child -- * will always reuse it. Root anon_vma is never reused: -+ * Root anon_vma is never reused: - * it has self-parent reference and at least one child. - */ - if (!dst->anon_vma && src->anon_vma && -- anon_vma != src->anon_vma && anon_vma->degree < 2) -+ anon_vma->num_children < 2 && -+ anon_vma->num_active_vmas == 0) - dst->anon_vma = anon_vma; - } - if (dst->anon_vma) -- dst->anon_vma->degree++; -+ dst->anon_vma->num_active_vmas++; - unlock_anon_vma_root(root); - return 0; - -@@ -358,6 +359,7 @@ int anon_vma_fork(struct vm_area_struct *vma, struct vm_area_struct *pvma) - anon_vma = anon_vma_alloc(); - if (!anon_vma) - goto out_error; -+ anon_vma->num_active_vmas++; - avc = anon_vma_chain_alloc(GFP_KERNEL); - if (!avc) - goto out_error_free_anon_vma; -@@ -378,7 +380,7 @@ int anon_vma_fork(struct vm_area_struct *vma, struct vm_area_struct *pvma) - vma->anon_vma = anon_vma; - anon_vma_lock_write(anon_vma); - anon_vma_chain_link(vma, avc, anon_vma); -- anon_vma->parent->degree++; -+ anon_vma->parent->num_children++; - anon_vma_unlock_write(anon_vma); - - return 0; -@@ -410,7 +412,7 @@ void unlink_anon_vmas(struct vm_area_struct *vma) - * to free them outside the lock. - */ - if (RB_EMPTY_ROOT(&anon_vma->rb_root.rb_root)) { -- anon_vma->parent->degree--; -+ anon_vma->parent->num_children--; - continue; - } - -@@ -418,7 +420,7 @@ void unlink_anon_vmas(struct vm_area_struct *vma) - anon_vma_chain_free(avc); - } - if (vma->anon_vma) { -- vma->anon_vma->degree--; -+ vma->anon_vma->num_active_vmas--; - - /* - * vma would still be needed after unlink, and anon_vma will be prepared -@@ -436,7 +438,8 @@ void unlink_anon_vmas(struct vm_area_struct *vma) - list_for_each_entry_safe(avc, next, &vma->anon_vma_chain, same_vma) { - struct anon_vma *anon_vma = avc->anon_vma; - -- VM_WARN_ON(anon_vma->degree); -+ VM_WARN_ON(anon_vma->num_children); -+ VM_WARN_ON(anon_vma->num_active_vmas); - put_anon_vma(anon_vma); - - list_del(&avc->same_vma); --- -2.37.3 - diff --git a/0019-ALSA-usb-audio-Add-quirk-for-LH-Labs-Geek-Out-HD-Aud.patch b/0019-ALSA-usb-audio-Add-quirk-for-LH-Labs-Geek-Out-HD-Aud.patch deleted file mode 100644 index 4a50a13e23cc..000000000000 --- a/0019-ALSA-usb-audio-Add-quirk-for-LH-Labs-Geek-Out-HD-Aud.patch +++ /dev/null @@ -1,39 +0,0 @@ -From ec45c77833192fa8da4681b1a4c6847fe7e4bf4c Mon Sep 17 00:00:00 2001 -From: Takashi Iwai <tiwai@suse.de> -Date: Sun, 28 Aug 2022 09:41:43 +0200 -Subject: [PATCH 19/73] ALSA: usb-audio: Add quirk for LH Labs Geek Out HD - Audio 1V5 - -commit 5f3d9e8161bb8cb23ab3b4678cd13f6e90a06186 upstream. - -The USB DAC from LH Labs (2522:0007) seems requiring the same quirk as -Sony Walkman to set up the interface like UAC1; otherwise it gets the -constant errors "usb_set_interface failed (-71)". This patch adds a -quirk entry for addressing the buggy behavior. - -Reported-by: Lennert Van Alboom <lennert@vanalboom.org> -Cc: <stable@vger.kernel.org> -Link: https://lore.kernel.org/r/T3VPXtCc4uFws9Gfh2RjX6OdwM1RqfC6VqQr--_LMDyB2x5N3p9_q6AtPna17IXhHwBtcJVdXuS80ZZSCMjh_BafIbnzJPhbrkmhmWS6DlI=@vanalboom.org -Link: https://lore.kernel.org/r/20220828074143.14736-1-tiwai@suse.de -Signed-off-by: Takashi Iwai <tiwai@suse.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - sound/usb/quirks.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c -index 168fd802d70b..9bfead5efc4c 100644 ---- a/sound/usb/quirks.c -+++ b/sound/usb/quirks.c -@@ -1903,6 +1903,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = { - QUIRK_FLAG_SHARE_MEDIA_DEVICE | QUIRK_FLAG_ALIGN_TRANSFER), - DEVICE_FLG(0x21b4, 0x0081, /* AudioQuest DragonFly */ - QUIRK_FLAG_GET_SAMPLE_RATE), -+ DEVICE_FLG(0x2522, 0x0007, /* LH Labs Geek Out HD Audio 1V5 */ -+ QUIRK_FLAG_SET_IFACE_FIRST), - DEVICE_FLG(0x2708, 0x0002, /* Audient iD14 */ - QUIRK_FLAG_IGNORE_CTL_ERROR), - DEVICE_FLG(0x2912, 0x30c8, /* Audioengine D1 */ --- -2.37.3 - diff --git a/0019-ZEN-INTERACTIVE-Base-config-item.patch b/0019-ZEN-INTERACTIVE-Base-config-item.patch deleted file mode 100644 index b1ae0af8dfe9..000000000000 --- a/0019-ZEN-INTERACTIVE-Base-config-item.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> -Date: Mon, 27 Jan 2020 18:10:06 +0100 -Subject: [PATCH] ZEN: INTERACTIVE: Base config item - ---- - init/Kconfig | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/init/Kconfig b/init/Kconfig -index 5b5f9ea153d3ea7d54601950d6332ee1cec21df2..40b922be8c2af3b67156290a06a92f7bd1517bab 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -116,6 +116,12 @@ config THREAD_INFO_IN_TASK - - menu "General setup" - -+config ZEN_INTERACTIVE -+ bool "Tune kernel for interactivity" -+ default y -+ help -+ Tunes the kernel for responsiveness at the cost of throughput and power usage. -+ - config BROKEN - bool - diff --git a/0020-HID-input-fix-uclogic-tablets.patch b/0020-HID-input-fix-uclogic-tablets.patch deleted file mode 100644 index f8a95f4638ca..000000000000 --- a/0020-HID-input-fix-uclogic-tablets.patch +++ /dev/null @@ -1,46 +0,0 @@ -From b61400c4e784065c9783442e8ef096fefa811901 Mon Sep 17 00:00:00 2001 -From: Benjamin Tissoires <benjamin.tissoires@redhat.com> -Date: Mon, 22 Aug 2022 08:22:47 +0200 -Subject: [PATCH 20/73] HID: input: fix uclogic tablets - -commit 8db8be9cfc89935c97d791c7e6264e710a7e8a56 upstream. - -commit 87562fcd1342 ("HID: input: remove the need for HID_QUIRK_INVERT") -made the assumption that it was the only one handling tablets and thus -kept an internal state regarding the tool. - -Turns out that the uclogic driver has a timer to release the in range -bit, effectively making hid-input ignoring all in range information -after the very first one. - -Fix that by having a more rationale approach which consists in forwarding -every event and let the input stack filter out the duplicates. - -Reported-by: Stefan Hansson <newbie13xd@gmail.com> -Fixes: 87562fcd1342 ("HID: input: remove the need for HID_QUIRK_INVERT") -Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> -Signed-off-by: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hid/hid-input.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c -index 48c1c02c69f4..871a185a0f1f 100644 ---- a/drivers/hid/hid-input.c -+++ b/drivers/hid/hid-input.c -@@ -1532,7 +1532,10 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct - * assume ours - */ - if (!report->tool) -- hid_report_set_tool(report, input, usage->code); -+ report->tool = usage->code; -+ -+ /* drivers may have changed the value behind our back, resend it */ -+ hid_report_set_tool(report, input, report->tool); - } else { - hid_report_release_tool(report, input, usage->code); - } --- -2.37.3 - diff --git a/0020-ZEN-INTERACTIVE-Use-BFQ-as-our-elevator.patch b/0020-ZEN-INTERACTIVE-Use-BFQ-as-our-elevator.patch deleted file mode 100644 index fd288436c2f2..000000000000 --- a/0020-ZEN-INTERACTIVE-Use-BFQ-as-our-elevator.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> -Date: Mon, 27 Jan 2020 18:11:05 +0100 -Subject: [PATCH] ZEN: INTERACTIVE: Use BFQ as our elevator - -Add a scheduler even to multi-queue block devices: We prefer -interactivity to throughput and want BFQ if possible. ---- - block/elevator.c | 6 ++++++ - init/Kconfig | 4 ++++ - 2 files changed, 10 insertions(+) - -diff --git a/block/elevator.c b/block/elevator.c -index c319765892bb90f00162cb6cac03f8d5434e64b2..062c1c055559b6a627e96031bcd9a06efa9ea85f 100644 ---- a/block/elevator.c -+++ b/block/elevator.c -@@ -638,11 +638,17 @@ static struct elevator_type *elevator_get_default(struct request_queue *q) - if (q->tag_set && q->tag_set->flags & BLK_MQ_F_NO_SCHED_BY_DEFAULT) - return NULL; - -+#ifndef CONFIG_ZEN_INTERACTIVE - if (q->nr_hw_queues != 1 && - !blk_mq_is_shared_tags(q->tag_set->flags)) - return NULL; -+#endif - -+#if defined(CONFIG_ZEN_INTERACTIVE) && defined(CONFIG_IOSCHED_BFQ) -+ return elevator_get(q, "bfq", false); -+#else - return elevator_get(q, "mq-deadline", false); -+#endif - } - - /* -diff --git a/init/Kconfig b/init/Kconfig -index 40b922be8c2af3b67156290a06a92f7bd1517bab..fb5f80b921d04941aebedec13cdcbd93c5a3e76b 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -122,6 +122,10 @@ config ZEN_INTERACTIVE - help - Tunes the kernel for responsiveness at the cost of throughput and power usage. - -+ --- Block Layer ---------------------------------------- -+ -+ Default scheduler.........: mq-deadline -> bfq -+ - config BROKEN - bool - diff --git a/0021-HID-add-Lenovo-Yoga-C630-battery-quirk.patch b/0021-HID-add-Lenovo-Yoga-C630-battery-quirk.patch deleted file mode 100644 index 13763c3e3255..000000000000 --- a/0021-HID-add-Lenovo-Yoga-C630-battery-quirk.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 4af0f12367b2cdf687e58044a71916edb60b0f4d Mon Sep 17 00:00:00 2001 -From: Steev Klimaszewski <steev@kali.org> -Date: Thu, 18 Aug 2022 21:39:24 -0500 -Subject: [PATCH 21/73] HID: add Lenovo Yoga C630 battery quirk - -commit 3a47fa7b14c7d9613909a844aba27f99d3c58634 upstream. - -Similar to the Surface Go devices, the Elantech touchscreen/digitizer in -the Lenovo Yoga C630 mistakenly reports the battery of the stylus, and -always reports an empty battery. - -Apply the HID_BATTERY_QUIRK_IGNORE quirk to ignore this battery and -prevent the erroneous low battery warnings. - -Signed-off-by: Steev Klimaszewski <steev@kali.org> -Signed-off-by: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hid/hid-ids.h | 1 + - drivers/hid/hid-input.c | 2 ++ - 2 files changed, 3 insertions(+) - -diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index 9c4e92a9c646..f7e4a0d06fb8 100644 ---- a/drivers/hid/hid-ids.h -+++ b/drivers/hid/hid-ids.h -@@ -414,6 +414,7 @@ - #define USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN 0x2706 - #define I2C_DEVICE_ID_SURFACE_GO_TOUCHSCREEN 0x261A - #define I2C_DEVICE_ID_SURFACE_GO2_TOUCHSCREEN 0x2A1C -+#define I2C_DEVICE_ID_LENOVO_YOGA_C630_TOUCHSCREEN 0x279F - - #define USB_VENDOR_ID_ELECOM 0x056e - #define USB_DEVICE_ID_ELECOM_BM084 0x0061 -diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c -index 871a185a0f1f..859aeb07542e 100644 ---- a/drivers/hid/hid-input.c -+++ b/drivers/hid/hid-input.c -@@ -383,6 +383,8 @@ static const struct hid_device_id hid_battery_quirks[] = { - HID_BATTERY_QUIRK_IGNORE }, - { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_SURFACE_GO2_TOUCHSCREEN), - HID_BATTERY_QUIRK_IGNORE }, -+ { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_LENOVO_YOGA_C630_TOUCHSCREEN), -+ HID_BATTERY_QUIRK_IGNORE }, - {} - }; - --- -2.37.3 - diff --git a/0021-ZEN-INTERACTIVE-Use-Kyber-as-our-elevator-for-multi-.patch b/0021-ZEN-INTERACTIVE-Use-Kyber-as-our-elevator-for-multi-.patch deleted file mode 100644 index 26deaf05866a..000000000000 --- a/0021-ZEN-INTERACTIVE-Use-Kyber-as-our-elevator-for-multi-.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org> -Date: Tue, 12 Jul 2022 17:30:47 +0200 -Subject: [PATCH] ZEN: INTERACTIVE: Use Kyber as our elevator for multi-queue - devices - ---- - block/elevator.c | 6 +++++- - init/Kconfig | 3 ++- - 2 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/block/elevator.c b/block/elevator.c -index 062c1c055559b6a627e96031bcd9a06efa9ea85f..7efbdee94e2ce2fb39b4bf49100f41aeb15e80fa 100644 ---- a/block/elevator.c -+++ b/block/elevator.c -@@ -638,9 +638,13 @@ static struct elevator_type *elevator_get_default(struct request_queue *q) - if (q->tag_set && q->tag_set->flags & BLK_MQ_F_NO_SCHED_BY_DEFAULT) - return NULL; - --#ifndef CONFIG_ZEN_INTERACTIVE - if (q->nr_hw_queues != 1 && - !blk_mq_is_shared_tags(q->tag_set->flags)) -+#if defined(CONFIG_ZEN_INTERACTIVE) && defined(CONFIG_MQ_IOSCHED_KYBER) -+ return elevator_get(q, "kyber", false); -+#elif defined(CONFIG_ZEN_INTERACTIVE) -+ return elevator_get(q, "mq-deadline", false); -+#else - return NULL; - #endif - -diff --git a/init/Kconfig b/init/Kconfig -index fb5f80b921d04941aebedec13cdcbd93c5a3e76b..3714f60c7aff537f1bd4e8aa8979a745ebe587f1 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -124,7 +124,8 @@ config ZEN_INTERACTIVE - - --- Block Layer ---------------------------------------- - -- Default scheduler.........: mq-deadline -> bfq -+ Default scheduler for SQ..: mq-deadline -> bfq -+ Default scheduler for MQ..: none -> kyber - - config BROKEN - bool diff --git a/0022-HID-AMD_SFH-Add-a-DMI-quirk-entry-for-Chromebooks.patch b/0022-HID-AMD_SFH-Add-a-DMI-quirk-entry-for-Chromebooks.patch deleted file mode 100644 index 0b803b318e36..000000000000 --- a/0022-HID-AMD_SFH-Add-a-DMI-quirk-entry-for-Chromebooks.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 2803225ac89bc761ade8673105db8a8d84335054 Mon Sep 17 00:00:00 2001 -From: Akihiko Odaki <akihiko.odaki@gmail.com> -Date: Tue, 16 Aug 2022 19:21:20 +0900 -Subject: [PATCH 22/73] HID: AMD_SFH: Add a DMI quirk entry for Chromebooks - -commit adada3f4930ac084740ea340bd8e94028eba4f22 upstream. - -Google Chromebooks use Chrome OS Embedded Controller Sensor Hub instead -of Sensor Hub Fusion and leaves MP2 uninitialized, which disables all -functionalities, even including the registers necessary for feature -detections. - -The behavior was observed with Lenovo ThinkPad C13 Yoga. - -Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com> -Suggested-by: Mario Limonciello <mario.limonciello@amd.com> -Acked-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com> -Signed-off-by: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hid/amd-sfh-hid/amd_sfh_pcie.c | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c -index 1441787a154a..9b97dc0695e3 100644 ---- a/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c -+++ b/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c -@@ -285,11 +285,29 @@ static int amd_sfh_irq_init(struct amd_mp2_dev *privdata) - return 0; - } - -+static const struct dmi_system_id dmi_nodevs[] = { -+ { -+ /* -+ * Google Chromebooks use Chrome OS Embedded Controller Sensor -+ * Hub instead of Sensor Hub Fusion and leaves MP2 -+ * uninitialized, which disables all functionalities, even -+ * including the registers necessary for feature detections. -+ */ -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "Google"), -+ }, -+ }, -+ { } -+}; -+ - static int amd_mp2_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) - { - struct amd_mp2_dev *privdata; - int rc; - -+ if (dmi_first_match(dmi_nodevs)) -+ return -ENODEV; -+ - privdata = devm_kzalloc(&pdev->dev, sizeof(*privdata), GFP_KERNEL); - if (!privdata) - return -ENOMEM; --- -2.37.3 - diff --git a/0022-ZEN-INTERACTIVE-Enable-background-reclaim-of-hugepag.patch b/0022-ZEN-INTERACTIVE-Enable-background-reclaim-of-hugepag.patch deleted file mode 100644 index b4d02da6305a..000000000000 --- a/0022-ZEN-INTERACTIVE-Enable-background-reclaim-of-hugepag.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> -Date: Mon, 27 Jan 2020 18:21:09 +0100 -Subject: [PATCH] ZEN: INTERACTIVE: Enable background reclaim of hugepages - -Use [defer+madvise] as default khugepaged defrag strategy: - -For some reason, the default strategy to respond to THP fault fallbacks -is still just madvise, meaning stall if the program wants transparent -hugepages, but don't trigger a background reclaim / compaction if THP -begins to fail allocations. This creates a snowball affect where we -still use the THP code paths, but we almost always fail once a system -has been active and busy for a while. - -The option "defer" was created for interactive systems where THP can -still improve performance. If we have to fallback to a regular page due -to an allocation failure or anything else, we will trigger a background -reclaim and compaction so future THP attempts succeed and previous -attempts eventually have their smaller pages combined without stalling -running applications. - -We still want madvise to stall applications that explicitely want THP, -so defer+madvise _does_ make a ton of sense. Make it the default for -interactive systems, especially if the kernel maintainer left -transparent hugepages on "always". - -Reasoning and details in the original patch: https://lwn.net/Articles/711248/ ---- - init/Kconfig | 4 ++++ - mm/huge_memory.c | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/init/Kconfig b/init/Kconfig -index 3714f60c7aff537f1bd4e8aa8979a745ebe587f1..73b95d3f50300fb82220fb30dfe91bb12052f111 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -127,6 +127,10 @@ config ZEN_INTERACTIVE - Default scheduler for SQ..: mq-deadline -> bfq - Default scheduler for MQ..: none -> kyber - -+ --- Virtual Memory Subsystem --------------------------- -+ -+ Background-reclaim hugepages...: no -> yes -+ - config BROKEN - bool - -diff --git a/mm/huge_memory.c b/mm/huge_memory.c -index 834f288b376909c351fc2a21d77e200f8e83a802..a78a758f9815b043dd03f03bc8028b7d483a2a9c 100644 ---- a/mm/huge_memory.c -+++ b/mm/huge_memory.c -@@ -59,7 +59,11 @@ unsigned long transparent_hugepage_flags __read_mostly = - #ifdef CONFIG_TRANSPARENT_HUGEPAGE_MADVISE - (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG)| - #endif -+#ifdef CONFIG_ZEN_INTERACTIVE -+ (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG)| -+#else - (1<<TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG)| -+#endif - (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG)| - (1<<TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG); - diff --git a/0023-HID-Add-Apple-Touchbar-on-T2-Macs-in-hid_have_specia.patch b/0023-HID-Add-Apple-Touchbar-on-T2-Macs-in-hid_have_specia.patch deleted file mode 100644 index 815f96874316..000000000000 --- a/0023-HID-Add-Apple-Touchbar-on-T2-Macs-in-hid_have_specia.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 5b3063adff7da583e61b284beb3308f7588a4c8a Mon Sep 17 00:00:00 2001 -From: Aditya Garg <gargaditya08@live.com> -Date: Sun, 21 Aug 2022 08:04:45 +0000 -Subject: [PATCH 23/73] HID: Add Apple Touchbar on T2 Macs in - hid_have_special_driver list - -commit 750ec977288d96e9a11424e3507ede097af732c4 upstream. - -The touchbar on Apple T2 Macs has 2 modes, one that shows the function -keys and other that shows the media controls. The user can use the fn -key on his keyboard to switch between the 2 modes. - -On Linux, if people were using an external keyboard or mouse, the -touchbar failed to change modes on pressing the fn key with the following -in dmesg :- - -[ 10.661445] apple-ib-als 0003:05AC:8262.0001: : USB HID v1.01 Device [Apple Inc. Ambient Light Sensor] on usb-bce-vhci-3/input0 -[ 11.830992] apple-ib-touchbar 0003:05AC:8302.0007: input: USB HID v1.01 Keyboard [Apple Inc. Touch Bar Display] on usb-bce-vhci-6/input0 -[ 12.139407] apple-ib-touchbar 0003:05AC:8102.0008: : USB HID v1.01 Device [Apple Inc. Touch Bar Backlight] on usb-bce-vhci-7/input0 -[ 12.211824] apple-ib-touchbar 0003:05AC:8102.0009: : USB HID v1.01 Device [Apple Inc. Touch Bar Backlight] on usb-bce-vhci-7/input1 -[ 14.219759] apple-ib-touchbar 0003:05AC:8302.0007: tb: Failed to set touch bar mode to 2 (-110) -[ 24.395670] apple-ib-touchbar 0003:05AC:8302.0007: tb: Failed to set touch bar mode to 2 (-110) -[ 34.635791] apple-ib-touchbar 0003:05AC:8302.0007: tb: Failed to set touch bar mode to 2 (-110) -[ 269.579233] apple-ib-touchbar 0003:05AC:8302.0007: tb: Failed to set touch bar mode to 1 (-110) - -Add the USB IDs of the touchbar found in T2 Macs to HID have special -driver list to fix the issue. - -Signed-off-by: Aditya Garg <gargaditya08@live.com> -Signed-off-by: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hid/hid-ids.h | 2 ++ - drivers/hid/hid-quirks.c | 2 ++ - 2 files changed, 4 insertions(+) - -diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index f7e4a0d06fb8..bc550e884f37 100644 ---- a/drivers/hid/hid-ids.h -+++ b/drivers/hid/hid-ids.h -@@ -185,6 +185,8 @@ - #define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 0x029c - #define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 0x029a - #define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021 0x029f -+#define USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT 0x8102 -+#define USB_DEVICE_ID_APPLE_TOUCHBAR_DISPLAY 0x8302 - - #define USB_VENDOR_ID_ASUS 0x0486 - #define USB_DEVICE_ID_ASUS_T91MT 0x0185 -diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c -index dc67717d2dab..70f602c64fd1 100644 ---- a/drivers/hid/hid-quirks.c -+++ b/drivers/hid/hid-quirks.c -@@ -314,6 +314,8 @@ static const struct hid_device_id hid_have_special_driver[] = { - { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, - { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021) }, - { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021) }, -+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT) }, -+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_TOUCHBAR_DISPLAY) }, - #endif - #if IS_ENABLED(CONFIG_HID_APPLEIR) - { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL) }, --- -2.37.3 - diff --git a/0023-ZEN-INTERACTIVE-Add-help-text-for-the-MG-LRU-tweaks.patch b/0023-ZEN-INTERACTIVE-Add-help-text-for-the-MG-LRU-tweaks.patch deleted file mode 100644 index 3fdb718aaf00..000000000000 --- a/0023-ZEN-INTERACTIVE-Add-help-text-for-the-MG-LRU-tweaks.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Steven Barrett <steven@liquorix.net> -Date: Wed, 11 Aug 2021 18:47:46 -0500 -Subject: [PATCH] ZEN: INTERACTIVE: Add help text for the MG-LRU tweaks - -The tweaks themselves get merged with the MG-LRU patchset. ---- - init/Kconfig | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/init/Kconfig b/init/Kconfig -index 73b95d3f50300fb82220fb30dfe91bb12052f111..d687aecdae2852f6737a13b7ef0ce821b3b1c196 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -130,6 +130,7 @@ config ZEN_INTERACTIVE - --- Virtual Memory Subsystem --------------------------- - - Background-reclaim hugepages...: no -> yes -+ MG-LRU minimum cache TTL.......: 0 -> 1000 ms - - config BROKEN - bool diff --git a/0024-HID-asus-ROG-NKey-Ignore-portion-of-0x5a-report.patch b/0024-HID-asus-ROG-NKey-Ignore-portion-of-0x5a-report.patch deleted file mode 100644 index dcb1277fc522..000000000000 --- a/0024-HID-asus-ROG-NKey-Ignore-portion-of-0x5a-report.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 2b32e820ccf5a0385e46d1c038b321aba9a5ec2d Mon Sep 17 00:00:00 2001 -From: Josh Kilmer <srjek2@gmail.com> -Date: Thu, 28 Jul 2022 12:51:11 -0500 -Subject: [PATCH 24/73] HID: asus: ROG NKey: Ignore portion of 0x5a report - -commit 1c0cc9d11c665020cbeb80e660fb8929164407f4 upstream. - -On an Asus G513QY, of the 5 bytes in a 0x5a report, only the first byte -is a meaningful keycode. The other bytes are zeroed out or hold garbage -from the last packet sent to the keyboard. - -This patch fixes up the report descriptor for this event so that the -general hid code will only process 1 byte for keycodes, avoiding -spurious key events and unmapped Asus vendor usagepage code warnings. - -Signed-off-by: Josh Kilmer <srjek2@gmail.com> -Signed-off-by: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hid/hid-asus.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c -index 08c9a9a60ae4..b59c3dafa6a4 100644 ---- a/drivers/hid/hid-asus.c -+++ b/drivers/hid/hid-asus.c -@@ -1212,6 +1212,13 @@ static __u8 *asus_report_fixup(struct hid_device *hdev, __u8 *rdesc, - rdesc = new_rdesc; - } - -+ if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD && -+ *rsize == 331 && rdesc[190] == 0x85 && rdesc[191] == 0x5a && -+ rdesc[204] == 0x95 && rdesc[205] == 0x05) { -+ hid_info(hdev, "Fixing up Asus N-KEY keyb report descriptor\n"); -+ rdesc[205] = 0x01; -+ } -+ - return rdesc; - } - --- -2.37.3 - diff --git a/0024-ZEN-INTERACTIVE-Tune-CFS-for-interactivity.patch b/0024-ZEN-INTERACTIVE-Tune-CFS-for-interactivity.patch deleted file mode 100644 index 7ac8686580db..000000000000 --- a/0024-ZEN-INTERACTIVE-Tune-CFS-for-interactivity.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> -Date: Mon, 27 Jan 2020 18:28:13 +0100 -Subject: [PATCH] ZEN: INTERACTIVE: Tune CFS for interactivity - -5.7: -Take "sysctl_sched_nr_migrate" tune from early XanMod builds of 128. As -of 5.7, XanMod uses 256 but that may affect applications that require -timely response to IRQs. - -5.15: -Per comment [1] on our ZEN INTERACTIVE commit, reducing the cost of -migration causes the system less responsive under high load. Most -likely the combination of reduced migration cost + the higher number of -tasks that can be migrated at once contributes to this. - -To better handle this situation, restore the mainline migration cost -value and also reduce the max number of tasks that can be migrated in -batch from 128 to 64. - -If this doesn't help, we'll restore the reduced migration cost and keep -total number of tasks that can be migrated at once to 32. - -[1] https://github.com/zen-kernel/zen-kernel/commit/be5ba234ca0a5aabe74bfc7e1f636f085bd3823c#commitcomment-63159674 ---- - init/Kconfig | 8 ++++++++ - kernel/sched/core.c | 4 +++- - kernel/sched/fair.c | 23 +++++++++++++++++++++++ - 3 files changed, 34 insertions(+), 1 deletion(-) - -diff --git a/init/Kconfig b/init/Kconfig -index d687aecdae2852f6737a13b7ef0ce821b3b1c196..b93204f59bba0f0faa98082a0e358d6d83da54f0 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -132,6 +132,14 @@ config ZEN_INTERACTIVE - Background-reclaim hugepages...: no -> yes - MG-LRU minimum cache TTL.......: 0 -> 1000 ms - -+ --- CFS CPU Scheduler ---------------------------------- -+ -+ Scheduling latency.............: 6 -> 4 ms -+ Minimal granularity............: 0.75 -> 0.4 ms -+ Wakeup granularity.............: 1 -> 0.5 ms -+ Bandwidth slice size...........: 5 -> 3 ms -+ Task rebalancing threshold.....: 32 -> 64 -+ - config BROKEN - bool - -diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index da0bf6fe9ecdcf697a1f9dff304c71d0d3433155..3cbef426d646e63711343e1e58867fe654ec296f 100644 ---- a/kernel/sched/core.c -+++ b/kernel/sched/core.c -@@ -142,7 +142,9 @@ __read_mostly int sysctl_resched_latency_warn_once = 1; - * Number of tasks to iterate in a single balance run. - * Limited because this is done with IRQs disabled. - */ --#ifdef CONFIG_PREEMPT_RT -+#ifdef CONFIG_ZEN_INTERACTIVE -+const_debug unsigned int sysctl_sched_nr_migrate = 64; -+#elif defined(CONFIG_PREEMPT_RT) - const_debug unsigned int sysctl_sched_nr_migrate = 8; - #else - const_debug unsigned int sysctl_sched_nr_migrate = 32; -diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 77b2048a932622a0188f8f93680d9215559a941c..5d0a04b72787745ff785ef195812233ed77bd7d4 100644 ---- a/kernel/sched/fair.c -+++ b/kernel/sched/fair.c -@@ -68,8 +68,13 @@ - * - * (default: 6ms * (1 + ilog(ncpus)), units: nanoseconds) - */ -+#ifdef CONFIG_ZEN_INTERACTIVE -+unsigned int sysctl_sched_latency = 4000000ULL; -+static unsigned int normalized_sysctl_sched_latency = 4000000ULL; -+#else - unsigned int sysctl_sched_latency = 6000000ULL; - static unsigned int normalized_sysctl_sched_latency = 6000000ULL; -+#endif - - /* - * The initial- and re-scaling of tunables is configurable -@@ -89,8 +94,13 @@ unsigned int sysctl_sched_tunable_scaling = SCHED_TUNABLESCALING_LOG; - * - * (default: 0.75 msec * (1 + ilog(ncpus)), units: nanoseconds) - */ -+#ifdef CONFIG_ZEN_INTERACTIVE -+unsigned int sysctl_sched_min_granularity = 400000ULL; -+static unsigned int normalized_sysctl_sched_min_granularity = 400000ULL; -+#else - unsigned int sysctl_sched_min_granularity = 750000ULL; - static unsigned int normalized_sysctl_sched_min_granularity = 750000ULL; -+#endif - - /* - * Minimal preemption granularity for CPU-bound SCHED_IDLE tasks. -@@ -103,7 +113,11 @@ unsigned int sysctl_sched_idle_min_granularity = 750000ULL; - /* - * This value is kept at sysctl_sched_latency/sysctl_sched_min_granularity - */ -+#ifdef CONFIG_ZEN_INTERACTIVE -+static unsigned int sched_nr_latency = 10; -+#else - static unsigned int sched_nr_latency = 8; -+#endif - - /* - * After fork, child runs first. If set to 0 (default) then -@@ -120,8 +134,13 @@ unsigned int sysctl_sched_child_runs_first __read_mostly; - * - * (default: 1 msec * (1 + ilog(ncpus)), units: nanoseconds) - */ -+#ifdef CONFIG_ZEN_INTERACTIVE -+unsigned int sysctl_sched_wakeup_granularity = 500000UL; -+static unsigned int normalized_sysctl_sched_wakeup_granularity = 500000UL; -+#else - unsigned int sysctl_sched_wakeup_granularity = 1000000UL; - static unsigned int normalized_sysctl_sched_wakeup_granularity = 1000000UL; -+#endif - - const_debug unsigned int sysctl_sched_migration_cost = 500000UL; - -@@ -174,8 +193,12 @@ int __weak arch_asym_cpu_priority(int cpu) - * - * (default: 5 msec, units: microseconds) - */ -+#ifdef CONFIG_ZEN_INTERACTIVE -+static unsigned int sysctl_sched_cfs_bandwidth_slice = 3000UL; -+#else - static unsigned int sysctl_sched_cfs_bandwidth_slice = 5000UL; - #endif -+#endif - - #ifdef CONFIG_SYSCTL - static struct ctl_table sched_fair_sysctls[] = { diff --git a/0025-HID-nintendo-fix-rumble-worker-null-pointer-deref.patch b/0025-HID-nintendo-fix-rumble-worker-null-pointer-deref.patch deleted file mode 100644 index 145b7ec77cd5..000000000000 --- a/0025-HID-nintendo-fix-rumble-worker-null-pointer-deref.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 7c6e6c334154be16740b44dcd7638fb510b9bd91 Mon Sep 17 00:00:00 2001 -From: "Daniel J. Ogorchock" <djogorchock@gmail.com> -Date: Wed, 13 Jul 2022 16:20:59 -0400 -Subject: [PATCH 25/73] HID: nintendo: fix rumble worker null pointer deref - -commit 1ff89e06c2e5fab30274e4b02360d4241d6e605e upstream. - -We can dereference a null pointer trying to queue work to a destroyed -workqueue. - -If the device is disconnected, nintendo_hid_remove is called, in which -the rumble_queue is destroyed. Avoid using that queue to defer rumble -work once the controller state is set to JOYCON_CTLR_STATE_REMOVED. - -This eliminates the null pointer dereference. - -Signed-off-by: Daniel J. Ogorchock <djogorchock@gmail.com> -Signed-off-by: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hid/hid-nintendo.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c -index 4b1173957c17..f33a03c96ba6 100644 ---- a/drivers/hid/hid-nintendo.c -+++ b/drivers/hid/hid-nintendo.c -@@ -1222,6 +1222,7 @@ static void joycon_parse_report(struct joycon_ctlr *ctlr, - - spin_lock_irqsave(&ctlr->lock, flags); - if (IS_ENABLED(CONFIG_NINTENDO_FF) && rep->vibrator_report && -+ ctlr->ctlr_state != JOYCON_CTLR_STATE_REMOVED && - (msecs - ctlr->rumble_msecs) >= JC_RUMBLE_PERIOD_MS && - (ctlr->rumble_queue_head != ctlr->rumble_queue_tail || - ctlr->rumble_zero_countdown > 0)) { -@@ -1546,12 +1547,13 @@ static int joycon_set_rumble(struct joycon_ctlr *ctlr, u16 amp_r, u16 amp_l, - ctlr->rumble_queue_head = 0; - memcpy(ctlr->rumble_data[ctlr->rumble_queue_head], data, - JC_RUMBLE_DATA_SIZE); -- spin_unlock_irqrestore(&ctlr->lock, flags); - - /* don't wait for the periodic send (reduces latency) */ -- if (schedule_now) -+ if (schedule_now && ctlr->ctlr_state != JOYCON_CTLR_STATE_REMOVED) - queue_work(ctlr->rumble_queue, &ctlr->rumble_worker); - -+ spin_unlock_irqrestore(&ctlr->lock, flags); -+ - return 0; - } - --- -2.37.3 - diff --git a/0025-ZEN-INTERACTIVE-Tune-ondemand-governor-for-interacti.patch b/0025-ZEN-INTERACTIVE-Tune-ondemand-governor-for-interacti.patch deleted file mode 100644 index 1002b6d9030b..000000000000 --- a/0025-ZEN-INTERACTIVE-Tune-ondemand-governor-for-interacti.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> -Date: Mon, 27 Jan 2020 18:27:16 +0100 -Subject: [PATCH] ZEN: INTERACTIVE: Tune ondemand governor for interactivity - -4.10: -During some personal testing with the Dolphin emulator, MuQSS has -serious problems scaling its frequencies causing poor performance where -boosting the CPU frequencies would have fixed them. Reducing the -up_threshold to 45 with MuQSS appears to fix the issue, letting the -introduction to "Star Wars: Rogue Leader" run at 100% speed versus about -80% on my test system. - -Also, lets refactor the definitions and include some indentation to help -the reader discern what the scope of all the macros are. - -5.4: -On the last custom kernel benchmark from Phoronix with Xanmod, Michael -configured all the kernels to run using ondemand instead of the kernel's -[default selection][1]. This reminded me that another option outside of -the kernels control is the user's choice to change the cpufreq governor, -for better or for worse. - -In Liquorix, performance is the default governor whether you're running -acpi-cpufreq or intel-pstate. I expect laptop users to install TLP or -LMT to control the power balance on their system, especially when -they're plugged in or on battery. However, it's pretty clear to me a -lot of people would choose ondemand over performance since it's not -obvious it has huge performance ramifications with MuQSS, and ondemand -otherwise is "good enough" for most people. - -Lets codify lower up thresholds for MuQSS to more closely synergize with -its aggressive thread migration behavior. This way when ondemand is -configured, you get sort of a "performance-lite" type of result but with -the power savings you expect when leaving the running system idle. - -[1]: https://www.phoronix.com/scan.php?page=article&item=xanmod-2020-kernel - -5.14: -Although CFS and similar schedulers (BMQ, PDS, and CacULE), reuse a lot -more of mainline scheduling and do a good job of pinning single threaded -tasks to their respective core, there's still applications that -confusingly run steady near 50% and benefit from going full speed or -turbo when they need to run (emulators for more recent consoles come to -mind). - -Drop the up threshold for all non-MuQSS schedulers from 80/95 to 55/60. - -5.15: -Remove MuQSS cpufreq configuration. ---- - drivers/cpufreq/cpufreq_ondemand.c | 8 +++++++- - init/Kconfig | 6 ++++++ - 2 files changed, 13 insertions(+), 1 deletion(-) - -diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c -index e8fbf970ff07888c7aa82eb67ee6c388d92c9fc7..4f57f8c568907384d9f017bbcee55a1769f601d5 100644 ---- a/drivers/cpufreq/cpufreq_ondemand.c -+++ b/drivers/cpufreq/cpufreq_ondemand.c -@@ -18,10 +18,16 @@ - #include "cpufreq_ondemand.h" - - /* On-demand governor macros */ -+#if defined(CONFIG_ZEN_INTERACTIVE) -+#define DEF_FREQUENCY_UP_THRESHOLD (55) -+#define MICRO_FREQUENCY_UP_THRESHOLD (60) -+#define DEF_SAMPLING_DOWN_FACTOR (5) -+#else - #define DEF_FREQUENCY_UP_THRESHOLD (80) -+#define MICRO_FREQUENCY_UP_THRESHOLD (95) - #define DEF_SAMPLING_DOWN_FACTOR (1) -+#endif - #define MAX_SAMPLING_DOWN_FACTOR (100000) --#define MICRO_FREQUENCY_UP_THRESHOLD (95) - #define MICRO_FREQUENCY_MIN_SAMPLE_RATE (10000) - #define MIN_FREQUENCY_UP_THRESHOLD (1) - #define MAX_FREQUENCY_UP_THRESHOLD (100) -diff --git a/init/Kconfig b/init/Kconfig -index b93204f59bba0f0faa98082a0e358d6d83da54f0..7a6abc935e069d420b680567f2c48523effabce4 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -140,6 +140,12 @@ config ZEN_INTERACTIVE - Bandwidth slice size...........: 5 -> 3 ms - Task rebalancing threshold.....: 32 -> 64 - -+ --- CPUFreq Settings ----------------------------------- -+ -+ Ondemand sampling down factor..: 1 -> 5 -+ Ondemand default up threshold..: 80 -> 55 -+ Ondemand micro up threshold....: 95 -> 60 -+ - config BROKEN - bool - diff --git a/0026-HID-thrustmaster-Add-sparco-wheel-and-fix-array-leng.patch b/0026-HID-thrustmaster-Add-sparco-wheel-and-fix-array-leng.patch deleted file mode 100644 index f220eb6f76c5..000000000000 --- a/0026-HID-thrustmaster-Add-sparco-wheel-and-fix-array-leng.patch +++ /dev/null @@ -1,44 +0,0 @@ -From a32046896fe1ad944fd61aec3127485066c4eff4 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20H=C3=BCbner?= <michaelh.95@t-online.de> -Date: Fri, 5 Aug 2022 10:05:23 +0200 -Subject: [PATCH 26/73] HID: thrustmaster: Add sparco wheel and fix array - length -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -commit d9a17651f3749e69890db57ca66e677dfee70829 upstream. - -Add device id for the Sparco R383 Mod wheel. - -Fix wheel info array length to match actual wheel count present in the array. - -Signed-off-by: Michael Hübner <michaelh.95@t-online.de> -Signed-off-by: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hid/hid-thrustmaster.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/hid/hid-thrustmaster.c b/drivers/hid/hid-thrustmaster.c -index c3e6d69fdfbd..cf1679b0d4fb 100644 ---- a/drivers/hid/hid-thrustmaster.c -+++ b/drivers/hid/hid-thrustmaster.c -@@ -67,12 +67,13 @@ static const struct tm_wheel_info tm_wheels_infos[] = { - {0x0200, 0x0005, "Thrustmaster T300RS (Missing Attachment)"}, - {0x0206, 0x0005, "Thrustmaster T300RS"}, - {0x0209, 0x0005, "Thrustmaster T300RS (Open Wheel Attachment)"}, -+ {0x020a, 0x0005, "Thrustmaster T300RS (Sparco R383 Mod)"}, - {0x0204, 0x0005, "Thrustmaster T300 Ferrari Alcantara Edition"}, - {0x0002, 0x0002, "Thrustmaster T500RS"} - //{0x0407, 0x0001, "Thrustmaster TMX"} - }; - --static const uint8_t tm_wheels_infos_length = 4; -+static const uint8_t tm_wheels_infos_length = 7; - - /* - * This structs contains (in little endian) the response data --- -2.37.3 - diff --git a/0026-ZEN-INTERACTIVE-Document-PDS-BMQ-configuration.patch b/0026-ZEN-INTERACTIVE-Document-PDS-BMQ-configuration.patch deleted file mode 100644 index 551bbb0e3151..000000000000 --- a/0026-ZEN-INTERACTIVE-Document-PDS-BMQ-configuration.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Steven Barrett <steven@liquorix.net> -Date: Sun, 19 Sep 2021 16:03:36 -0500 -Subject: [PATCH] ZEN: INTERACTIVE: Document PDS/BMQ configuration - ---- - init/Kconfig | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/init/Kconfig b/init/Kconfig -index 7a6abc935e069d420b680567f2c48523effabce4..6a409356b1aae9bf11399a031e0b3c69962f1370 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -140,6 +140,10 @@ config ZEN_INTERACTIVE - Bandwidth slice size...........: 5 -> 3 ms - Task rebalancing threshold.....: 32 -> 64 - -+ --- PDS/BMQ CPU Scheduler ------------------------------ -+ -+ Scheduling timeslice...........: 4 -> 2 ms -+ - --- CPUFreq Settings ----------------------------------- - - Ondemand sampling down factor..: 1 -> 5 diff --git a/0027-HID-intel-ish-hid-ipc-Add-Meteor-Lake-PCI-device-ID.patch b/0027-HID-intel-ish-hid-ipc-Add-Meteor-Lake-PCI-device-ID.patch deleted file mode 100644 index a3574351d744..000000000000 --- a/0027-HID-intel-ish-hid-ipc-Add-Meteor-Lake-PCI-device-ID.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 1d7df13d223b4bdf52ba51eec15d7161235bdde4 Mon Sep 17 00:00:00 2001 -From: Even Xu <even.xu@intel.com> -Date: Tue, 23 Aug 2022 09:10:59 +0800 -Subject: [PATCH 27/73] HID: intel-ish-hid: ipc: Add Meteor Lake PCI device ID - -commit 467249a7dff68451868ca79696aef69764193a8a upstream. - -Add device ID of Meteor Lake P into ishtp support list. - -Signed-off-by: Even Xu <even.xu@intel.com> -Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> -Signed-off-by: Jiri Kosina <jkosina@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/hid/intel-ish-hid/ipc/hw-ish.h | 1 + - drivers/hid/intel-ish-hid/ipc/pci-ish.c | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/drivers/hid/intel-ish-hid/ipc/hw-ish.h b/drivers/hid/intel-ish-hid/ipc/hw-ish.h -index e600dbf04dfc..fc108f19a64c 100644 ---- a/drivers/hid/intel-ish-hid/ipc/hw-ish.h -+++ b/drivers/hid/intel-ish-hid/ipc/hw-ish.h -@@ -32,6 +32,7 @@ - #define ADL_P_DEVICE_ID 0x51FC - #define ADL_N_DEVICE_ID 0x54FC - #define RPL_S_DEVICE_ID 0x7A78 -+#define MTL_P_DEVICE_ID 0x7E45 - - #define REVISION_ID_CHT_A0 0x6 - #define REVISION_ID_CHT_Ax_SI 0x0 -diff --git a/drivers/hid/intel-ish-hid/ipc/pci-ish.c b/drivers/hid/intel-ish-hid/ipc/pci-ish.c -index 2c67ec17bec6..7120b30ac51d 100644 ---- a/drivers/hid/intel-ish-hid/ipc/pci-ish.c -+++ b/drivers/hid/intel-ish-hid/ipc/pci-ish.c -@@ -43,6 +43,7 @@ static const struct pci_device_id ish_pci_tbl[] = { - {PCI_DEVICE(PCI_VENDOR_ID_INTEL, ADL_P_DEVICE_ID)}, - {PCI_DEVICE(PCI_VENDOR_ID_INTEL, ADL_N_DEVICE_ID)}, - {PCI_DEVICE(PCI_VENDOR_ID_INTEL, RPL_S_DEVICE_ID)}, -+ {PCI_DEVICE(PCI_VENDOR_ID_INTEL, MTL_P_DEVICE_ID)}, - {0, } - }; - MODULE_DEVICE_TABLE(pci, ish_pci_tbl); --- -2.37.3 - diff --git a/0027-ZEN-INTERACTIVE-mm-Disable-unevictable-compaction.patch b/0027-ZEN-INTERACTIVE-mm-Disable-unevictable-compaction.patch deleted file mode 100644 index 9d7ae6ff3ff1..000000000000 --- a/0027-ZEN-INTERACTIVE-mm-Disable-unevictable-compaction.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Steven Barrett <steven@liquorix.net> -Date: Sat, 5 Mar 2022 11:37:14 -0600 -Subject: [PATCH] ZEN: INTERACTIVE: mm: Disable unevictable compaction - -This option is already disabled when CONFIG_PREEMPT_RT is enabled, lets -turn it off when CONFIG_ZEN_INTERACTIVE is set as well. ---- - init/Kconfig | 1 + - mm/compaction.c | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/init/Kconfig b/init/Kconfig -index 6a409356b1aae9bf11399a031e0b3c69962f1370..205048962a678d7fea33263ac40cc6b1b3c3dd8e 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -131,6 +131,7 @@ config ZEN_INTERACTIVE - - Background-reclaim hugepages...: no -> yes - MG-LRU minimum cache TTL.......: 0 -> 1000 ms -+ Compact Unevictable............: 1 -> 0 - - --- CFS CPU Scheduler ---------------------------------- - -diff --git a/mm/compaction.c b/mm/compaction.c -index 1f89b969c12bf5d76f10b4adcf3b6dec707a1cfc..04b62fb353b4f05268f8de3c4fcbcccc1edfde46 100644 ---- a/mm/compaction.c -+++ b/mm/compaction.c -@@ -1726,7 +1726,7 @@ typedef enum { - * Allow userspace to control policy on scanning the unevictable LRU for - * compactable pages. - */ --#ifdef CONFIG_PREEMPT_RT -+#if defined(CONFIG_PREEMPT_RT) || defined(CONFIG_ZEN_INTERACTIVE) - int sysctl_compact_unevictable_allowed __read_mostly = 0; - #else - int sysctl_compact_unevictable_allowed __read_mostly = 1; diff --git a/0028-ZEN-INTERACTIVE-mm-Disable-proactive-compaction-by-d.patch b/0028-ZEN-INTERACTIVE-mm-Disable-proactive-compaction-by-d.patch deleted file mode 100644 index 4bcd0d2080e5..000000000000 --- a/0028-ZEN-INTERACTIVE-mm-Disable-proactive-compaction-by-d.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Sultan Alsawaf <sultan@kerneltoast.com> -Date: Sat, 24 Oct 2020 22:17:49 -0700 -Subject: [PATCH] ZEN: INTERACTIVE: mm: Disable proactive compaction by default - -On-demand compaction works fine assuming that you don't have a need to -spam the page allocator nonstop for large order page allocations. - -Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com> ---- - init/Kconfig | 1 + - mm/compaction.c | 4 ++++ - 2 files changed, 5 insertions(+) - -diff --git a/init/Kconfig b/init/Kconfig -index 205048962a678d7fea33263ac40cc6b1b3c3dd8e..a949de64fd4a73543722c96aaa9c7e534bb4c26a 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -132,6 +132,7 @@ config ZEN_INTERACTIVE - Background-reclaim hugepages...: no -> yes - MG-LRU minimum cache TTL.......: 0 -> 1000 ms - Compact Unevictable............: 1 -> 0 -+ Proactive Compaction...........: 20 -> 0 - - --- CFS CPU Scheduler ---------------------------------- - -diff --git a/mm/compaction.c b/mm/compaction.c -index 04b62fb353b4f05268f8de3c4fcbcccc1edfde46..e813973ee0f183285636f31eda327594dbafeb80 100644 ---- a/mm/compaction.c -+++ b/mm/compaction.c -@@ -2718,7 +2718,11 @@ static void compact_nodes(void) - * aggressively the kernel should compact memory in the - * background. It takes values in the range [0, 100]. - */ -+#ifdef CONFIG_ZEN_INTERACTIVE -+unsigned int __read_mostly sysctl_compaction_proactiveness; -+#else - unsigned int __read_mostly sysctl_compaction_proactiveness = 20; -+#endif - - int compaction_proactiveness_sysctl_handler(struct ctl_table *table, int write, - void *buffer, size_t *length, loff_t *ppos) diff --git a/0028-mmc-mtk-sd-Clear-interrupts-when-cqe-off-disable.patch b/0028-mmc-mtk-sd-Clear-interrupts-when-cqe-off-disable.patch deleted file mode 100644 index e2a9459eb7f4..000000000000 --- a/0028-mmc-mtk-sd-Clear-interrupts-when-cqe-off-disable.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 1c137c46d16e33b71ef92daf1882d5443fa2ec93 Mon Sep 17 00:00:00 2001 -From: Wenbin Mei <wenbin.mei@mediatek.com> -Date: Thu, 28 Jul 2022 16:00:48 +0800 -Subject: [PATCH 28/73] mmc: mtk-sd: Clear interrupts when cqe off/disable - -[ Upstream commit cc5d1692600613e72f32af60e27330fe0c79f4fe ] - -Currently we don't clear MSDC interrupts when cqe off/disable, which led -to the data complete interrupt will be reserved for the next command. -If the next command with data transfer after cqe off/disable, we process -the CMD ready interrupt and trigger DMA start for data, but the data -complete interrupt is already exists, then SW assume that the data transfer -is complete, SW will trigger DMA stop, but the data may not be transmitted -yet or is transmitting, so we may encounter the following error: -mtk-msdc 11230000.mmc: CMD bus busy detected. - -Signed-off-by: Wenbin Mei <wenbin.mei@mediatek.com> -Fixes: 88bd652b3c74 ("mmc: mediatek: command queue support") -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/r/20220728080048.21336-1-wenbin.mei@mediatek.com -Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/mmc/host/mtk-sd.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c -index 9da4489dc345..378a26a1825c 100644 ---- a/drivers/mmc/host/mtk-sd.c -+++ b/drivers/mmc/host/mtk-sd.c -@@ -2414,6 +2414,9 @@ static void msdc_cqe_disable(struct mmc_host *mmc, bool recovery) - /* disable busy check */ - sdr_clr_bits(host->base + MSDC_PATCH_BIT1, MSDC_PB1_BUSY_CHECK_SEL); - -+ val = readl(host->base + MSDC_INT); -+ writel(val, host->base + MSDC_INT); -+ - if (recovery) { - sdr_set_field(host->base + MSDC_DMA_CTRL, - MSDC_DMA_CTRL_STOP, 1); -@@ -2871,11 +2874,14 @@ static int __maybe_unused msdc_suspend(struct device *dev) - { - struct mmc_host *mmc = dev_get_drvdata(dev); - int ret; -+ u32 val; - - if (mmc->caps2 & MMC_CAP2_CQE) { - ret = cqhci_suspend(mmc); - if (ret) - return ret; -+ val = readl(((struct msdc_host *)mmc_priv(mmc))->base + MSDC_INT); -+ writel(val, ((struct msdc_host *)mmc_priv(mmc))->base + MSDC_INT); - } - - return pm_runtime_force_suspend(dev); --- -2.37.3 - diff --git a/0029-ZEN-INTERACTIVE-dm-crypt-Disable-workqueues-for-cryp.patch b/0029-ZEN-INTERACTIVE-dm-crypt-Disable-workqueues-for-cryp.patch deleted file mode 100644 index 7f3c9554db69..000000000000 --- a/0029-ZEN-INTERACTIVE-dm-crypt-Disable-workqueues-for-cryp.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Steven Barrett <steven@liquorix.net> -Date: Sat, 21 May 2022 15:15:09 -0500 -Subject: [PATCH] ZEN: INTERACTIVE: dm-crypt: Disable workqueues for crypto ops - -Queueing in dm-crypt for crypto operations reduces performance on modern -systems. As discussed in an article from Cloudflare, they discovered -that queuing was introduced because the crypto subsystem used to be -synchronous. Since it's now asynchronous, we get double queueing when -using the subsystem through dm-crypt. This is obviously undesirable and -reduces throughput and increases latency. - -Disable queueing when using our Zen Interactive configuration. - -Fixes: https://github.com/zen-kernel/zen-kernel/issues/282 ---- - drivers/md/dm-crypt.c | 5 +++++ - init/Kconfig | 1 + - 2 files changed, 6 insertions(+) - -diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c -index 159c6806c19b8991fdcf33121f6c130fa1882f7f..f092d69da90afc8d429355c59bbdb60eb9d8a476 100644 ---- a/drivers/md/dm-crypt.c -+++ b/drivers/md/dm-crypt.c -@@ -3137,6 +3137,11 @@ static int crypt_ctr_optional(struct dm_target *ti, unsigned int argc, char **ar - } - } - -+#ifdef CONFIG_ZEN_INTERACTIVE -+ set_bit(DM_CRYPT_NO_READ_WORKQUEUE, &cc->flags); -+ set_bit(DM_CRYPT_NO_WRITE_WORKQUEUE, &cc->flags); -+#endif -+ - return 0; - } - -diff --git a/init/Kconfig b/init/Kconfig -index a949de64fd4a73543722c96aaa9c7e534bb4c26a..ebc418581f41d0816c76981b3fa5f4d9306ded98 100644 ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -126,6 +126,7 @@ config ZEN_INTERACTIVE - - Default scheduler for SQ..: mq-deadline -> bfq - Default scheduler for MQ..: none -> kyber -+ DM-Crypt Workqueues.......: on -> off - - --- Virtual Memory Subsystem --------------------------- - diff --git a/0029-mmc-sdhci-of-dwcmshc-add-reset-call-back-for-rockchi.patch b/0029-mmc-sdhci-of-dwcmshc-add-reset-call-back-for-rockchi.patch deleted file mode 100644 index c41845c29e0e..000000000000 --- a/0029-mmc-sdhci-of-dwcmshc-add-reset-call-back-for-rockchi.patch +++ /dev/null @@ -1,92 +0,0 @@ -From d1541cdf5aecb0b85c26624478b154cce920281b Mon Sep 17 00:00:00 2001 -From: Yifeng Zhao <yifeng.zhao@rock-chips.com> -Date: Wed, 4 May 2022 23:32:39 +0200 -Subject: [PATCH 29/73] mmc: sdhci-of-dwcmshc: add reset call back for rockchip - Socs - -[ Upstream commit 70f832206fe72e9998b46363e8e59e89b0b757bc ] - -The reset function build in the SDHCI will not reset the logic -circuit related to the tuning function, which may cause data -reading errors. Resetting the complete SDHCI controller through -the reset controller fixes the issue. - -Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com> -[rebase, use optional variant of reset getter] -Acked-by: Adrian Hunter <adrian.hunter@intel.com> -Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> -Link: https://lore.kernel.org/r/20220504213251.264819-10-sebastian.reichel@collabora.com -Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/mmc/host/sdhci-of-dwcmshc.c | 26 +++++++++++++++++++++++++- - 1 file changed, 25 insertions(+), 1 deletion(-) - -diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c -index bac874ab0b33..3a1b5ba36405 100644 ---- a/drivers/mmc/host/sdhci-of-dwcmshc.c -+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c -@@ -15,6 +15,7 @@ - #include <linux/module.h> - #include <linux/of.h> - #include <linux/of_device.h> -+#include <linux/reset.h> - #include <linux/sizes.h> - - #include "sdhci-pltfm.h" -@@ -63,6 +64,7 @@ - struct rk3568_priv { - /* Rockchip specified optional clocks */ - struct clk_bulk_data rockchip_clks[RK3568_MAX_CLKS]; -+ struct reset_control *reset; - u8 txclk_tapnum; - }; - -@@ -255,6 +257,21 @@ static void dwcmshc_rk3568_set_clock(struct sdhci_host *host, unsigned int clock - sdhci_writel(host, extra, DWCMSHC_EMMC_DLL_STRBIN); - } - -+static void rk35xx_sdhci_reset(struct sdhci_host *host, u8 mask) -+{ -+ struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); -+ struct dwcmshc_priv *dwc_priv = sdhci_pltfm_priv(pltfm_host); -+ struct rk35xx_priv *priv = dwc_priv->priv; -+ -+ if (mask & SDHCI_RESET_ALL && priv->reset) { -+ reset_control_assert(priv->reset); -+ udelay(1); -+ reset_control_deassert(priv->reset); -+ } -+ -+ sdhci_reset(host, mask); -+} -+ - static const struct sdhci_ops sdhci_dwcmshc_ops = { - .set_clock = sdhci_set_clock, - .set_bus_width = sdhci_set_bus_width, -@@ -269,7 +286,7 @@ static const struct sdhci_ops sdhci_dwcmshc_rk3568_ops = { - .set_bus_width = sdhci_set_bus_width, - .set_uhs_signaling = dwcmshc_set_uhs_signaling, - .get_max_clock = sdhci_pltfm_clk_get_max_clock, -- .reset = sdhci_reset, -+ .reset = rk35xx_sdhci_reset, - .adma_write_desc = dwcmshc_adma_write_desc, - }; - -@@ -292,6 +309,13 @@ static int dwcmshc_rk3568_init(struct sdhci_host *host, struct dwcmshc_priv *dwc - int err; - struct rk3568_priv *priv = dwc_priv->priv; - -+ priv->reset = devm_reset_control_array_get_optional_exclusive(mmc_dev(host->mmc)); -+ if (IS_ERR(priv->reset)) { -+ err = PTR_ERR(priv->reset); -+ dev_err(mmc_dev(host->mmc), "failed to get reset control %d\n", err); -+ return err; -+ } -+ - priv->rockchip_clks[0].id = "axi"; - priv->rockchip_clks[1].id = "block"; - priv->rockchip_clks[2].id = "timer"; --- -2.37.3 - diff --git a/0030-mmc-sdhci-of-dwcmshc-rename-rk3568-to-rk35xx.patch b/0030-mmc-sdhci-of-dwcmshc-rename-rk3568-to-rk35xx.patch deleted file mode 100644 index 6466e967f226..000000000000 --- a/0030-mmc-sdhci-of-dwcmshc-rename-rk3568-to-rk35xx.patch +++ /dev/null @@ -1,202 +0,0 @@ -From 30841ba786ee2e55e05fa98a7c255b83313694f4 Mon Sep 17 00:00:00 2001 -From: Sebastian Reichel <sebastian.reichel@collabora.com> -Date: Wed, 4 May 2022 23:32:40 +0200 -Subject: [PATCH 30/73] mmc: sdhci-of-dwcmshc: rename rk3568 to rk35xx - -[ Upstream commit 86e1a8e1f9b555af342c53ae06284eeeab9a4263 ] - -Prepare driver for rk3588 support by renaming the internal data -structures. - -Acked-by: Adrian Hunter <adrian.hunter@intel.com> -Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> -Link: https://lore.kernel.org/r/20220504213251.264819-11-sebastian.reichel@collabora.com -Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/mmc/host/sdhci-of-dwcmshc.c | 46 ++++++++++++++--------------- - 1 file changed, 23 insertions(+), 23 deletions(-) - -diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c -index 3a1b5ba36405..f5fd88c7adef 100644 ---- a/drivers/mmc/host/sdhci-of-dwcmshc.c -+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c -@@ -56,14 +56,14 @@ - #define DLL_LOCK_WO_TMOUT(x) \ - ((((x) & DWCMSHC_EMMC_DLL_LOCKED) == DWCMSHC_EMMC_DLL_LOCKED) && \ - (((x) & DWCMSHC_EMMC_DLL_TIMEOUT) == 0)) --#define RK3568_MAX_CLKS 3 -+#define RK35xx_MAX_CLKS 3 - - #define BOUNDARY_OK(addr, len) \ - ((addr | (SZ_128M - 1)) == ((addr + len - 1) | (SZ_128M - 1))) - --struct rk3568_priv { -+struct rk35xx_priv { - /* Rockchip specified optional clocks */ -- struct clk_bulk_data rockchip_clks[RK3568_MAX_CLKS]; -+ struct clk_bulk_data rockchip_clks[RK35xx_MAX_CLKS]; - struct reset_control *reset; - u8 txclk_tapnum; - }; -@@ -178,7 +178,7 @@ static void dwcmshc_rk3568_set_clock(struct sdhci_host *host, unsigned int clock - { - struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); - struct dwcmshc_priv *dwc_priv = sdhci_pltfm_priv(pltfm_host); -- struct rk3568_priv *priv = dwc_priv->priv; -+ struct rk35xx_priv *priv = dwc_priv->priv; - u8 txclk_tapnum = DLL_TXCLK_TAPNUM_DEFAULT; - u32 extra, reg; - int err; -@@ -281,7 +281,7 @@ static const struct sdhci_ops sdhci_dwcmshc_ops = { - .adma_write_desc = dwcmshc_adma_write_desc, - }; - --static const struct sdhci_ops sdhci_dwcmshc_rk3568_ops = { -+static const struct sdhci_ops sdhci_dwcmshc_rk35xx_ops = { - .set_clock = dwcmshc_rk3568_set_clock, - .set_bus_width = sdhci_set_bus_width, - .set_uhs_signaling = dwcmshc_set_uhs_signaling, -@@ -296,18 +296,18 @@ static const struct sdhci_pltfm_data sdhci_dwcmshc_pdata = { - .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, - }; - --static const struct sdhci_pltfm_data sdhci_dwcmshc_rk3568_pdata = { -- .ops = &sdhci_dwcmshc_rk3568_ops, -+static const struct sdhci_pltfm_data sdhci_dwcmshc_rk35xx_pdata = { -+ .ops = &sdhci_dwcmshc_rk35xx_ops, - .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN | - SDHCI_QUIRK_BROKEN_TIMEOUT_VAL, - .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | - SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN, - }; - --static int dwcmshc_rk3568_init(struct sdhci_host *host, struct dwcmshc_priv *dwc_priv) -+static int dwcmshc_rk35xx_init(struct sdhci_host *host, struct dwcmshc_priv *dwc_priv) - { - int err; -- struct rk3568_priv *priv = dwc_priv->priv; -+ struct rk35xx_priv *priv = dwc_priv->priv; - - priv->reset = devm_reset_control_array_get_optional_exclusive(mmc_dev(host->mmc)); - if (IS_ERR(priv->reset)) { -@@ -319,14 +319,14 @@ static int dwcmshc_rk3568_init(struct sdhci_host *host, struct dwcmshc_priv *dwc - priv->rockchip_clks[0].id = "axi"; - priv->rockchip_clks[1].id = "block"; - priv->rockchip_clks[2].id = "timer"; -- err = devm_clk_bulk_get_optional(mmc_dev(host->mmc), RK3568_MAX_CLKS, -+ err = devm_clk_bulk_get_optional(mmc_dev(host->mmc), RK35xx_MAX_CLKS, - priv->rockchip_clks); - if (err) { - dev_err(mmc_dev(host->mmc), "failed to get clocks %d\n", err); - return err; - } - -- err = clk_bulk_prepare_enable(RK3568_MAX_CLKS, priv->rockchip_clks); -+ err = clk_bulk_prepare_enable(RK35xx_MAX_CLKS, priv->rockchip_clks); - if (err) { - dev_err(mmc_dev(host->mmc), "failed to enable clocks %d\n", err); - return err; -@@ -348,7 +348,7 @@ static int dwcmshc_rk3568_init(struct sdhci_host *host, struct dwcmshc_priv *dwc - static const struct of_device_id sdhci_dwcmshc_dt_ids[] = { - { - .compatible = "rockchip,rk3568-dwcmshc", -- .data = &sdhci_dwcmshc_rk3568_pdata, -+ .data = &sdhci_dwcmshc_rk35xx_pdata, - }, - { - .compatible = "snps,dwcmshc-sdhci", -@@ -371,7 +371,7 @@ static int dwcmshc_probe(struct platform_device *pdev) - struct sdhci_pltfm_host *pltfm_host; - struct sdhci_host *host; - struct dwcmshc_priv *priv; -- struct rk3568_priv *rk_priv = NULL; -+ struct rk35xx_priv *rk_priv = NULL; - const struct sdhci_pltfm_data *pltfm_data; - int err; - u32 extra; -@@ -426,8 +426,8 @@ static int dwcmshc_probe(struct platform_device *pdev) - host->mmc_host_ops.request = dwcmshc_request; - host->mmc_host_ops.hs400_enhanced_strobe = dwcmshc_hs400_enhanced_strobe; - -- if (pltfm_data == &sdhci_dwcmshc_rk3568_pdata) { -- rk_priv = devm_kzalloc(&pdev->dev, sizeof(struct rk3568_priv), GFP_KERNEL); -+ if (pltfm_data == &sdhci_dwcmshc_rk35xx_pdata) { -+ rk_priv = devm_kzalloc(&pdev->dev, sizeof(struct rk35xx_priv), GFP_KERNEL); - if (!rk_priv) { - err = -ENOMEM; - goto err_clk; -@@ -435,7 +435,7 @@ static int dwcmshc_probe(struct platform_device *pdev) - - priv->priv = rk_priv; - -- err = dwcmshc_rk3568_init(host, priv); -+ err = dwcmshc_rk35xx_init(host, priv); - if (err) - goto err_clk; - } -@@ -452,7 +452,7 @@ static int dwcmshc_probe(struct platform_device *pdev) - clk_disable_unprepare(pltfm_host->clk); - clk_disable_unprepare(priv->bus_clk); - if (rk_priv) -- clk_bulk_disable_unprepare(RK3568_MAX_CLKS, -+ clk_bulk_disable_unprepare(RK35xx_MAX_CLKS, - rk_priv->rockchip_clks); - free_pltfm: - sdhci_pltfm_free(pdev); -@@ -464,14 +464,14 @@ static int dwcmshc_remove(struct platform_device *pdev) - struct sdhci_host *host = platform_get_drvdata(pdev); - struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); - struct dwcmshc_priv *priv = sdhci_pltfm_priv(pltfm_host); -- struct rk3568_priv *rk_priv = priv->priv; -+ struct rk35xx_priv *rk_priv = priv->priv; - - sdhci_remove_host(host, 0); - - clk_disable_unprepare(pltfm_host->clk); - clk_disable_unprepare(priv->bus_clk); - if (rk_priv) -- clk_bulk_disable_unprepare(RK3568_MAX_CLKS, -+ clk_bulk_disable_unprepare(RK35xx_MAX_CLKS, - rk_priv->rockchip_clks); - sdhci_pltfm_free(pdev); - -@@ -484,7 +484,7 @@ static int dwcmshc_suspend(struct device *dev) - struct sdhci_host *host = dev_get_drvdata(dev); - struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); - struct dwcmshc_priv *priv = sdhci_pltfm_priv(pltfm_host); -- struct rk3568_priv *rk_priv = priv->priv; -+ struct rk35xx_priv *rk_priv = priv->priv; - int ret; - - ret = sdhci_suspend_host(host); -@@ -496,7 +496,7 @@ static int dwcmshc_suspend(struct device *dev) - clk_disable_unprepare(priv->bus_clk); - - if (rk_priv) -- clk_bulk_disable_unprepare(RK3568_MAX_CLKS, -+ clk_bulk_disable_unprepare(RK35xx_MAX_CLKS, - rk_priv->rockchip_clks); - - return ret; -@@ -507,7 +507,7 @@ static int dwcmshc_resume(struct device *dev) - struct sdhci_host *host = dev_get_drvdata(dev); - struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); - struct dwcmshc_priv *priv = sdhci_pltfm_priv(pltfm_host); -- struct rk3568_priv *rk_priv = priv->priv; -+ struct rk35xx_priv *rk_priv = priv->priv; - int ret; - - ret = clk_prepare_enable(pltfm_host->clk); -@@ -521,7 +521,7 @@ static int dwcmshc_resume(struct device *dev) - } - - if (rk_priv) { -- ret = clk_bulk_prepare_enable(RK3568_MAX_CLKS, -+ ret = clk_bulk_prepare_enable(RK35xx_MAX_CLKS, - rk_priv->rockchip_clks); - if (ret) - return ret; --- -2.37.3 - diff --git a/0031-mmc-sdhci-of-dwcmshc-Re-enable-support-for-the-BlueF.patch b/0031-mmc-sdhci-of-dwcmshc-Re-enable-support-for-the-BlueF.patch deleted file mode 100644 index a75f7345c45d..000000000000 --- a/0031-mmc-sdhci-of-dwcmshc-Re-enable-support-for-the-BlueF.patch +++ /dev/null @@ -1,72 +0,0 @@ -From c9215e9018bd17ac5b4dfb1a032268e27f45a819 Mon Sep 17 00:00:00 2001 -From: Liming Sun <limings@nvidia.com> -Date: Tue, 9 Aug 2022 13:37:42 -0400 -Subject: [PATCH 31/73] mmc: sdhci-of-dwcmshc: Re-enable support for the - BlueField-3 SoC - -[ Upstream commit a0753ef66c34c1739580219dca664eda648164b7 ] - -The commit 08f3dff799d4 (mmc: sdhci-of-dwcmshc: add rockchip platform -support") introduces the use of_device_get_match_data() to check for some -chips. Unfortunately, it also breaks the BlueField-3 FW, which uses ACPI. - -To fix the problem, let's add the ACPI match data and the corresponding -quirks to re-enable the support for the BlueField-3 SoC. - -Reviewed-by: David Woods <davwoods@nvidia.com> -Signed-off-by: Liming Sun <limings@nvidia.com> -Acked-by: Adrian Hunter <adrian.hunter@intel.com> -Fixes: 08f3dff799d4 ("mmc: sdhci-of-dwcmshc: add rockchip platform support") -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/r/20220809173742.178440-1-limings@nvidia.com -[Ulf: Clarified the commit message a bit] -Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/mmc/host/sdhci-of-dwcmshc.c | 16 ++++++++++++++-- - 1 file changed, 14 insertions(+), 2 deletions(-) - -diff --git a/drivers/mmc/host/sdhci-of-dwcmshc.c b/drivers/mmc/host/sdhci-of-dwcmshc.c -index f5fd88c7adef..335c88fd849c 100644 ---- a/drivers/mmc/host/sdhci-of-dwcmshc.c -+++ b/drivers/mmc/host/sdhci-of-dwcmshc.c -@@ -296,6 +296,15 @@ static const struct sdhci_pltfm_data sdhci_dwcmshc_pdata = { - .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, - }; - -+#ifdef CONFIG_ACPI -+static const struct sdhci_pltfm_data sdhci_dwcmshc_bf3_pdata = { -+ .ops = &sdhci_dwcmshc_ops, -+ .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, -+ .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | -+ SDHCI_QUIRK2_ACMD23_BROKEN, -+}; -+#endif -+ - static const struct sdhci_pltfm_data sdhci_dwcmshc_rk35xx_pdata = { - .ops = &sdhci_dwcmshc_rk35xx_ops, - .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN | -@@ -360,7 +369,10 @@ MODULE_DEVICE_TABLE(of, sdhci_dwcmshc_dt_ids); - - #ifdef CONFIG_ACPI - static const struct acpi_device_id sdhci_dwcmshc_acpi_ids[] = { -- { .id = "MLNXBF30" }, -+ { -+ .id = "MLNXBF30", -+ .driver_data = (kernel_ulong_t)&sdhci_dwcmshc_bf3_pdata, -+ }, - {} - }; - #endif -@@ -376,7 +388,7 @@ static int dwcmshc_probe(struct platform_device *pdev) - int err; - u32 extra; - -- pltfm_data = of_device_get_match_data(&pdev->dev); -+ pltfm_data = device_get_match_data(&pdev->dev); - if (!pltfm_data) { - dev_err(&pdev->dev, "Error: No device match data found\n"); - return -ENODEV; --- -2.37.3 - diff --git a/0032-fs-ntfs3-Fix-work-with-fragmented-xattr.patch b/0032-fs-ntfs3-Fix-work-with-fragmented-xattr.patch deleted file mode 100644 index d7a1e8b3f91b..000000000000 --- a/0032-fs-ntfs3-Fix-work-with-fragmented-xattr.patch +++ /dev/null @@ -1,44 +0,0 @@ -From d875be57a21586f2ebdacb04afa134932b4d4d91 Mon Sep 17 00:00:00 2001 -From: Konstantin Komarov <almaz.alexandrovich@paragon-software.com> -Date: Fri, 13 May 2022 19:54:23 +0300 -Subject: [PATCH 32/73] fs/ntfs3: Fix work with fragmented xattr - -[ Upstream commit 42f86b1226a42bfc79a7125af435432ad4680a32 ] - -In some cases xattr is too fragmented, -so we need to load it before writing. - -Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - fs/ntfs3/xattr.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/fs/ntfs3/xattr.c b/fs/ntfs3/xattr.c -index 3629049decac..e3d443ccb9be 100644 ---- a/fs/ntfs3/xattr.c -+++ b/fs/ntfs3/xattr.c -@@ -118,7 +118,7 @@ static int ntfs_read_ea(struct ntfs_inode *ni, struct EA_FULL **ea, - - run_init(&run); - -- err = attr_load_runs(attr_ea, ni, &run, NULL); -+ err = attr_load_runs_range(ni, ATTR_EA, NULL, 0, &run, 0, size); - if (!err) - err = ntfs_read_run_nb(sbi, &run, 0, ea_p, size, NULL); - run_close(&run); -@@ -444,6 +444,11 @@ static noinline int ntfs_set_ea(struct inode *inode, const char *name, - /* Delete xattr, ATTR_EA */ - ni_remove_attr_le(ni, attr, mi, le); - } else if (attr->non_res) { -+ err = attr_load_runs_range(ni, ATTR_EA, NULL, 0, &ea_run, 0, -+ size); -+ if (err) -+ goto out; -+ - err = ntfs_sb_write_run(sbi, &ea_run, 0, ea_all, size, 0); - if (err) - goto out; --- -2.37.3 - diff --git a/0033-ASoC-sh-rz-ssi-Improve-error-handling-in-rz_ssi_prob.patch b/0033-ASoC-sh-rz-ssi-Improve-error-handling-in-rz_ssi_prob.patch deleted file mode 100644 index 77c32942d5ba..000000000000 --- a/0033-ASoC-sh-rz-ssi-Improve-error-handling-in-rz_ssi_prob.patch +++ /dev/null @@ -1,78 +0,0 @@ -From dc4351487a55899ad73a286391c1b58604754956 Mon Sep 17 00:00:00 2001 -From: Biju Das <biju.das.jz@bp.renesas.com> -Date: Thu, 28 Jul 2022 10:26:12 +0100 -Subject: [PATCH 33/73] ASoC: sh: rz-ssi: Improve error handling in - rz_ssi_probe() error path - -[ Upstream commit c75ed9f54ce8d349fee557f2b471a4d637ed2a6b ] - -We usually do cleanup in reverse order of init. Currently in case of -error rz_ssi_release_dma_channels() done in the reverse order. This -patch improves error handling in rz_ssi_probe() error path. - -While at it, use "goto cleanup" style to reduce code duplication. - -Reported-by: Pavel Machek <pavel@denx.de> -Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> -Link: https://lore.kernel.org/r/20220728092612.38858-1-biju.das.jz@bp.renesas.com -Signed-off-by: Mark Brown <broonie@kernel.org> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - sound/soc/sh/rz-ssi.c | 26 +++++++++++++++----------- - 1 file changed, 15 insertions(+), 11 deletions(-) - -diff --git a/sound/soc/sh/rz-ssi.c b/sound/soc/sh/rz-ssi.c -index e392de7a262e..3d74acffec11 100644 ---- a/sound/soc/sh/rz-ssi.c -+++ b/sound/soc/sh/rz-ssi.c -@@ -1016,32 +1016,36 @@ static int rz_ssi_probe(struct platform_device *pdev) - - ssi->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL); - if (IS_ERR(ssi->rstc)) { -- rz_ssi_release_dma_channels(ssi); -- return PTR_ERR(ssi->rstc); -+ ret = PTR_ERR(ssi->rstc); -+ goto err_reset; - } - - reset_control_deassert(ssi->rstc); - pm_runtime_enable(&pdev->dev); - ret = pm_runtime_resume_and_get(&pdev->dev); - if (ret < 0) { -- rz_ssi_release_dma_channels(ssi); -- pm_runtime_disable(ssi->dev); -- reset_control_assert(ssi->rstc); -- return dev_err_probe(ssi->dev, ret, "pm_runtime_resume_and_get failed\n"); -+ dev_err(&pdev->dev, "pm_runtime_resume_and_get failed\n"); -+ goto err_pm; - } - - ret = devm_snd_soc_register_component(&pdev->dev, &rz_ssi_soc_component, - rz_ssi_soc_dai, - ARRAY_SIZE(rz_ssi_soc_dai)); - if (ret < 0) { -- rz_ssi_release_dma_channels(ssi); -- -- pm_runtime_put(ssi->dev); -- pm_runtime_disable(ssi->dev); -- reset_control_assert(ssi->rstc); - dev_err(&pdev->dev, "failed to register snd component\n"); -+ goto err_snd_soc; - } - -+ return 0; -+ -+err_snd_soc: -+ pm_runtime_put(ssi->dev); -+err_pm: -+ pm_runtime_disable(ssi->dev); -+ reset_control_assert(ssi->rstc); -+err_reset: -+ rz_ssi_release_dma_channels(ssi); -+ - return ret; - } - --- -2.37.3 - diff --git a/0034-ASoC-rt5640-Fix-the-JD-voltage-dropping-issue.patch b/0034-ASoC-rt5640-Fix-the-JD-voltage-dropping-issue.patch deleted file mode 100644 index 169d6292104d..000000000000 --- a/0034-ASoC-rt5640-Fix-the-JD-voltage-dropping-issue.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 33f15a70fe9d26554d6b8f306f088a5e3ae31e49 Mon Sep 17 00:00:00 2001 -From: Oder Chiou <oder_chiou@realtek.com> -Date: Mon, 8 Aug 2022 13:28:36 +0800 -Subject: [PATCH 34/73] ASoC: rt5640: Fix the JD voltage dropping issue - -[ Upstream commit afb176d45870048eea540991b082208270824037 ] - -The patch fixes the JD voltage dropping issue in the HDA JD using. - -Signed-off-by: Oder Chiou <oder_chiou@realtek.com> -Reported-by: Mohan Kumar D <mkumard@nvidia.com> -Link: https://lore.kernel.org/r/20220808052836.25791-1-oder_chiou@realtek.com -Signed-off-by: Mark Brown <broonie@kernel.org> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - sound/soc/codecs/rt5640.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c -index 18b3da9211e3..5ada0d318d0f 100644 ---- a/sound/soc/codecs/rt5640.c -+++ b/sound/soc/codecs/rt5640.c -@@ -1986,7 +1986,7 @@ static int rt5640_set_bias_level(struct snd_soc_component *component, - snd_soc_component_write(component, RT5640_PWR_MIXER, 0x0000); - if (rt5640->jd_src == RT5640_JD_SRC_HDA_HEADER) - snd_soc_component_write(component, RT5640_PWR_ANLG1, -- 0x0018); -+ 0x2818); - else - snd_soc_component_write(component, RT5640_PWR_ANLG1, - 0x0000); -@@ -2592,7 +2592,8 @@ static void rt5640_enable_hda_jack_detect( - snd_soc_component_update_bits(component, RT5640_DUMMY1, 0x400, 0x0); - - snd_soc_component_update_bits(component, RT5640_PWR_ANLG1, -- RT5640_PWR_VREF2, RT5640_PWR_VREF2); -+ RT5640_PWR_VREF2 | RT5640_PWR_MB | RT5640_PWR_BG, -+ RT5640_PWR_VREF2 | RT5640_PWR_MB | RT5640_PWR_BG); - usleep_range(10000, 15000); - snd_soc_component_update_bits(component, RT5640_PWR_ANLG1, - RT5640_PWR_FV2, RT5640_PWR_FV2); --- -2.37.3 - diff --git a/0035-rtla-Fix-tracer-name.patch b/0035-rtla-Fix-tracer-name.patch deleted file mode 100644 index 01c9acd6208b..000000000000 --- a/0035-rtla-Fix-tracer-name.patch +++ /dev/null @@ -1,62 +0,0 @@ -From de3f7eb0b8642ded71fae5bbf4db584933da6c7d Mon Sep 17 00:00:00 2001 -From: Alexandre Vicenzi <alexandre.vicenzi@suse.com> -Date: Mon, 8 Aug 2022 20:03:43 +0200 -Subject: [PATCH 35/73] rtla: Fix tracer name - -[ Upstream commit f1432cd24c240cedf78c0d026631e3b10052c8e1 ] - -The correct tracer name is timerlat and not timelat. - -Link: https://lore.kernel.org/linux-trace-devel/20220808180343.22262-1-alexandre.vicenzi@suse.com - -Signed-off-by: Alexandre Vicenzi <alexandre.vicenzi@suse.com> -Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - Documentation/tools/rtla/rtla-timerlat-hist.rst | 2 +- - tools/tracing/rtla/src/timerlat_hist.c | 2 +- - tools/tracing/rtla/src/timerlat_top.c | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/Documentation/tools/rtla/rtla-timerlat-hist.rst b/Documentation/tools/rtla/rtla-timerlat-hist.rst -index e12eae1f3301..6bf7f0ca4556 100644 ---- a/Documentation/tools/rtla/rtla-timerlat-hist.rst -+++ b/Documentation/tools/rtla/rtla-timerlat-hist.rst -@@ -33,7 +33,7 @@ EXAMPLE - ======= - In the example below, **rtla timerlat hist** is set to run for *10* minutes, - in the cpus *0-4*, *skipping zero* only lines. Moreover, **rtla timerlat --hist** will change the priority of the *timelat* threads to run under -+hist** will change the priority of the *timerlat* threads to run under - *SCHED_DEADLINE* priority, with a *10us* runtime every *1ms* period. The - *1ms* period is also passed to the *timerlat* tracer:: - -diff --git a/tools/tracing/rtla/src/timerlat_hist.c b/tools/tracing/rtla/src/timerlat_hist.c -index f3ec628f5e51..4b48af8a8309 100644 ---- a/tools/tracing/rtla/src/timerlat_hist.c -+++ b/tools/tracing/rtla/src/timerlat_hist.c -@@ -892,7 +892,7 @@ int timerlat_hist_main(int argc, char *argv[]) - return_value = 0; - - if (trace_is_off(&tool->trace, &record->trace)) { -- printf("rtla timelat hit stop tracing\n"); -+ printf("rtla timerlat hit stop tracing\n"); - if (params->trace_output) { - printf(" Saving trace to %s\n", params->trace_output); - save_trace_to_file(record->trace.inst, params->trace_output); -diff --git a/tools/tracing/rtla/src/timerlat_top.c b/tools/tracing/rtla/src/timerlat_top.c -index 35452a1d45e9..334271935222 100644 ---- a/tools/tracing/rtla/src/timerlat_top.c -+++ b/tools/tracing/rtla/src/timerlat_top.c -@@ -687,7 +687,7 @@ int timerlat_top_main(int argc, char *argv[]) - return_value = 0; - - if (trace_is_off(&top->trace, &record->trace)) { -- printf("rtla timelat hit stop tracing\n"); -+ printf("rtla timerlat hit stop tracing\n"); - if (params->trace_output) { - printf(" Saving trace to %s\n", params->trace_output); - save_trace_to_file(record->trace.inst, params->trace_output); --- -2.37.3 - diff --git a/0036-drm-amd-display-Add-a-missing-register-field-for-HPO.patch b/0036-drm-amd-display-Add-a-missing-register-field-for-HPO.patch deleted file mode 100644 index 07a600c3ae85..000000000000 --- a/0036-drm-amd-display-Add-a-missing-register-field-for-HPO.patch +++ /dev/null @@ -1,37 +0,0 @@ -From ae29c0c466812726347813ab44bc144f0b4644b6 Mon Sep 17 00:00:00 2001 -From: Aurabindo Pillai <aurabindo.pillai@amd.com> -Date: Fri, 29 Jul 2022 13:36:31 -0400 -Subject: [PATCH 36/73] drm/amd/display: Add a missing register field for HPO - DP stream encoder - -[ Upstream commit 37bc31f0e7da4fbad4664e64d906ae7b9009e550 ] - -[Why&How] -Add the missing definition to set the register field -HBLANK_MINIMUM_SYMBOL_WIDTH - -Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com> -Acked-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - .../gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.h b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.h -index 7c77c71591a0..82c3b3ac1f0d 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.h -+++ b/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.h -@@ -162,7 +162,8 @@ - SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_SDP_AUDIO_CONTROL0, AIP_ENABLE, mask_sh),\ - SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_SDP_AUDIO_CONTROL0, ACM_ENABLE, mask_sh),\ - SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_VID_CRC_CONTROL, CRC_ENABLE, mask_sh),\ -- SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_VID_CRC_CONTROL, CRC_CONT_MODE_ENABLE, mask_sh) -+ SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_VID_CRC_CONTROL, CRC_CONT_MODE_ENABLE, mask_sh),\ -+ SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_HBLANK_CONTROL, HBLANK_MINIMUM_SYMBOL_WIDTH, mask_sh) - - - #define DCN3_1_HPO_DP_STREAM_ENC_REG_FIELD_LIST(type) \ --- -2.37.3 - diff --git a/0037-drm-amd-display-Device-flash-garbage-before-get-in-O.patch b/0037-drm-amd-display-Device-flash-garbage-before-get-in-O.patch deleted file mode 100644 index f0107e81fb83..000000000000 --- a/0037-drm-amd-display-Device-flash-garbage-before-get-in-O.patch +++ /dev/null @@ -1,40 +0,0 @@ -From ab01ac7fa985755e29663283ec13179e99bf8fcf Mon Sep 17 00:00:00 2001 -From: Chiawen Huang <chiawen.huang@amd.com> -Date: Thu, 21 Jul 2022 21:57:05 +0800 -Subject: [PATCH 37/73] drm/amd/display: Device flash garbage before get in OS - -[ Upstream commit 9c580e8f6cd6524d4e2c3490c440110526f7ddd6 ] - -[Why] -Enabling stream with tg lock makes config settings -pending causing the garbage until tg unlock. - -[How] -Keep the original lock mechanism -The driver doesn't lock tg if plane_state is null. - -Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> -Acked-by: Tom Chung <chiahsuan.chung@amd.com> -Signed-off-by: Chiawen Huang <chiawen.huang@amd.com> -Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c -index e3a62873c0e7..d9ab27991535 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c -+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c -@@ -108,6 +108,7 @@ void dcn10_lock_all_pipes(struct dc *dc, - */ - if (pipe_ctx->top_pipe || - !pipe_ctx->stream || -+ !pipe_ctx->plane_state || - !tg->funcs->is_tg_enabled(tg)) - continue; - --- -2.37.3 - diff --git a/0038-drm-amd-display-Avoid-MPC-infinite-loop.patch b/0038-drm-amd-display-Avoid-MPC-infinite-loop.patch deleted file mode 100644 index cef646076e47..000000000000 --- a/0038-drm-amd-display-Avoid-MPC-infinite-loop.patch +++ /dev/null @@ -1,64 +0,0 @@ -From b26218b2349ac2b2141fd07430ded3786bee6910 Mon Sep 17 00:00:00 2001 -From: Josip Pavic <Josip.Pavic@amd.com> -Date: Thu, 21 Jul 2022 15:33:00 -0400 -Subject: [PATCH 38/73] drm/amd/display: Avoid MPC infinite loop - -[ Upstream commit 8de297dc046c180651c0500f8611663ae1c3828a ] - -[why] -In some cases MPC tree bottom pipe ends up point to itself. This causes -iterating from top to bottom to hang the system in an infinite loop. - -[how] -When looping to next MPC bottom pipe, check that the pointer is not same -as current to avoid infinite loop. - -Reviewed-by: Josip Pavic <Josip.Pavic@amd.com> -Reviewed-by: Jun Lei <Jun.Lei@amd.com> -Acked-by: Alex Hung <alex.hung@amd.com> -Signed-off-by: Aric Cyr <aric.cyr@amd.com> -Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c | 6 ++++++ - drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c | 6 ++++++ - 2 files changed, 12 insertions(+) - -diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c -index 11019c2c62cc..8192f1967e92 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c -+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c -@@ -126,6 +126,12 @@ struct mpcc *mpc1_get_mpcc_for_dpp(struct mpc_tree *tree, int dpp_id) - while (tmp_mpcc != NULL) { - if (tmp_mpcc->dpp_id == dpp_id) - return tmp_mpcc; -+ -+ /* avoid circular linked list */ -+ ASSERT(tmp_mpcc != tmp_mpcc->mpcc_bot); -+ if (tmp_mpcc == tmp_mpcc->mpcc_bot) -+ break; -+ - tmp_mpcc = tmp_mpcc->mpcc_bot; - } - return NULL; -diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c -index 15734db0cdea..f3c311d09319 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c -+++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c -@@ -531,6 +531,12 @@ static struct mpcc *mpc2_get_mpcc_for_dpp(struct mpc_tree *tree, int dpp_id) - while (tmp_mpcc != NULL) { - if (tmp_mpcc->dpp_id == 0xf || tmp_mpcc->dpp_id == dpp_id) - return tmp_mpcc; -+ -+ /* avoid circular linked list */ -+ ASSERT(tmp_mpcc != tmp_mpcc->mpcc_bot); -+ if (tmp_mpcc == tmp_mpcc->mpcc_bot) -+ break; -+ - tmp_mpcc = tmp_mpcc->mpcc_bot; - } - return NULL; --- -2.37.3 - diff --git a/0039-drm-amd-display-Fix-HDMI-VSIF-V3-incorrect-issue.patch b/0039-drm-amd-display-Fix-HDMI-VSIF-V3-incorrect-issue.patch deleted file mode 100644 index 70d2f1797d54..000000000000 --- a/0039-drm-amd-display-Fix-HDMI-VSIF-V3-incorrect-issue.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 71f2cb739a3cbcda4612889ce660fd8c380e3e1d Mon Sep 17 00:00:00 2001 -From: Leo Ma <hanghong.ma@amd.com> -Date: Fri, 22 Jul 2022 13:42:58 -0400 -Subject: [PATCH 39/73] drm/amd/display: Fix HDMI VSIF V3 incorrect issue - -[ Upstream commit 0591183699fceeafb4c4141072d47775de83ecfb ] - -[Why] -Reported from customer the checksum in AMD VSIF V3 is incorrect and -causing blank screen issue. - -[How] -Fix the packet length issue on AMD HDMI VSIF V3. - -Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> -Acked-by: Tom Chung <chiahsuan.chung@amd.com> -Signed-off-by: Leo Ma <hanghong.ma@amd.com> -Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - .../drm/amd/display/modules/freesync/freesync.c | 15 +++------------ - 1 file changed, 3 insertions(+), 12 deletions(-) - -diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c -index 03fa63d56fa6..948151e73573 100644 ---- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c -+++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c -@@ -615,10 +615,6 @@ static void build_vrr_infopacket_data_v1(const struct mod_vrr_params *vrr, - * Note: We should never go above the field rate of the mode timing set. - */ - infopacket->sb[8] = (unsigned char)((vrr->max_refresh_in_uhz + 500000) / 1000000); -- -- /* FreeSync HDR */ -- infopacket->sb[9] = 0; -- infopacket->sb[10] = 0; - } - - static void build_vrr_infopacket_data_v3(const struct mod_vrr_params *vrr, -@@ -686,10 +682,6 @@ static void build_vrr_infopacket_data_v3(const struct mod_vrr_params *vrr, - - /* PB16 : Reserved bits 7:1, FixedRate bit 0 */ - infopacket->sb[16] = (vrr->state == VRR_STATE_ACTIVE_FIXED) ? 1 : 0; -- -- //FreeSync HDR -- infopacket->sb[9] = 0; -- infopacket->sb[10] = 0; - } - - static void build_vrr_infopacket_fs2_data(enum color_transfer_func app_tf, -@@ -774,8 +766,7 @@ static void build_vrr_infopacket_header_v2(enum signal_type signal, - /* HB2 = [Bits 7:5 = 0] [Bits 4:0 = Length = 0x09] */ - infopacket->hb2 = 0x09; - -- *payload_size = 0x0A; -- -+ *payload_size = 0x09; - } else if (dc_is_dp_signal(signal)) { - - /* HEADER */ -@@ -824,9 +815,9 @@ static void build_vrr_infopacket_header_v3(enum signal_type signal, - infopacket->hb1 = version; - - /* HB2 = [Bits 7:5 = 0] [Bits 4:0 = Length] */ -- *payload_size = 0x10; -- infopacket->hb2 = *payload_size - 1; //-1 for checksum -+ infopacket->hb2 = 0x10; - -+ *payload_size = 0x10; - } else if (dc_is_dp_signal(signal)) { - - /* HEADER */ --- -2.37.3 - diff --git a/0040-drm-amd-display-For-stereo-keep-FLIP_ANY_FRAME.patch b/0040-drm-amd-display-For-stereo-keep-FLIP_ANY_FRAME.patch deleted file mode 100644 index 9708bf39d1da..000000000000 --- a/0040-drm-amd-display-For-stereo-keep-FLIP_ANY_FRAME.patch +++ /dev/null @@ -1,38 +0,0 @@ -From c6f7ba837efc8f12c51aecaf9570d86adb80ab90 Mon Sep 17 00:00:00 2001 -From: Alvin Lee <alvin.lee2@amd.com> -Date: Thu, 28 Jul 2022 09:51:05 -0400 -Subject: [PATCH 40/73] drm/amd/display: For stereo keep "FLIP_ANY_FRAME" - -[ Upstream commit 84ef99c728079dfd21d6bc70b4c3e4af20602b3c ] - -[Description] -Observed in stereomode that programming FLIP_LEFT_EYE -can cause hangs. Keep FLIP_ANY_FRAME in stereo mode so -the surface flip can take place before left or right eye - -Reviewed-by: Martin Leung <Martin.Leung@amd.com> -Acked-by: Tom Chung <chiahsuan.chung@amd.com> -Signed-off-by: Alvin Lee <alvin.lee2@amd.com> -Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hubp.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hubp.c b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hubp.c -index 6a4dcafb9bba..dc3e8df706b3 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hubp.c -+++ b/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hubp.c -@@ -86,7 +86,7 @@ bool hubp3_program_surface_flip_and_addr( - VMID, address->vmid); - - if (address->type == PLN_ADDR_TYPE_GRPH_STEREO) { -- REG_UPDATE(DCSURF_FLIP_CONTROL, SURFACE_FLIP_MODE_FOR_STEREOSYNC, 0x1); -+ REG_UPDATE(DCSURF_FLIP_CONTROL, SURFACE_FLIP_MODE_FOR_STEREOSYNC, 0); - REG_UPDATE(DCSURF_FLIP_CONTROL, SURFACE_FLIP_IN_STEREOSYNC, 0x1); - - } else { --- -2.37.3 - diff --git a/0041-drm-amd-display-clear-optc-underflow-before-turn-off.patch b/0041-drm-amd-display-clear-optc-underflow-before-turn-off.patch deleted file mode 100644 index 1eb0e65821bb..000000000000 --- a/0041-drm-amd-display-clear-optc-underflow-before-turn-off.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 3101839b080137c367f3f88c2a040f791de880aa Mon Sep 17 00:00:00 2001 -From: Fudong Wang <Fudong.Wang@amd.com> -Date: Wed, 27 Jul 2022 12:01:29 +0800 -Subject: [PATCH 41/73] drm/amd/display: clear optc underflow before turn off - odm clock - -[ Upstream commit b2a93490201300a749ad261b5c5d05cb50179c44 ] - -[Why] -After ODM clock off, optc underflow bit will be kept there always and clear not work. -We need to clear that before clock off. - -[How] -Clear that if have when clock off. - -Reviewed-by: Alvin Lee <alvin.lee2@amd.com> -Acked-by: Tom Chung <chiahsuan.chung@amd.com> -Signed-off-by: Fudong Wang <Fudong.Wang@amd.com> -Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c -index b1671b00ce40..2349977b0abb 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c -+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c -@@ -464,6 +464,11 @@ void optc1_enable_optc_clock(struct timing_generator *optc, bool enable) - OTG_CLOCK_ON, 1, - 1, 1000); - } else { -+ -+ //last chance to clear underflow, otherwise, it will always there due to clock is off. -+ if (optc->funcs->is_optc_underflow_occurred(optc) == true) -+ optc->funcs->clear_optc_underflow(optc); -+ - REG_UPDATE_2(OTG_CLOCK_CONTROL, - OTG_CLOCK_GATE_DIS, 0, - OTG_CLOCK_EN, 0); --- -2.37.3 - diff --git a/0042-drm-amd-display-Fix-TDR-eDP-and-USB4-display-light-u.patch b/0042-drm-amd-display-Fix-TDR-eDP-and-USB4-display-light-u.patch deleted file mode 100644 index 5b36705e89ef..000000000000 --- a/0042-drm-amd-display-Fix-TDR-eDP-and-USB4-display-light-u.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 909dae582c8f3a9a231c7bc41594787b1620a5f1 Mon Sep 17 00:00:00 2001 -From: Meenakshikumar Somasundaram <meenakshikumar.somasundaram@amd.com> -Date: Mon, 11 Jul 2022 18:37:41 -0400 -Subject: [PATCH 42/73] drm/amd/display: Fix TDR eDP and USB4 display light up - issue - -[ Upstream commit 30456ffa65469d1d2e5e1da05017e6728d24c11c ] - -[Why] -After TDR recovery, eDP and USB4 display does not light up. Because -dmub outbox notifications are not enabled after dmub reload and link -encoder assignments for the streams are not cleared before dc state -reset. - -[How] -- Dmub outbox notification is enabled after tdr recovery by issuing - inbox command to dmub. -- Link encoders for the streams are unassigned before dc state reset. - -Reviewed-by: Jimmy Kizito <Jimmy.Kizito@amd.com> -Reviewed-by: Jun Lei <Jun.Lei@amd.com> -Acked-by: Tom Chung <chiahsuan.chung@amd.com> -Signed-off-by: Meenakshikumar Somasundaram <meenakshikumar.somasundaram@amd.com> -Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/display/dc/core/dc.c | 1 + - drivers/gpu/drm/amd/display/dc/dc_link.h | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c -index f14449401188..7d69341acca0 100644 ---- a/drivers/gpu/drm/amd/display/dc/core/dc.c -+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c -@@ -3783,6 +3783,7 @@ void dc_enable_dmub_outbox(struct dc *dc) - struct dc_context *dc_ctx = dc->ctx; - - dmub_enable_outbox_notification(dc_ctx->dmub_srv); -+ DC_LOG_DC("%s: dmub outbox notifications enabled\n", __func__); - } - - /** -diff --git a/drivers/gpu/drm/amd/display/dc/dc_link.h b/drivers/gpu/drm/amd/display/dc/dc_link.h -index a3c37ee3f849..f96f53c1bc25 100644 ---- a/drivers/gpu/drm/amd/display/dc/dc_link.h -+++ b/drivers/gpu/drm/amd/display/dc/dc_link.h -@@ -337,6 +337,7 @@ enum dc_detect_reason { - DETECT_REASON_HPDRX, - DETECT_REASON_FALLBACK, - DETECT_REASON_RETRAIN, -+ DETECT_REASON_TDR, - }; - - bool dc_link_detect(struct dc_link *dc_link, enum dc_detect_reason reason); --- -2.37.3 - diff --git a/0043-drm-amd-pm-skip-pptable-override-for-smu_v13_0_7.patch b/0043-drm-amd-pm-skip-pptable-override-for-smu_v13_0_7.patch deleted file mode 100644 index df96307872b4..000000000000 --- a/0043-drm-amd-pm-skip-pptable-override-for-smu_v13_0_7.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 952d4c72d9032eec5c38249ca353d31c43be06e0 Mon Sep 17 00:00:00 2001 -From: Kenneth Feng <kenneth.feng@amd.com> -Date: Tue, 9 Aug 2022 10:13:54 +0800 -Subject: [PATCH 43/73] drm/amd/pm: skip pptable override for smu_v13_0_7 - -[ Upstream commit 4e64b529c5b04e7944b41de554ee686ecab00744 ] - -skip pptable override for smu_v13_0_7 secure boards only. - -Signed-off-by: Kenneth Feng <kenneth.feng@amd.com> -Reviewed-by: Feifei Xu <Feifei.Xu@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 10 +++------- - 1 file changed, 3 insertions(+), 7 deletions(-) - -diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c -index 5aa08c031f72..1d8a9e5b3cc0 100644 ---- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c -+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c -@@ -203,6 +203,9 @@ int smu_v13_0_init_pptable_microcode(struct smu_context *smu) - if (!adev->scpm_enabled) - return 0; - -+ if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 7)) -+ return 0; -+ - /* override pptable_id from driver parameter */ - if (amdgpu_smu_pptable_id >= 0) { - pptable_id = amdgpu_smu_pptable_id; -@@ -210,13 +213,6 @@ int smu_v13_0_init_pptable_microcode(struct smu_context *smu) - } else { - pptable_id = smu->smu_table.boot_values.pp_table_id; - -- if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 7) && -- pptable_id == 3667) -- pptable_id = 36671; -- -- if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 7) && -- pptable_id == 3688) -- pptable_id = 36881; - /* - * Temporary solution for SMU V13.0.0 with SCPM enabled: - * - use 36831 signed pptable when pp_table_id is 3683 --- -2.37.3 - diff --git a/0044-drm-amdkfd-Handle-restart-of-kfd_ioctl_wait_events.patch b/0044-drm-amdkfd-Handle-restart-of-kfd_ioctl_wait_events.patch deleted file mode 100644 index 98c1497dea94..000000000000 --- a/0044-drm-amdkfd-Handle-restart-of-kfd_ioctl_wait_events.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 21e3891abc83f2d5482c67cca2fb7f228635daaf Mon Sep 17 00:00:00 2001 -From: Felix Kuehling <Felix.Kuehling@amd.com> -Date: Thu, 4 Aug 2022 18:19:38 -0400 -Subject: [PATCH 44/73] drm/amdkfd: Handle restart of kfd_ioctl_wait_events - -[ Upstream commit bea9a56afbc4b5a41ea579b8b0dc5e189b439504 ] - -When kfd_ioctl_wait_events needs to restart due to a signal, we need to -update the timeout to account for the time already elapsed. We also need -to undo auto_reset of events that have signaled already, so that the -restarted ioctl will be able to count those signals again. - -This fixes infinite hangs when kfd_ioctl_wait_events is interrupted by a -signal. - -Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> -Reviewed-and-tested-by: Xiaogang Chen <Xiaogang.Chen@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 2 +- - drivers/gpu/drm/amd/amdkfd/kfd_events.c | 24 ++++++++++++------------ - drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 2 +- - 3 files changed, 14 insertions(+), 14 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c -index 1c7016958d6d..bfca17ca399c 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c -@@ -814,7 +814,7 @@ static int kfd_ioctl_wait_events(struct file *filp, struct kfd_process *p, - err = kfd_wait_on_events(p, args->num_events, - (void __user *)args->events_ptr, - (args->wait_for_all != 0), -- args->timeout, &args->wait_result); -+ &args->timeout, &args->wait_result); - - return err; - } -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_events.c b/drivers/gpu/drm/amd/amdkfd/kfd_events.c -index 4df9c36146ba..cbc20d779e5a 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_events.c -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_events.c -@@ -895,7 +895,8 @@ static long user_timeout_to_jiffies(uint32_t user_timeout_ms) - return msecs_to_jiffies(user_timeout_ms) + 1; - } - --static void free_waiters(uint32_t num_events, struct kfd_event_waiter *waiters) -+static void free_waiters(uint32_t num_events, struct kfd_event_waiter *waiters, -+ bool undo_auto_reset) - { - uint32_t i; - -@@ -904,6 +905,9 @@ static void free_waiters(uint32_t num_events, struct kfd_event_waiter *waiters) - spin_lock(&waiters[i].event->lock); - remove_wait_queue(&waiters[i].event->wq, - &waiters[i].wait); -+ if (undo_auto_reset && waiters[i].activated && -+ waiters[i].event && waiters[i].event->auto_reset) -+ set_event(waiters[i].event); - spin_unlock(&waiters[i].event->lock); - } - -@@ -912,7 +916,7 @@ static void free_waiters(uint32_t num_events, struct kfd_event_waiter *waiters) - - int kfd_wait_on_events(struct kfd_process *p, - uint32_t num_events, void __user *data, -- bool all, uint32_t user_timeout_ms, -+ bool all, uint32_t *user_timeout_ms, - uint32_t *wait_result) - { - struct kfd_event_data __user *events = -@@ -921,7 +925,7 @@ int kfd_wait_on_events(struct kfd_process *p, - int ret = 0; - - struct kfd_event_waiter *event_waiters = NULL; -- long timeout = user_timeout_to_jiffies(user_timeout_ms); -+ long timeout = user_timeout_to_jiffies(*user_timeout_ms); - - event_waiters = alloc_event_waiters(num_events); - if (!event_waiters) { -@@ -971,15 +975,11 @@ int kfd_wait_on_events(struct kfd_process *p, - } - - if (signal_pending(current)) { -- /* -- * This is wrong when a nonzero, non-infinite timeout -- * is specified. We need to use -- * ERESTARTSYS_RESTARTBLOCK, but struct restart_block -- * contains a union with data for each user and it's -- * in generic kernel code that I don't want to -- * touch yet. -- */ - ret = -ERESTARTSYS; -+ if (*user_timeout_ms != KFD_EVENT_TIMEOUT_IMMEDIATE && -+ *user_timeout_ms != KFD_EVENT_TIMEOUT_INFINITE) -+ *user_timeout_ms = jiffies_to_msecs( -+ max(0l, timeout-1)); - break; - } - -@@ -1020,7 +1020,7 @@ int kfd_wait_on_events(struct kfd_process *p, - event_waiters, events); - - out_unlock: -- free_waiters(num_events, event_waiters); -+ free_waiters(num_events, event_waiters, ret == -ERESTARTSYS); - mutex_unlock(&p->event_mutex); - out: - if (ret) -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -index 2585d6e61d42..c6eec54b8102 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -@@ -1314,7 +1314,7 @@ void kfd_event_free_process(struct kfd_process *p); - int kfd_event_mmap(struct kfd_process *process, struct vm_area_struct *vma); - int kfd_wait_on_events(struct kfd_process *p, - uint32_t num_events, void __user *data, -- bool all, uint32_t user_timeout_ms, -+ bool all, uint32_t *user_timeout_ms, - uint32_t *wait_result); - void kfd_signal_event_interrupt(u32 pasid, uint32_t partial_id, - uint32_t valid_id_bits); --- -2.37.3 - diff --git a/0045-drm-amd-pm-Fix-a-potential-gpu_metrics_table-memory-.patch b/0045-drm-amd-pm-Fix-a-potential-gpu_metrics_table-memory-.patch deleted file mode 100644 index 5748b221b79d..000000000000 --- a/0045-drm-amd-pm-Fix-a-potential-gpu_metrics_table-memory-.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 4b25bdb54578f3b96ff055e5d27bc1cb82950e51 Mon Sep 17 00:00:00 2001 -From: Zhen Ni <nizhen@uniontech.com> -Date: Wed, 3 Aug 2022 17:19:58 +0800 -Subject: [PATCH 45/73] drm/amd/pm: Fix a potential gpu_metrics_table memory - leak - -[ Upstream commit 5afb76522a0af0513b6dc01f84128a73206b051b ] - -Memory is allocated for gpu_metrics_table in -smu_v13_0_4_init_smc_tables(), but not freed in -smu_v13_0_4_fini_smc_tables(). This may cause memory leaks, fix it. - -Reviewed-by: Evan Quan <evan.quan@amd.com> -Signed-off-by: Zhen Ni <nizhen@uniontech.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c -index 5a17b51aa0f9..7df360c25d51 100644 ---- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c -+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c -@@ -190,6 +190,9 @@ static int smu_v13_0_4_fini_smc_tables(struct smu_context *smu) - kfree(smu_table->watermarks_table); - smu_table->watermarks_table = NULL; - -+ kfree(smu_table->gpu_metrics_table); -+ smu_table->gpu_metrics_table = NULL; -+ - return 0; - } - --- -2.37.3 - diff --git a/0046-ksmbd-return-STATUS_BAD_NETWORK_NAME-error-status-if.patch b/0046-ksmbd-return-STATUS_BAD_NETWORK_NAME-error-status-if.patch deleted file mode 100644 index 111f96df5969..000000000000 --- a/0046-ksmbd-return-STATUS_BAD_NETWORK_NAME-error-status-if.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 40f424dc1ee328832ec86df29b8939e2e1618153 Mon Sep 17 00:00:00 2001 -From: Namjae Jeon <linkinjeon@kernel.org> -Date: Mon, 8 Aug 2022 21:56:48 +0900 -Subject: [PATCH 46/73] ksmbd: return STATUS_BAD_NETWORK_NAME error status if - share is not configured - -[ Upstream commit fe54833dc8d97ef387e86f7c80537d51c503ca75 ] - -If share is not configured in smb.conf, smb2 tree connect should return -STATUS_BAD_NETWORK_NAME instead of STATUS_BAD_NETWORK_PATH. - -Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> -Reviewed-by: Hyunchul Lee <hyc.lee@gmail.com> -Signed-off-by: Steve French <stfrench@microsoft.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - fs/ksmbd/mgmt/tree_connect.c | 2 +- - fs/ksmbd/smb2pdu.c | 3 ++- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/fs/ksmbd/mgmt/tree_connect.c b/fs/ksmbd/mgmt/tree_connect.c -index 0d28e723a28c..940385c6a913 100644 ---- a/fs/ksmbd/mgmt/tree_connect.c -+++ b/fs/ksmbd/mgmt/tree_connect.c -@@ -18,7 +18,7 @@ - struct ksmbd_tree_conn_status - ksmbd_tree_conn_connect(struct ksmbd_session *sess, char *share_name) - { -- struct ksmbd_tree_conn_status status = {-EINVAL, NULL}; -+ struct ksmbd_tree_conn_status status = {-ENOENT, NULL}; - struct ksmbd_tree_connect_response *resp = NULL; - struct ksmbd_share_config *sc; - struct ksmbd_tree_connect *tree_conn = NULL; -diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c -index a9c33d15ca1f..bbb3958b6469 100644 ---- a/fs/ksmbd/smb2pdu.c -+++ b/fs/ksmbd/smb2pdu.c -@@ -1930,8 +1930,9 @@ int smb2_tree_connect(struct ksmbd_work *work) - rsp->hdr.Status = STATUS_SUCCESS; - rc = 0; - break; -+ case -ENOENT: - case KSMBD_TREE_CONN_STATUS_NO_SHARE: -- rsp->hdr.Status = STATUS_BAD_NETWORK_PATH; -+ rsp->hdr.Status = STATUS_BAD_NETWORK_NAME; - break; - case -ENOMEM: - case KSMBD_TREE_CONN_STATUS_NOMEM: --- -2.37.3 - diff --git a/0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch b/0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch deleted file mode 100644 index 3470948aca6d..000000000000 --- a/0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 0d462a681d7d98ecb1b48605f6625802acd85d31 Mon Sep 17 00:00:00 2001 -From: Li Qiong <liqiong@nfschina.com> -Date: Fri, 12 Aug 2022 11:09:54 +0800 -Subject: [PATCH 47/73] net: lan966x: fix checking for return value of - platform_get_irq_byname() - -[ Upstream commit 40b4ac880e21d917da7f3752332fa57564a4c202 ] - -The platform_get_irq_byname() returns non-zero IRQ number -or negative error number. "if (irq)" always true, chang it -to "if (irq > 0)" - -Signed-off-by: Li Qiong <liqiong@nfschina.com> -Signed-off-by: David S. Miller <davem@davemloft.net> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/net/ethernet/microchip/lan966x/lan966x_main.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c -index 1d6e3b641b2e..d928b75f3780 100644 ---- a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c -+++ b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c -@@ -710,7 +710,7 @@ static void lan966x_cleanup_ports(struct lan966x *lan966x) - disable_irq(lan966x->xtr_irq); - lan966x->xtr_irq = -ENXIO; - -- if (lan966x->ana_irq) { -+ if (lan966x->ana_irq > 0) { - disable_irq(lan966x->ana_irq); - lan966x->ana_irq = -ENXIO; - } -@@ -718,10 +718,10 @@ static void lan966x_cleanup_ports(struct lan966x *lan966x) - if (lan966x->fdma) - devm_free_irq(lan966x->dev, lan966x->fdma_irq, lan966x); - -- if (lan966x->ptp_irq) -+ if (lan966x->ptp_irq > 0) - devm_free_irq(lan966x->dev, lan966x->ptp_irq, lan966x); - -- if (lan966x->ptp_ext_irq) -+ if (lan966x->ptp_ext_irq > 0) - devm_free_irq(lan966x->dev, lan966x->ptp_ext_irq, lan966x); - } - -@@ -1049,7 +1049,7 @@ static int lan966x_probe(struct platform_device *pdev) - } - - lan966x->ana_irq = platform_get_irq_byname(pdev, "ana"); -- if (lan966x->ana_irq) { -+ if (lan966x->ana_irq > 0) { - err = devm_request_threaded_irq(&pdev->dev, lan966x->ana_irq, NULL, - lan966x_ana_irq_handler, IRQF_ONESHOT, - "ana irq", lan966x); --- -2.37.3 - diff --git a/0048-neigh-fix-possible-DoS-due-to-net-iface-start-stop-l.patch b/0048-neigh-fix-possible-DoS-due-to-net-iface-start-stop-l.patch deleted file mode 100644 index 8e1a8dd0ecd3..000000000000 --- a/0048-neigh-fix-possible-DoS-due-to-net-iface-start-stop-l.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 2dd5ed474115150d8175825bc3b56c6385c3a83b Mon Sep 17 00:00:00 2001 -From: "Denis V. Lunev" <den@openvz.org> -Date: Thu, 11 Aug 2022 18:20:11 +0300 -Subject: [PATCH 48/73] neigh: fix possible DoS due to net iface start/stop - loop - -[ Upstream commit 66ba215cb51323e4e55e38fd5f250e0fae0cbc94 ] - -Normal processing of ARP request (usually this is Ethernet broadcast -packet) coming to the host is looking like the following: -* the packet comes to arp_process() call and is passed through routing - procedure -* the request is put into the queue using pneigh_enqueue() if - corresponding ARP record is not local (common case for container - records on the host) -* the request is processed by timer (within 80 jiffies by default) and - ARP reply is sent from the same arp_process() using - NEIGH_CB(skb)->flags & LOCALLY_ENQUEUED condition (flag is set inside - pneigh_enqueue()) - -And here the problem comes. Linux kernel calls pneigh_queue_purge() -which destroys the whole queue of ARP requests on ANY network interface -start/stop event through __neigh_ifdown(). - -This is actually not a problem within the original world as network -interface start/stop was accessible to the host 'root' only, which -could do more destructive things. But the world is changed and there -are Linux containers available. Here container 'root' has an access -to this API and could be considered as untrusted user in the hosting -(container's) world. - -Thus there is an attack vector to other containers on node when -container's root will endlessly start/stop interfaces. We have observed -similar situation on a real production node when docker container was -doing such activity and thus other containers on the node become not -accessible. - -The patch proposed doing very simple thing. It drops only packets from -the same namespace in the pneigh_queue_purge() where network interface -state change is detected. This is enough to prevent the problem for the -whole node preserving original semantics of the code. - -v2: - - do del_timer_sync() if queue is empty after pneigh_queue_purge() -v3: - - rebase to net tree - -Cc: "David S. Miller" <davem@davemloft.net> -Cc: Eric Dumazet <edumazet@google.com> -Cc: Jakub Kicinski <kuba@kernel.org> -Cc: Paolo Abeni <pabeni@redhat.com> -Cc: Daniel Borkmann <daniel@iogearbox.net> -Cc: David Ahern <dsahern@kernel.org> -Cc: Yajun Deng <yajun.deng@linux.dev> -Cc: Roopa Prabhu <roopa@nvidia.com> -Cc: Christian Brauner <brauner@kernel.org> -Cc: netdev@vger.kernel.org -Cc: linux-kernel@vger.kernel.org -Cc: Alexey Kuznetsov <kuznet@ms2.inr.ac.ru> -Cc: Alexander Mikhalitsyn <alexander.mikhalitsyn@virtuozzo.com> -Cc: Konstantin Khorenko <khorenko@virtuozzo.com> -Cc: kernel@openvz.org -Cc: devel@openvz.org -Investigated-by: Alexander Mikhalitsyn <alexander.mikhalitsyn@virtuozzo.com> -Signed-off-by: Denis V. Lunev <den@openvz.org> -Signed-off-by: David S. Miller <davem@davemloft.net> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - net/core/neighbour.c | 25 +++++++++++++++++-------- - 1 file changed, 17 insertions(+), 8 deletions(-) - -diff --git a/net/core/neighbour.c b/net/core/neighbour.c -index 54625287ee5b..19d99d1eff53 100644 ---- a/net/core/neighbour.c -+++ b/net/core/neighbour.c -@@ -307,14 +307,23 @@ static int neigh_del_timer(struct neighbour *n) - return 0; - } - --static void pneigh_queue_purge(struct sk_buff_head *list) -+static void pneigh_queue_purge(struct sk_buff_head *list, struct net *net) - { -+ unsigned long flags; - struct sk_buff *skb; - -- while ((skb = skb_dequeue(list)) != NULL) { -- dev_put(skb->dev); -- kfree_skb(skb); -+ spin_lock_irqsave(&list->lock, flags); -+ skb = skb_peek(list); -+ while (skb != NULL) { -+ struct sk_buff *skb_next = skb_peek_next(skb, list); -+ if (net == NULL || net_eq(dev_net(skb->dev), net)) { -+ __skb_unlink(skb, list); -+ dev_put(skb->dev); -+ kfree_skb(skb); -+ } -+ skb = skb_next; - } -+ spin_unlock_irqrestore(&list->lock, flags); - } - - static void neigh_flush_dev(struct neigh_table *tbl, struct net_device *dev, -@@ -385,9 +394,9 @@ static int __neigh_ifdown(struct neigh_table *tbl, struct net_device *dev, - write_lock_bh(&tbl->lock); - neigh_flush_dev(tbl, dev, skip_perm); - pneigh_ifdown_and_unlock(tbl, dev); -- -- del_timer_sync(&tbl->proxy_timer); -- pneigh_queue_purge(&tbl->proxy_queue); -+ pneigh_queue_purge(&tbl->proxy_queue, dev_net(dev)); -+ if (skb_queue_empty_lockless(&tbl->proxy_queue)) -+ del_timer_sync(&tbl->proxy_timer); - return 0; - } - -@@ -1787,7 +1796,7 @@ int neigh_table_clear(int index, struct neigh_table *tbl) - cancel_delayed_work_sync(&tbl->managed_work); - cancel_delayed_work_sync(&tbl->gc_work); - del_timer_sync(&tbl->proxy_timer); -- pneigh_queue_purge(&tbl->proxy_queue); -+ pneigh_queue_purge(&tbl->proxy_queue, NULL); - neigh_ifdown(tbl, NULL); - if (atomic_read(&tbl->entries)) - pr_crit("neighbour leakage\n"); --- -2.37.3 - diff --git a/0049-ALSA-hda-realtek-Add-quirks-for-ASUS-Zenbooks-using-.patch b/0049-ALSA-hda-realtek-Add-quirks-for-ASUS-Zenbooks-using-.patch deleted file mode 100644 index 68f89b34c3a8..000000000000 --- a/0049-ALSA-hda-realtek-Add-quirks-for-ASUS-Zenbooks-using-.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 2432f152c175c149b6365b07d110701ca1df988e Mon Sep 17 00:00:00 2001 -From: Stefan Binding <sbinding@opensource.cirrus.com> -Date: Mon, 15 Aug 2022 15:19:53 +0100 -Subject: [PATCH 49/73] ALSA: hda/realtek: Add quirks for ASUS Zenbooks using - CS35L41 - -[ Upstream commit 461122b999bda2ebef2086a35d8990f9ccac5ab8 ] - -These Asus Zenbook laptop use Realtek HDA codec combined with -2xCS35L41 Amplifiers using SPI. - -Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com> -Link: https://lore.kernel.org/r/20220815141953.25197-1-sbinding@opensource.cirrus.com -Signed-off-by: Takashi Iwai <tiwai@suse.de> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - sound/pci/hda/patch_realtek.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c -index 1ae9674fa8a3..b44b882f8378 100644 ---- a/sound/pci/hda/patch_realtek.c -+++ b/sound/pci/hda/patch_realtek.c -@@ -9248,6 +9248,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { - SND_PCI_QUIRK(0x1043, 0x1271, "ASUS X430UN", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE), - SND_PCI_QUIRK(0x1043, 0x1290, "ASUS X441SA", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE), - SND_PCI_QUIRK(0x1043, 0x12a0, "ASUS X441UV", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE), -+ SND_PCI_QUIRK(0x1043, 0x12af, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2), - SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC), - SND_PCI_QUIRK(0x1043, 0x12f0, "ASUS X541UV", ALC256_FIXUP_ASUS_MIC), - SND_PCI_QUIRK(0x1043, 0x1313, "Asus K42JZ", ALC269VB_FIXUP_ASUS_MIC_NO_PRESENCE), -@@ -9268,6 +9269,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { - SND_PCI_QUIRK(0x1043, 0x19e1, "ASUS UX581LV", ALC295_FIXUP_ASUS_MIC_NO_PRESENCE), - SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), - SND_PCI_QUIRK(0x1043, 0x1a30, "ASUS X705UD", ALC256_FIXUP_ASUS_MIC), -+ SND_PCI_QUIRK(0x1043, 0x1a8f, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2), - SND_PCI_QUIRK(0x1043, 0x1b11, "ASUS UX431DA", ALC294_FIXUP_ASUS_COEF_1B), - SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC), - SND_PCI_QUIRK(0x1043, 0x1bbd, "ASUS Z550MA", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE), --- -2.37.3 - diff --git a/0050-s390-hypfs-avoid-error-message-under-KVM.patch b/0050-s390-hypfs-avoid-error-message-under-KVM.patch deleted file mode 100644 index 4c19b1c6fb88..000000000000 --- a/0050-s390-hypfs-avoid-error-message-under-KVM.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 895096784ab9eb17126e3099a6ef2649e96f8d84 Mon Sep 17 00:00:00 2001 -From: Juergen Gross <jgross@suse.com> -Date: Mon, 20 Jun 2022 11:45:34 +0200 -Subject: [PATCH 50/73] s390/hypfs: avoid error message under KVM - -[ Upstream commit 7b6670b03641ac308aaa6fa2e6f964ac993b5ea3 ] - -When booting under KVM the following error messages are issued: - -hypfs.7f5705: The hardware system does not support hypfs -hypfs.7a79f0: Initialization of hypfs failed with rc=-61 - -Demote the severity of first message from "error" to "info" and issue -the second message only in other error cases. - -Signed-off-by: Juergen Gross <jgross@suse.com> -Acked-by: Heiko Carstens <hca@linux.ibm.com> -Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com> -Link: https://lore.kernel.org/r/20220620094534.18967-1-jgross@suse.com -[arch/s390/hypfs/hypfs_diag.c changed description] -Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - arch/s390/hypfs/hypfs_diag.c | 2 +- - arch/s390/hypfs/inode.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/s390/hypfs/hypfs_diag.c b/arch/s390/hypfs/hypfs_diag.c -index f0bc4dc3e9bf..6511d15ace45 100644 ---- a/arch/s390/hypfs/hypfs_diag.c -+++ b/arch/s390/hypfs/hypfs_diag.c -@@ -437,7 +437,7 @@ __init int hypfs_diag_init(void) - int rc; - - if (diag204_probe()) { -- pr_err("The hardware system does not support hypfs\n"); -+ pr_info("The hardware system does not support hypfs\n"); - return -ENODATA; - } - -diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c -index 5c97f48cea91..ee919bfc8186 100644 ---- a/arch/s390/hypfs/inode.c -+++ b/arch/s390/hypfs/inode.c -@@ -496,9 +496,9 @@ static int __init hypfs_init(void) - hypfs_vm_exit(); - fail_hypfs_diag_exit: - hypfs_diag_exit(); -+ pr_err("Initialization of hypfs failed with rc=%i\n", rc); - fail_dbfs_exit: - hypfs_dbfs_exit(); -- pr_err("Initialization of hypfs failed with rc=%i\n", rc); - return rc; - } - device_initcall(hypfs_init) --- -2.37.3 - diff --git a/0051-ksmbd-don-t-remove-dos-attribute-xattr-on-O_TRUNC-op.patch b/0051-ksmbd-don-t-remove-dos-attribute-xattr-on-O_TRUNC-op.patch deleted file mode 100644 index 33a4046babf4..000000000000 --- a/0051-ksmbd-don-t-remove-dos-attribute-xattr-on-O_TRUNC-op.patch +++ /dev/null @@ -1,53 +0,0 @@ -From dc441eda061720bab0117c45e30a2eb065b858ec Mon Sep 17 00:00:00 2001 -From: Namjae Jeon <linkinjeon@kernel.org> -Date: Sun, 14 Aug 2022 22:40:25 +0900 -Subject: [PATCH 51/73] ksmbd: don't remove dos attribute xattr on O_TRUNC open - -[ Upstream commit 17661ecf6a64eb11ae7f1108fe88686388b2acd5 ] - -When smb client open file in ksmbd share with O_TRUNC, dos attribute -xattr is removed as well as data in file. This cause the FSCTL_SET_SPARSE -request from the client fails because ksmbd can't update the dos attribute -after setting ATTR_SPARSE_FILE. And this patch fix xfstests generic/469 -test also. - -Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> -Reviewed-by: Hyunchul Lee <hyc.lee@gmail.com> -Signed-off-by: Steve French <stfrench@microsoft.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - fs/ksmbd/smb2pdu.c | 18 +++++++++--------- - 1 file changed, 9 insertions(+), 9 deletions(-) - -diff --git a/fs/ksmbd/smb2pdu.c b/fs/ksmbd/smb2pdu.c -index bbb3958b6469..35f5ea1c9dfc 100644 ---- a/fs/ksmbd/smb2pdu.c -+++ b/fs/ksmbd/smb2pdu.c -@@ -2315,15 +2315,15 @@ static int smb2_remove_smb_xattrs(struct path *path) - name += strlen(name) + 1) { - ksmbd_debug(SMB, "%s, len %zd\n", name, strlen(name)); - -- if (strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN) && -- strncmp(&name[XATTR_USER_PREFIX_LEN], DOS_ATTRIBUTE_PREFIX, -- DOS_ATTRIBUTE_PREFIX_LEN) && -- strncmp(&name[XATTR_USER_PREFIX_LEN], STREAM_PREFIX, STREAM_PREFIX_LEN)) -- continue; -- -- err = ksmbd_vfs_remove_xattr(user_ns, path->dentry, name); -- if (err) -- ksmbd_debug(SMB, "remove xattr failed : %s\n", name); -+ if (!strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN) && -+ !strncmp(&name[XATTR_USER_PREFIX_LEN], STREAM_PREFIX, -+ STREAM_PREFIX_LEN)) { -+ err = ksmbd_vfs_remove_xattr(user_ns, path->dentry, -+ name); -+ if (err) -+ ksmbd_debug(SMB, "remove xattr failed : %s\n", -+ name); -+ } - } - out: - kvfree(xattr_list); --- -2.37.3 - diff --git a/0052-drm-amdgpu-disable-3DCGCG-CGLS-temporarily-due-to-st.patch b/0052-drm-amdgpu-disable-3DCGCG-CGLS-temporarily-due-to-st.patch deleted file mode 100644 index 38f1c654cc52..000000000000 --- a/0052-drm-amdgpu-disable-3DCGCG-CGLS-temporarily-due-to-st.patch +++ /dev/null @@ -1,36 +0,0 @@ -From d9d70547cba1d88fe52bfb37655d09a12926a0f3 Mon Sep 17 00:00:00 2001 -From: Evan Quan <evan.quan@amd.com> -Date: Wed, 3 Aug 2022 16:13:56 +0800 -Subject: [PATCH 52/73] drm/amdgpu: disable 3DCGCG/CGLS temporarily due to - stability issue - -[ Upstream commit 1b586595df6d04c27088ef348b8202204ce26d45 ] - -Some stability issues were reported with these features. - -Signed-off-by: Evan Quan <evan.quan@amd.com> -Reviewed-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/amdgpu/soc21.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/gpu/drm/amd/amdgpu/soc21.c b/drivers/gpu/drm/amd/amdgpu/soc21.c -index 9e18a2b22607..8d5c452a9100 100644 ---- a/drivers/gpu/drm/amd/amdgpu/soc21.c -+++ b/drivers/gpu/drm/amd/amdgpu/soc21.c -@@ -530,8 +530,10 @@ static int soc21_common_early_init(void *handle) - case IP_VERSION(11, 0, 0): - adev->cg_flags = AMD_CG_SUPPORT_GFX_CGCG | - AMD_CG_SUPPORT_GFX_CGLS | -+#if 0 - AMD_CG_SUPPORT_GFX_3D_CGCG | - AMD_CG_SUPPORT_GFX_3D_CGLS | -+#endif - AMD_CG_SUPPORT_GFX_MGCG | - AMD_CG_SUPPORT_REPEATER_FGCG | - AMD_CG_SUPPORT_GFX_FGCG | --- -2.37.3 - diff --git a/0053-drm-amd-pm-add-missing-fini_microcode-interface-for-.patch b/0053-drm-amd-pm-add-missing-fini_microcode-interface-for-.patch deleted file mode 100644 index 8c91cde44bd2..000000000000 --- a/0053-drm-amd-pm-add-missing-fini_microcode-interface-for-.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 4d21584ac6392aa66171b7efd647ecd1a447556b Mon Sep 17 00:00:00 2001 -From: Evan Quan <evan.quan@amd.com> -Date: Wed, 10 Aug 2022 11:08:31 +0800 -Subject: [PATCH 53/73] drm/amd/pm: add missing ->fini_microcode interface for - Sienna Cichlid - -[ Upstream commit 0a2d922a5618377cdf8fa476351362733ef55342 ] - -To avoid any potential memory leak. - -Signed-off-by: Evan Quan <evan.quan@amd.com> -Reviewed-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c -index 78f3d9e722bb..32bb6b1d9526 100644 ---- a/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c -+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c -@@ -4281,6 +4281,7 @@ static const struct pptable_funcs sienna_cichlid_ppt_funcs = { - .dump_pptable = sienna_cichlid_dump_pptable, - .init_microcode = smu_v11_0_init_microcode, - .load_microcode = smu_v11_0_load_microcode, -+ .fini_microcode = smu_v11_0_fini_microcode, - .init_smc_tables = sienna_cichlid_init_smc_tables, - .fini_smc_tables = smu_v11_0_fini_smc_tables, - .init_power = smu_v11_0_init_power, --- -2.37.3 - diff --git a/0054-drm-amd-pm-add-missing-fini_xxxx-interfaces-for-some.patch b/0054-drm-amd-pm-add-missing-fini_xxxx-interfaces-for-some.patch deleted file mode 100644 index 1ec128ca27cf..000000000000 --- a/0054-drm-amd-pm-add-missing-fini_xxxx-interfaces-for-some.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 22a75c616f1971c23838506b14971a4ef4a66bd7 Mon Sep 17 00:00:00 2001 -From: Evan Quan <evan.quan@amd.com> -Date: Wed, 10 Aug 2022 11:11:16 +0800 -Subject: [PATCH 54/73] drm/amd/pm: add missing ->fini_xxxx interfaces for some - SMU13 asics - -[ Upstream commit 4bac1c846eff8042dd59ddecd0a43f3b9de5fd23 ] - -Without these, potential memory leak may be induced. - -Signed-off-by: Evan Quan <evan.quan@amd.com> -Reviewed-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 2 ++ - drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 2 ++ - 2 files changed, 4 insertions(+) - -diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c -index 7432b3e76d3d..201546c36994 100644 ---- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c -+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c -@@ -1583,7 +1583,9 @@ static const struct pptable_funcs smu_v13_0_0_ppt_funcs = { - .dump_pptable = smu_v13_0_0_dump_pptable, - .init_microcode = smu_v13_0_init_microcode, - .load_microcode = smu_v13_0_load_microcode, -+ .fini_microcode = smu_v13_0_fini_microcode, - .init_smc_tables = smu_v13_0_0_init_smc_tables, -+ .fini_smc_tables = smu_v13_0_fini_smc_tables, - .init_power = smu_v13_0_init_power, - .fini_power = smu_v13_0_fini_power, - .check_fw_status = smu_v13_0_check_fw_status, -diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c -index 4e1861fb2c6a..9cde13b07dd2 100644 ---- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c -+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c -@@ -1539,7 +1539,9 @@ static const struct pptable_funcs smu_v13_0_7_ppt_funcs = { - .dump_pptable = smu_v13_0_7_dump_pptable, - .init_microcode = smu_v13_0_init_microcode, - .load_microcode = smu_v13_0_load_microcode, -+ .fini_microcode = smu_v13_0_fini_microcode, - .init_smc_tables = smu_v13_0_7_init_smc_tables, -+ .fini_smc_tables = smu_v13_0_fini_smc_tables, - .init_power = smu_v13_0_init_power, - .check_fw_status = smu_v13_0_7_check_fw_status, - .setup_pptable = smu_v13_0_7_setup_pptable, --- -2.37.3 - diff --git a/0055-drm-amd-display-Fix-pixel-clock-programming.patch b/0055-drm-amd-display-Fix-pixel-clock-programming.patch deleted file mode 100644 index 569598780a71..000000000000 --- a/0055-drm-amd-display-Fix-pixel-clock-programming.patch +++ /dev/null @@ -1,48 +0,0 @@ -From db0669c9731b849dee3dcaa6a0b4a891a0055338 Mon Sep 17 00:00:00 2001 -From: Ilya Bakoulin <Ilya.Bakoulin@amd.com> -Date: Tue, 26 Jul 2022 16:19:38 -0400 -Subject: [PATCH 55/73] drm/amd/display: Fix pixel clock programming - -[ Upstream commit 04fb918bf421b299feaee1006e82921d7d381f18 ] - -[Why] -Some pixel clock values could cause HDMI TMDS SSCPs to be misaligned -between different HDMI lanes when using YCbCr420 10-bit pixel format. - -BIOS functions for transmitter/encoder control take pixel clock in kHz -increments, whereas the function for setting the pixel clock is in 100Hz -increments. Setting pixel clock to a value that is not on a kHz boundary -will cause the issue. - -[How] -Round pixel clock down to nearest kHz in 10/12-bpc cases. - -Reviewed-by: Aric Cyr <Aric.Cyr@amd.com> -Acked-by: Brian Chang <Brian.Chang@amd.com> -Signed-off-by: Ilya Bakoulin <Ilya.Bakoulin@amd.com> -Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c b/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c -index 845aa8a1027d..c4040adb88b0 100644 ---- a/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c -+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c -@@ -545,9 +545,11 @@ static void dce112_get_pix_clk_dividers_helper ( - switch (pix_clk_params->color_depth) { - case COLOR_DEPTH_101010: - actual_pixel_clock_100hz = (actual_pixel_clock_100hz * 5) >> 2; -+ actual_pixel_clock_100hz -= actual_pixel_clock_100hz % 10; - break; - case COLOR_DEPTH_121212: - actual_pixel_clock_100hz = (actual_pixel_clock_100hz * 6) >> 2; -+ actual_pixel_clock_100hz -= actual_pixel_clock_100hz % 10; - break; - case COLOR_DEPTH_161616: - actual_pixel_clock_100hz = actual_pixel_clock_100hz * 2; --- -2.37.3 - diff --git a/0056-drm-amdgpu-Increase-tlb-flush-timeout-for-sriov.patch b/0056-drm-amdgpu-Increase-tlb-flush-timeout-for-sriov.patch deleted file mode 100644 index d32af93acff5..000000000000 --- a/0056-drm-amdgpu-Increase-tlb-flush-timeout-for-sriov.patch +++ /dev/null @@ -1,85 +0,0 @@ -From db1d9deb84d7870486688a5d13602962443a5500 Mon Sep 17 00:00:00 2001 -From: Dusica Milinkovic <Dusica.Milinkovic@amd.com> -Date: Wed, 10 Aug 2022 09:43:15 +0200 -Subject: [PATCH 56/73] drm/amdgpu: Increase tlb flush timeout for sriov - -[ Upstream commit 373008bfc9cdb0f050258947fa5a095f0657e1bc ] - -[Why] -During multi-vf executing benchmark (Luxmark) observed kiq error timeout. -It happenes because all of VFs do the tlb invalidation at the same time. -Although each VF has the invalidate register set, from hardware side -the invalidate requests are queue to execute. - -[How] -In case of 12 VF increase timeout on 12*100ms - -Signed-off-by: Dusica Milinkovic <Dusica.Milinkovic@amd.com> -Acked-by: Shaoyun Liu <shaoyun.liu@amd.com> -Acked-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- - drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 3 ++- - drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 3 ++- - 3 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h -index 30ce6bb6fa77..310754b1f670 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h -@@ -313,7 +313,7 @@ enum amdgpu_kiq_irq { - AMDGPU_CP_KIQ_IRQ_DRIVER0 = 0, - AMDGPU_CP_KIQ_IRQ_LAST - }; -- -+#define SRIOV_USEC_TIMEOUT 1200000 /* wait 12 * 100ms for SRIOV */ - #define MAX_KIQ_REG_WAIT 5000 /* in usecs, 5ms */ - #define MAX_KIQ_REG_BAILOUT_INTERVAL 5 /* in msecs, 5ms */ - #define MAX_KIQ_REG_TRY 1000 -diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c -index 9077dfccaf3c..809408c8c79a 100644 ---- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c -+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c -@@ -416,6 +416,7 @@ static int gmc_v10_0_flush_gpu_tlb_pasid(struct amdgpu_device *adev, - uint32_t seq; - uint16_t queried_pasid; - bool ret; -+ u32 usec_timeout = amdgpu_sriov_vf(adev) ? SRIOV_USEC_TIMEOUT : adev->usec_timeout; - struct amdgpu_ring *ring = &adev->gfx.kiq.ring; - struct amdgpu_kiq *kiq = &adev->gfx.kiq; - -@@ -434,7 +435,7 @@ static int gmc_v10_0_flush_gpu_tlb_pasid(struct amdgpu_device *adev, - - amdgpu_ring_commit(ring); - spin_unlock(&adev->gfx.kiq.ring_lock); -- r = amdgpu_fence_wait_polling(ring, seq, adev->usec_timeout); -+ r = amdgpu_fence_wait_polling(ring, seq, usec_timeout); - if (r < 1) { - dev_err(adev->dev, "wait for kiq fence error: %ld.\n", r); - return -ETIME; -diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c -index 22761a3bb818..566c1243c051 100644 ---- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c -+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c -@@ -896,6 +896,7 @@ static int gmc_v9_0_flush_gpu_tlb_pasid(struct amdgpu_device *adev, - uint32_t seq; - uint16_t queried_pasid; - bool ret; -+ u32 usec_timeout = amdgpu_sriov_vf(adev) ? SRIOV_USEC_TIMEOUT : adev->usec_timeout; - struct amdgpu_ring *ring = &adev->gfx.kiq.ring; - struct amdgpu_kiq *kiq = &adev->gfx.kiq; - -@@ -935,7 +936,7 @@ static int gmc_v9_0_flush_gpu_tlb_pasid(struct amdgpu_device *adev, - - amdgpu_ring_commit(ring); - spin_unlock(&adev->gfx.kiq.ring_lock); -- r = amdgpu_fence_wait_polling(ring, seq, adev->usec_timeout); -+ r = amdgpu_fence_wait_polling(ring, seq, usec_timeout); - if (r < 1) { - dev_err(adev->dev, "wait for kiq fence error: %ld.\n", r); - up_read(&adev->reset_domain->sem); --- -2.37.3 - diff --git a/0057-drm-amd-display-Fix-plug-unplug-external-monitor-wil.patch b/0057-drm-amd-display-Fix-plug-unplug-external-monitor-wil.patch deleted file mode 100644 index dd055cd10378..000000000000 --- a/0057-drm-amd-display-Fix-plug-unplug-external-monitor-wil.patch +++ /dev/null @@ -1,54 +0,0 @@ -From bd71ef2c30244c25243d84b593ea0ba88164ebb6 Mon Sep 17 00:00:00 2001 -From: Tom Chung <chiahsuan.chung@amd.com> -Date: Wed, 3 Aug 2022 15:15:17 +0800 -Subject: [PATCH 57/73] drm/amd/display: Fix plug/unplug external monitor will - hang while playback MPO video - -[ Upstream commit e98459c06e3d45c2229b097f7b8cdd412357fa2f ] - -[Why] -Pipes for MPO primary and overlay will be power down and power up during -plug/unplug external monitor while MPO video playback. -But the pipes were the same after plug/unplug and should not need to be -power down and power up or it will make page flip interrupt disabled and -cause hang issue. - -[How] -Add pipe split change condition that not only check the top pipe pointer -but also check the index of top pipe if both top pipes are available. - -Reviewed-by: Sun peng Li <Sunpeng.Li@amd.com> -Acked-by: Brian Chang <Brian.Chang@amd.com> -Signed-off-by: Tom Chung <chiahsuan.chung@amd.com> -Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/display/dc/core/dc.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c -index 7d69341acca0..9dbd965d8afb 100644 ---- a/drivers/gpu/drm/amd/display/dc/core/dc.c -+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c -@@ -1067,8 +1067,15 @@ static void disable_dangling_plane(struct dc *dc, struct dc_state *context) - struct dc_stream_state *old_stream = - dc->current_state->res_ctx.pipe_ctx[i].stream; - bool should_disable = true; -- bool pipe_split_change = -- context->res_ctx.pipe_ctx[i].top_pipe != dc->current_state->res_ctx.pipe_ctx[i].top_pipe; -+ bool pipe_split_change = false; -+ -+ if ((context->res_ctx.pipe_ctx[i].top_pipe) && -+ (dc->current_state->res_ctx.pipe_ctx[i].top_pipe)) -+ pipe_split_change = context->res_ctx.pipe_ctx[i].top_pipe->pipe_idx != -+ dc->current_state->res_ctx.pipe_ctx[i].top_pipe->pipe_idx; -+ else -+ pipe_split_change = context->res_ctx.pipe_ctx[i].top_pipe != -+ dc->current_state->res_ctx.pipe_ctx[i].top_pipe; - - for (j = 0; j < context->stream_count; j++) { - if (old_stream == context->streams[j]) { --- -2.37.3 - diff --git a/0058-drm-amd-display-avoid-doing-vm_init-multiple-time.patch b/0058-drm-amd-display-avoid-doing-vm_init-multiple-time.patch deleted file mode 100644 index 6d4ca53ac968..000000000000 --- a/0058-drm-amd-display-avoid-doing-vm_init-multiple-time.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 4eb2be1d0827627b5878b26dfa21d68ffe677fd0 Mon Sep 17 00:00:00 2001 -From: Charlene Liu <Charlene.Liu@amd.com> -Date: Fri, 5 Aug 2022 12:59:47 -0400 -Subject: [PATCH 58/73] drm/amd/display: avoid doing vm_init multiple time - -[ Upstream commit 5544a7b5a07480192eb5fd3536462faed2c21528 ] - -[why] -this is to ensure that driver will not reprogram hvm_prefetch_req again if -it is done. - -Reviewed-by: Martin Leung <Martin.Leung@amd.com> -Acked-by: Brian Chang <Brian.Chang@amd.com> -Signed-off-by: Charlene Liu <Charlene.Liu@amd.com> -Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c -index c5e200d09038..5752271f22df 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c -+++ b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c -@@ -67,9 +67,15 @@ static uint32_t convert_and_clamp( - void dcn21_dchvm_init(struct hubbub *hubbub) - { - struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub); -- uint32_t riommu_active; -+ uint32_t riommu_active, prefetch_done; - int i; - -+ REG_GET(DCHVM_RIOMMU_STAT0, HOSTVM_PREFETCH_DONE, &prefetch_done); -+ -+ if (prefetch_done) { -+ hubbub->riommu_active = true; -+ return; -+ } - //Init DCHVM block - REG_UPDATE(DCHVM_CTRL0, HOSTVM_INIT_REQ, 1); - --- -2.37.3 - diff --git a/0059-drm-amdgpu-Add-decode_iv_ts-helper-for-ih_v6-block.patch b/0059-drm-amdgpu-Add-decode_iv_ts-helper-for-ih_v6-block.patch deleted file mode 100644 index d65c9e46e9c8..000000000000 --- a/0059-drm-amdgpu-Add-decode_iv_ts-helper-for-ih_v6-block.patch +++ /dev/null @@ -1,32 +0,0 @@ -From d278f332d105d3340179965dc14d6f7157fb9450 Mon Sep 17 00:00:00 2001 -From: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com> -Date: Fri, 5 Aug 2022 18:04:08 -0400 -Subject: [PATCH 59/73] drm/amdgpu: Add decode_iv_ts helper for ih_v6 block - -[ Upstream commit 1af9add1f1512b10d9ce44ec7137612bc81ff069 ] - -Was missing. Add it. - -Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com> -Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/amdgpu/ih_v6_0.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c b/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c -index 92dc60a9d209..085e613f3646 100644 ---- a/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c -+++ b/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c -@@ -727,6 +727,7 @@ static const struct amd_ip_funcs ih_v6_0_ip_funcs = { - static const struct amdgpu_ih_funcs ih_v6_0_funcs = { - .get_wptr = ih_v6_0_get_wptr, - .decode_iv = amdgpu_ih_decode_iv_helper, -+ .decode_iv_ts = amdgpu_ih_decode_iv_ts_helper, - .set_rptr = ih_v6_0_set_rptr - }; - --- -2.37.3 - diff --git a/0060-drm-amdgpu-Add-secure-display-TA-load-for-Renoir.patch b/0060-drm-amdgpu-Add-secure-display-TA-load-for-Renoir.patch deleted file mode 100644 index 0c5d9486b20f..000000000000 --- a/0060-drm-amdgpu-Add-secure-display-TA-load-for-Renoir.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 09186eeffd3949a7e6ed39085bc151c1396a99a8 Mon Sep 17 00:00:00 2001 -From: Shane Xiao <shane.xiao@amd.com> -Date: Mon, 15 Aug 2022 16:32:15 +0800 -Subject: [PATCH 60/73] drm/amdgpu: Add secure display TA load for Renoir - -[ Upstream commit e42dfa66d59240afbdd8d4b47b87486db39504aa ] - -Add secure display TA load for Renoir - -Signed-off-by: Shane Xiao <shane.xiao@amd.com> -Reviewed-by: Aaron Liu <aaron.liu@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/amdgpu/psp_v12_0.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c -index a2588200ea58..0b2ac418e4ac 100644 ---- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c -+++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c -@@ -101,6 +101,16 @@ static int psp_v12_0_init_microcode(struct psp_context *psp) - adev->psp.dtm_context.context.bin_desc.start_addr = - (uint8_t *)adev->psp.hdcp_context.context.bin_desc.start_addr + - le32_to_cpu(ta_hdr->dtm.offset_bytes); -+ -+ if (adev->apu_flags & AMD_APU_IS_RENOIR) { -+ adev->psp.securedisplay_context.context.bin_desc.fw_version = -+ le32_to_cpu(ta_hdr->securedisplay.fw_version); -+ adev->psp.securedisplay_context.context.bin_desc.size_bytes = -+ le32_to_cpu(ta_hdr->securedisplay.size_bytes); -+ adev->psp.securedisplay_context.context.bin_desc.start_addr = -+ (uint8_t *)adev->psp.hdcp_context.context.bin_desc.start_addr + -+ le32_to_cpu(ta_hdr->securedisplay.offset_bytes); -+ } - } - - return 0; --- -2.37.3 - diff --git a/0061-drm-amdgpu-Fix-interrupt-handling-on-ih_soft-ring.patch b/0061-drm-amdgpu-Fix-interrupt-handling-on-ih_soft-ring.patch deleted file mode 100644 index 7d913e5e08d5..000000000000 --- a/0061-drm-amdgpu-Fix-interrupt-handling-on-ih_soft-ring.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 933020e6d0572f9997e8faaed8c082fda0825718 Mon Sep 17 00:00:00 2001 -From: Mukul Joshi <mukul.joshi@amd.com> -Date: Fri, 12 Aug 2022 15:23:51 -0400 -Subject: [PATCH 61/73] drm/amdgpu: Fix interrupt handling on ih_soft ring -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -[ Upstream commit de8341ee3ce7316883e836a2c4e9bf01ab651e0f ] - -There are no backing hardware registers for ih_soft ring. -As a result, don't try to access hardware registers for read -and write pointers when processing interrupts on the IH soft -ring. - -Signed-off-by: Mukul Joshi <mukul.joshi@amd.com> -Acked-by: Christian König <christian.koenig@amd.com> -Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/gpu/drm/amd/amdgpu/navi10_ih.c | 7 ++++++- - drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 7 ++++++- - drivers/gpu/drm/amd/amdgpu/vega20_ih.c | 7 ++++++- - 3 files changed, 18 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdgpu/navi10_ih.c b/drivers/gpu/drm/amd/amdgpu/navi10_ih.c -index 4b5396d3e60f..eec13cb5bf75 100644 ---- a/drivers/gpu/drm/amd/amdgpu/navi10_ih.c -+++ b/drivers/gpu/drm/amd/amdgpu/navi10_ih.c -@@ -409,9 +409,11 @@ static u32 navi10_ih_get_wptr(struct amdgpu_device *adev, - u32 wptr, tmp; - struct amdgpu_ih_regs *ih_regs; - -- if (ih == &adev->irq.ih) { -+ if (ih == &adev->irq.ih || ih == &adev->irq.ih_soft) { - /* Only ring0 supports writeback. On other rings fall back - * to register-based code with overflow checking below. -+ * ih_soft ring doesn't have any backing hardware registers, -+ * update wptr and return. - */ - wptr = le32_to_cpu(*ih->wptr_cpu); - -@@ -483,6 +485,9 @@ static void navi10_ih_set_rptr(struct amdgpu_device *adev, - { - struct amdgpu_ih_regs *ih_regs; - -+ if (ih == &adev->irq.ih_soft) -+ return; -+ - if (ih->use_doorbell) { - /* XXX check if swapping is necessary on BE */ - *ih->rptr_cpu = ih->rptr; -diff --git a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c -index cdd599a08125..03b7066471f9 100644 ---- a/drivers/gpu/drm/amd/amdgpu/vega10_ih.c -+++ b/drivers/gpu/drm/amd/amdgpu/vega10_ih.c -@@ -334,9 +334,11 @@ static u32 vega10_ih_get_wptr(struct amdgpu_device *adev, - u32 wptr, tmp; - struct amdgpu_ih_regs *ih_regs; - -- if (ih == &adev->irq.ih) { -+ if (ih == &adev->irq.ih || ih == &adev->irq.ih_soft) { - /* Only ring0 supports writeback. On other rings fall back - * to register-based code with overflow checking below. -+ * ih_soft ring doesn't have any backing hardware registers, -+ * update wptr and return. - */ - wptr = le32_to_cpu(*ih->wptr_cpu); - -@@ -409,6 +411,9 @@ static void vega10_ih_set_rptr(struct amdgpu_device *adev, - { - struct amdgpu_ih_regs *ih_regs; - -+ if (ih == &adev->irq.ih_soft) -+ return; -+ - if (ih->use_doorbell) { - /* XXX check if swapping is necessary on BE */ - *ih->rptr_cpu = ih->rptr; -diff --git a/drivers/gpu/drm/amd/amdgpu/vega20_ih.c b/drivers/gpu/drm/amd/amdgpu/vega20_ih.c -index 3b4eb8285943..2022ffbb8dba 100644 ---- a/drivers/gpu/drm/amd/amdgpu/vega20_ih.c -+++ b/drivers/gpu/drm/amd/amdgpu/vega20_ih.c -@@ -385,9 +385,11 @@ static u32 vega20_ih_get_wptr(struct amdgpu_device *adev, - u32 wptr, tmp; - struct amdgpu_ih_regs *ih_regs; - -- if (ih == &adev->irq.ih) { -+ if (ih == &adev->irq.ih || ih == &adev->irq.ih_soft) { - /* Only ring0 supports writeback. On other rings fall back - * to register-based code with overflow checking below. -+ * ih_soft ring doesn't have any backing hardware registers, -+ * update wptr and return. - */ - wptr = le32_to_cpu(*ih->wptr_cpu); - -@@ -461,6 +463,9 @@ static void vega20_ih_set_rptr(struct amdgpu_device *adev, - { - struct amdgpu_ih_regs *ih_regs; - -+ if (ih == &adev->irq.ih_soft) -+ return; -+ - if (ih->use_doorbell) { - /* XXX check if swapping is necessary on BE */ - *ih->rptr_cpu = ih->rptr; --- -2.37.3 - diff --git a/0062-netfilter-conntrack-NF_CONNTRACK_PROCFS-should-no-lo.patch b/0062-netfilter-conntrack-NF_CONNTRACK_PROCFS-should-no-lo.patch deleted file mode 100644 index 77bce9429d7e..000000000000 --- a/0062-netfilter-conntrack-NF_CONNTRACK_PROCFS-should-no-lo.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 7d4bfe34b9cbb0395cb9508fa64324d4a1379e00 Mon Sep 17 00:00:00 2001 -From: Geert Uytterhoeven <geert@linux-m68k.org> -Date: Mon, 15 Aug 2022 12:39:20 +0200 -Subject: [PATCH 62/73] netfilter: conntrack: NF_CONNTRACK_PROCFS should no - longer default to y - -[ Upstream commit aa5762c34213aba7a72dc58e70601370805fa794 ] - -NF_CONNTRACK_PROCFS was marked obsolete in commit 54b07dca68557b09 -("netfilter: provide config option to disable ancient procfs parts") in -v3.3. - -Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> -Signed-off-by: Florian Westphal <fw@strlen.de> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - net/netfilter/Kconfig | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig -index ddc54b6d18ee..8c0fea1bdc8d 100644 ---- a/net/netfilter/Kconfig -+++ b/net/netfilter/Kconfig -@@ -144,7 +144,6 @@ config NF_CONNTRACK_ZONES - - config NF_CONNTRACK_PROCFS - bool "Supply CT list in procfs (OBSOLETE)" -- default y - depends on PROC_FS - help - This option enables for the list of known conntrack entries --- -2.37.3 - diff --git a/0063-testing-selftests-nft_flowtable.sh-use-random-netns-.patch b/0063-testing-selftests-nft_flowtable.sh-use-random-netns-.patch deleted file mode 100644 index f8796362ab4c..000000000000 --- a/0063-testing-selftests-nft_flowtable.sh-use-random-netns-.patch +++ /dev/null @@ -1,428 +0,0 @@ -From 503728838bdf9b8fd50ff1f89d47668e922880aa Mon Sep 17 00:00:00 2001 -From: Florian Westphal <fw@strlen.de> -Date: Tue, 16 Aug 2022 14:15:21 +0200 -Subject: [PATCH 63/73] testing: selftests: nft_flowtable.sh: use random netns - names - -[ Upstream commit b71b7bfeac38c7a21c423ddafb29aa6258949df8 ] - -"ns1" is a too generic name, use a random suffix to avoid -errors when such a netns exists. Also allows to run multiple -instances of the script in parallel. - -Signed-off-by: Florian Westphal <fw@strlen.de> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - .../selftests/netfilter/nft_flowtable.sh | 246 +++++++++--------- - 1 file changed, 128 insertions(+), 118 deletions(-) - -diff --git a/tools/testing/selftests/netfilter/nft_flowtable.sh b/tools/testing/selftests/netfilter/nft_flowtable.sh -index d4ffebb989f8..c336e6c148d1 100755 ---- a/tools/testing/selftests/netfilter/nft_flowtable.sh -+++ b/tools/testing/selftests/netfilter/nft_flowtable.sh -@@ -14,6 +14,11 @@ - # nft_flowtable.sh -o8000 -l1500 -r2000 - # - -+sfx=$(mktemp -u "XXXXXXXX") -+ns1="ns1-$sfx" -+ns2="ns2-$sfx" -+nsr1="nsr1-$sfx" -+nsr2="nsr2-$sfx" - - # Kselftest framework requirement - SKIP code is 4. - ksft_skip=4 -@@ -36,18 +41,17 @@ checktool (){ - checktool "nft --version" "run test without nft tool" - checktool "ip -Version" "run test without ip tool" - checktool "which nc" "run test without nc (netcat)" --checktool "ip netns add nsr1" "create net namespace" -+checktool "ip netns add $nsr1" "create net namespace $nsr1" - --ip netns add ns1 --ip netns add ns2 -- --ip netns add nsr2 -+ip netns add $ns1 -+ip netns add $ns2 -+ip netns add $nsr2 - - cleanup() { -- for i in 1 2; do -- ip netns del ns$i -- ip netns del nsr$i -- done -+ ip netns del $ns1 -+ ip netns del $ns2 -+ ip netns del $nsr1 -+ ip netns del $nsr2 - - rm -f "$ns1in" "$ns1out" - rm -f "$ns2in" "$ns2out" -@@ -59,22 +63,21 @@ trap cleanup EXIT - - sysctl -q net.netfilter.nf_log_all_netns=1 - --ip link add veth0 netns nsr1 type veth peer name eth0 netns ns1 --ip link add veth1 netns nsr1 type veth peer name veth0 netns nsr2 -+ip link add veth0 netns $nsr1 type veth peer name eth0 netns $ns1 -+ip link add veth1 netns $nsr1 type veth peer name veth0 netns $nsr2 - --ip link add veth1 netns nsr2 type veth peer name eth0 netns ns2 -+ip link add veth1 netns $nsr2 type veth peer name eth0 netns $ns2 - - for dev in lo veth0 veth1; do -- for i in 1 2; do -- ip -net nsr$i link set $dev up -- done -+ ip -net $nsr1 link set $dev up -+ ip -net $nsr2 link set $dev up - done - --ip -net nsr1 addr add 10.0.1.1/24 dev veth0 --ip -net nsr1 addr add dead:1::1/64 dev veth0 -+ip -net $nsr1 addr add 10.0.1.1/24 dev veth0 -+ip -net $nsr1 addr add dead:1::1/64 dev veth0 - --ip -net nsr2 addr add 10.0.2.1/24 dev veth1 --ip -net nsr2 addr add dead:2::1/64 dev veth1 -+ip -net $nsr2 addr add 10.0.2.1/24 dev veth1 -+ip -net $nsr2 addr add dead:2::1/64 dev veth1 - - # set different MTUs so we need to push packets coming from ns1 (large MTU) - # to ns2 (smaller MTU) to stack either to perform fragmentation (ip_no_pmtu_disc=1), -@@ -106,49 +109,56 @@ do - esac - done - --if ! ip -net nsr1 link set veth0 mtu $omtu; then -+if ! ip -net $nsr1 link set veth0 mtu $omtu; then - exit 1 - fi - --ip -net ns1 link set eth0 mtu $omtu -+ip -net $ns1 link set eth0 mtu $omtu - --if ! ip -net nsr2 link set veth1 mtu $rmtu; then -+if ! ip -net $nsr2 link set veth1 mtu $rmtu; then - exit 1 - fi - --ip -net ns2 link set eth0 mtu $rmtu -+ip -net $ns2 link set eth0 mtu $rmtu - - # transfer-net between nsr1 and nsr2. - # these addresses are not used for connections. --ip -net nsr1 addr add 192.168.10.1/24 dev veth1 --ip -net nsr1 addr add fee1:2::1/64 dev veth1 -- --ip -net nsr2 addr add 192.168.10.2/24 dev veth0 --ip -net nsr2 addr add fee1:2::2/64 dev veth0 -- --for i in 1 2; do -- ip netns exec nsr$i sysctl net.ipv4.conf.veth0.forwarding=1 > /dev/null -- ip netns exec nsr$i sysctl net.ipv4.conf.veth1.forwarding=1 > /dev/null -- -- ip -net ns$i link set lo up -- ip -net ns$i link set eth0 up -- ip -net ns$i addr add 10.0.$i.99/24 dev eth0 -- ip -net ns$i route add default via 10.0.$i.1 -- ip -net ns$i addr add dead:$i::99/64 dev eth0 -- ip -net ns$i route add default via dead:$i::1 -- if ! ip netns exec ns$i sysctl net.ipv4.tcp_no_metrics_save=1 > /dev/null; then -+ip -net $nsr1 addr add 192.168.10.1/24 dev veth1 -+ip -net $nsr1 addr add fee1:2::1/64 dev veth1 -+ -+ip -net $nsr2 addr add 192.168.10.2/24 dev veth0 -+ip -net $nsr2 addr add fee1:2::2/64 dev veth0 -+ -+for i in 0 1; do -+ ip netns exec $nsr1 sysctl net.ipv4.conf.veth$i.forwarding=1 > /dev/null -+ ip netns exec $nsr2 sysctl net.ipv4.conf.veth$i.forwarding=1 > /dev/null -+done -+ -+for ns in $ns1 $ns2;do -+ ip -net $ns link set lo up -+ ip -net $ns link set eth0 up -+ -+ if ! ip netns exec $ns sysctl net.ipv4.tcp_no_metrics_save=1 > /dev/null; then - echo "ERROR: Check Originator/Responder values (problem during address addition)" - exit 1 - fi -- - # don't set ip DF bit for first two tests -- ip netns exec ns$i sysctl net.ipv4.ip_no_pmtu_disc=1 > /dev/null -+ ip netns exec $ns sysctl net.ipv4.ip_no_pmtu_disc=1 > /dev/null - done - --ip -net nsr1 route add default via 192.168.10.2 --ip -net nsr2 route add default via 192.168.10.1 -+ip -net $ns1 addr add 10.0.1.99/24 dev eth0 -+ip -net $ns2 addr add 10.0.2.99/24 dev eth0 -+ip -net $ns1 route add default via 10.0.1.1 -+ip -net $ns2 route add default via 10.0.2.1 -+ip -net $ns1 addr add dead:1::99/64 dev eth0 -+ip -net $ns2 addr add dead:2::99/64 dev eth0 -+ip -net $ns1 route add default via dead:1::1 -+ip -net $ns2 route add default via dead:2::1 -+ -+ip -net $nsr1 route add default via 192.168.10.2 -+ip -net $nsr2 route add default via 192.168.10.1 - --ip netns exec nsr1 nft -f - <<EOF -+ip netns exec $nsr1 nft -f - <<EOF - table inet filter { - flowtable f1 { - hook ingress priority 0 -@@ -197,18 +207,18 @@ if [ $? -ne 0 ]; then - fi - - # test basic connectivity --if ! ip netns exec ns1 ping -c 1 -q 10.0.2.99 > /dev/null; then -- echo "ERROR: ns1 cannot reach ns2" 1>&2 -+if ! ip netns exec $ns1 ping -c 1 -q 10.0.2.99 > /dev/null; then -+ echo "ERROR: $ns1 cannot reach ns2" 1>&2 - exit 1 - fi - --if ! ip netns exec ns2 ping -c 1 -q 10.0.1.99 > /dev/null; then -- echo "ERROR: ns2 cannot reach ns1" 1>&2 -+if ! ip netns exec $ns2 ping -c 1 -q 10.0.1.99 > /dev/null; then -+ echo "ERROR: $ns2 cannot reach $ns1" 1>&2 - exit 1 - fi - - if [ $ret -eq 0 ];then -- echo "PASS: netns routing/connectivity: ns1 can reach ns2" -+ echo "PASS: netns routing/connectivity: $ns1 can reach $ns2" - fi - - ns1in=$(mktemp) -@@ -312,24 +322,24 @@ make_file "$ns2in" - - # First test: - # No PMTU discovery, nsr1 is expected to fragment packets from ns1 to ns2 as needed. --if test_tcp_forwarding ns1 ns2; then -+if test_tcp_forwarding $ns1 $ns2; then - echo "PASS: flow offloaded for ns1/ns2" - else - echo "FAIL: flow offload for ns1/ns2:" 1>&2 -- ip netns exec nsr1 nft list ruleset -+ ip netns exec $nsr1 nft list ruleset - ret=1 - fi - - # delete default route, i.e. ns2 won't be able to reach ns1 and - # will depend on ns1 being masqueraded in nsr1. - # expect ns1 has nsr1 address. --ip -net ns2 route del default via 10.0.2.1 --ip -net ns2 route del default via dead:2::1 --ip -net ns2 route add 192.168.10.1 via 10.0.2.1 -+ip -net $ns2 route del default via 10.0.2.1 -+ip -net $ns2 route del default via dead:2::1 -+ip -net $ns2 route add 192.168.10.1 via 10.0.2.1 - - # Second test: - # Same, but with NAT enabled. --ip netns exec nsr1 nft -f - <<EOF -+ip netns exec $nsr1 nft -f - <<EOF - table ip nat { - chain prerouting { - type nat hook prerouting priority 0; policy accept; -@@ -343,47 +353,47 @@ table ip nat { - } - EOF - --if test_tcp_forwarding_nat ns1 ns2; then -+if test_tcp_forwarding_nat $ns1 $ns2; then - echo "PASS: flow offloaded for ns1/ns2 with NAT" - else - echo "FAIL: flow offload for ns1/ns2 with NAT" 1>&2 -- ip netns exec nsr1 nft list ruleset -+ ip netns exec $nsr1 nft list ruleset - ret=1 - fi - - # Third test: - # Same as second test, but with PMTU discovery enabled. --handle=$(ip netns exec nsr1 nft -a list table inet filter | grep something-to-grep-for | cut -d \# -f 2) -+handle=$(ip netns exec $nsr1 nft -a list table inet filter | grep something-to-grep-for | cut -d \# -f 2) - --if ! ip netns exec nsr1 nft delete rule inet filter forward $handle; then -+if ! ip netns exec $nsr1 nft delete rule inet filter forward $handle; then - echo "FAIL: Could not delete large-packet accept rule" - exit 1 - fi - --ip netns exec ns1 sysctl net.ipv4.ip_no_pmtu_disc=0 > /dev/null --ip netns exec ns2 sysctl net.ipv4.ip_no_pmtu_disc=0 > /dev/null -+ip netns exec $ns1 sysctl net.ipv4.ip_no_pmtu_disc=0 > /dev/null -+ip netns exec $ns2 sysctl net.ipv4.ip_no_pmtu_disc=0 > /dev/null - --if test_tcp_forwarding_nat ns1 ns2; then -+if test_tcp_forwarding_nat $ns1 $ns2; then - echo "PASS: flow offloaded for ns1/ns2 with NAT and pmtu discovery" - else - echo "FAIL: flow offload for ns1/ns2 with NAT and pmtu discovery" 1>&2 -- ip netns exec nsr1 nft list ruleset -+ ip netns exec $nsr1 nft list ruleset - fi - - # Another test: - # Add bridge interface br0 to Router1, with NAT enabled. --ip -net nsr1 link add name br0 type bridge --ip -net nsr1 addr flush dev veth0 --ip -net nsr1 link set up dev veth0 --ip -net nsr1 link set veth0 master br0 --ip -net nsr1 addr add 10.0.1.1/24 dev br0 --ip -net nsr1 addr add dead:1::1/64 dev br0 --ip -net nsr1 link set up dev br0 -+ip -net $nsr1 link add name br0 type bridge -+ip -net $nsr1 addr flush dev veth0 -+ip -net $nsr1 link set up dev veth0 -+ip -net $nsr1 link set veth0 master br0 -+ip -net $nsr1 addr add 10.0.1.1/24 dev br0 -+ip -net $nsr1 addr add dead:1::1/64 dev br0 -+ip -net $nsr1 link set up dev br0 - --ip netns exec nsr1 sysctl net.ipv4.conf.br0.forwarding=1 > /dev/null -+ip netns exec $nsr1 sysctl net.ipv4.conf.br0.forwarding=1 > /dev/null - - # br0 with NAT enabled. --ip netns exec nsr1 nft -f - <<EOF -+ip netns exec $nsr1 nft -f - <<EOF - flush table ip nat - table ip nat { - chain prerouting { -@@ -398,59 +408,59 @@ table ip nat { - } - EOF - --if test_tcp_forwarding_nat ns1 ns2; then -+if test_tcp_forwarding_nat $ns1 $ns2; then - echo "PASS: flow offloaded for ns1/ns2 with bridge NAT" - else - echo "FAIL: flow offload for ns1/ns2 with bridge NAT" 1>&2 -- ip netns exec nsr1 nft list ruleset -+ ip netns exec $nsr1 nft list ruleset - ret=1 - fi - - # Another test: - # Add bridge interface br0 to Router1, with NAT and VLAN. --ip -net nsr1 link set veth0 nomaster --ip -net nsr1 link set down dev veth0 --ip -net nsr1 link add link veth0 name veth0.10 type vlan id 10 --ip -net nsr1 link set up dev veth0 --ip -net nsr1 link set up dev veth0.10 --ip -net nsr1 link set veth0.10 master br0 -- --ip -net ns1 addr flush dev eth0 --ip -net ns1 link add link eth0 name eth0.10 type vlan id 10 --ip -net ns1 link set eth0 up --ip -net ns1 link set eth0.10 up --ip -net ns1 addr add 10.0.1.99/24 dev eth0.10 --ip -net ns1 route add default via 10.0.1.1 --ip -net ns1 addr add dead:1::99/64 dev eth0.10 -- --if test_tcp_forwarding_nat ns1 ns2; then -+ip -net $nsr1 link set veth0 nomaster -+ip -net $nsr1 link set down dev veth0 -+ip -net $nsr1 link add link veth0 name veth0.10 type vlan id 10 -+ip -net $nsr1 link set up dev veth0 -+ip -net $nsr1 link set up dev veth0.10 -+ip -net $nsr1 link set veth0.10 master br0 -+ -+ip -net $ns1 addr flush dev eth0 -+ip -net $ns1 link add link eth0 name eth0.10 type vlan id 10 -+ip -net $ns1 link set eth0 up -+ip -net $ns1 link set eth0.10 up -+ip -net $ns1 addr add 10.0.1.99/24 dev eth0.10 -+ip -net $ns1 route add default via 10.0.1.1 -+ip -net $ns1 addr add dead:1::99/64 dev eth0.10 -+ -+if test_tcp_forwarding_nat $ns1 $ns2; then - echo "PASS: flow offloaded for ns1/ns2 with bridge NAT and VLAN" - else - echo "FAIL: flow offload for ns1/ns2 with bridge NAT and VLAN" 1>&2 -- ip netns exec nsr1 nft list ruleset -+ ip netns exec $nsr1 nft list ruleset - ret=1 - fi - - # restore test topology (remove bridge and VLAN) --ip -net nsr1 link set veth0 nomaster --ip -net nsr1 link set veth0 down --ip -net nsr1 link set veth0.10 down --ip -net nsr1 link delete veth0.10 type vlan --ip -net nsr1 link delete br0 type bridge --ip -net ns1 addr flush dev eth0.10 --ip -net ns1 link set eth0.10 down --ip -net ns1 link set eth0 down --ip -net ns1 link delete eth0.10 type vlan -+ip -net $nsr1 link set veth0 nomaster -+ip -net $nsr1 link set veth0 down -+ip -net $nsr1 link set veth0.10 down -+ip -net $nsr1 link delete veth0.10 type vlan -+ip -net $nsr1 link delete br0 type bridge -+ip -net $ns1 addr flush dev eth0.10 -+ip -net $ns1 link set eth0.10 down -+ip -net $ns1 link set eth0 down -+ip -net $ns1 link delete eth0.10 type vlan - - # restore address in ns1 and nsr1 --ip -net ns1 link set eth0 up --ip -net ns1 addr add 10.0.1.99/24 dev eth0 --ip -net ns1 route add default via 10.0.1.1 --ip -net ns1 addr add dead:1::99/64 dev eth0 --ip -net ns1 route add default via dead:1::1 --ip -net nsr1 addr add 10.0.1.1/24 dev veth0 --ip -net nsr1 addr add dead:1::1/64 dev veth0 --ip -net nsr1 link set up dev veth0 -+ip -net $ns1 link set eth0 up -+ip -net $ns1 addr add 10.0.1.99/24 dev eth0 -+ip -net $ns1 route add default via 10.0.1.1 -+ip -net $ns1 addr add dead:1::99/64 dev eth0 -+ip -net $ns1 route add default via dead:1::1 -+ip -net $nsr1 addr add 10.0.1.1/24 dev veth0 -+ip -net $nsr1 addr add dead:1::1/64 dev veth0 -+ip -net $nsr1 link set up dev veth0 - - KEY_SHA="0x"$(ps -xaf | sha1sum | cut -d " " -f 1) - KEY_AES="0x"$(ps -xaf | md5sum | cut -d " " -f 1) -@@ -480,23 +490,23 @@ do_esp() { - - } - --do_esp nsr1 192.168.10.1 192.168.10.2 10.0.1.0/24 10.0.2.0/24 $SPI1 $SPI2 -+do_esp $nsr1 192.168.10.1 192.168.10.2 10.0.1.0/24 10.0.2.0/24 $SPI1 $SPI2 - --do_esp nsr2 192.168.10.2 192.168.10.1 10.0.2.0/24 10.0.1.0/24 $SPI2 $SPI1 -+do_esp $nsr2 192.168.10.2 192.168.10.1 10.0.2.0/24 10.0.1.0/24 $SPI2 $SPI1 - --ip netns exec nsr1 nft delete table ip nat -+ip netns exec $nsr1 nft delete table ip nat - - # restore default routes --ip -net ns2 route del 192.168.10.1 via 10.0.2.1 --ip -net ns2 route add default via 10.0.2.1 --ip -net ns2 route add default via dead:2::1 -+ip -net $ns2 route del 192.168.10.1 via 10.0.2.1 -+ip -net $ns2 route add default via 10.0.2.1 -+ip -net $ns2 route add default via dead:2::1 - --if test_tcp_forwarding ns1 ns2; then -+if test_tcp_forwarding $ns1 $ns2; then - echo "PASS: ipsec tunnel mode for ns1/ns2" - else - echo "FAIL: ipsec tunnel mode for ns1/ns2" -- ip netns exec nsr1 nft list ruleset 1>&2 -- ip netns exec nsr1 cat /proc/net/xfrm_stat 1>&2 -+ ip netns exec $nsr1 nft list ruleset 1>&2 -+ ip netns exec $nsr1 cat /proc/net/xfrm_stat 1>&2 - fi - - exit $ret --- -2.37.3 - diff --git a/0064-platform-x86-serial-multi-instantiate-Add-CLSA0101-L.patch b/0064-platform-x86-serial-multi-instantiate-Add-CLSA0101-L.patch deleted file mode 100644 index 3f9d9a1de53a..000000000000 --- a/0064-platform-x86-serial-multi-instantiate-Add-CLSA0101-L.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0f31a350fd9a7c750bcde02f92eec3293b6bb667 Mon Sep 17 00:00:00 2001 -From: Lucas Tanure <tanureal@opensource.cirrus.com> -Date: Wed, 27 Jul 2022 10:59:24 +0100 -Subject: [PATCH 64/73] platform/x86: serial-multi-instantiate: Add CLSA0101 - Laptop - -[ Upstream commit 88392a0dd0ab263edb4ca416ebdecabd8289158a ] - -The device CLSA0101 has two instances of CS35L41 -connected by I2C. - -Signed-off-by: Lucas Tanure <tanureal@opensource.cirrus.com> -Link: https://lore.kernel.org/r/20220727095924.80884-5-tanureal@opensource.cirrus.com -Link: https://lore.kernel.org/r/20220816194639.13870-1-cam@neo-zeon.de -Signed-off-by: Takashi Iwai <tiwai@suse.de> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - drivers/platform/x86/serial-multi-instantiate.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/platform/x86/serial-multi-instantiate.c b/drivers/platform/x86/serial-multi-instantiate.c -index 1e8063b7c169..e98007197cf5 100644 ---- a/drivers/platform/x86/serial-multi-instantiate.c -+++ b/drivers/platform/x86/serial-multi-instantiate.c -@@ -329,6 +329,7 @@ static const struct acpi_device_id smi_acpi_ids[] = { - { "CSC3551", (unsigned long)&cs35l41_hda }, - /* Non-conforming _HID for Cirrus Logic already released */ - { "CLSA0100", (unsigned long)&cs35l41_hda }, -+ { "CLSA0101", (unsigned long)&cs35l41_hda }, - { } - }; - MODULE_DEVICE_TABLE(acpi, smi_acpi_ids); --- -2.37.3 - diff --git a/0065-ALSA-hda-cs8409-Support-new-Dolphin-Variants.patch b/0065-ALSA-hda-cs8409-Support-new-Dolphin-Variants.patch deleted file mode 100644 index 12997992dcb3..000000000000 --- a/0065-ALSA-hda-cs8409-Support-new-Dolphin-Variants.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 82af833b99dc51c8795d171dfd376b451506544a Mon Sep 17 00:00:00 2001 -From: Stefan Binding <sbinding@opensource.cirrus.com> -Date: Tue, 16 Aug 2022 16:19:01 +0100 -Subject: [PATCH 65/73] ALSA: hda/cs8409: Support new Dolphin Variants - -[ Upstream commit 1ff954f9ab054675b9eb02dd14add8f7aa376d71 ] - -Add 4 new Dolphin Systems, same configuration as older systems. - -Signed-off-by: Stefan Binding <sbinding@opensource.cirrus.com> -Link: https://lore.kernel.org/r/20220816151901.1398007-1-sbinding@opensource.cirrus.com -Signed-off-by: Takashi Iwai <tiwai@suse.de> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - sound/pci/hda/patch_cs8409-tables.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/sound/pci/hda/patch_cs8409-tables.c b/sound/pci/hda/patch_cs8409-tables.c -index 4f4cc8215917..5b140301ca66 100644 ---- a/sound/pci/hda/patch_cs8409-tables.c -+++ b/sound/pci/hda/patch_cs8409-tables.c -@@ -546,6 +546,10 @@ const struct snd_pci_quirk cs8409_fixup_tbl[] = { - SND_PCI_QUIRK(0x1028, 0x0BD6, "Dolphin", CS8409_DOLPHIN), - SND_PCI_QUIRK(0x1028, 0x0BD7, "Dolphin", CS8409_DOLPHIN), - SND_PCI_QUIRK(0x1028, 0x0BD8, "Dolphin", CS8409_DOLPHIN), -+ SND_PCI_QUIRK(0x1028, 0x0C43, "Dolphin", CS8409_DOLPHIN), -+ SND_PCI_QUIRK(0x1028, 0x0C50, "Dolphin", CS8409_DOLPHIN), -+ SND_PCI_QUIRK(0x1028, 0x0C51, "Dolphin", CS8409_DOLPHIN), -+ SND_PCI_QUIRK(0x1028, 0x0C52, "Dolphin", CS8409_DOLPHIN), - {} /* terminator */ - }; - --- -2.37.3 - diff --git a/0066-btrfs-move-lockdep-class-helpers-to-locking.c.patch b/0066-btrfs-move-lockdep-class-helpers-to-locking.c.patch deleted file mode 100644 index 2a42f10c05ba..000000000000 --- a/0066-btrfs-move-lockdep-class-helpers-to-locking.c.patch +++ /dev/null @@ -1,246 +0,0 @@ -From 98f803acf8ac18a1cc159473137d563db4df0aa8 Mon Sep 17 00:00:00 2001 -From: Josef Bacik <josef@toxicpanda.com> -Date: Tue, 26 Jul 2022 16:24:03 -0400 -Subject: [PATCH 66/73] btrfs: move lockdep class helpers to locking.c - -[ Upstream commit 0a27a0474d146eb79e09ec88bf0d4229f4cfc1b8 ] - -These definitions exist in disk-io.c, which is not related to the -locking. Move this over to locking.h/c where it makes more sense. - -Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> -Signed-off-by: Josef Bacik <josef@toxicpanda.com> -Reviewed-by: David Sterba <dsterba@suse.com> -Signed-off-by: David Sterba <dsterba@suse.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - fs/btrfs/disk-io.c | 82 ---------------------------------------------- - fs/btrfs/disk-io.h | 10 ------ - fs/btrfs/locking.c | 80 ++++++++++++++++++++++++++++++++++++++++++++ - fs/btrfs/locking.h | 9 +++++ - 4 files changed, 89 insertions(+), 92 deletions(-) - -diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c -index bc3030661583..a2505cfc6bc1 100644 ---- a/fs/btrfs/disk-io.c -+++ b/fs/btrfs/disk-io.c -@@ -121,88 +121,6 @@ struct async_submit_bio { - blk_status_t status; - }; - --/* -- * Lockdep class keys for extent_buffer->lock's in this root. For a given -- * eb, the lockdep key is determined by the btrfs_root it belongs to and -- * the level the eb occupies in the tree. -- * -- * Different roots are used for different purposes and may nest inside each -- * other and they require separate keysets. As lockdep keys should be -- * static, assign keysets according to the purpose of the root as indicated -- * by btrfs_root->root_key.objectid. This ensures that all special purpose -- * roots have separate keysets. -- * -- * Lock-nesting across peer nodes is always done with the immediate parent -- * node locked thus preventing deadlock. As lockdep doesn't know this, use -- * subclass to avoid triggering lockdep warning in such cases. -- * -- * The key is set by the readpage_end_io_hook after the buffer has passed -- * csum validation but before the pages are unlocked. It is also set by -- * btrfs_init_new_buffer on freshly allocated blocks. -- * -- * We also add a check to make sure the highest level of the tree is the -- * same as our lockdep setup here. If BTRFS_MAX_LEVEL changes, this code -- * needs update as well. -- */ --#ifdef CONFIG_DEBUG_LOCK_ALLOC --# if BTRFS_MAX_LEVEL != 8 --# error --# endif -- --#define DEFINE_LEVEL(stem, level) \ -- .names[level] = "btrfs-" stem "-0" #level, -- --#define DEFINE_NAME(stem) \ -- DEFINE_LEVEL(stem, 0) \ -- DEFINE_LEVEL(stem, 1) \ -- DEFINE_LEVEL(stem, 2) \ -- DEFINE_LEVEL(stem, 3) \ -- DEFINE_LEVEL(stem, 4) \ -- DEFINE_LEVEL(stem, 5) \ -- DEFINE_LEVEL(stem, 6) \ -- DEFINE_LEVEL(stem, 7) -- --static struct btrfs_lockdep_keyset { -- u64 id; /* root objectid */ -- /* Longest entry: btrfs-free-space-00 */ -- char names[BTRFS_MAX_LEVEL][20]; -- struct lock_class_key keys[BTRFS_MAX_LEVEL]; --} btrfs_lockdep_keysets[] = { -- { .id = BTRFS_ROOT_TREE_OBJECTID, DEFINE_NAME("root") }, -- { .id = BTRFS_EXTENT_TREE_OBJECTID, DEFINE_NAME("extent") }, -- { .id = BTRFS_CHUNK_TREE_OBJECTID, DEFINE_NAME("chunk") }, -- { .id = BTRFS_DEV_TREE_OBJECTID, DEFINE_NAME("dev") }, -- { .id = BTRFS_CSUM_TREE_OBJECTID, DEFINE_NAME("csum") }, -- { .id = BTRFS_QUOTA_TREE_OBJECTID, DEFINE_NAME("quota") }, -- { .id = BTRFS_TREE_LOG_OBJECTID, DEFINE_NAME("log") }, -- { .id = BTRFS_TREE_RELOC_OBJECTID, DEFINE_NAME("treloc") }, -- { .id = BTRFS_DATA_RELOC_TREE_OBJECTID, DEFINE_NAME("dreloc") }, -- { .id = BTRFS_UUID_TREE_OBJECTID, DEFINE_NAME("uuid") }, -- { .id = BTRFS_FREE_SPACE_TREE_OBJECTID, DEFINE_NAME("free-space") }, -- { .id = 0, DEFINE_NAME("tree") }, --}; -- --#undef DEFINE_LEVEL --#undef DEFINE_NAME -- --void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb, -- int level) --{ -- struct btrfs_lockdep_keyset *ks; -- -- BUG_ON(level >= ARRAY_SIZE(ks->keys)); -- -- /* find the matching keyset, id 0 is the default entry */ -- for (ks = btrfs_lockdep_keysets; ks->id; ks++) -- if (ks->id == objectid) -- break; -- -- lockdep_set_class_and_name(&eb->lock, -- &ks->keys[level], ks->names[level]); --} -- --#endif -- - /* - * Compute the csum of a btree block and store the result to provided buffer. - */ -diff --git a/fs/btrfs/disk-io.h b/fs/btrfs/disk-io.h -index 4ee8c42c9f78..b4962b7d7117 100644 ---- a/fs/btrfs/disk-io.h -+++ b/fs/btrfs/disk-io.h -@@ -148,14 +148,4 @@ int btrfs_init_root_free_objectid(struct btrfs_root *root); - int __init btrfs_end_io_wq_init(void); - void __cold btrfs_end_io_wq_exit(void); - --#ifdef CONFIG_DEBUG_LOCK_ALLOC --void btrfs_set_buffer_lockdep_class(u64 objectid, -- struct extent_buffer *eb, int level); --#else --static inline void btrfs_set_buffer_lockdep_class(u64 objectid, -- struct extent_buffer *eb, int level) --{ --} --#endif -- - #endif -diff --git a/fs/btrfs/locking.c b/fs/btrfs/locking.c -index 33461b4f9c8b..5747c63929df 100644 ---- a/fs/btrfs/locking.c -+++ b/fs/btrfs/locking.c -@@ -13,6 +13,86 @@ - #include "extent_io.h" - #include "locking.h" - -+/* -+ * Lockdep class keys for extent_buffer->lock's in this root. For a given -+ * eb, the lockdep key is determined by the btrfs_root it belongs to and -+ * the level the eb occupies in the tree. -+ * -+ * Different roots are used for different purposes and may nest inside each -+ * other and they require separate keysets. As lockdep keys should be -+ * static, assign keysets according to the purpose of the root as indicated -+ * by btrfs_root->root_key.objectid. This ensures that all special purpose -+ * roots have separate keysets. -+ * -+ * Lock-nesting across peer nodes is always done with the immediate parent -+ * node locked thus preventing deadlock. As lockdep doesn't know this, use -+ * subclass to avoid triggering lockdep warning in such cases. -+ * -+ * The key is set by the readpage_end_io_hook after the buffer has passed -+ * csum validation but before the pages are unlocked. It is also set by -+ * btrfs_init_new_buffer on freshly allocated blocks. -+ * -+ * We also add a check to make sure the highest level of the tree is the -+ * same as our lockdep setup here. If BTRFS_MAX_LEVEL changes, this code -+ * needs update as well. -+ */ -+#ifdef CONFIG_DEBUG_LOCK_ALLOC -+#if BTRFS_MAX_LEVEL != 8 -+#error -+#endif -+ -+#define DEFINE_LEVEL(stem, level) \ -+ .names[level] = "btrfs-" stem "-0" #level, -+ -+#define DEFINE_NAME(stem) \ -+ DEFINE_LEVEL(stem, 0) \ -+ DEFINE_LEVEL(stem, 1) \ -+ DEFINE_LEVEL(stem, 2) \ -+ DEFINE_LEVEL(stem, 3) \ -+ DEFINE_LEVEL(stem, 4) \ -+ DEFINE_LEVEL(stem, 5) \ -+ DEFINE_LEVEL(stem, 6) \ -+ DEFINE_LEVEL(stem, 7) -+ -+static struct btrfs_lockdep_keyset { -+ u64 id; /* root objectid */ -+ /* Longest entry: btrfs-free-space-00 */ -+ char names[BTRFS_MAX_LEVEL][20]; -+ struct lock_class_key keys[BTRFS_MAX_LEVEL]; -+} btrfs_lockdep_keysets[] = { -+ { .id = BTRFS_ROOT_TREE_OBJECTID, DEFINE_NAME("root") }, -+ { .id = BTRFS_EXTENT_TREE_OBJECTID, DEFINE_NAME("extent") }, -+ { .id = BTRFS_CHUNK_TREE_OBJECTID, DEFINE_NAME("chunk") }, -+ { .id = BTRFS_DEV_TREE_OBJECTID, DEFINE_NAME("dev") }, -+ { .id = BTRFS_CSUM_TREE_OBJECTID, DEFINE_NAME("csum") }, -+ { .id = BTRFS_QUOTA_TREE_OBJECTID, DEFINE_NAME("quota") }, -+ { .id = BTRFS_TREE_LOG_OBJECTID, DEFINE_NAME("log") }, -+ { .id = BTRFS_TREE_RELOC_OBJECTID, DEFINE_NAME("treloc") }, -+ { .id = BTRFS_DATA_RELOC_TREE_OBJECTID, DEFINE_NAME("dreloc") }, -+ { .id = BTRFS_UUID_TREE_OBJECTID, DEFINE_NAME("uuid") }, -+ { .id = BTRFS_FREE_SPACE_TREE_OBJECTID, DEFINE_NAME("free-space") }, -+ { .id = 0, DEFINE_NAME("tree") }, -+}; -+ -+#undef DEFINE_LEVEL -+#undef DEFINE_NAME -+ -+void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb, int level) -+{ -+ struct btrfs_lockdep_keyset *ks; -+ -+ BUG_ON(level >= ARRAY_SIZE(ks->keys)); -+ -+ /* Find the matching keyset, id 0 is the default entry */ -+ for (ks = btrfs_lockdep_keysets; ks->id; ks++) -+ if (ks->id == objectid) -+ break; -+ -+ lockdep_set_class_and_name(&eb->lock, &ks->keys[level], ks->names[level]); -+} -+ -+#endif -+ - /* - * Extent buffer locking - * ===================== -diff --git a/fs/btrfs/locking.h b/fs/btrfs/locking.h -index bbc45534ae9a..b21372cab840 100644 ---- a/fs/btrfs/locking.h -+++ b/fs/btrfs/locking.h -@@ -131,4 +131,13 @@ void btrfs_drew_write_unlock(struct btrfs_drew_lock *lock); - void btrfs_drew_read_lock(struct btrfs_drew_lock *lock); - void btrfs_drew_read_unlock(struct btrfs_drew_lock *lock); - -+#ifdef CONFIG_DEBUG_LOCK_ALLOC -+void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb, int level); -+#else -+static inline void btrfs_set_buffer_lockdep_class(u64 objectid, -+ struct extent_buffer *eb, int level) -+{ -+} -+#endif -+ - #endif --- -2.37.3 - diff --git a/0067-btrfs-fix-lockdep-splat-with-reloc-root-extent-buffe.patch b/0067-btrfs-fix-lockdep-splat-with-reloc-root-extent-buffe.patch deleted file mode 100644 index 51f5185f8596..000000000000 --- a/0067-btrfs-fix-lockdep-splat-with-reloc-root-extent-buffe.patch +++ /dev/null @@ -1,365 +0,0 @@ -From b83e1567af28055b9a0bb7b10fcdd58b02d00954 Mon Sep 17 00:00:00 2001 -From: Josef Bacik <josef@toxicpanda.com> -Date: Tue, 26 Jul 2022 16:24:04 -0400 -Subject: [PATCH 67/73] btrfs: fix lockdep splat with reloc root extent buffers - -[ Upstream commit b40130b23ca4a08c5785d5a3559805916bddba3c ] - -We have been hitting the following lockdep splat with btrfs/187 recently - - WARNING: possible circular locking dependency detected - 5.19.0-rc8+ #775 Not tainted - ------------------------------------------------------ - btrfs/752500 is trying to acquire lock: - ffff97e1875a97b8 (btrfs-treloc-02#2){+.+.}-{3:3}, at: __btrfs_tree_lock+0x24/0x110 - - but task is already holding lock: - ffff97e1875a9278 (btrfs-tree-01/1){+.+.}-{3:3}, at: __btrfs_tree_lock+0x24/0x110 - - which lock already depends on the new lock. - - the existing dependency chain (in reverse order) is: - - -> #2 (btrfs-tree-01/1){+.+.}-{3:3}: - down_write_nested+0x41/0x80 - __btrfs_tree_lock+0x24/0x110 - btrfs_init_new_buffer+0x7d/0x2c0 - btrfs_alloc_tree_block+0x120/0x3b0 - __btrfs_cow_block+0x136/0x600 - btrfs_cow_block+0x10b/0x230 - btrfs_search_slot+0x53b/0xb70 - btrfs_lookup_inode+0x2a/0xa0 - __btrfs_update_delayed_inode+0x5f/0x280 - btrfs_async_run_delayed_root+0x24c/0x290 - btrfs_work_helper+0xf2/0x3e0 - process_one_work+0x271/0x590 - worker_thread+0x52/0x3b0 - kthread+0xf0/0x120 - ret_from_fork+0x1f/0x30 - - -> #1 (btrfs-tree-01){++++}-{3:3}: - down_write_nested+0x41/0x80 - __btrfs_tree_lock+0x24/0x110 - btrfs_search_slot+0x3c3/0xb70 - do_relocation+0x10c/0x6b0 - relocate_tree_blocks+0x317/0x6d0 - relocate_block_group+0x1f1/0x560 - btrfs_relocate_block_group+0x23e/0x400 - btrfs_relocate_chunk+0x4c/0x140 - btrfs_balance+0x755/0xe40 - btrfs_ioctl+0x1ea2/0x2c90 - __x64_sys_ioctl+0x88/0xc0 - do_syscall_64+0x38/0x90 - entry_SYSCALL_64_after_hwframe+0x63/0xcd - - -> #0 (btrfs-treloc-02#2){+.+.}-{3:3}: - __lock_acquire+0x1122/0x1e10 - lock_acquire+0xc2/0x2d0 - down_write_nested+0x41/0x80 - __btrfs_tree_lock+0x24/0x110 - btrfs_lock_root_node+0x31/0x50 - btrfs_search_slot+0x1cb/0xb70 - replace_path+0x541/0x9f0 - merge_reloc_root+0x1d6/0x610 - merge_reloc_roots+0xe2/0x260 - relocate_block_group+0x2c8/0x560 - btrfs_relocate_block_group+0x23e/0x400 - btrfs_relocate_chunk+0x4c/0x140 - btrfs_balance+0x755/0xe40 - btrfs_ioctl+0x1ea2/0x2c90 - __x64_sys_ioctl+0x88/0xc0 - do_syscall_64+0x38/0x90 - entry_SYSCALL_64_after_hwframe+0x63/0xcd - - other info that might help us debug this: - - Chain exists of: - btrfs-treloc-02#2 --> btrfs-tree-01 --> btrfs-tree-01/1 - - Possible unsafe locking scenario: - - CPU0 CPU1 - ---- ---- - lock(btrfs-tree-01/1); - lock(btrfs-tree-01); - lock(btrfs-tree-01/1); - lock(btrfs-treloc-02#2); - - *** DEADLOCK *** - - 7 locks held by btrfs/752500: - #0: ffff97e292fdf460 (sb_writers#12){.+.+}-{0:0}, at: btrfs_ioctl+0x208/0x2c90 - #1: ffff97e284c02050 (&fs_info->reclaim_bgs_lock){+.+.}-{3:3}, at: btrfs_balance+0x55f/0xe40 - #2: ffff97e284c00878 (&fs_info->cleaner_mutex){+.+.}-{3:3}, at: btrfs_relocate_block_group+0x236/0x400 - #3: ffff97e292fdf650 (sb_internal#2){.+.+}-{0:0}, at: merge_reloc_root+0xef/0x610 - #4: ffff97e284c02378 (btrfs_trans_num_writers){++++}-{0:0}, at: join_transaction+0x1a8/0x5a0 - #5: ffff97e284c023a0 (btrfs_trans_num_extwriters){++++}-{0:0}, at: join_transaction+0x1a8/0x5a0 - #6: ffff97e1875a9278 (btrfs-tree-01/1){+.+.}-{3:3}, at: __btrfs_tree_lock+0x24/0x110 - - stack backtrace: - CPU: 1 PID: 752500 Comm: btrfs Not tainted 5.19.0-rc8+ #775 - Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.13.0-2.fc32 04/01/2014 - Call Trace: - - dump_stack_lvl+0x56/0x73 - check_noncircular+0xd6/0x100 - ? lock_is_held_type+0xe2/0x140 - __lock_acquire+0x1122/0x1e10 - lock_acquire+0xc2/0x2d0 - ? __btrfs_tree_lock+0x24/0x110 - down_write_nested+0x41/0x80 - ? __btrfs_tree_lock+0x24/0x110 - __btrfs_tree_lock+0x24/0x110 - btrfs_lock_root_node+0x31/0x50 - btrfs_search_slot+0x1cb/0xb70 - ? lock_release+0x137/0x2d0 - ? _raw_spin_unlock+0x29/0x50 - ? release_extent_buffer+0x128/0x180 - replace_path+0x541/0x9f0 - merge_reloc_root+0x1d6/0x610 - merge_reloc_roots+0xe2/0x260 - relocate_block_group+0x2c8/0x560 - btrfs_relocate_block_group+0x23e/0x400 - btrfs_relocate_chunk+0x4c/0x140 - btrfs_balance+0x755/0xe40 - btrfs_ioctl+0x1ea2/0x2c90 - ? lock_is_held_type+0xe2/0x140 - ? lock_is_held_type+0xe2/0x140 - ? __x64_sys_ioctl+0x88/0xc0 - __x64_sys_ioctl+0x88/0xc0 - do_syscall_64+0x38/0x90 - entry_SYSCALL_64_after_hwframe+0x63/0xcd - -This isn't necessarily new, it's just tricky to hit in practice. There -are two competing things going on here. With relocation we create a -snapshot of every fs tree with a reloc tree. Any extent buffers that -get initialized here are initialized with the reloc root lockdep key. -However since it is a snapshot, any blocks that are currently in cache -that originally belonged to the fs tree will have the normal tree -lockdep key set. This creates the lock dependency of - - reloc tree -> normal tree - -for the extent buffer locking during the first phase of the relocation -as we walk down the reloc root to relocate blocks. - -However this is problematic because the final phase of the relocation is -merging the reloc root into the original fs root. This involves -searching down to any keys that exist in the original fs root and then -swapping the relocated block and the original fs root block. We have to -search down to the fs root first, and then go search the reloc root for -the block we need to replace. This creates the dependency of - - normal tree -> reloc tree - -which is why lockdep complains. - -Additionally even if we were to fix this particular mismatch with a -different nesting for the merge case, we're still slotting in a block -that has a owner of the reloc root objectid into a normal tree, so that -block will have its lockdep key set to the tree reloc root, and create a -lockdep splat later on when we wander into that block from the fs root. - -Unfortunately the only solution here is to make sure we do not set the -lockdep key to the reloc tree lockdep key normally, and then reset any -blocks we wander into from the reloc root when we're doing the merged. - -This solves the problem of having mixed tree reloc keys intermixed with -normal tree keys, and then allows us to make sure in the merge case we -maintain the lock order of - - normal tree -> reloc tree - -We handle this by setting a bit on the reloc root when we do the search -for the block we want to relocate, and any block we search into or COW -at that point gets set to the reloc tree key. This works correctly -because we only ever COW down to the parent node, so we aren't resetting -the key for the block we're linking into the fs root. - -With this patch we no longer have the lockdep splat in btrfs/187. - -Signed-off-by: Josef Bacik <josef@toxicpanda.com> -Reviewed-by: David Sterba <dsterba@suse.com> -Signed-off-by: David Sterba <dsterba@suse.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - fs/btrfs/ctree.c | 3 +++ - fs/btrfs/ctree.h | 2 ++ - fs/btrfs/extent-tree.c | 18 +++++++++++++++++- - fs/btrfs/extent_io.c | 11 ++++++++++- - fs/btrfs/locking.c | 11 +++++++++++ - fs/btrfs/locking.h | 5 +++++ - fs/btrfs/relocation.c | 2 ++ - 7 files changed, 50 insertions(+), 2 deletions(-) - -diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c -index 6e556031a8f3..ebfa35fe1c38 100644 ---- a/fs/btrfs/ctree.c -+++ b/fs/btrfs/ctree.c -@@ -2075,6 +2075,9 @@ int btrfs_search_slot(struct btrfs_trans_handle *trans, struct btrfs_root *root, - - if (!p->skip_locking) { - level = btrfs_header_level(b); -+ -+ btrfs_maybe_reset_lockdep_class(root, b); -+ - if (level <= write_lock_level) { - btrfs_tree_lock(b); - p->locks[level] = BTRFS_WRITE_LOCK; -diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h -index 7d3ca3ea0bce..4d8acd7e63eb 100644 ---- a/fs/btrfs/ctree.h -+++ b/fs/btrfs/ctree.h -@@ -1146,6 +1146,8 @@ enum { - BTRFS_ROOT_ORPHAN_CLEANUP, - /* This root has a drop operation that was started previously. */ - BTRFS_ROOT_UNFINISHED_DROP, -+ /* This reloc root needs to have its buffers lockdep class reset. */ -+ BTRFS_ROOT_RESET_LOCKDEP_CLASS, - }; - - static inline void btrfs_wake_unfinished_drop(struct btrfs_fs_info *fs_info) -diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c -index ced3fc76063f..92f3f5ed8bf1 100644 ---- a/fs/btrfs/extent-tree.c -+++ b/fs/btrfs/extent-tree.c -@@ -4871,6 +4871,7 @@ btrfs_init_new_buffer(struct btrfs_trans_handle *trans, struct btrfs_root *root, - { - struct btrfs_fs_info *fs_info = root->fs_info; - struct extent_buffer *buf; -+ u64 lockdep_owner = owner; - - buf = btrfs_find_create_tree_block(fs_info, bytenr, owner, level); - if (IS_ERR(buf)) -@@ -4889,12 +4890,27 @@ btrfs_init_new_buffer(struct btrfs_trans_handle *trans, struct btrfs_root *root, - return ERR_PTR(-EUCLEAN); - } - -+ /* -+ * The reloc trees are just snapshots, so we need them to appear to be -+ * just like any other fs tree WRT lockdep. -+ * -+ * The exception however is in replace_path() in relocation, where we -+ * hold the lock on the original fs root and then search for the reloc -+ * root. At that point we need to make sure any reloc root buffers are -+ * set to the BTRFS_TREE_RELOC_OBJECTID lockdep class in order to make -+ * lockdep happy. -+ */ -+ if (lockdep_owner == BTRFS_TREE_RELOC_OBJECTID && -+ !test_bit(BTRFS_ROOT_RESET_LOCKDEP_CLASS, &root->state)) -+ lockdep_owner = BTRFS_FS_TREE_OBJECTID; -+ - /* - * This needs to stay, because we could allocate a freed block from an - * old tree into a new tree, so we need to make sure this new block is - * set to the appropriate level and owner. - */ -- btrfs_set_buffer_lockdep_class(owner, buf, level); -+ btrfs_set_buffer_lockdep_class(lockdep_owner, buf, level); -+ - __btrfs_tree_lock(buf, nest); - btrfs_clean_tree_block(buf); - clear_bit(EXTENT_BUFFER_STALE, &buf->bflags); -diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c -index cda25018ebd7..5785ed241f6f 100644 ---- a/fs/btrfs/extent_io.c -+++ b/fs/btrfs/extent_io.c -@@ -6228,6 +6228,7 @@ struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info, - struct extent_buffer *exists = NULL; - struct page *p; - struct address_space *mapping = fs_info->btree_inode->i_mapping; -+ u64 lockdep_owner = owner_root; - int uptodate = 1; - int ret; - -@@ -6252,7 +6253,15 @@ struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info, - eb = __alloc_extent_buffer(fs_info, start, len); - if (!eb) - return ERR_PTR(-ENOMEM); -- btrfs_set_buffer_lockdep_class(owner_root, eb, level); -+ -+ /* -+ * The reloc trees are just snapshots, so we need them to appear to be -+ * just like any other fs tree WRT lockdep. -+ */ -+ if (lockdep_owner == BTRFS_TREE_RELOC_OBJECTID) -+ lockdep_owner = BTRFS_FS_TREE_OBJECTID; -+ -+ btrfs_set_buffer_lockdep_class(lockdep_owner, eb, level); - - num_pages = num_extent_pages(eb); - for (i = 0; i < num_pages; i++, index++) { -diff --git a/fs/btrfs/locking.c b/fs/btrfs/locking.c -index 5747c63929df..9063072b399b 100644 ---- a/fs/btrfs/locking.c -+++ b/fs/btrfs/locking.c -@@ -91,6 +91,13 @@ void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb, int - lockdep_set_class_and_name(&eb->lock, &ks->keys[level], ks->names[level]); - } - -+void btrfs_maybe_reset_lockdep_class(struct btrfs_root *root, struct extent_buffer *eb) -+{ -+ if (test_bit(BTRFS_ROOT_RESET_LOCKDEP_CLASS, &root->state)) -+ btrfs_set_buffer_lockdep_class(root->root_key.objectid, -+ eb, btrfs_header_level(eb)); -+} -+ - #endif - - /* -@@ -244,6 +251,8 @@ struct extent_buffer *btrfs_lock_root_node(struct btrfs_root *root) - - while (1) { - eb = btrfs_root_node(root); -+ -+ btrfs_maybe_reset_lockdep_class(root, eb); - btrfs_tree_lock(eb); - if (eb == root->node) - break; -@@ -265,6 +274,8 @@ struct extent_buffer *btrfs_read_lock_root_node(struct btrfs_root *root) - - while (1) { - eb = btrfs_root_node(root); -+ -+ btrfs_maybe_reset_lockdep_class(root, eb); - btrfs_tree_read_lock(eb); - if (eb == root->node) - break; -diff --git a/fs/btrfs/locking.h b/fs/btrfs/locking.h -index b21372cab840..ab268be09bb5 100644 ---- a/fs/btrfs/locking.h -+++ b/fs/btrfs/locking.h -@@ -133,11 +133,16 @@ void btrfs_drew_read_unlock(struct btrfs_drew_lock *lock); - - #ifdef CONFIG_DEBUG_LOCK_ALLOC - void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb, int level); -+void btrfs_maybe_reset_lockdep_class(struct btrfs_root *root, struct extent_buffer *eb); - #else - static inline void btrfs_set_buffer_lockdep_class(u64 objectid, - struct extent_buffer *eb, int level) - { - } -+static inline void btrfs_maybe_reset_lockdep_class(struct btrfs_root *root, -+ struct extent_buffer *eb) -+{ -+} - #endif - - #endif -diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c -index 33411baf5c7a..45c02aba2492 100644 ---- a/fs/btrfs/relocation.c -+++ b/fs/btrfs/relocation.c -@@ -1326,7 +1326,9 @@ int replace_path(struct btrfs_trans_handle *trans, struct reloc_control *rc, - btrfs_release_path(path); - - path->lowest_level = level; -+ set_bit(BTRFS_ROOT_RESET_LOCKDEP_CLASS, &src->state); - ret = btrfs_search_slot(trans, src, &key, path, 0, 1); -+ clear_bit(BTRFS_ROOT_RESET_LOCKDEP_CLASS, &src->state); - path->lowest_level = 0; - if (ret) { - if (ret > 0) --- -2.37.3 - diff --git a/0068-btrfs-tree-checker-check-for-overlapping-extent-item.patch b/0068-btrfs-tree-checker-check-for-overlapping-extent-item.patch deleted file mode 100644 index 26afc28bb264..000000000000 --- a/0068-btrfs-tree-checker-check-for-overlapping-extent-item.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 8a239dd886e25d03bb2581c8ab30e8a1a12446b1 Mon Sep 17 00:00:00 2001 -From: Josef Bacik <josef@toxicpanda.com> -Date: Wed, 3 Aug 2022 14:28:47 -0400 -Subject: [PATCH 68/73] btrfs: tree-checker: check for overlapping extent items - -[ Upstream commit 899b7f69f244e539ea5df1b4d756046337de44a5 ] - -We're seeing a weird problem in production where we have overlapping -extent items in the extent tree. It's unclear where these are coming -from, and in debugging we realized there's no check in the tree checker -for this sort of problem. Add a check to the tree-checker to make sure -that the extents do not overlap each other. - -Reviewed-by: Qu Wenruo <wqu@suse.com> -Signed-off-by: Josef Bacik <josef@toxicpanda.com> -Reviewed-by: David Sterba <dsterba@suse.com> -Signed-off-by: David Sterba <dsterba@suse.com> -Signed-off-by: Sasha Levin <sashal@kernel.org> ---- - fs/btrfs/tree-checker.c | 25 +++++++++++++++++++++++-- - 1 file changed, 23 insertions(+), 2 deletions(-) - -diff --git a/fs/btrfs/tree-checker.c b/fs/btrfs/tree-checker.c -index 9e0e0ae2288c..43f905ab0a18 100644 ---- a/fs/btrfs/tree-checker.c -+++ b/fs/btrfs/tree-checker.c -@@ -1233,7 +1233,8 @@ static void extent_err(const struct extent_buffer *eb, int slot, - } - - static int check_extent_item(struct extent_buffer *leaf, -- struct btrfs_key *key, int slot) -+ struct btrfs_key *key, int slot, -+ struct btrfs_key *prev_key) - { - struct btrfs_fs_info *fs_info = leaf->fs_info; - struct btrfs_extent_item *ei; -@@ -1453,6 +1454,26 @@ static int check_extent_item(struct extent_buffer *leaf, - total_refs, inline_refs); - return -EUCLEAN; - } -+ -+ if ((prev_key->type == BTRFS_EXTENT_ITEM_KEY) || -+ (prev_key->type == BTRFS_METADATA_ITEM_KEY)) { -+ u64 prev_end = prev_key->objectid; -+ -+ if (prev_key->type == BTRFS_METADATA_ITEM_KEY) -+ prev_end += fs_info->nodesize; -+ else -+ prev_end += prev_key->offset; -+ -+ if (unlikely(prev_end > key->objectid)) { -+ extent_err(leaf, slot, -+ "previous extent [%llu %u %llu] overlaps current extent [%llu %u %llu]", -+ prev_key->objectid, prev_key->type, -+ prev_key->offset, key->objectid, key->type, -+ key->offset); -+ return -EUCLEAN; -+ } -+ } -+ - return 0; - } - -@@ -1621,7 +1642,7 @@ static int check_leaf_item(struct extent_buffer *leaf, - break; - case BTRFS_EXTENT_ITEM_KEY: - case BTRFS_METADATA_ITEM_KEY: -- ret = check_extent_item(leaf, key, slot); -+ ret = check_extent_item(leaf, key, slot, prev_key); - break; - case BTRFS_TREE_BLOCK_REF_KEY: - case BTRFS_SHARED_DATA_REF_KEY: --- -2.37.3 - diff --git a/0069-android-binder-fix-lockdep-check-on-clearing-vma.patch b/0069-android-binder-fix-lockdep-check-on-clearing-vma.patch deleted file mode 100644 index 175dbc128735..000000000000 --- a/0069-android-binder-fix-lockdep-check-on-clearing-vma.patch +++ /dev/null @@ -1,63 +0,0 @@ -From d25d6744c46b8289d61180bafb30f3140fef24a4 Mon Sep 17 00:00:00 2001 -From: Liam Howlett <liam.howlett@oracle.com> -Date: Mon, 27 Jun 2022 15:18:59 +0000 -Subject: [PATCH 69/73] android: binder: fix lockdep check on clearing vma -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -commit b0cab80ecd54ae3b2356bb081af0bffd538c8265 upstream. - -When munmapping a vma, the mmap_lock can be degraded to a write before -calling close() on the file handle. The binder close() function calls -binder_alloc_set_vma() to clear the vma address, which now has a lock dep -check for writing on the mmap_lock. Change the lockdep check to ensure -the reading lock is held while clearing and keep the write check while -writing. - -Link: https://lkml.kernel.org/r/20220627151857.2316964-1-Liam.Howlett@oracle.com -Fixes: 472a68df605b ("android: binder: stop saving a pointer to the VMA") -Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com> -Reported-by: syzbot+da54fa8d793ca89c741f@syzkaller.appspotmail.com -Acked-by: Todd Kjos <tkjos@google.com> -Cc: "Arve Hjønnevåg" <arve@android.com> -Cc: Christian Brauner (Microsoft) <brauner@kernel.org> -Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -Cc: Hridya Valsaraju <hridya@google.com> -Cc: Joel Fernandes <joel@joelfernandes.org> -Cc: Martijn Coenen <maco@android.com> -Cc: Suren Baghdasaryan <surenb@google.com> -Signed-off-by: Andrew Morton <akpm@linux-foundation.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/android/binder_alloc.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c -index 7981a2598376..5d437c0c842c 100644 ---- a/drivers/android/binder_alloc.c -+++ b/drivers/android/binder_alloc.c -@@ -315,12 +315,19 @@ static inline void binder_alloc_set_vma(struct binder_alloc *alloc, - { - unsigned long vm_start = 0; - -+ /* -+ * Allow clearing the vma with holding just the read lock to allow -+ * munmapping downgrade of the write lock before freeing and closing the -+ * file using binder_alloc_vma_close(). -+ */ - if (vma) { - vm_start = vma->vm_start; - alloc->vma_vm_mm = vma->vm_mm; -+ mmap_assert_write_locked(alloc->vma_vm_mm); -+ } else { -+ mmap_assert_locked(alloc->vma_vm_mm); - } - -- mmap_assert_write_locked(alloc->vma_vm_mm); - alloc->vma_addr = vm_start; - } - --- -2.37.3 - diff --git a/0070-net-af_packet-check-len-when-min_header_len-equals-t.patch b/0070-net-af_packet-check-len-when-min_header_len-equals-t.patch deleted file mode 100644 index 3fca7bfd275d..000000000000 --- a/0070-net-af_packet-check-len-when-min_header_len-equals-t.patch +++ /dev/null @@ -1,39 +0,0 @@ -From ec274d8f1e649b12530bbba3f01478e20bf8bc23 Mon Sep 17 00:00:00 2001 -From: Zhengchao Shao <shaozhengchao@huawei.com> -Date: Wed, 27 Jul 2022 17:33:12 +0800 -Subject: [PATCH 70/73] net/af_packet: check len when min_header_len equals to - 0 - -commit dc633700f00f726e027846a318c5ffeb8deaaeda upstream. - -User can use AF_PACKET socket to send packets with the length of 0. -When min_header_len equals to 0, packet_snd will call __dev_queue_xmit -to send packets, and sock->type can be any type. - -Reported-by: syzbot+5ea725c25d06fb9114c4@syzkaller.appspotmail.com -Fixes: fd1894224407 ("bpf: Don't redirect packets with invalid pkt_len") -Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com> -Signed-off-by: David S. Miller <davem@davemloft.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - net/packet/af_packet.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c -index ca6e92a22923..492bd35cccc0 100644 ---- a/net/packet/af_packet.c -+++ b/net/packet/af_packet.c -@@ -3037,8 +3037,8 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len) - if (err) - goto out_free; - -- if (sock->type == SOCK_RAW && -- !dev_validate_header(dev, skb->data, len)) { -+ if ((sock->type == SOCK_RAW && -+ !dev_validate_header(dev, skb->data, len)) || !skb->len) { - err = -EINVAL; - goto out_free; - } --- -2.37.3 - diff --git a/0071-net-neigh-don-t-call-kfree_skb-under-spin_lock_irqsa.patch b/0071-net-neigh-don-t-call-kfree_skb-under-spin_lock_irqsa.patch deleted file mode 100644 index 91d931e50697..000000000000 --- a/0071-net-neigh-don-t-call-kfree_skb-under-spin_lock_irqsa.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 123bf15c1a15f8dc7b5aceb5186bed37f2e80af5 Mon Sep 17 00:00:00 2001 -From: Yang Yingliang <yangyingliang@huawei.com> -Date: Mon, 22 Aug 2022 10:53:46 +0800 -Subject: [PATCH 71/73] net: neigh: don't call kfree_skb() under - spin_lock_irqsave() - -commit d5485d9dd24e1d04e5509916515260186eb1455c upstream. - -It is not allowed to call kfree_skb() from hardware interrupt -context or with interrupts being disabled. So add all skb to -a tmp list, then free them after spin_unlock_irqrestore() at -once. - -Fixes: 66ba215cb513 ("neigh: fix possible DoS due to net iface start/stop loop") -Suggested-by: Denis V. Lunev <den@openvz.org> -Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> -Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org> -Signed-off-by: David S. Miller <davem@davemloft.net> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - net/core/neighbour.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/net/core/neighbour.c b/net/core/neighbour.c -index 19d99d1eff53..fbaa557ed7ec 100644 ---- a/net/core/neighbour.c -+++ b/net/core/neighbour.c -@@ -309,21 +309,27 @@ static int neigh_del_timer(struct neighbour *n) - - static void pneigh_queue_purge(struct sk_buff_head *list, struct net *net) - { -+ struct sk_buff_head tmp; - unsigned long flags; - struct sk_buff *skb; - -+ skb_queue_head_init(&tmp); - spin_lock_irqsave(&list->lock, flags); - skb = skb_peek(list); - while (skb != NULL) { - struct sk_buff *skb_next = skb_peek_next(skb, list); - if (net == NULL || net_eq(dev_net(skb->dev), net)) { - __skb_unlink(skb, list); -- dev_put(skb->dev); -- kfree_skb(skb); -+ __skb_queue_tail(&tmp, skb); - } - skb = skb_next; - } - spin_unlock_irqrestore(&list->lock, flags); -+ -+ while ((skb = __skb_dequeue(&tmp))) { -+ dev_put(skb->dev); -+ kfree_skb(skb); -+ } - } - - static void neigh_flush_dev(struct neigh_table *tbl, struct net_device *dev, --- -2.37.3 - diff --git a/0072-arm64-cacheinfo-Fix-incorrect-assignment-of-signed-e.patch b/0072-arm64-cacheinfo-Fix-incorrect-assignment-of-signed-e.patch deleted file mode 100644 index 89ceb0132ccd..000000000000 --- a/0072-arm64-cacheinfo-Fix-incorrect-assignment-of-signed-e.patch +++ /dev/null @@ -1,80 +0,0 @@ -From a754ee1c66bd0a23e613f0bf865053b29cb90e16 Mon Sep 17 00:00:00 2001 -From: Sudeep Holla <sudeep.holla@arm.com> -Date: Mon, 8 Aug 2022 09:46:40 +0100 -Subject: [PATCH 72/73] arm64: cacheinfo: Fix incorrect assignment of signed - error value to unsigned fw_level - -commit e75d18cecbb3805895d8ed64da4f78575ec96043 upstream. - -Though acpi_find_last_cache_level() always returned signed value and the -document states it will return any errors caused by lack of a PPTT table, -it never returned negative values before. - -Commit 0c80f9e165f8 ("ACPI: PPTT: Leave the table mapped for the runtime usage") -however changed it by returning -ENOENT if no PPTT was found. The value -returned from acpi_find_last_cache_level() is then assigned to unsigned -fw_level. - -It will result in the number of cache leaves calculated incorrectly as -a huge value which will then cause the following warning from __alloc_pages -as the order would be great than MAX_ORDER because of incorrect and huge -cache leaves value. - - | WARNING: CPU: 0 PID: 1 at mm/page_alloc.c:5407 __alloc_pages+0x74/0x314 - | Modules linked in: - | CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.19.0-10393-g7c2a8d3ac4c0 #73 - | pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) - | pc : __alloc_pages+0x74/0x314 - | lr : alloc_pages+0xe8/0x318 - | Call trace: - | __alloc_pages+0x74/0x314 - | alloc_pages+0xe8/0x318 - | kmalloc_order_trace+0x68/0x1dc - | __kmalloc+0x240/0x338 - | detect_cache_attributes+0xe0/0x56c - | update_siblings_masks+0x38/0x284 - | store_cpu_topology+0x78/0x84 - | smp_prepare_cpus+0x48/0x134 - | kernel_init_freeable+0xc4/0x14c - | kernel_init+0x2c/0x1b4 - | ret_from_fork+0x10/0x20 - -Fix the same by changing fw_level to be signed integer and return the -error from init_cache_level() early in case of error. - -Reported-and-Tested-by: Bruno Goncalves <bgoncalv@redhat.com> -Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> -Link: https://lore.kernel.org/r/20220808084640.3165368-1-sudeep.holla@arm.com -Signed-off-by: Will Deacon <will@kernel.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/arm64/kernel/cacheinfo.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/arch/arm64/kernel/cacheinfo.c b/arch/arm64/kernel/cacheinfo.c -index 587543c6c51c..97c42be71338 100644 ---- a/arch/arm64/kernel/cacheinfo.c -+++ b/arch/arm64/kernel/cacheinfo.c -@@ -45,7 +45,8 @@ static void ci_leaf_init(struct cacheinfo *this_leaf, - - int init_cache_level(unsigned int cpu) - { -- unsigned int ctype, level, leaves, fw_level; -+ unsigned int ctype, level, leaves; -+ int fw_level; - struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu); - - for (level = 1, leaves = 0; level <= MAX_CACHE_LEVEL; level++) { -@@ -63,6 +64,9 @@ int init_cache_level(unsigned int cpu) - else - fw_level = acpi_find_last_cache_level(cpu); - -+ if (fw_level < 0) -+ return fw_level; -+ - if (level < fw_level) { - /* - * some external caches not specified in CLIDR_EL1 --- -2.37.3 - @@ -55,17 +55,17 @@ _BATCH_MODE=n # enable batch mode ## -_major=5 -_minor=19 +_major=6 +_minor=0 #_patchlevel=0 #_subversion=1 -_basekernel=${_major}.${_minor} _srcname=linux-pf pkgbase=linux-pf -_unpatched_sublevel=7 -_pfrel=3 +_unpatched_sublevel=2 +_pfrel=2 _kernelname=pf _projectcpatchname=prjc_v5.15-r1.patch +_basekernel=${_major}.${_minor}.${_unpatched_sublevel} _CPUSUFFIXES_KBUILD=( # AMD K8 K8SSE3 K10 BARCELONA BOBCAT BULLDOZER PILEDRIVER STEAROLLER EXCAVATOR ZEN @@ -81,14 +81,14 @@ pkgname=('linux-pf') pkgdesc="Linux with the pf-kernel patch (uksm, ZSTD, FSGSBASE and more)" pkgname=('linux-pf' 'linux-pf-headers-variant' 'linux-pf-headers') -pkgver=${_basekernel}.${_unpatched_sublevel}.${_kernelname}${_pfrel} +pkgver=${_basekernel}.${_kernelname}${_pfrel} pkgrel=1 arch=('i686' 'x86_64') url="https://codeberg.org/pf-kernel/linux/wiki/README" license=('GPL2') options=('!strip') makedepends=('git' 'xmlto' 'docbook-xsl' 'xz' 'bc' 'kmod' 'elfutils' 'inetutils' 'pahole' 'cpio') -source=("linux-pf::git+https://codeberg.org/pf-kernel/linux.git#tag=v${_major}.${_minor}-pf${_pfrel}" +source=("linux-pf::git+https://codeberg.org/thaodan/linux.git#tag=v${_basekernel}.pf${_pfrel}.thao${pkgrel}" 'config.x86_64' 'config.i686' 'pf_defconfig' @@ -97,221 +97,34 @@ source=("linux-pf::git+https://codeberg.org/pf-kernel/linux.git#tag=v${_major}.$ # "https://gitlab.com/alfredchen/projectc/raw/master/$_major.$_minor/$_projectcpatchname" "90-linux.hook" "60-linux.hook" - # ZEN - 0002-ZEN-Add-VHBA-driver.patch - 0003-ZEN-Add-OpenRGB-patches.patch - 0004-ZEN-Add-ACS-override-support.patch - 0005-ZEN-PCI-Add-Intel-remapped-NVMe-device-support.patch - 0008-ZEN-Disable-stack-conservation-for-GCC.patch - 0009-ZEN-Initialize-ata-before-graphics.patch - 0010-ZEN-Input-evdev-use-call_rcu-when-detaching-client.patch - 0012-ZEN-cpufreq-Remove-schedutil-dependency-on-Intel-AMD.patch - 0013-ZEN-intel-pstate-Implement-enable-parameter.patch - 0014-ZEN-mm-Disable-watermark-boosting-by-default.patch - 0015-ZEN-mm-Stop-kswapd-early-when-nothing-s-waiting-for-.patch - 0016-ZEN-mm-Increment-kswapd_waiters-for-throttled-direct.patch - 0017-ZEN-mm-Lower-the-non-hugetlbpage-pageblock-size-to-r.patch - 0018-ZEN-mm-Don-t-hog-the-CPU-and-zone-lock-in-rmqueue_bu.patch - 0019-ZEN-INTERACTIVE-Base-config-item.patch - 0020-ZEN-INTERACTIVE-Use-BFQ-as-our-elevator.patch - 0021-ZEN-INTERACTIVE-Use-Kyber-as-our-elevator-for-multi-.patch - 0022-ZEN-INTERACTIVE-Enable-background-reclaim-of-hugepag.patch - 0023-ZEN-INTERACTIVE-Add-help-text-for-the-MG-LRU-tweaks.patch - 0024-ZEN-INTERACTIVE-Tune-CFS-for-interactivity.patch - 0025-ZEN-INTERACTIVE-Tune-ondemand-governor-for-interacti.patch - 0026-ZEN-INTERACTIVE-Document-PDS-BMQ-configuration.patch - 0027-ZEN-INTERACTIVE-mm-Disable-unevictable-compaction.patch - 0028-ZEN-INTERACTIVE-mm-Disable-proactive-compaction-by-d.patch - 0029-ZEN-INTERACTIVE-dm-crypt-Disable-workqueues-for-cryp.patch - # ZEN END - # 5.19.7 - 0001-drm-vc4-hdmi-Rework-power-up.patch - 0002-drm-vc4-hdmi-Depends-on-CONFIG_PM.patch - 0003-firmware-tegra-bpmp-Do-only-aligned-access-to-IPC-me.patch - 0004-crypto-lib-remove-unneeded-selection-of-XOR_BLOCKS.patch - 0005-docs-kerneldoc-preamble-Test-xeCJK.sty-before-loadin.patch - 0006-arm64-errata-Add-Cortex-A510-to-the-repeat-tlbi-list.patch - 0007-Bluetooth-L2CAP-Fix-build-errors-in-some-archs.patch - 0008-Revert-PCI-portdrv-Don-t-disable-AER-reporting-in-ge.patch - 0009-HID-steam-Prevent-NULL-pointer-dereference-in-steam_.patch - 0010-udmabuf-Set-the-DMA-mask-for-the-udmabuf-device-v2.patch - 0011-media-pvrusb2-fix-memory-leak-in-pvr_probe.patch - 0012-USB-gadget-Fix-use-after-free-Read-in-usb_udc_uevent.patch - 0013-HID-hidraw-fix-memory-leak-in-hidraw_release.patch - 0014-net-fix-refcount-bug-in-sk_psock_get-2.patch - 0015-fbdev-fb_pm2fb-Avoid-potential-divide-by-zero-error.patch - 0016-ftrace-Fix-NULL-pointer-dereference-in-is_ftrace_tra.patch - 0017-bpf-Don-t-redirect-packets-with-invalid-pkt_len.patch - 0018-mm-rmap-Fix-anon_vma-degree-ambiguity-leading-to-dou.patch - 0019-ALSA-usb-audio-Add-quirk-for-LH-Labs-Geek-Out-HD-Aud.patch - 0020-HID-input-fix-uclogic-tablets.patch - 0021-HID-add-Lenovo-Yoga-C630-battery-quirk.patch - 0022-HID-AMD_SFH-Add-a-DMI-quirk-entry-for-Chromebooks.patch - 0023-HID-Add-Apple-Touchbar-on-T2-Macs-in-hid_have_specia.patch - 0024-HID-asus-ROG-NKey-Ignore-portion-of-0x5a-report.patch - 0025-HID-nintendo-fix-rumble-worker-null-pointer-deref.patch - 0026-HID-thrustmaster-Add-sparco-wheel-and-fix-array-leng.patch - 0027-HID-intel-ish-hid-ipc-Add-Meteor-Lake-PCI-device-ID.patch - 0028-mmc-mtk-sd-Clear-interrupts-when-cqe-off-disable.patch - 0029-mmc-sdhci-of-dwcmshc-add-reset-call-back-for-rockchi.patch - 0030-mmc-sdhci-of-dwcmshc-rename-rk3568-to-rk35xx.patch - 0031-mmc-sdhci-of-dwcmshc-Re-enable-support-for-the-BlueF.patch - 0032-fs-ntfs3-Fix-work-with-fragmented-xattr.patch - 0033-ASoC-sh-rz-ssi-Improve-error-handling-in-rz_ssi_prob.patch - 0034-ASoC-rt5640-Fix-the-JD-voltage-dropping-issue.patch - 0035-rtla-Fix-tracer-name.patch - 0036-drm-amd-display-Add-a-missing-register-field-for-HPO.patch - 0037-drm-amd-display-Device-flash-garbage-before-get-in-O.patch - 0038-drm-amd-display-Avoid-MPC-infinite-loop.patch - 0039-drm-amd-display-Fix-HDMI-VSIF-V3-incorrect-issue.patch - 0040-drm-amd-display-For-stereo-keep-FLIP_ANY_FRAME.patch - 0041-drm-amd-display-clear-optc-underflow-before-turn-off.patch - 0042-drm-amd-display-Fix-TDR-eDP-and-USB4-display-light-u.patch - 0043-drm-amd-pm-skip-pptable-override-for-smu_v13_0_7.patch - 0044-drm-amdkfd-Handle-restart-of-kfd_ioctl_wait_events.patch - 0045-drm-amd-pm-Fix-a-potential-gpu_metrics_table-memory-.patch - 0046-ksmbd-return-STATUS_BAD_NETWORK_NAME-error-status-if.patch - 0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch - 0048-neigh-fix-possible-DoS-due-to-net-iface-start-stop-l.patch - 0049-ALSA-hda-realtek-Add-quirks-for-ASUS-Zenbooks-using-.patch - 0050-s390-hypfs-avoid-error-message-under-KVM.patch - 0051-ksmbd-don-t-remove-dos-attribute-xattr-on-O_TRUNC-op.patch - 0052-drm-amdgpu-disable-3DCGCG-CGLS-temporarily-due-to-st.patch - 0053-drm-amd-pm-add-missing-fini_microcode-interface-for-.patch - 0054-drm-amd-pm-add-missing-fini_xxxx-interfaces-for-some.patch - 0055-drm-amd-display-Fix-pixel-clock-programming.patch - 0056-drm-amdgpu-Increase-tlb-flush-timeout-for-sriov.patch - 0057-drm-amd-display-Fix-plug-unplug-external-monitor-wil.patch - 0058-drm-amd-display-avoid-doing-vm_init-multiple-time.patch - 0059-drm-amdgpu-Add-decode_iv_ts-helper-for-ih_v6-block.patch - 0060-drm-amdgpu-Add-secure-display-TA-load-for-Renoir.patch - 0061-drm-amdgpu-Fix-interrupt-handling-on-ih_soft-ring.patch - 0062-netfilter-conntrack-NF_CONNTRACK_PROCFS-should-no-lo.patch - 0063-testing-selftests-nft_flowtable.sh-use-random-netns-.patch - 0064-platform-x86-serial-multi-instantiate-Add-CLSA0101-L.patch - 0065-ALSA-hda-cs8409-Support-new-Dolphin-Variants.patch - 0066-btrfs-move-lockdep-class-helpers-to-locking.c.patch - 0067-btrfs-fix-lockdep-splat-with-reloc-root-extent-buffe.patch - 0068-btrfs-tree-checker-check-for-overlapping-extent-item.patch - 0069-android-binder-fix-lockdep-check-on-clearing-vma.patch - 0070-net-af_packet-check-len-when-min_header_len-equals-t.patch - 0071-net-neigh-don-t-call-kfree_skb-under-spin_lock_irqsa.patch - 0072-arm64-cacheinfo-Fix-incorrect-assignment-of-signed-e.patch - # 5.19.7 END ) +sha256sums=('SKIP' + '4415388555aab8845e60f6b3996e3a75b8159d516b7b04a6adb8ade54de3ff9c' + '64632c7d7d68954da4ecfbd639878eea3041bbbad2d2621c7a6943d89950cb6e' + 'f016df0b9651b83bc72f955ca596b6a3d325b3118026a397ba36033c8026c86d' + '82d660caa11db0cd34fd550a049d7296b4a9dcd28f2a50c81418066d6e598864' + '75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919' + 'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21') + # 'cx23885_move_CI_AC_registration_to_a_separate_function.patch' +export KBUILD_BUILD_HOST=archlinux +export KBUILD_BUILD_USER=$pkgbase +export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})" + prepare() { cd "${srcdir}/${_srcname}" - patch -p1 -i ${srcdir}/0002-ZEN-Add-VHBA-driver.patch - patch -p1 -i ${srcdir}/0003-ZEN-Add-OpenRGB-patches.patch - patch -p1 -i ${srcdir}/0004-ZEN-Add-ACS-override-support.patch - patch -p1 -i ${srcdir}/0005-ZEN-PCI-Add-Intel-remapped-NVMe-device-support.patch - # already applied by pf - # patch -p1 -i ${srcdir}/0006-ZEN-Add-graysky-s-more-uarches.patch - # already applied by pf - # patch -p1 -i ${srcdir}/0007-ZEN-Unrestrict-CONFIG_OPTIMIZE_FOR_PERFORMANCE_O3.patch - patch -p1 -i ${srcdir}/0008-ZEN-Disable-stack-conservation-for-GCC.patch - patch -p1 -i ${srcdir}/0009-ZEN-Initialize-ata-before-graphics.patch - patch -p1 -i ${srcdir}/0010-ZEN-Input-evdev-use-call_rcu-when-detaching-client.patch - # already applied by pf - # patch -p1 -i ${srcdir}/0011-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch - patch -p1 -i ${srcdir}/0012-ZEN-cpufreq-Remove-schedutil-dependency-on-Intel-AMD.patch - patch -p1 -i ${srcdir}/0013-ZEN-intel-pstate-Implement-enable-parameter.patch - patch -p1 -i ${srcdir}/0014-ZEN-mm-Disable-watermark-boosting-by-default.patch - patch -p1 -i ${srcdir}/0015-ZEN-mm-Stop-kswapd-early-when-nothing-s-waiting-for-.patch - patch -p1 -i ${srcdir}/0016-ZEN-mm-Increment-kswapd_waiters-for-throttled-direct.patch - patch -p1 -i ${srcdir}/0017-ZEN-mm-Lower-the-non-hugetlbpage-pageblock-size-to-r.patch - patch -p1 -i ${srcdir}/0018-ZEN-mm-Don-t-hog-the-CPU-and-zone-lock-in-rmqueue_bu.patch - patch -p1 -i ${srcdir}/0019-ZEN-INTERACTIVE-Base-config-item.patch - patch -p1 -i ${srcdir}/0020-ZEN-INTERACTIVE-Use-BFQ-as-our-elevator.patch - patch -p1 -i ${srcdir}/0021-ZEN-INTERACTIVE-Use-Kyber-as-our-elevator-for-multi-.patch - patch -p1 -i ${srcdir}/0022-ZEN-INTERACTIVE-Enable-background-reclaim-of-hugepag.patch - patch -p1 -i ${srcdir}/0023-ZEN-INTERACTIVE-Add-help-text-for-the-MG-LRU-tweaks.patch - patch -p1 -i ${srcdir}/0024-ZEN-INTERACTIVE-Tune-CFS-for-interactivity.patch - patch -p1 -i ${srcdir}/0025-ZEN-INTERACTIVE-Tune-ondemand-governor-for-interacti.patch - patch -p1 -i ${srcdir}/0026-ZEN-INTERACTIVE-Document-PDS-BMQ-configuration.patch - patch -p1 -i ${srcdir}/0027-ZEN-INTERACTIVE-mm-Disable-unevictable-compaction.patch - patch -p1 -i ${srcdir}/0028-ZEN-INTERACTIVE-mm-Disable-proactive-compaction-by-d.patch - patch -p1 -i ${srcdir}/0029-ZEN-INTERACTIVE-dm-crypt-Disable-workqueues-for-cryp.patch - - # 5.19.7 - patch -p1 -i ${srcdir}/0001-drm-vc4-hdmi-Rework-power-up.patch - patch -p1 -i ${srcdir}/0002-drm-vc4-hdmi-Depends-on-CONFIG_PM.patch - patch -p1 -i ${srcdir}/0003-firmware-tegra-bpmp-Do-only-aligned-access-to-IPC-me.patch - patch -p1 -i ${srcdir}/0004-crypto-lib-remove-unneeded-selection-of-XOR_BLOCKS.patch - patch -p1 -i ${srcdir}/0005-docs-kerneldoc-preamble-Test-xeCJK.sty-before-loadin.patch - patch -p1 -i ${srcdir}/0006-arm64-errata-Add-Cortex-A510-to-the-repeat-tlbi-list.patch - patch -p1 -i ${srcdir}/0007-Bluetooth-L2CAP-Fix-build-errors-in-some-archs.patch - patch -p1 -i ${srcdir}/0008-Revert-PCI-portdrv-Don-t-disable-AER-reporting-in-ge.patch - patch -p1 -i ${srcdir}/0009-HID-steam-Prevent-NULL-pointer-dereference-in-steam_.patch - patch -p1 -i ${srcdir}/0010-udmabuf-Set-the-DMA-mask-for-the-udmabuf-device-v2.patch - patch -p1 -i ${srcdir}/0011-media-pvrusb2-fix-memory-leak-in-pvr_probe.patch - patch -p1 -i ${srcdir}/0012-USB-gadget-Fix-use-after-free-Read-in-usb_udc_uevent.patch - patch -p1 -i ${srcdir}/0013-HID-hidraw-fix-memory-leak-in-hidraw_release.patch - patch -p1 -i ${srcdir}/0014-net-fix-refcount-bug-in-sk_psock_get-2.patch - patch -p1 -i ${srcdir}/0015-fbdev-fb_pm2fb-Avoid-potential-divide-by-zero-error.patch - patch -p1 -i ${srcdir}/0016-ftrace-Fix-NULL-pointer-dereference-in-is_ftrace_tra.patch - patch -p1 -i ${srcdir}/0017-bpf-Don-t-redirect-packets-with-invalid-pkt_len.patch - patch -p1 -i ${srcdir}/0018-mm-rmap-Fix-anon_vma-degree-ambiguity-leading-to-dou.patch - patch -p1 -i ${srcdir}/0019-ALSA-usb-audio-Add-quirk-for-LH-Labs-Geek-Out-HD-Aud.patch - patch -p1 -i ${srcdir}/0020-HID-input-fix-uclogic-tablets.patch - patch -p1 -i ${srcdir}/0021-HID-add-Lenovo-Yoga-C630-battery-quirk.patch - patch -p1 -i ${srcdir}/0022-HID-AMD_SFH-Add-a-DMI-quirk-entry-for-Chromebooks.patch - patch -p1 -i ${srcdir}/0023-HID-Add-Apple-Touchbar-on-T2-Macs-in-hid_have_specia.patch - patch -p1 -i ${srcdir}/0024-HID-asus-ROG-NKey-Ignore-portion-of-0x5a-report.patch - patch -p1 -i ${srcdir}/0025-HID-nintendo-fix-rumble-worker-null-pointer-deref.patch - patch -p1 -i ${srcdir}/0026-HID-thrustmaster-Add-sparco-wheel-and-fix-array-leng.patch - patch -p1 -i ${srcdir}/0027-HID-intel-ish-hid-ipc-Add-Meteor-Lake-PCI-device-ID.patch - patch -p1 -i ${srcdir}/0028-mmc-mtk-sd-Clear-interrupts-when-cqe-off-disable.patch - patch -p1 -i ${srcdir}/0029-mmc-sdhci-of-dwcmshc-add-reset-call-back-for-rockchi.patch - patch -p1 -i ${srcdir}/0030-mmc-sdhci-of-dwcmshc-rename-rk3568-to-rk35xx.patch - patch -p1 -i ${srcdir}/0031-mmc-sdhci-of-dwcmshc-Re-enable-support-for-the-BlueF.patch - patch -p1 -i ${srcdir}/0032-fs-ntfs3-Fix-work-with-fragmented-xattr.patch - patch -p1 -i ${srcdir}/0033-ASoC-sh-rz-ssi-Improve-error-handling-in-rz_ssi_prob.patch - patch -p1 -i ${srcdir}/0034-ASoC-rt5640-Fix-the-JD-voltage-dropping-issue.patch - patch -p1 -i ${srcdir}/0035-rtla-Fix-tracer-name.patch - patch -p1 -i ${srcdir}/0036-drm-amd-display-Add-a-missing-register-field-for-HPO.patch - patch -p1 -i ${srcdir}/0037-drm-amd-display-Device-flash-garbage-before-get-in-O.patch - patch -p1 -i ${srcdir}/0038-drm-amd-display-Avoid-MPC-infinite-loop.patch - patch -p1 -i ${srcdir}/0039-drm-amd-display-Fix-HDMI-VSIF-V3-incorrect-issue.patch - patch -p1 -i ${srcdir}/0040-drm-amd-display-For-stereo-keep-FLIP_ANY_FRAME.patch - patch -p1 -i ${srcdir}/0041-drm-amd-display-clear-optc-underflow-before-turn-off.patch - patch -p1 -i ${srcdir}/0042-drm-amd-display-Fix-TDR-eDP-and-USB4-display-light-u.patch - patch -p1 -i ${srcdir}/0043-drm-amd-pm-skip-pptable-override-for-smu_v13_0_7.patch - patch -p1 -i ${srcdir}/0044-drm-amdkfd-Handle-restart-of-kfd_ioctl_wait_events.patch - patch -p1 -i ${srcdir}/0045-drm-amd-pm-Fix-a-potential-gpu_metrics_table-memory-.patch - patch -p1 -i ${srcdir}/0046-ksmbd-return-STATUS_BAD_NETWORK_NAME-error-status-if.patch - patch -p1 -i ${srcdir}/0047-net-lan966x-fix-checking-for-return-value-of-platfor.patch - patch -p1 -i ${srcdir}/0048-neigh-fix-possible-DoS-due-to-net-iface-start-stop-l.patch - patch -p1 -i ${srcdir}/0049-ALSA-hda-realtek-Add-quirks-for-ASUS-Zenbooks-using-.patch - patch -p1 -i ${srcdir}/0050-s390-hypfs-avoid-error-message-under-KVM.patch - patch -p1 -i ${srcdir}/0051-ksmbd-don-t-remove-dos-attribute-xattr-on-O_TRUNC-op.patch - patch -p1 -i ${srcdir}/0052-drm-amdgpu-disable-3DCGCG-CGLS-temporarily-due-to-st.patch - patch -p1 -i ${srcdir}/0053-drm-amd-pm-add-missing-fini_microcode-interface-for-.patch - patch -p1 -i ${srcdir}/0054-drm-amd-pm-add-missing-fini_xxxx-interfaces-for-some.patch - patch -p1 -i ${srcdir}/0055-drm-amd-display-Fix-pixel-clock-programming.patch - patch -p1 -i ${srcdir}/0056-drm-amdgpu-Increase-tlb-flush-timeout-for-sriov.patch - patch -p1 -i ${srcdir}/0057-drm-amd-display-Fix-plug-unplug-external-monitor-wil.patch - patch -p1 -i ${srcdir}/0058-drm-amd-display-avoid-doing-vm_init-multiple-time.patch - patch -p1 -i ${srcdir}/0059-drm-amdgpu-Add-decode_iv_ts-helper-for-ih_v6-block.patch - patch -p1 -i ${srcdir}/0060-drm-amdgpu-Add-secure-display-TA-load-for-Renoir.patch - patch -p1 -i ${srcdir}/0061-drm-amdgpu-Fix-interrupt-handling-on-ih_soft-ring.patch - patch -p1 -i ${srcdir}/0062-netfilter-conntrack-NF_CONNTRACK_PROCFS-should-no-lo.patch - patch -p1 -i ${srcdir}/0063-testing-selftests-nft_flowtable.sh-use-random-netns-.patch - patch -p1 -i ${srcdir}/0064-platform-x86-serial-multi-instantiate-Add-CLSA0101-L.patch - patch -p1 -i ${srcdir}/0065-ALSA-hda-cs8409-Support-new-Dolphin-Variants.patch - patch -p1 -i ${srcdir}/0066-btrfs-move-lockdep-class-helpers-to-locking.c.patch - patch -p1 -i ${srcdir}/0067-btrfs-fix-lockdep-splat-with-reloc-root-extent-buffe.patch - patch -p1 -i ${srcdir}/0068-btrfs-tree-checker-check-for-overlapping-extent-item.patch - patch -p1 -i ${srcdir}/0069-android-binder-fix-lockdep-check-on-clearing-vma.patch - patch -p1 -i ${srcdir}/0070-net-af_packet-check-len-when-min_header_len-equals-t.patch - patch -p1 -i ${srcdir}/0071-net-neigh-don-t-call-kfree_skb-under-spin_lock_irqsa.patch - patch -p1 -i ${srcdir}/0072-arm64-cacheinfo-Fix-incorrect-assignment-of-signed-e.patch - # 5.19.7 end + local src + for src in "${source[@]}"; do + src="${src%%::*}" + src="${src##*/}" + [[ $src = *.patch ]] || continue + echo "Applying patch $src..." + git am "../$src" + done if [ "$CARCH" = "x86_64" ]; then cat "${startdir}/config.x86_64" >| .config @@ -320,7 +133,7 @@ prepare() { fi # Restore unpatched sublevel the current -pf is based on - sed -ri "s|SUBLEVEL = 0|SUBLEVEL = $_unpatched_sublevel|" Makefile + #sed -ri "s|SUBLEVEL = 0|SUBLEVEL = $_unpatched_sublevel|" Makefile _arch=$CARCH @@ -345,7 +158,9 @@ prepare() { # merge our changes to arches kernel config ./scripts/kconfig/merge_config.sh .config "$srcdir"/pf_defconfig - # Set localversion to pkgrel + echo "Setting version..." + scripts/setlocalversion --save-scmversion + echo "-$pkgrel" > localversion.10-pkgrel # get kernel version @@ -504,7 +319,7 @@ build() { make olddefconfig # Build - make all + make all V=1 } @@ -922,108 +737,4 @@ eval "package_linux-pf-headers-variant${LCPU+-$LCPU}() { _package-headers-variant }" -sha256sums=('SKIP' - '49c471ab3cf341c6333f08957c0c3cfccc38a7cef2c9ca1895888f4674b441ec' - '2b4b6887e75c9e6d40d1fa00e4405745da4c0649f7bf8c48e1bb35d511270443' - '30566498a4f549e972fcd430d2fc44b2bd643c55bae20096f083f8837d8c43e4' - '82d660caa11db0cd34fd550a049d7296b4a9dcd28f2a50c81418066d6e598864' - '75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919' - 'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21' - 'f78b6b40cad97fd38b15e161d2dcfbdc98b2681a180c6a4f493b6ea362ad311b' - '764bbbad55f251627f7c93a08a70f3a4004e03c74f162df349267686b2167a00' - '28df2ac08a81fc720d46908f239e0e8bfd70d5ba7d6e576c8598c3982a9a2cc4' - '7b2b7cd3846aeadefd5d1e9978078e3feaff53456378cb31489b9cf0971f958f' - '1137f4d0d65ef8985307d1deccdc6fc47f68ef2a0d549ab5a27d5c9a45bec9a7' - '39a6dafe65ae512d3802dd25976bce171826a947568c236ce382f8a12836c9b5' - 'fd0ecbc2948a490ece2cbd90623c80e210c1674ea8d8f95642c6f67cef435c4a' - 'cdeacc91b32801c2e46691f5f2bb3612bffd42619cb7b025f4ecba29dec9eaf1' - '20892d64352398893920f48507709d0ff5494c3853c157b87917a086155ce723' - 'f40434c60dee7731ae88107046dd1400ffe11c1ba4de58850a8319f9bb4847b9' - '70d269b5e1d9b5259481f87e00f7b17d96fa5b389e4b500f1e6862c0116bfa4f' - '8bef9463e0cebb578d4df15b06a447c3b4c850a5eef9ff80c59fb8e2cac81474' - 'ec795347155a2f509491fb60c9f4e01704d86a2af432278d7bf5efd7db29f9a2' - '07775d7a0e3ba474976f7a28f069aaf009cdc70576aabf861b630268df2ad469' - 'f1828a4c636138bc53432a057922362399a72055f635a577b791449304d98afe' - '5e6d6aee7f79c9c97c822d3eec8cfa3ca725bf01a60b249175dc0e3b0ca5390f' - 'aa93dd01631204ac71b902662f58a48186049e2e573e06e6818ab72fa139bdd4' - '854a432bdaf6f94baa92c03e78e10f00c53bc666c4b367adf2d5d330f872c8c5' - 'f52b1703f39ab0b52978e48d129ec38ace74d3dec790cb87ca7030fd187354fd' - '3d85f031166d16ebb41430b3f17ed4683b85e7640819b0fb61bd927e6cec5139' - 'ca52bf43327f2c6b0941d3da8fd2a25055bf8f74564be331944c123d18e54330' - '9676de79d5ab66565ab8e19de3f1f70c8ad5994eaf8d5ca1fb6e9ed8426787d9' - '1a2598a00966da4e9985644edb900af7204409411464771c31d67d472595d817' - '3d329b5153230184e270355f61697f5f7248787a4da045ac7b660e837c088630' - 'c6730df729723340475fa64cf0ce4fee02ff0a1739f355166324bb2abeca5168' - 'e44a5e123fb22092a009630a8d80c496b70feaf9f9e244d76760290608edf277' - '54676e48e43b41351e3e7e195c5e752f855f44db7a3fe0d4bd66499344da8386' - '33bc73315a5f5757a093bd21fcc68e7a37a9c86ee2b731a85ef3c5067729199a' - 'f84e76eca884191d9abc0b1876f9d9587e8bfde6a19a4d194445528d5b084f9b' - 'b5a2082541aeec7162c6e673ea2dd0098f36d97c5deb03059afbf723b6789faa' - '20a3c119838e4487bcc7fc28d4301f39e016afc24c76a33c25a84b9c911e3eed' - '0bbaaf956dcc460bafe874c23b8ed495a46ced76918b044764b172b5719c9d44' - 'e9a7b6ef185818f1472a15a98bbeb7be020e38c4d25ad3d9fead11961602bc03' - 'c15ea9caacb98a4d61de2e3c6ecf1fcd083a8ed5a5ee69dc6a05b4583463badc' - '70353d1e4bec0bc3c895887c4b1557e2222b257c34cf0c303781e5ac6b0efec9' - '84301e69155a2404c24f18d8f2cc4986f355a86b9c072d59df9aca787e1abac2' - '9c405a65a4d5d532fc1517e8c67e5d6703cc5bad7daf4c38a3771216fc1719ad' - '96766d4ec6bae908fe6048f39e93fbc8627531daf6b5986cec99edd056581fac' - '05995c977c1cc77fbc49b220d95390147fa448aae2bfa9698a402e8a56b41877' - '9e16ce1da7499d2351dac47649c44a57ac1ec813f2d678d6da270e98359a51e4' - '0c99d880164142334e7b4e0eb87f073ff4d6d15ec7d4490ee5e046b44e20562d' - '83967bcd17746052db9cd95c92456658e51b22a717dfee004a9f34dc7fa26dfb' - 'a307e5269cee8ae850997b93c14a4e3abb220a553dd7ece5337422c2e8770cfb' - '83c68bdd89892c9c1b747de8eaee210ae6578881a0d5c79431148e8712046493' - '2adff7cf24c62c13343e4821627c0a482ca139166147a76a76f520632d526cff' - 'e9579fe46b98590d61d89cff16f719fe2b7eae88509c1ee168d85639a3cf2c0e' - '8dab0a83aafbd2374696ced71d8fd53db35423d6db52340c8991e4e1ba134249' - 'a8f65f98ae26eb5039e4998634a11b6ef43d9f632596b5a291e2c9107bc45901' - '492191b1cd02c7f30ef0c77fb8ac8658cc1571a8953b7dae115ff90932b7391e' - '348c3d85a8942f3b9e9b7ba1e33ad33f5454277badfa17baede5e7ee0623a85a' - '809ad3f9f8a3b7933a8f5a174273b81fbd7ca875790a862984550bd53f08379d' - '244cce4734c37ba829580e21ca7f828433653d79260d9e20ebc524f05aa0fdb2' - '2b8fca8395d936999a41d3a5ed1d58931222fabed89f8748dba0ef8ce6e3b51a' - 'cf06c51563c0eb21e2596cb516ce6cf0dbf3ece5573259ea59291a9b5a8cc40d' - 'a6d9099008a7d4e90f91a417bbb8d42b6ac8ae3c4dc1a713530a24c78b90b06f' - '8a569cb9a6df4b6833234690931461620c4759c6f8591f163648a250bb97c2eb' - '1cb5fadc9854b97419a909ebf72dae3a2def66ee316c73292d42d85a60604757' - '2274585298c76b59dfb5b0f27d0e51f44e6dd0f0cd10627c5a3c51fa893d7bc0' - '02567508d03043eee5a0b2c4fe00db21873fc280c29e75942233b522dafe7234' - 'ad574f61903c6db66110f4c607cd1ead2ce173e3dd95c5287aa392cb550dc973' - 'b17687196d098311e7cc58af9e7f434cbc96c7075e6c24ed36362a24473b547e' - '150487680af2d7da5731b045d764d3501f6188e083cb5299a163edd894f9eb73' - '34ba987a290a3779a47f92468e834275925abaa11b008a846e5689e173128844' - '3267cf5af76e8253263220536b51c8203287148f2d1b564c41de151a9c3ff41e' - 'dc6505ce152095aa7048977d2a4457918b8ba780bc4ae6d4188cf81321592068' - '71a27a759b2a8b990386b4d52ca95417205bb1674123f874b89fd17a929370fa' - 'e2f6cc6c4a3443d26b852e252438564fe1fa80ab02a93b1bd325204da67663ae' - '6d87fb84681433d5508e1c225fbd54d9b606b1a0f4c6d54b1d3970fb69fae881' - '29f17c6768ee91706d1772758ddfabc9242331efef8d8a7eecb4b8c04deae394' - 'dd88a730ac985b8c015ced758c7445f966acb0509e61296448b45d65d8d630a2' - '9fe796c6177a9faf99b1edc4656be8ec2303e8757600b557e9dde3258952bc7e' - '9ef664c55663f953ffb37087da1f1ad4b9a9f2519c84b1ac1add97178169095a' - '42ac5d9000ef8e2ff7ab5f88f6203c559ce727766cc2b2f4f089041b0d9e6ee8' - '3bbd0a5869969297ec2d5d8f062e346978be47e43480daf8255c67fe4c661ccf' - 'ba79c549d798540c50ed17912eacc1f1651293b345f6aae8bd59cbe9633b4d0c' - '851f44e92b6266bfa79f4acdd860f44f95c6ab327b685998a9ae68e9e75a08cf' - 'aa0d9b3c7225d664b5faa3385d3f3f736956d7f61052154c6b0ea0ec09bbbc89' - '60fe115a02d56ef029df6313f9e1c14a98da34ad742968845fbeaebc9237140f' - '17017d9d552d36e27cf11ac07c3ae678bb0c1f45761ef9796acf106c86234d95' - '73416c7b125bd78ceab3b3c0bb213a666976f7db3208b52d8735f81669d16650' - '6c7e2bcb0823892fffc1a6f86a01928e5931e1fc37cb3cfad911740d3f7d1854' - 'f3dbd4095f7cbafb2f8f7407d6f5a2f592ef8aef1270f3c6ab10e0c666262ba9' - '1e8a5eb92ac2b5ecc17fdbfc7b5885a5991cdb2af5300817954102f1c5bfb5ec' - 'b308b21874ca0b86cfb95ddcc76432daa2d4cc6d0053981367ab66fdeea6a01c' - 'e0956a1f8785fdae0b68e2ac79d9187499662e9f6b8347be8eecb36717f8a63d' - '03bee283b4ec139b2722c1531ad566ff0d674e44a2ec49689686ca85a89c7f82' - '154c5f66ae84300ab69a4c9502a5893d9563f8b774887bda6959b930e3bbc6e0' - 'd73dda2abcc118ea197cc3a61b5487b28d0fc584b0eb9deecba7d4b98b19f4ae' - '10c74ccc91d7b993c91dea5ec1f6d3710e642d35dce6001a27aa6d8bc4404dde' - '7c734ed61313ec21dc1c2c5adc6b828fac60f5a6f67de8869d2e7acfccbf4867' - 'cb21bf8906fa812e46405269bf7e78361d05082dc63dfbf1c9719205768e49ac' - 'c1f7da7edfb26701817a1fb3bb9b592e8966cf4b79b6305a1a3761bc8a4d2ab7' - '676cfac9acbf8ed66d2e90ff5127ae5920aaa0eece3f512d9e43fb06e6e83495' - 'e151e8dc209e32a584a5b96752073f976acf823d758c34cbef5955e1172e50d5' - 'd4903b81e4102ccaed88f7605c7208f57048cf087edbcc03a64e64580f404cae' - '15ff60a67694331a54435a4bb8d75c60d4e1c2895bd4fdb82401fe76da87e45d' - '08ba24891b0115a2b355b5b17da2b485c6e8c7fadabe08d7fb71716ae0d2d05e') # vim:set ts=2 sw=2 tw=0 et: diff --git a/asus_zenith_ii_map.patch b/asus_zenith_ii_map.patch deleted file mode 100644 index 97a673fdd081..000000000000 --- a/asus_zenith_ii_map.patch +++ /dev/null @@ -1,72 +0,0 @@ -diff --git a/sound/usb/card.c b/sound/usb/card.c -index d731ca62d599..39a4cdb28499 100644 ---- a/sound/usb/card.c -+++ b/sound/usb/card.c -@@ -380,6 +380,14 @@ static const struct usb_audio_device_name usb_audio_names[] = { - - DEVICE_NAME(0x046d, 0x0990, "Logitech, Inc.", "QuickCam Pro 9000"), - -+ /* ASUS ROG Zenith II: this machine has also two devices, one for -+ * the front headphone and another for the rest -+ */ -+ PROFILE_NAME(0x0b05, 0x1915, "ASUS", "Zenith II Front Headphone", -+ "Zenith-II-Front-Headphone"), -+ PROFILE_NAME(0x0b05, 0x1916, "ASUS", "Zenith II Main Audio", -+ "Zenith-II-Main-Audio"), -+ - /* ASUS ROG Strix */ - PROFILE_NAME(0x0b05, 0x1917, - "Realtek", "ALC1220-VB-DT", "Realtek-ALC1220-VB-Desktop"), -diff --git a/sound/usb/mixer_maps.c b/sound/usb/mixer_maps.c -index a7212f16660e..0ce0f702ce3d 100644 ---- a/sound/usb/mixer_maps.c -+++ b/sound/usb/mixer_maps.c -@@ -360,13 +360,28 @@ static const struct usbmix_name_map corsair_virtuoso_map[] = { - { 0 } - }; - --/* Some mobos shipped with a dummy HD-audio show the invalid GET_MIN/GET_MAX -- * response for Input Gain Pad (id=19, control=12) and the connector status -- * for SPDIF terminal (id=18). Skip them. -- */ --static const struct usbmix_name_map asus_rog_map[] = { -- { 18, NULL }, /* OT, connector control */ -- { 19, NULL, 12 }, /* FU, Input Gain Pad */ -+/* ASUS ROG Zenith II with Realtek ALC1220-VB */ -+static const struct usbmix_name_map asus_zenith_ii_map[] = { -+ { 19, NULL, 12 }, /* FU, Input Gain Pad - broken response, disabled */ -+ { 16, "Speaker" }, /* OT */ -+ { 22, "Speaker Playback" }, /* FU */ -+ { 7, "Line" }, /* IT */ -+ { 19, "Line Capture" }, /* FU */ -+ { 8, "Mic" }, /* IT */ -+ { 20, "Mic Capture" }, /* FU */ -+ { 9, "Front Mic" }, /* IT */ -+ { 21, "Front Mic Capture" }, /* FU */ -+ { 17, "IEC958" }, /* OT */ -+ { 23, "IEC958 Playback" }, /* FU */ -+ {} -+}; -+ -+static const struct usbmix_connector_map asus_zenith_ii_connector_map[] = { -+ { 10, 16 }, /* (Back) Speaker */ -+ { 11, 17 }, /* SPDIF */ -+ { 13, 7 }, /* Line */ -+ { 14, 8 }, /* Mic */ -+ { 15, 9 }, /* Front Mic */ - {} - }; - -@@ -555,9 +570,10 @@ static const struct usbmix_ctl_map usbmix_ctl_maps[] = { - .map = trx40_mobo_map, - .connector_map = trx40_mobo_connector_map, - }, -- { /* ASUS ROG Zenith II */ -+ { /* ASUS ROG Zenith II (main audio) */ - .id = USB_ID(0x0b05, 0x1916), -- .map = asus_rog_map, -+ .map = asus_zenith_ii_map, -+ .connector_map = asus_zenith_ii_connector_map, - }, - { /* ASUS ROG Strix */ - .id = USB_ID(0x0b05, 0x1917), diff --git a/config.i686 b/config.i686 index 6ccd01b8f123..e92d53466327 100644 --- a/config.i686 +++ b/config.i686 @@ -1,10 +1,10 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.18.9-zen1 Kernel Configuration +# Linux/x86 5.19.12-zen1 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0" +CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.1.0" CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=110200 +CONFIG_GCC_VERSION=120100 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y CONFIG_AS_VERSION=23800 @@ -49,7 +49,6 @@ CONFIG_KERNEL_XZ=y # CONFIG_KERNEL_ZSTD is not set CONFIG_DEFAULT_INIT="" CONFIG_DEFAULT_HOSTNAME="archlinux" -CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y @@ -156,8 +155,11 @@ CONFIG_RCU_EXPERT=y CONFIG_SRCU=y CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU_GENERIC=y +# CONFIG_FORCE_TASKS_RCU is not set CONFIG_TASKS_RCU=y +# CONFIG_FORCE_TASKS_RUDE_RCU is not set CONFIG_TASKS_RUDE_RCU=y +# CONFIG_FORCE_TASKS_TRACE_RCU is not set CONFIG_TASKS_TRACE_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y @@ -165,7 +167,8 @@ CONFIG_RCU_FANOUT=32 CONFIG_RCU_FANOUT_LEAF=16 CONFIG_RCU_BOOST=y CONFIG_RCU_BOOST_DELAY=500 -# CONFIG_RCU_NOCB_CPU is not set +# CONFIG_RCU_EXP_KTHREAD is not set +CONFIG_RCU_NOCB_CPU=y # CONFIG_TASKS_TRACE_RCU_READ_MB is not set # end of RCU Subsystem @@ -190,6 +193,7 @@ CONFIG_UCLAMP_BUCKETS_COUNT=5 CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" CONFIG_GCC12_NO_ARRAY_BOUNDS=y +CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y CONFIG_MEMCG=y @@ -237,6 +241,8 @@ CONFIG_RD_LZO=y CONFIG_RD_LZ4=y CONFIG_RD_ZSTD=y CONFIG_BOOT_CONFIG=y +# CONFIG_BOOT_CONFIG_EMBED is not set +CONFIG_INITRAMFS_PRESERVE_MTIME=y # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set @@ -271,7 +277,6 @@ CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_BASE_RELATIVE=y -# CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_KCMP=y CONFIG_RSEQ=y @@ -286,16 +291,6 @@ CONFIG_PERF_EVENTS=y # CONFIG_DEBUG_PERF_USE_VMALLOC is not set # end of Kernel Performance Events And Counters -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLUB_DEBUG=y -# CONFIG_COMPAT_BRK is not set -# CONFIG_SLAB is not set -CONFIG_SLUB=y -CONFIG_SLAB_MERGE_DEFAULT=y -CONFIG_SLAB_FREELIST_RANDOM=y -CONFIG_SLAB_FREELIST_HARDENED=y -CONFIG_SHUFFLE_PAGE_ALLOCATOR=y -CONFIG_SLUB_CPU_PARTIAL=y CONFIG_SYSTEM_DATA_VERIFICATION=y CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y @@ -336,7 +331,6 @@ CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set -CONFIG_RETPOLINE=y CONFIG_X86_CPU_RESCTRL=y # CONFIG_X86_BIGSMP is not set # CONFIG_X86_EXTENDED_PLATFORM is not set @@ -437,6 +431,7 @@ CONFIG_CPU_SUP_VORTEX_32=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y +CONFIG_BOOT_VESA_SUPPORT=y CONFIG_NR_CPUS_RANGE_BEGIN=2 CONFIG_NR_CPUS_RANGE_END=8 CONFIG_NR_CPUS_DEFAULT=8 @@ -464,6 +459,7 @@ CONFIG_PERF_EVENTS_INTEL_RAPL=m CONFIG_PERF_EVENTS_INTEL_CSTATE=m CONFIG_PERF_EVENTS_AMD_POWER=m CONFIG_PERF_EVENTS_AMD_UNCORE=m +CONFIG_PERF_EVENTS_AMD_BRS=y # end of Performance monitoring # CONFIG_X86_LEGACY_VM86 is not set @@ -475,7 +471,7 @@ CONFIG_X86_REBOOTFIXUPS=y CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y -# CONFIG_MICROCODE_OLD_INTERFACE is not set +# CONFIG_MICROCODE_LATE_LOADING is not set CONFIG_X86_MSR=y CONFIG_X86_CPUID=y # CONFIG_NOHIGHMEM is not set @@ -498,7 +494,6 @@ CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=0 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y -CONFIG_X86_SMAP=y CONFIG_X86_UMIP=y CONFIG_CC_HAS_IBT=y # CONFIG_X86_INTEL_TSX_MODE_OFF is not set @@ -529,6 +524,11 @@ CONFIG_MODIFY_LDT_SYSCALL=y # CONFIG_STRICT_SIGALTSTACK_SIZE is not set # end of Processor type and features +CONFIG_CC_HAS_SLS=y +CONFIG_CC_HAS_RETURN_THUNK=y +CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_RETPOLINE=y +CONFIG_RETHUNK=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y # @@ -775,6 +775,7 @@ CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y @@ -800,6 +801,7 @@ CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y CONFIG_MMU_GATHER_TABLE_FREE=y CONFIG_MMU_GATHER_RCU_TABLE_FREE=y +CONFIG_MMU_GATHER_MERGE_VMAS=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y @@ -867,7 +869,6 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set -# CONFIG_GCC_PLUGIN_RANDSTRUCT is not set # end of General architecture-dependent options CONFIG_RT_MUTEXES=y @@ -877,6 +878,7 @@ CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y # CONFIG_MODVERSIONS is not set CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_MODULE_SIG=y @@ -955,7 +957,6 @@ CONFIG_BLK_MQ_STACKING=y # IO Schedulers # CONFIG_MQ_IOSCHED_DEADLINE=y -# CONFIG_MQ_IOSCHED_DEADLINE_NODEFAULT is not set CONFIG_MQ_IOSCHED_KYBER=y CONFIG_IOSCHED_BFQ=y CONFIG_BFQ_GROUP_IOSCHED=y @@ -993,6 +994,40 @@ CONFIG_COREDUMP=y # # Memory Management options # +CONFIG_ZPOOL=y +CONFIG_SWAP=y +CONFIG_ZSWAP=y +CONFIG_ZSWAP_DEFAULT_ON=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lz4" +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT="z3fold" +CONFIG_ZBUD=y +CONFIG_Z3FOLD=y +CONFIG_ZSMALLOC=y +# CONFIG_ZSMALLOC_STAT is not set + +# +# SLAB allocator options +# +# CONFIG_SLAB is not set +CONFIG_SLUB=y +CONFIG_SLAB_MERGE_DEFAULT=y +CONFIG_SLAB_FREELIST_RANDOM=y +CONFIG_SLAB_FREELIST_HARDENED=y +# CONFIG_SLUB_STATS is not set +CONFIG_SLUB_CPU_PARTIAL=y +# end of SLAB allocator options + +CONFIG_SHUFFLE_PAGE_ALLOCATOR=y +# CONFIG_COMPAT_BRK is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y # CONFIG_SPARSEMEM_MANUAL is not set @@ -1016,10 +1051,11 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y CONFIG_HWPOISON_INJECT=m +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set -CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_READ_ONLY_THP_FOR_FS=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y @@ -1029,41 +1065,24 @@ CONFIG_CMA=y CONFIG_CMA_DEBUGFS=y CONFIG_CMA_SYSFS=y CONFIG_CMA_AREAS=7 -CONFIG_ZSWAP=y -# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set -# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set -# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set -CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4=y -# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set -# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set -CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lz4" -# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD is not set -CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD=y -# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set -CONFIG_ZSWAP_ZPOOL_DEFAULT="z3fold" -CONFIG_ZSWAP_DEFAULT_ON=y -CONFIG_ZPOOL=y -CONFIG_ZBUD=y -CONFIG_Z3FOLD=y -CONFIG_ZSMALLOC=y -# CONFIG_ZSMALLOC_STAT is not set CONFIG_GENERIC_EARLY_IOREMAP=y CONFIG_PAGE_IDLE_FLAG=y CONFIG_IDLE_PAGE_TRACKING=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y -CONFIG_ARCH_HAS_FILTER_PGPROT=y +CONFIG_ARCH_HAS_VM_GET_PAGE_PROT=y CONFIG_ZONE_DMA=y CONFIG_HMM_MIRROR=y CONFIG_VMAP_PFN=y +CONFIG_VM_EVENT_COUNTERS=y # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_TEST is not set -CONFIG_READ_ONLY_THP_FOR_FS=y CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_MAPPING_DIRTY_HELPERS=y CONFIG_KMAP_LOCAL=y CONFIG_SECRETMEM=y CONFIG_ANON_VMA_NAME=y +# CONFIG_USERFAULTFD is not set CONFIG_LRU_GEN=y CONFIG_LRU_GEN_ENABLED=y # CONFIG_LRU_GEN_STATS is not set @@ -1632,7 +1651,6 @@ CONFIG_LLC=m CONFIG_LLC2=m CONFIG_ATALK=m CONFIG_DEV_APPLETALK=m -# CONFIG_LTPC is not set # CONFIG_COPS is not set CONFIG_IPDDP=m CONFIG_IPDDP_ENCAP=y @@ -1870,6 +1888,9 @@ CONFIG_CAN_C_CAN_PCI=m CONFIG_CAN_CC770=m # CONFIG_CAN_CC770_ISA is not set CONFIG_CAN_CC770_PLATFORM=m +CONFIG_CAN_CTUCANFD=m +CONFIG_CAN_CTUCANFD_PCI=m +# CONFIG_CAN_CTUCANFD_PLATFORM is not set CONFIG_CAN_IFI_CANFD=m CONFIG_CAN_M_CAN=m CONFIG_CAN_M_CAN_PCI=m @@ -2191,6 +2212,7 @@ CONFIG_CXL_PCI=m CONFIG_CXL_ACPI=m CONFIG_CXL_MEM=m CONFIG_CXL_PORT=m +CONFIG_CXL_SUSPEND=y CONFIG_PCCARD=m CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y @@ -2229,10 +2251,14 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y # CONFIG_FW_LOADER=y CONFIG_FW_LOADER_PAGED_BUF=y +CONFIG_FW_LOADER_SYSFS=y CONFIG_EXTRA_FIRMWARE="" # CONFIG_FW_LOADER_USER_HELPER is not set CONFIG_FW_LOADER_COMPRESS=y +CONFIG_FW_LOADER_COMPRESS_XZ=y +CONFIG_FW_LOADER_COMPRESS_ZSTD=y CONFIG_FW_CACHE=y +CONFIG_FW_UPLOAD=y # end of Firmware loader CONFIG_WANT_DEV_COREDUMP=y @@ -2266,6 +2292,7 @@ CONFIG_DMA_SHARED_BUFFER=y CONFIG_MHI_BUS=m # CONFIG_MHI_BUS_DEBUG is not set CONFIG_MHI_BUS_PCI_GENERIC=m +CONFIG_MHI_BUS_EP=m # end of Bus devices CONFIG_CONNECTOR=y @@ -2310,25 +2337,27 @@ CONFIG_EFI_VARS_PSTORE=y CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y CONFIG_EFI_RUNTIME_MAP=y # CONFIG_EFI_FAKE_MEMMAP is not set +CONFIG_EFI_DXE_MEM_ATTRIBUTES=y CONFIG_EFI_RUNTIME_WRAPPERS=y CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y CONFIG_EFI_BOOTLOADER_CONTROL=m CONFIG_EFI_CAPSULE_LOADER=y CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH=y # CONFIG_EFI_TEST is not set +CONFIG_EFI_DEV_PATH_PARSER=y CONFIG_APPLE_PROPERTIES=y # CONFIG_RESET_ATTACK_MITIGATION is not set CONFIG_EFI_RCI2_TABLE=y # CONFIG_EFI_DISABLE_PCI_DMA is not set +CONFIG_EFI_EARLYCON=y +CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y +# CONFIG_EFI_DISABLE_RUNTIME is not set +CONFIG_EFI_COCO_SECRET=y +CONFIG_EFI_EMBEDDED_FIRMWARE=y # end of EFI (Extensible Firmware Interface) Support -CONFIG_EFI_EMBEDDED_FIRMWARE=y CONFIG_UEFI_CPER=y CONFIG_UEFI_CPER_X86=y -CONFIG_EFI_DEV_PATH_PARSER=y -CONFIG_EFI_EARLYCON=y -CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y -# CONFIG_EFI_DISABLE_RUNTIME is not set # # Tegra firmware driver @@ -2624,6 +2653,7 @@ CONFIG_ALTERA_STAPL=m CONFIG_INTEL_MEI=m CONFIG_INTEL_MEI_ME=m CONFIG_INTEL_MEI_TXE=m +CONFIG_INTEL_MEI_GSC=m CONFIG_INTEL_MEI_HDCP=m CONFIG_INTEL_MEI_PXP=m CONFIG_VMWARE_VMCI=m @@ -2727,15 +2757,6 @@ CONFIG_SCSI_MPT3SAS_MAX_SGE=128 CONFIG_SCSI_MPT2SAS=m CONFIG_SCSI_MPI3MR=m CONFIG_SCSI_SMARTPQI=m -CONFIG_SCSI_UFSHCD=m -CONFIG_SCSI_UFSHCD_PCI=m -# CONFIG_SCSI_UFS_DWC_TC_PCI is not set -CONFIG_SCSI_UFSHCD_PLATFORM=m -CONFIG_SCSI_UFS_CDNS_PLATFORM=m -# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set -CONFIG_SCSI_UFS_BSG=y -CONFIG_SCSI_UFS_HPB=y -CONFIG_SCSI_UFS_HWMON=y CONFIG_SCSI_HPTIOP=m CONFIG_SCSI_BUSLOGIC=m CONFIG_SCSI_FLASHPOINT=y @@ -2960,7 +2981,7 @@ CONFIG_DM_UEVENT=y CONFIG_DM_FLAKEY=m CONFIG_DM_VERITY=m CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y -# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING is not set +CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING=y CONFIG_DM_VERITY_FEC=y CONFIG_DM_SWITCH=m CONFIG_DM_LOG_WRITES=m @@ -3048,9 +3069,6 @@ CONFIG_ATM_LANAI=m CONFIG_ATM_ENI=m # CONFIG_ATM_ENI_DEBUG is not set # CONFIG_ATM_ENI_TUNE_BURST is not set -CONFIG_ATM_FIRESTREAM=m -CONFIG_ATM_ZATM=m -# CONFIG_ATM_ZATM_DEBUG is not set CONFIG_ATM_NICSTAR=m # CONFIG_ATM_NICSTAR_USE_SUNI is not set # CONFIG_ATM_NICSTAR_USE_IDT77105 is not set @@ -3058,10 +3076,6 @@ CONFIG_ATM_IDT77252=m # CONFIG_ATM_IDT77252_DEBUG is not set # CONFIG_ATM_IDT77252_RCV_ALL is not set CONFIG_ATM_IDT77252_USE_SUNI=y -CONFIG_ATM_AMBASSADOR=m -# CONFIG_ATM_AMBASSADOR_DEBUG is not set -CONFIG_ATM_HORIZON=m -# CONFIG_ATM_HORIZON_DEBUG is not set CONFIG_ATM_IA=m # CONFIG_ATM_IA_DEBUG is not set CONFIG_ATM_FORE200E=m @@ -3145,7 +3159,6 @@ CONFIG_AMD8111_ETH=m CONFIG_LANCE=m CONFIG_PCNET32=m CONFIG_PCMCIA_NMCLAN=m -CONFIG_NI65=m CONFIG_AMD_XGBE=m CONFIG_AMD_XGBE_DCB=y CONFIG_AMD_XGBE_HAVE_ECC=y @@ -3214,7 +3227,6 @@ CONFIG_TULIP_MWI=y CONFIG_TULIP_MMIO=y CONFIG_TULIP_NAPI=y CONFIG_TULIP_NAPI_HW_MITIGATION=y -CONFIG_DE4X5=m CONFIG_WINBOND_840=m CONFIG_DM9102=m CONFIG_ULI526X=m @@ -3288,7 +3300,6 @@ CONFIG_MLX4_CORE=m CONFIG_MLX4_DEBUG=y CONFIG_MLX4_CORE_GEN2=y CONFIG_MLX5_CORE=m -CONFIG_MLX5_ACCEL=y CONFIG_MLX5_FPGA=y CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_EN_ARFS=y @@ -3301,8 +3312,6 @@ CONFIG_MLX5_TC_CT=y CONFIG_MLX5_TC_SAMPLE=y CONFIG_MLX5_CORE_EN_DCB=y CONFIG_MLX5_CORE_IPOIB=y -CONFIG_MLX5_FPGA_IPSEC=y -CONFIG_MLX5_IPSEC=y CONFIG_MLX5_EN_IPSEC=y CONFIG_MLX5_SW_STEERING=y CONFIG_MLX5_SF=y @@ -3415,6 +3424,11 @@ CONFIG_SFC_SRIOV=y CONFIG_SFC_MCDI_LOGGING=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y +CONFIG_SFC_SIENA=m +CONFIG_SFC_SIENA_MTD=y +CONFIG_SFC_SIENA_MCDI_MON=y +CONFIG_SFC_SIENA_SRIOV=y +CONFIG_SFC_SIENA_MCDI_LOGGING=y CONFIG_NET_VENDOR_SMSC=y CONFIG_SMC9194=m CONFIG_PCMCIA_SMC91C92=m @@ -3481,6 +3495,7 @@ CONFIG_FIXED_PHY=m # CONFIG_AMD_PHY=m CONFIG_ADIN_PHY=m +CONFIG_ADIN1100_PHY=m CONFIG_AQUANTIA_PHY=m CONFIG_AX88796B_PHY=m CONFIG_BROADCOM_PHY=m @@ -3522,6 +3537,7 @@ CONFIG_DP83822_PHY=m CONFIG_DP83848_PHY=m CONFIG_DP83867_PHY=m CONFIG_DP83869_PHY=m +CONFIG_DP83TD510_PHY=m CONFIG_VITESSE_PHY=m CONFIG_XILINX_GMII2RGMII=m CONFIG_MICREL_KS8995MA=m @@ -3775,7 +3791,6 @@ CONFIG_IWLWIFI_DEBUGFS=y CONFIG_IWLWIFI_DEVICE_TRACING=y # end of Debugging Options -CONFIG_IWLMEI=m CONFIG_WLAN_VENDOR_INTERSIL=y CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y @@ -3846,6 +3861,8 @@ CONFIG_WILC1000=m CONFIG_WILC1000_SDIO=m CONFIG_WILC1000_SPI=m # CONFIG_WILC1000_HW_OOB_INTR is not set +CONFIG_WLAN_VENDOR_PURELIFI=y +CONFIG_PLFXLC=m CONFIG_WLAN_VENDOR_RALINK=y CONFIG_RT2X00=m CONFIG_RT2400PCI=m @@ -3921,7 +3938,9 @@ CONFIG_RTW89=m CONFIG_RTW89_CORE=m CONFIG_RTW89_PCI=m CONFIG_RTW89_8852A=m +CONFIG_RTW89_8852C=m CONFIG_RTW89_8852AE=m +CONFIG_RTW89_8852CE=m CONFIG_RTW89_DEBUG=y CONFIG_RTW89_DEBUGMSG=y CONFIG_RTW89_DEBUGFS=y @@ -3931,6 +3950,8 @@ CONFIG_RSI_DEBUGFS=y CONFIG_RSI_SDIO=m CONFIG_RSI_USB=m CONFIG_RSI_COEX=y +CONFIG_WLAN_VENDOR_SILABS=y +CONFIG_WFX=m CONFIG_WLAN_VENDOR_ST=y CONFIG_CW1200=m CONFIG_CW1200_WLAN_SDIO=m @@ -3961,7 +3982,6 @@ CONFIG_VIRT_WIFI=m CONFIG_IEEE802154_DRIVERS=m CONFIG_IEEE802154_FAKELB=m CONFIG_IEEE802154_AT86RF230=m -# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set CONFIG_IEEE802154_MRF24J40=m CONFIG_IEEE802154_CC2520=m CONFIG_IEEE802154_ATUSB=m @@ -3981,6 +4001,7 @@ CONFIG_MHI_WWAN_CTRL=m CONFIG_MHI_WWAN_MBIM=m CONFIG_RPMSG_WWAN_CTRL=m CONFIG_IOSM=m +CONFIG_MTK_T7XX=m # end of Wireless WAN CONFIG_VMXNET3=m @@ -4143,6 +4164,7 @@ CONFIG_JOYSTICK_WALKERA0701=m CONFIG_JOYSTICK_PXRC=m CONFIG_JOYSTICK_QWIIC=m CONFIG_JOYSTICK_FSIA6B=m +CONFIG_JOYSTICK_SENSEHAT=m CONFIG_INPUT_TABLET=y CONFIG_TABLET_USB_ACECAD=m CONFIG_TABLET_USB_AIPTEK=m @@ -4315,6 +4337,7 @@ CONFIG_INPUT_ADXL34X_SPI=m CONFIG_INPUT_IMS_PCU=m # CONFIG_INPUT_IQS269A is not set CONFIG_INPUT_IQS626A=m +CONFIG_INPUT_IQS7222=m CONFIG_INPUT_CMA3000=m CONFIG_INPUT_CMA3000_I2C=m CONFIG_INPUT_IDEAPAD_SLIDEBAR=m @@ -4752,7 +4775,7 @@ CONFIG_PINMUX=y CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set -CONFIG_PINCTRL_AMD=m +CONFIG_PINCTRL_AMD=y # CONFIG_PINCTRL_AXP209 is not set CONFIG_PINCTRL_DA9062=m # CONFIG_PINCTRL_EQUILIBRIUM is not set @@ -5109,7 +5132,7 @@ CONFIG_SENSORS_DRIVETEMP=m CONFIG_SENSORS_DS620=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_DELL_SMM=m -# CONFIG_I8K is not set +CONFIG_I8K=y CONFIG_SENSORS_DA9052_ADC=m CONFIG_SENSORS_DA9055=m CONFIG_SENSORS_I5K_AMB=m @@ -5188,7 +5211,9 @@ CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_NCT6683=m +CONFIG_SENSORS_NCT6775_CORE=m CONFIG_SENSORS_NCT6775=m +CONFIG_SENSORS_NCT6775_I2C=m CONFIG_SENSORS_NCT7802=m CONFIG_SENSORS_NCT7904=m CONFIG_SENSORS_NPCM7XX=m @@ -5239,6 +5264,7 @@ CONFIG_SENSORS_TPS40422=m CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_UCD9000=m CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_XDPE152=m CONFIG_SENSORS_XDPE122=m CONFIG_SENSORS_XDPE122_REGULATOR=y CONFIG_SENSORS_ZL6100=m @@ -5717,6 +5743,7 @@ CONFIG_REGULATOR_RT4801=m CONFIG_REGULATOR_RT4831=m CONFIG_REGULATOR_RT5033=m CONFIG_REGULATOR_RT5190A=m +CONFIG_REGULATOR_RT5759=m CONFIG_REGULATOR_RT6160=m CONFIG_REGULATOR_RT6245=m CONFIG_REGULATOR_RTQ2134=m @@ -5789,7 +5816,7 @@ CONFIG_IR_WINBOND_CIR=m CONFIG_RC_ATI_REMOTE=m CONFIG_RC_LOOPBACK=m CONFIG_RC_XBOX_DVD=m -CONFIG_CEC_CORE=y +CONFIG_CEC_CORE=m CONFIG_CEC_NOTIFIER=y CONFIG_CEC_PIN=y @@ -6638,14 +6665,17 @@ CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=y CONFIG_DRM_MIPI_DBI=m CONFIG_DRM_MIPI_DSI=y -CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DEBUG_MM is not set # CONFIG_DRM_DEBUG_SELFTEST is not set -CONFIG_DRM_DP_HELPER=m CONFIG_DRM_KMS_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 CONFIG_DRM_LOAD_EDID_FIRMWARE=y +CONFIG_DRM_DISPLAY_HELPER=m +CONFIG_DRM_DISPLAY_DP_HELPER=y +CONFIG_DRM_DISPLAY_HDCP_HELPER=y +CONFIG_DRM_DISPLAY_HDMI_HELPER=y +CONFIG_DRM_DP_AUX_CHARDEV=y CONFIG_DRM_DP_CEC=y CONFIG_DRM_TTM=m CONFIG_DRM_BUDDY=m @@ -6761,6 +6791,7 @@ CONFIG_DRM_PANEL=y # CONFIG_DRM_PANEL_LG_LB035Q02 is not set # CONFIG_DRM_PANEL_LG_LG4573 is not set # CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set # CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set # CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set # CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set @@ -6818,6 +6849,7 @@ CONFIG_DRM_PANEL_BRIDGE=y # CONFIG_DRM_DISPLAY_CONNECTOR is not set # CONFIG_DRM_ITE_IT6505 is not set # CONFIG_DRM_LONTIUM_LT8912B is not set +# CONFIG_DRM_LONTIUM_LT9211 is not set # CONFIG_DRM_LONTIUM_LT9611 is not set # CONFIG_DRM_LONTIUM_LT9611UXC is not set # CONFIG_DRM_ITE_IT66121 is not set @@ -6870,6 +6902,7 @@ CONFIG_DRM_VBOXVIDEO=m CONFIG_DRM_GUD=m CONFIG_DRM_SSD130X=m CONFIG_DRM_SSD130X_I2C=m +CONFIG_DRM_SSD130X_SPI=m CONFIG_DRM_HYPERV=m CONFIG_DRM_LEGACY=y CONFIG_DRM_TDFX=m @@ -6890,7 +6923,6 @@ CONFIG_FB_NOTIFY=y CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set CONFIG_FB_DDC=m -CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y @@ -7128,6 +7160,7 @@ CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m CONFIG_SND_MTS64=m CONFIG_SND_SERIAL_U16550=m +# CONFIG_SND_SERIAL_GENERIC is not set CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m CONFIG_SND_AC97_POWER_SAVE=y @@ -7492,7 +7525,7 @@ CONFIG_SND_SOC_SOF_HDA_LINK=y CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m CONFIG_SND_SOC_SOF_HDA=m -CONFIG_SND_SOC_SOF_HDA_PROBES=y +CONFIG_SND_SOC_SOF_HDA_PROBES=m CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m CONFIG_SND_SOC_SOF_XTENSA=m @@ -7550,6 +7583,10 @@ CONFIG_SND_SOC_CS35L41_LIB=m CONFIG_SND_SOC_CS35L41=m CONFIG_SND_SOC_CS35L41_SPI=m CONFIG_SND_SOC_CS35L41_I2C=m +CONFIG_SND_SOC_CS35L45_TABLES=m +CONFIG_SND_SOC_CS35L45=m +CONFIG_SND_SOC_CS35L45_SPI=m +CONFIG_SND_SOC_CS35L45_I2C=m CONFIG_SND_SOC_CS42L42=m CONFIG_SND_SOC_CS42L51=m CONFIG_SND_SOC_CS42L51_I2C=m @@ -7595,6 +7632,7 @@ CONFIG_SND_SOC_MAX98373=m CONFIG_SND_SOC_MAX98373_I2C=m CONFIG_SND_SOC_MAX98373_SDW=m CONFIG_SND_SOC_MAX98390=m +CONFIG_SND_SOC_MAX98396=m CONFIG_SND_SOC_MAX9860=m CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m CONFIG_SND_SOC_PCM1681=m @@ -7713,6 +7751,8 @@ CONFIG_SND_SOC_WM8580=m CONFIG_SND_SOC_WM8711=m CONFIG_SND_SOC_WM8728=m CONFIG_SND_SOC_WM8731=m +CONFIG_SND_SOC_WM8731_I2C=m +CONFIG_SND_SOC_WM8731_SPI=m CONFIG_SND_SOC_WM8737=m CONFIG_SND_SOC_WM8741=m CONFIG_SND_SOC_WM8750=m @@ -7725,6 +7765,7 @@ CONFIG_SND_SOC_WM8804_I2C=m CONFIG_SND_SOC_WM8804_SPI=m CONFIG_SND_SOC_WM8903=m CONFIG_SND_SOC_WM8904=m +CONFIG_SND_SOC_WM8940=m CONFIG_SND_SOC_WM8960=m CONFIG_SND_SOC_WM8962=m CONFIG_SND_SOC_WM8974=m @@ -7838,6 +7879,7 @@ CONFIG_LOGIWHEELS_FF=y CONFIG_HID_MAGICMOUSE=m CONFIG_HID_MALTRON=m CONFIG_HID_MAYFLASH=m +CONFIG_HID_MEGAWORLD_FF=m # CONFIG_HID_REDRAGON is not set CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m @@ -8326,6 +8368,7 @@ CONFIG_TYPEC_WUSB3801=m # # USB Type-C Multiplexer/DeMultiplexer Switch support # +CONFIG_TYPEC_MUX_FSA4480=m CONFIG_TYPEC_MUX_PI3USB30532=m # end of USB Type-C Multiplexer/DeMultiplexer Switch support @@ -8383,6 +8426,15 @@ CONFIG_MMC_MTK=m CONFIG_MMC_SDHCI_XENON=m # CONFIG_MMC_SDHCI_OMAP is not set # CONFIG_MMC_SDHCI_AM654 is not set +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFS_BSG=y +CONFIG_SCSI_UFS_HPB=y +CONFIG_SCSI_UFS_HWMON=y +CONFIG_SCSI_UFSHCD_PCI=m +# CONFIG_SCSI_UFS_DWC_TC_PCI is not set +CONFIG_SCSI_UFSHCD_PLATFORM=m +CONFIG_SCSI_UFS_CDNS_PLATFORM=m +# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set CONFIG_MEMSTICK=m # CONFIG_MEMSTICK_DEBUG is not set @@ -8487,6 +8539,11 @@ CONFIG_LEDS_RT8515=m # CONFIG_LEDS_SGM3140 is not set # +# RGB LED drivers +# +CONFIG_LEDS_PWM_MULTICOLOR=m + +# # LED Triggers # CONFIG_LEDS_TRIGGERS=y @@ -8816,6 +8873,7 @@ CONFIG_VIRT_DRIVERS=y CONFIG_VMGENID=y CONFIG_VBOXGUEST=m CONFIG_NITRO_ENCLAVES=m +CONFIG_VIRTIO_ANCHOR=y CONFIG_VIRTIO=y CONFIG_VIRTIO_PCI_LIB=m CONFIG_VIRTIO_PCI_LIB_LEGACY=m @@ -8861,7 +8919,6 @@ CONFIG_HYPERV_BALLOON=m # CONFIG_COMEDI is not set CONFIG_STAGING=y CONFIG_PRISM2_USB=m -CONFIG_FB_OLPC_DCON=m CONFIG_RTL8192U=m CONFIG_RTLLIB=m CONFIG_RTLLIB_CRYPTO_CCMP=m @@ -8950,7 +9007,6 @@ CONFIG_LTE_GDM724X=m CONFIG_FIREWIRE_SERIAL=m CONFIG_FWTTY_MAX_TOTAL_PORTS=64 CONFIG_FWTTY_MAX_CARD_PORTS=32 -CONFIG_UNISYSSPAR=y # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set # CONFIG_FB_TFT is not set CONFIG_MOST_COMPONENTS=m @@ -8964,7 +9020,10 @@ CONFIG_PI433=m CONFIG_FIELDBUS_DEV=m # CONFIG_HMS_ANYBUSS_BUS is not set CONFIG_QLGE=m -CONFIG_WFX=m + +# +# VME Device Drivers +# CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACPI_WMI=m CONFIG_WMI_BMOF=m @@ -9075,8 +9134,10 @@ CONFIG_INTEL_IPS=m # CONFIG_INTEL_SCU_PCI is not set # CONFIG_INTEL_SCU_PLATFORM is not set CONFIG_SIEMENS_SIMATIC_IPC=m +CONFIG_WINMATE_FM07_KEYS=m CONFIG_PMC_ATOM=y CONFIG_CHROME_PLATFORMS=y +CONFIG_CHROMEOS_ACPI=m CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m # CONFIG_CHROMEOS_TBMC is not set @@ -9105,6 +9166,7 @@ CONFIG_MELLANOX_PLATFORM=y CONFIG_MLXREG_HOTPLUG=m CONFIG_MLXREG_IO=m CONFIG_MLXREG_LC=m +CONFIG_NVSW_SN2201=m CONFIG_OLPC_EC=y CONFIG_SURFACE_PLATFORMS=y CONFIG_SURFACE3_WMI=m @@ -9341,7 +9403,7 @@ CONFIG_BMI088_ACCEL=m CONFIG_BMI088_ACCEL_SPI=m CONFIG_DA280=m CONFIG_DA311=m -# CONFIG_DMARD06 is not set +CONFIG_DMARD06=m CONFIG_DMARD09=m CONFIG_DMARD10=m CONFIG_FXLS8962AF=m @@ -9458,7 +9520,7 @@ CONFIG_AD74413R=m # # Analog Front Ends # -# CONFIG_IIO_RESCALE is not set +CONFIG_IIO_RESCALE=m # end of Analog Front Ends # @@ -9556,7 +9618,7 @@ CONFIG_AD5791=m CONFIG_AD7293=m CONFIG_AD7303=m CONFIG_AD8801=m -# CONFIG_DPOT_DAC is not set +CONFIG_DPOT_DAC=m CONFIG_DS4424=m CONFIG_LTC1660=m CONFIG_LTC2632=m @@ -9569,7 +9631,7 @@ CONFIG_TI_DAC082S085=m # CONFIG_TI_DAC5571 is not set CONFIG_TI_DAC7311=m CONFIG_TI_DAC7612=m -# CONFIG_VF610_DAC is not set +CONFIG_VF610_DAC=m # end of Digital to analog converters # @@ -9705,7 +9767,7 @@ CONFIG_BH1780=m CONFIG_CM32181=m CONFIG_CM3232=m CONFIG_CM3323=m -# CONFIG_CM3605 is not set +CONFIG_CM3605=m CONFIG_CM36651=m CONFIG_IIO_CROS_EC_LIGHT_PROX=m CONFIG_GP2AP002=m @@ -9751,7 +9813,7 @@ CONFIG_ZOPT2201=m # # Magnetometer sensors # -# CONFIG_AK8974 is not set +CONFIG_AK8974=m CONFIG_AK8975=m CONFIG_AK09911=m CONFIG_BMC150_MAGN=m @@ -9775,7 +9837,7 @@ CONFIG_YAMAHA_YAS530=m # # Multiplexers # -# CONFIG_IIO_MUX is not set +CONFIG_IIO_MUX=m # end of Multiplexers # @@ -9932,6 +9994,7 @@ CONFIG_PWM_LP3943=m CONFIG_PWM_PCA9685=m CONFIG_PWM_TWL=m CONFIG_PWM_TWL_LED=m +# CONFIG_PWM_XILINX is not set # # IRQ chip support @@ -9939,6 +10002,7 @@ CONFIG_PWM_TWL_LED=m CONFIG_IRQCHIP=y # CONFIG_AL_FIC is not set CONFIG_MADERA_IRQ=m +# CONFIG_XILINX_INTC is not set # end of IRQ chip support CONFIG_IPACK_BUS=m @@ -10061,12 +10125,6 @@ CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m CONFIG_FPGA_DFL_PCI=m # CONFIG_FSI is not set CONFIG_TEE=m - -# -# TEE drivers -# -# end of TEE drivers - CONFIG_MULTIPLEXER=m # @@ -10094,6 +10152,7 @@ CONFIG_MOST_USB_HDM=m CONFIG_MOST_CDEV=m CONFIG_MOST_SND=m # CONFIG_PECI is not set +CONFIG_HTE=y # end of Device Drivers # @@ -10208,6 +10267,7 @@ CONFIG_FSCACHE_STATS=y CONFIG_CACHEFILES=m # CONFIG_CACHEFILES_DEBUG is not set # CONFIG_CACHEFILES_ERROR_INJECTION is not set +CONFIG_CACHEFILES_ONDEMAND=y # end of Caches # @@ -10356,6 +10416,7 @@ CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_ZIP=y CONFIG_EROFS_FS_ZIP_LZMA=y +CONFIG_EROFS_FS_ONDEMAND=y CONFIG_VBOXSF_FS=m CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m @@ -10498,6 +10559,8 @@ CONFIG_KEYS=y CONFIG_KEYS_REQUEST_CACHE=y CONFIG_PERSISTENT_KEYRINGS=y CONFIG_TRUSTED_KEYS=m +CONFIG_TRUSTED_KEYS_TPM=y +CONFIG_TRUSTED_KEYS_TEE=y CONFIG_ENCRYPTED_KEYS=m # CONFIG_USER_DECRYPTED_DATA is not set CONFIG_KEY_DH_OPERATIONS=y @@ -10573,16 +10636,21 @@ CONFIG_LSM="landlock,lockdown,yama,integrity,bpf" # # Memory initialization # +CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y CONFIG_INIT_STACK_NONE=y -# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set -# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set -# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set +# CONFIG_INIT_STACK_ALL_PATTERN is not set +# CONFIG_INIT_STACK_ALL_ZERO is not set # CONFIG_GCC_PLUGIN_STACKLEAK is not set CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y # CONFIG_ZERO_CALL_USED_REGS is not set # end of Memory initialization + +CONFIG_RANDSTRUCT_NONE=y +# CONFIG_RANDSTRUCT_FULL is not set +# CONFIG_RANDSTRUCT_PERFORMANCE is not set # end of Kernel hardening options # end of Security options @@ -10684,7 +10752,6 @@ CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRC32_PCLMUL=m CONFIG_CRYPTO_XXHASH=m CONFIG_CRYPTO_BLAKE2B=m -CONFIG_CRYPTO_BLAKE2S=m CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_CRC64_ROCKSOFT=y CONFIG_CRYPTO_GHASH=m @@ -10698,6 +10765,7 @@ CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SHA3=m CONFIG_CRYPTO_SM3=m +CONFIG_CRYPTO_SM3_GENERIC=m CONFIG_CRYPTO_STREEBOG=m CONFIG_CRYPTO_WP512=m @@ -10719,6 +10787,7 @@ CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SERPENT_SSE2_586=m CONFIG_CRYPTO_SM4=m +CONFIG_CRYPTO_SM4_GENERIC=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_TWOFISH_586=m @@ -10789,6 +10858,7 @@ CONFIG_PKCS8_PRIVATE_KEY_PARSER=m CONFIG_PKCS7_MESSAGE_PARSER=y # CONFIG_PKCS7_TEST_KEY is not set CONFIG_SIGNED_PE_FILE_VERIFICATION=y +# CONFIG_FIPS_SIGNATURE_SELFTEST is not set # # Certificates for signature checking @@ -10804,6 +10874,7 @@ CONFIG_SYSTEM_BLACKLIST_KEYRING=y CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" CONFIG_SYSTEM_REVOCATION_LIST=y CONFIG_SYSTEM_REVOCATION_KEYS="" +CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE=y # end of Certificates for signature checking CONFIG_BINARY_PRINTF=y @@ -10843,8 +10914,6 @@ CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m CONFIG_CRYPTO_LIB_POLY1305=m CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m CONFIG_CRYPTO_LIB_SHA256=y -CONFIG_CRYPTO_LIB_SM3=m -CONFIG_CRYPTO_LIB_SM4=m # end of Crypto library routines CONFIG_LIB_MEMNEQ=y @@ -10965,6 +11034,8 @@ CONFIG_FONT_TER16x32=y # CONFIG_FONT_6x8 is not set CONFIG_SG_POOL=y CONFIG_ARCH_STACKWALK=y +CONFIG_STACKDEPOT=y +CONFIG_STACK_HASH_ORDER=20 CONFIG_SBITMAP=y CONFIG_PARMAN=m CONFIG_OBJAGG=m @@ -11045,6 +11116,7 @@ CONFIG_HAVE_KCSAN_COMPILER=y # # CONFIG_NET_DEV_REFCNT_TRACKER is not set # CONFIG_NET_NS_REFCNT_TRACKER is not set +# CONFIG_DEBUG_NET is not set # end of Networking Debugging # @@ -11052,6 +11124,8 @@ CONFIG_HAVE_KCSAN_COMPILER=y # CONFIG_PAGE_EXTENSION=y # CONFIG_DEBUG_PAGEALLOC is not set +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set # CONFIG_PAGE_OWNER is not set CONFIG_PAGE_POISONING=y # CONFIG_DEBUG_PAGE_REF is not set @@ -11062,8 +11136,6 @@ CONFIG_GENERIC_PTDUMP=y CONFIG_PTDUMP_CORE=y # CONFIG_PTDUMP_DEBUGFS is not set # CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set @@ -11102,15 +11174,12 @@ CONFIG_PANIC_TIMEOUT=0 CONFIG_LOCKUP_DETECTOR=y CONFIG_SOFTLOCKUP_DETECTOR=y # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_HARDLOCKUP_DETECTOR_PERF=y CONFIG_HARDLOCKUP_DETECTOR=y # CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set -CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 # CONFIG_WQ_WATCHDOG is not set # CONFIG_TEST_LOCKUP is not set # end of Debug Oops, Lockups and Hangs @@ -11169,6 +11238,7 @@ CONFIG_DEBUG_LIST=y # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_REF_SCALE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # CONFIG_RCU_TRACE is not set # CONFIG_RCU_EQS_DEBUG is not set # end of RCU Debugging @@ -11257,7 +11327,6 @@ CONFIG_IO_STRICT_DEVMEM=y # # x86 Debugging # -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y CONFIG_EARLY_PRINTK_USB=y # CONFIG_X86_VERBOSE_BOOTUP is not set CONFIG_EARLY_PRINTK=y @@ -11333,7 +11402,7 @@ CONFIG_ASYNC_RAID6_TEST=m # CONFIG_TEST_FPU is not set # CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set CONFIG_ARCH_USE_MEMTEST=y -# CONFIG_MEMTEST is not set +CONFIG_MEMTEST=y # CONFIG_HYPERV_TESTING is not set # end of Kernel Testing and Coverage # end of Kernel hacking diff --git a/config.x86_64 b/config.x86_64 index 5a0f8b3efabb..def02038e374 100644 --- a/config.x86_64 +++ b/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.19.6-zen1 Kernel Configuration +# Linux/x86 6.0.1-zen2 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0" CONFIG_CC_IS_GCC=y @@ -13,7 +13,6 @@ CONFIG_LD_VERSION=23900 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y -CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y CONFIG_CC_HAS_ASM_INLINE=y @@ -95,6 +94,8 @@ CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_CONTEXT_TRACKING=y +CONFIG_CONTEXT_TRACKING_IDLE=y # # Timers subsystem @@ -104,8 +105,8 @@ CONFIG_NO_HZ_COMMON=y # CONFIG_HZ_PERIODIC is not set # CONFIG_NO_HZ_IDLE is not set CONFIG_NO_HZ_FULL=y -CONFIG_CONTEXT_TRACKING=y -# CONFIG_CONTEXT_TRACKING_FORCE is not set +CONFIG_CONTEXT_TRACKING_USER=y +# CONFIG_CONTEXT_TRACKING_USER_FORCE is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 @@ -180,6 +181,8 @@ CONFIG_RCU_BOOST=y CONFIG_RCU_BOOST_DELAY=500 # CONFIG_RCU_EXP_KTHREAD is not set CONFIG_RCU_NOCB_CPU=y +# CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not set +# CONFIG_RCU_NOCB_CPU_CB_BOOST is not set # CONFIG_TASKS_TRACE_RCU_READ_MB is not set # end of RCU Subsystem @@ -212,6 +215,7 @@ CONFIG_NUMA_BALANCING=y CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y +# CONFIG_CGROUP_FAVOR_DYNMODS is not set CONFIG_MEMCG=y CONFIG_MEMCG_SWAP=y CONFIG_MEMCG_KMEM=y @@ -511,7 +515,6 @@ CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=0 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y -CONFIG_ARCH_RANDOM=y CONFIG_X86_UMIP=y CONFIG_CC_HAS_IBT=y CONFIG_X86_KERNEL_IBT=y @@ -584,6 +587,7 @@ CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set CONFIG_PM=y CONFIG_PM_DEBUG=y @@ -668,8 +672,8 @@ CONFIG_CHT_WC_PMIC_OPREGION=y CONFIG_CHT_DC_TI_PMIC_OPREGION=y CONFIG_TPS68470_PMIC_OPREGION=y CONFIG_ACPI_VIOT=y -CONFIG_X86_PM_TIMER=y CONFIG_ACPI_PRMT=y +CONFIG_X86_PM_TIMER=y # # CPU Frequency scaling @@ -847,8 +851,8 @@ CONFIG_ARCH_SUPPORTS_LTO_CLANG=y CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y CONFIG_LTO_NONE=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y -CONFIG_HAVE_CONTEXT_TRACKING=y -CONFIG_HAVE_CONTEXT_TRACKING_OFFSTACK=y +CONFIG_HAVE_CONTEXT_TRACKING_USER=y +CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y CONFIG_HAVE_MOVE_PUD=y @@ -863,6 +867,7 @@ CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y +CONFIG_SOFTIRQ_ON_OWN_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y @@ -1109,7 +1114,6 @@ CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y CONFIG_ARCH_ENABLE_THP_MIGRATION=y CONFIG_CONTIG_ALLOC=y CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_VIRT_TO_BUS=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 @@ -1140,12 +1144,12 @@ CONFIG_PAGE_IDLE_FLAG=y CONFIG_IDLE_PAGE_TRACKING=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y -CONFIG_ARCH_HAS_VM_GET_PAGE_PROT=y CONFIG_ARCH_HAS_PTE_DEVMAP=y CONFIG_ZONE_DMA=y CONFIG_ZONE_DMA32=y CONFIG_ZONE_DEVICE=y CONFIG_HMM_MIRROR=y +CONFIG_GET_FREE_REGION=y CONFIG_DEVICE_PRIVATE=y CONFIG_VMAP_PFN=y CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y @@ -1175,6 +1179,7 @@ CONFIG_DAMON_PADDR=y CONFIG_DAMON_SYSFS=y CONFIG_DAMON_DBGFS=y CONFIG_DAMON_RECLAIM=y +CONFIG_DAMON_LRU_SORT=y # end of Data Access Monitoring # end of Memory Management options @@ -1403,6 +1408,7 @@ CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_REJECT_NETDEV=m CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m +CONFIG_NF_FLOW_TABLE_PROCFS=y CONFIG_NETFILTER_XTABLES=m CONFIG_NETFILTER_XTABLES_COMPAT=y @@ -1722,6 +1728,7 @@ CONFIG_NET_DSA_TAG_OCELOT_8021Q=m CONFIG_NET_DSA_TAG_QCA=m CONFIG_NET_DSA_TAG_RTL4_A=m CONFIG_NET_DSA_TAG_RTL8_4=m +CONFIG_NET_DSA_TAG_RZN1_A5PSW=m CONFIG_NET_DSA_TAG_LAN9303=m CONFIG_NET_DSA_TAG_SJA1105=m CONFIG_NET_DSA_TAG_TRAILER=m @@ -1946,71 +1953,6 @@ CONFIG_CAN_BCM=m CONFIG_CAN_GW=m CONFIG_CAN_J1939=m CONFIG_CAN_ISOTP=m - -# -# CAN Device Drivers -# -CONFIG_CAN_VCAN=m -CONFIG_CAN_VXCAN=m -CONFIG_CAN_SLCAN=m -CONFIG_CAN_DEV=m -CONFIG_CAN_CALC_BITTIMING=y -CONFIG_CAN_JANZ_ICAN3=m -CONFIG_CAN_KVASER_PCIEFD=m -CONFIG_CAN_C_CAN=m -CONFIG_CAN_C_CAN_PLATFORM=m -CONFIG_CAN_C_CAN_PCI=m -CONFIG_CAN_CC770=m -# CONFIG_CAN_CC770_ISA is not set -CONFIG_CAN_CC770_PLATFORM=m -CONFIG_CAN_CTUCANFD=m -CONFIG_CAN_CTUCANFD_PCI=m -CONFIG_CAN_IFI_CANFD=m -CONFIG_CAN_M_CAN=m -CONFIG_CAN_M_CAN_PCI=m -CONFIG_CAN_M_CAN_PLATFORM=m -CONFIG_CAN_M_CAN_TCAN4X5X=m -CONFIG_CAN_PEAK_PCIEFD=m -CONFIG_CAN_SJA1000=m -CONFIG_CAN_EMS_PCI=m -# CONFIG_CAN_EMS_PCMCIA is not set -CONFIG_CAN_F81601=m -CONFIG_CAN_KVASER_PCI=m -CONFIG_CAN_PEAK_PCI=m -CONFIG_CAN_PEAK_PCIEC=y -CONFIG_CAN_PEAK_PCMCIA=m -CONFIG_CAN_PLX_PCI=m -# CONFIG_CAN_SJA1000_ISA is not set -CONFIG_CAN_SJA1000_PLATFORM=m -CONFIG_CAN_SOFTING=m -CONFIG_CAN_SOFTING_CS=m - -# -# CAN SPI interfaces -# -CONFIG_CAN_HI311X=m -CONFIG_CAN_MCP251X=m -CONFIG_CAN_MCP251XFD=m -# CONFIG_CAN_MCP251XFD_SANITY is not set -# end of CAN SPI interfaces - -# -# CAN USB interfaces -# -CONFIG_CAN_8DEV_USB=m -CONFIG_CAN_EMS_USB=m -CONFIG_CAN_ESD_USB2=m -CONFIG_CAN_ETAS_ES58X=m -CONFIG_CAN_GS_USB=m -CONFIG_CAN_KVASER_USB=m -CONFIG_CAN_MCBA_USB=m -CONFIG_CAN_PEAK_USB=m -CONFIG_CAN_UCAN=m -# end of CAN USB interfaces - -# CONFIG_CAN_DEBUG_DEVICES is not set -# end of CAN Device Drivers - CONFIG_BT=m CONFIG_BT_BREDR=y CONFIG_BT_RFCOMM=m @@ -2221,6 +2163,7 @@ CONFIG_PCI_STUB=y CONFIG_PCI_PF_STUB=m CONFIG_XEN_PCIDEV_FRONTEND=m CONFIG_PCI_ATS=y +CONFIG_PCI_DOE=y CONFIG_PCI_LOCKLESS_CONFIG=y CONFIG_PCI_IOV=y CONFIG_PCI_PRI=y @@ -2285,6 +2228,7 @@ CONFIG_CXL_PMEM=m CONFIG_CXL_MEM=m CONFIG_CXL_PORT=m CONFIG_CXL_SUSPEND=y +CONFIG_CXL_REGION=y CONFIG_PCCARD=m CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y @@ -2401,7 +2345,6 @@ CONFIG_GOOGLE_VPD=m # # EFI (Extensible Firmware Interface) Support # -# CONFIG_EFI_VARS is not set CONFIG_EFI_ESRT=y CONFIG_EFI_VARS_PSTORE=y CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y @@ -2612,7 +2555,6 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=0 CONFIG_BLK_DEV_DRBD=m # CONFIG_DRBD_FAULT_INJECTION is not set CONFIG_BLK_DEV_NBD=m -CONFIG_BLK_DEV_SX8=m CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 @@ -2624,6 +2566,7 @@ CONFIG_XEN_BLKDEV_FRONTEND=m CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_VIRTIO_BLK=m CONFIG_BLK_DEV_RBD=m +CONFIG_BLK_DEV_UBLK=m CONFIG_BLK_DEV_RNBD=y CONFIG_BLK_DEV_RNBD_CLIENT=m CONFIG_BLK_DEV_RNBD_SERVER=m @@ -2631,6 +2574,7 @@ CONFIG_BLK_DEV_RNBD_SERVER=m # # NVME Support # +CONFIG_NVME_COMMON=m CONFIG_NVME_CORE=m CONFIG_BLK_DEV_NVME=m CONFIG_NVME_MULTIPATH=y @@ -2640,6 +2584,7 @@ CONFIG_NVME_FABRICS=m CONFIG_NVME_RDMA=m CONFIG_NVME_FC=m CONFIG_NVME_TCP=m +CONFIG_NVME_AUTH=y CONFIG_NVME_TARGET=m CONFIG_NVME_TARGET_PASSTHRU=y CONFIG_NVME_TARGET_LOOP=m @@ -2647,6 +2592,7 @@ CONFIG_NVME_TARGET_RDMA=m CONFIG_NVME_TARGET_FC=m CONFIG_NVME_TARGET_FCLOOP=m CONFIG_NVME_TARGET_TCP=m +CONFIG_NVME_TARGET_AUTH=y # end of NVME Support # @@ -2799,7 +2745,6 @@ CONFIG_SCSI_MVSAS=m CONFIG_SCSI_MVSAS_DEBUG=y CONFIG_SCSI_MVSAS_TASKLET=y CONFIG_SCSI_MVUMI=m -CONFIG_SCSI_DPT_I2O=m CONFIG_SCSI_ADVANSYS=m CONFIG_SCSI_ARCMSR=m CONFIG_SCSI_ESAS2R=m @@ -3025,7 +2970,7 @@ CONFIG_DM_UEVENT=y CONFIG_DM_FLAKEY=m CONFIG_DM_VERITY=m CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y -# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING is not set +CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING=y CONFIG_DM_VERITY_FEC=y CONFIG_DM_SWITCH=m CONFIG_DM_LOG_WRITES=m @@ -3146,16 +3091,14 @@ CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK=m CONFIG_NET_DSA_MT7530=m CONFIG_NET_DSA_MV88E6060=m CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON=m -CONFIG_NET_DSA_MICROCHIP_KSZ9477=m CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C=m -CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m -CONFIG_NET_DSA_MICROCHIP_KSZ8795=m -CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI=m +CONFIG_NET_DSA_MICROCHIP_KSZ_SPI=m CONFIG_NET_DSA_MICROCHIP_KSZ8863_SMI=m CONFIG_NET_DSA_MV88E6XXX=m CONFIG_NET_DSA_MV88E6XXX_PTP=y CONFIG_NET_DSA_MSCC_SEVILLE=m CONFIG_NET_DSA_AR9331=m +CONFIG_NET_DSA_QCA8K=m CONFIG_NET_DSA_SJA1105=m CONFIG_NET_DSA_SJA1105_PTP=y CONFIG_NET_DSA_SJA1105_TAS=y @@ -3163,7 +3106,6 @@ CONFIG_NET_DSA_SJA1105_VL=y CONFIG_NET_DSA_XRS700X=m CONFIG_NET_DSA_XRS700X_I2C=m CONFIG_NET_DSA_XRS700X_MDIO=m -CONFIG_NET_DSA_QCA8K=m CONFIG_NET_DSA_REALTEK=m # CONFIG_NET_DSA_REALTEK_MDIO is not set # CONFIG_NET_DSA_REALTEK_SMI is not set @@ -3328,6 +3270,8 @@ CONFIG_ICE_SWITCHDEV=y CONFIG_ICE_HWTS=y CONFIG_FM10K=m CONFIG_IGC=m +CONFIG_NET_VENDOR_WANGXUN=y +CONFIG_TXGBE=m CONFIG_JME=m CONFIG_NET_VENDOR_LITEX=y CONFIG_NET_VENDOR_MARVELL=y @@ -3398,8 +3342,6 @@ CONFIG_NATSEMI=m CONFIG_NS83820=m CONFIG_NET_VENDOR_NETERION=y CONFIG_S2IO=m -CONFIG_VXGE=m -# CONFIG_VXGE_DEBUG_TRACE_ALL is not set CONFIG_NET_VENDOR_NETRONOME=y CONFIG_NFP=m CONFIG_NFP_APP_FLOWER=y @@ -3545,6 +3487,7 @@ CONFIG_BCM7XXX_PHY=m CONFIG_BCM84881_PHY=m CONFIG_BCM87XX_PHY=m CONFIG_BCM_NET_PHYLIB=m +CONFIG_BCM_NET_PHYPTP=m CONFIG_CICADA_PHY=m CONFIG_CORTINA_PHY=m CONFIG_DAVICOM_PHY=m @@ -3582,6 +3525,68 @@ CONFIG_DP83TD510_PHY=m CONFIG_VITESSE_PHY=m CONFIG_XILINX_GMII2RGMII=m CONFIG_MICREL_KS8995MA=m +CONFIG_CAN_DEV=m +CONFIG_CAN_VCAN=m +CONFIG_CAN_VXCAN=m +CONFIG_CAN_NETLINK=y +CONFIG_CAN_CALC_BITTIMING=y +CONFIG_CAN_RX_OFFLOAD=y +CONFIG_CAN_CAN327=m +CONFIG_CAN_JANZ_ICAN3=m +CONFIG_CAN_KVASER_PCIEFD=m +CONFIG_CAN_SLCAN=m +CONFIG_CAN_C_CAN=m +CONFIG_CAN_C_CAN_PLATFORM=m +CONFIG_CAN_C_CAN_PCI=m +CONFIG_CAN_CC770=m +# CONFIG_CAN_CC770_ISA is not set +CONFIG_CAN_CC770_PLATFORM=m +CONFIG_CAN_CTUCANFD=m +CONFIG_CAN_CTUCANFD_PCI=m +CONFIG_CAN_IFI_CANFD=m +CONFIG_CAN_M_CAN=m +CONFIG_CAN_M_CAN_PCI=m +CONFIG_CAN_M_CAN_PLATFORM=m +CONFIG_CAN_M_CAN_TCAN4X5X=m +CONFIG_CAN_PEAK_PCIEFD=m +CONFIG_CAN_SJA1000=m +CONFIG_CAN_EMS_PCI=m +# CONFIG_CAN_EMS_PCMCIA is not set +CONFIG_CAN_F81601=m +CONFIG_CAN_KVASER_PCI=m +CONFIG_CAN_PEAK_PCI=m +CONFIG_CAN_PEAK_PCIEC=y +CONFIG_CAN_PEAK_PCMCIA=m +CONFIG_CAN_PLX_PCI=m +# CONFIG_CAN_SJA1000_ISA is not set +CONFIG_CAN_SJA1000_PLATFORM=m +CONFIG_CAN_SOFTING=m +CONFIG_CAN_SOFTING_CS=m + +# +# CAN SPI interfaces +# +CONFIG_CAN_HI311X=m +CONFIG_CAN_MCP251X=m +CONFIG_CAN_MCP251XFD=m +# CONFIG_CAN_MCP251XFD_SANITY is not set +# end of CAN SPI interfaces + +# +# CAN USB interfaces +# +CONFIG_CAN_8DEV_USB=m +CONFIG_CAN_EMS_USB=m +CONFIG_CAN_ESD_USB=m +CONFIG_CAN_ETAS_ES58X=m +CONFIG_CAN_GS_USB=m +CONFIG_CAN_KVASER_USB=m +CONFIG_CAN_MCBA_USB=m +CONFIG_CAN_PEAK_USB=m +CONFIG_CAN_UCAN=m +# end of CAN USB interfaces + +# CONFIG_CAN_DEBUG_DEVICES is not set # # MCTP Device Drivers @@ -3827,7 +3832,6 @@ CONFIG_IWLWIFI_DEBUGFS=y CONFIG_IWLWIFI_DEVICE_TRACING=y # end of Debugging Options -CONFIG_IWLMEI=m CONFIG_WLAN_VENDOR_INTERSIL=y CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y @@ -4305,6 +4309,7 @@ CONFIG_TOUCHSCREEN_SX8654=m CONFIG_TOUCHSCREEN_TPS6507X=m CONFIG_TOUCHSCREEN_ZET6223=m CONFIG_TOUCHSCREEN_ZFORCE=m +CONFIG_TOUCHSCREEN_COLIBRI_VF50=m CONFIG_TOUCHSCREEN_ROHM_BU21023=m CONFIG_TOUCHSCREEN_IQS5XX=m CONFIG_TOUCHSCREEN_ZINITIX=m @@ -4548,6 +4553,7 @@ CONFIG_TCG_TIS_CORE=m CONFIG_TCG_TIS=m CONFIG_TCG_TIS_SPI=m CONFIG_TCG_TIS_SPI_CR50=y +CONFIG_TCG_TIS_I2C=m CONFIG_TCG_TIS_I2C_CR50=m CONFIG_TCG_TIS_I2C_ATMEL=m CONFIG_TCG_TIS_I2C_INFINEON=m @@ -4706,6 +4712,7 @@ CONFIG_SPI_INTEL=m CONFIG_SPI_INTEL_PCI=m CONFIG_SPI_INTEL_PLATFORM=m CONFIG_SPI_LM70_LLP=m +CONFIG_SPI_MICROCHIP_CORE=m # CONFIG_SPI_LANTIQ_SSC is not set CONFIG_SPI_OC_TINY=m CONFIG_SPI_PXA2XX=m @@ -4802,6 +4809,7 @@ CONFIG_PINCTRL_ICELAKE=y CONFIG_PINCTRL_JASPERLAKE=y CONFIG_PINCTRL_LAKEFIELD=y CONFIG_PINCTRL_LEWISBURG=y +CONFIG_PINCTRL_METEORLAKE=y CONFIG_PINCTRL_SUNRISEPOINT=y CONFIG_PINCTRL_TIGERLAKE=y # end of Intel pinctrl drivers @@ -5061,7 +5069,6 @@ CONFIG_SENSORS_ABITUGURU3=m CONFIG_SENSORS_AD7314=m CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m -CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m @@ -5140,7 +5147,6 @@ CONFIG_SENSORS_MAX31730=m CONFIG_SENSORS_MAX6620=m CONFIG_SENSORS_MAX6621=m CONFIG_SENSORS_MAX6639=m -CONFIG_SENSORS_MAX6642=m CONFIG_SENSORS_MAX6650=m CONFIG_SENSORS_MAX6697=m CONFIG_SENSORS_MAX31790=m @@ -5199,6 +5205,7 @@ CONFIG_SENSORS_IRPS5401=m CONFIG_SENSORS_ISL68137=m CONFIG_SENSORS_LM25066=m CONFIG_SENSORS_LM25066_REGULATOR=y +CONFIG_SENSORS_LT7182S=m CONFIG_SENSORS_LTC2978=m # CONFIG_SENSORS_LTC2978_REGULATOR is not set CONFIG_SENSORS_LTC3815=m @@ -5860,7 +5867,6 @@ CONFIG_USB_PWC=m # CONFIG_USB_PWC_DEBUG is not set CONFIG_USB_PWC_INPUT_EVDEV=y CONFIG_USB_S2255=m -CONFIG_USB_STKWEBCAM=m CONFIG_VIDEO_USBTV=m CONFIG_USB_VIDEO_CLASS=m CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y @@ -6203,6 +6209,7 @@ CONFIG_VIDEO_IR_I2C=m # CONFIG_VIDEO_APTINA_PLL=m CONFIG_VIDEO_CCS_PLL=m +CONFIG_VIDEO_AR0521=m CONFIG_VIDEO_HI556=m CONFIG_VIDEO_HI846=m CONFIG_VIDEO_HI847=m @@ -6539,6 +6546,7 @@ CONFIG_DVB_DUMMY_FE=m # # Graphics support # +CONFIG_APERTURE_HELPERS=y CONFIG_AGP=y CONFIG_AGP_AMD64=m CONFIG_AGP_INTEL=m @@ -6855,10 +6863,12 @@ CONFIG_SND_MAX_CARDS=32 CONFIG_SND_PROC_FS=y CONFIG_SND_VERBOSE_PROCFS=y CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_CTL_FAST_LOOKUP=y CONFIG_SND_DEBUG=y # CONFIG_SND_DEBUG_VERBOSE is not set # CONFIG_SND_PCM_XRUN_DEBUG is not set -# CONFIG_SND_CTL_VALIDATION is not set +CONFIG_SND_CTL_INPUT_VALIDATION=y +# CONFIG_SND_CTL_DEBUG is not set # CONFIG_SND_JACK_INJECTION_DEBUG is not set CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y @@ -6975,6 +6985,7 @@ CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_PATCH_LOADER=y CONFIG_SND_HDA_SCODEC_CS35L41=m +CONFIG_SND_HDA_CS_DSP_CONTROLS=m CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m CONFIG_SND_HDA_CODEC_REALTEK=m @@ -7048,6 +7059,7 @@ CONFIG_SND_SOC_ADI_AXI_SPDIF=m CONFIG_SND_SOC_AMD_ACP=m CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m +CONFIG_SND_SOC_AMD_ST_ES8336_MACH=m CONFIG_SND_SOC_AMD_ACP3x=m CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m CONFIG_SND_SOC_AMD_RENOIR=m @@ -7063,9 +7075,11 @@ CONFIG_SND_SOC_AMD_ACP_I2S=m CONFIG_SND_SOC_AMD_ACP_PCM=m CONFIG_SND_SOC_AMD_ACP_PCI=m CONFIG_SND_AMD_ASOC_RENOIR=m +CONFIG_SND_AMD_ASOC_REMBRANDT=m CONFIG_SND_SOC_AMD_MACH_COMMON=m CONFIG_SND_SOC_AMD_LEGACY_MACH=m CONFIG_SND_SOC_AMD_SOF_MACH=m +CONFIG_SND_SOC_AMD_RPL_ACP6x=m CONFIG_SND_ATMEL_SOC=m # CONFIG_SND_BCM63XX_I2S_WHISTLER is not set CONFIG_SND_DESIGNWARE_I2S=m @@ -7119,6 +7133,28 @@ CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y CONFIG_SND_SOC_INTEL_SKYLAKE_COMMON=m CONFIG_SND_SOC_ACPI_INTEL_MATCH=m CONFIG_SND_SOC_INTEL_AVS=m + +# +# Intel AVS Machine drivers +# + +# +# Available DSP configurations +# +CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219=m +CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC=m +CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m +CONFIG_SND_SOC_INTEL_AVS_MACH_I2S_TEST=m +CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A=m +CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98373=m +CONFIG_SND_SOC_INTEL_AVS_MACH_NAU8825=m +CONFIG_SND_SOC_INTEL_AVS_MACH_RT274=m +CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m +CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=m +CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682=m +CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567=m +# end of Intel AVS Machine drivers + CONFIG_SND_SOC_INTEL_MACH=y CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=m @@ -7177,6 +7213,8 @@ CONFIG_SND_SOC_SOF_DEBUG_PROBES=m CONFIG_SND_SOC_SOF_CLIENT=m CONFIG_SND_SOC_SOF=m CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y +CONFIG_SND_SOC_SOF_IPC3=y +CONFIG_SND_SOC_SOF_INTEL_IPC4=y CONFIG_SND_SOC_SOF_AMD_TOPLEVEL=m CONFIG_SND_SOC_SOF_AMD_COMMON=m CONFIG_SND_SOC_SOF_AMD_RENOIR=m @@ -7201,6 +7239,8 @@ CONFIG_SND_SOC_SOF_INTEL_TGL=m CONFIG_SND_SOC_SOF_TIGERLAKE=m CONFIG_SND_SOC_SOF_ELKHARTLAKE=m CONFIG_SND_SOC_SOF_ALDERLAKE=m +CONFIG_SND_SOC_SOF_INTEL_MTL=m +CONFIG_SND_SOC_SOF_METEORLAKE=m CONFIG_SND_SOC_SOF_HDA_COMMON=m CONFIG_SND_SOC_SOF_HDA_LINK=y CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y @@ -7300,6 +7340,7 @@ CONFIG_SND_SOC_ES8328_SPI=m CONFIG_SND_SOC_GTM601=m CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_HDAC_HDA=m +CONFIG_SND_SOC_HDA=m CONFIG_SND_SOC_ICS43432=m CONFIG_SND_SOC_INNO_RK3036=m CONFIG_SND_SOC_MAX98088=m @@ -7338,6 +7379,7 @@ CONFIG_SND_SOC_PCM512x_SPI=m CONFIG_SND_SOC_RK3328=m CONFIG_SND_SOC_RL6231=m CONFIG_SND_SOC_RL6347A=m +CONFIG_SND_SOC_RT274=m CONFIG_SND_SOC_RT286=m CONFIG_SND_SOC_RT298=m CONFIG_SND_SOC_RT1011=m @@ -7395,6 +7437,7 @@ CONFIG_SND_SOC_TAS2552=m CONFIG_SND_SOC_TAS2562=m CONFIG_SND_SOC_TAS2764=m CONFIG_SND_SOC_TAS2770=m +CONFIG_SND_SOC_TAS2780=m CONFIG_SND_SOC_TAS5086=m CONFIG_SND_SOC_TAS571X=m CONFIG_SND_SOC_TAS5720=m @@ -7453,6 +7496,7 @@ CONFIG_SND_SOC_WM8974=m CONFIG_SND_SOC_WM8978=m CONFIG_SND_SOC_WM8985=m CONFIG_SND_SOC_WSA881X=m +CONFIG_SND_SOC_WSA883X=m CONFIG_SND_SOC_ZL38060=m CONFIG_SND_SOC_MAX9759=m CONFIG_SND_SOC_MT6351=m @@ -8046,7 +8090,9 @@ CONFIG_TYPEC_WCOVE=m CONFIG_TYPEC_UCSI=m CONFIG_UCSI_CCG=m CONFIG_UCSI_ACPI=m +CONFIG_UCSI_STM32G0=m CONFIG_TYPEC_TPS6598X=m +CONFIG_TYPEC_ANX7411=m CONFIG_TYPEC_RT1719=m CONFIG_TYPEC_HD3SS3220=m CONFIG_TYPEC_STUSB160X=m @@ -8155,7 +8201,6 @@ CONFIG_LEDS_LP3944=m CONFIG_LEDS_LP3952=m CONFIG_LEDS_LP50XX=m CONFIG_LEDS_LP8788=m -CONFIG_LEDS_CLEVO_MAIL=m CONFIG_LEDS_PCA955X=m CONFIG_LEDS_PCA955X_GPIO=y CONFIG_LEDS_PCA963X=m @@ -8176,6 +8221,7 @@ CONFIG_LEDS_TLC591XX=m CONFIG_LEDS_MAX8997=m CONFIG_LEDS_LM355x=m CONFIG_LEDS_MENF21BMC=m +CONFIG_LEDS_IS31FL319X=m # # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) @@ -8260,23 +8306,24 @@ CONFIG_INFINIBAND_ON_DEMAND_PAGING=y CONFIG_INFINIBAND_ADDR_TRANS=y CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y CONFIG_INFINIBAND_VIRT_DMA=y -CONFIG_INFINIBAND_MTHCA=m -CONFIG_INFINIBAND_MTHCA_DEBUG=y -CONFIG_INFINIBAND_QIB=m -CONFIG_INFINIBAND_QIB_DCA=y +CONFIG_INFINIBAND_BNXT_RE=m CONFIG_INFINIBAND_CXGB4=m CONFIG_INFINIBAND_EFA=m +CONFIG_INFINIBAND_ERDMA=m +CONFIG_INFINIBAND_HFI1=m +# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set +# CONFIG_SDMA_VERBOSITY is not set CONFIG_INFINIBAND_IRDMA=m CONFIG_MLX4_INFINIBAND=m CONFIG_MLX5_INFINIBAND=m +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y CONFIG_INFINIBAND_OCRDMA=m -CONFIG_INFINIBAND_VMWARE_PVRDMA=m -CONFIG_INFINIBAND_USNIC=m -CONFIG_INFINIBAND_BNXT_RE=m -CONFIG_INFINIBAND_HFI1=m -# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set -# CONFIG_SDMA_VERBOSITY is not set CONFIG_INFINIBAND_QEDR=m +CONFIG_INFINIBAND_QIB=m +CONFIG_INFINIBAND_QIB_DCA=y +CONFIG_INFINIBAND_USNIC=m +CONFIG_INFINIBAND_VMWARE_PVRDMA=m CONFIG_INFINIBAND_RDMAVT=m CONFIG_RDMA_RXE=m CONFIG_RDMA_SIW=m @@ -8714,13 +8761,14 @@ CONFIG_VIDEO_ATOMISP_GC0310=m CONFIG_VIDEO_ATOMISP_OV2680=m CONFIG_VIDEO_ATOMISP_OV5693=m CONFIG_VIDEO_ATOMISP_LM3554=m -# CONFIG_VIDEO_ZORAN is not set -CONFIG_VIDEO_IPU3_IMGU=m CONFIG_DVB_AV7110_IR=y CONFIG_DVB_AV7110=m CONFIG_DVB_AV7110_OSD=y CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_SP8870=m +CONFIG_VIDEO_IPU3_IMGU=m +CONFIG_VIDEO_STKWEBCAM=m +# CONFIG_VIDEO_ZORAN is not set CONFIG_LTE_GDM724X=m CONFIG_FIREWIRE_SERIAL=m CONFIG_FWTTY_MAX_TOTAL_PORTS=64 @@ -8734,10 +8782,53 @@ CONFIG_KS7010=m CONFIG_PI433=m CONFIG_FIELDBUS_DEV=m CONFIG_QLGE=m - -# -# VME Device Drivers -# +# CONFIG_VME_BUS is not set +CONFIG_CHROME_PLATFORMS=y +CONFIG_CHROMEOS_ACPI=m +CONFIG_CHROMEOS_LAPTOP=m +CONFIG_CHROMEOS_PSTORE=m +CONFIG_CHROMEOS_TBMC=m +CONFIG_CROS_EC=m +CONFIG_CROS_EC_I2C=m +CONFIG_CROS_EC_ISHTP=m +CONFIG_CROS_EC_SPI=m +CONFIG_CROS_EC_LPC=m +CONFIG_CROS_EC_PROTO=y +CONFIG_CROS_KBD_LED_BACKLIGHT=m +CONFIG_CROS_EC_CHARDEV=m +CONFIG_CROS_EC_LIGHTBAR=m +CONFIG_CROS_EC_DEBUGFS=m +CONFIG_CROS_EC_SENSORHUB=m +CONFIG_CROS_EC_SYSFS=m +CONFIG_CROS_EC_TYPEC=m +CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=m +CONFIG_CHROMEOS_PRIVACY_SCREEN=m +CONFIG_WILCO_EC=m +CONFIG_WILCO_EC_DEBUGFS=m +CONFIG_WILCO_EC_EVENTS=m +CONFIG_WILCO_EC_TELEMETRY=m +CONFIG_MELLANOX_PLATFORM=y +CONFIG_MLXREG_HOTPLUG=m +CONFIG_MLXREG_IO=m +CONFIG_MLXREG_LC=m +CONFIG_NVSW_SN2201=m +CONFIG_SURFACE_PLATFORMS=y +CONFIG_SURFACE3_WMI=m +CONFIG_SURFACE_3_POWER_OPREGION=m +CONFIG_SURFACE_ACPI_NOTIFY=m +CONFIG_SURFACE_AGGREGATOR_CDEV=m +CONFIG_SURFACE_AGGREGATOR_HUB=m +CONFIG_SURFACE_AGGREGATOR_REGISTRY=m +CONFIG_SURFACE_AGGREGATOR_TABLET_SWITCH=m +CONFIG_SURFACE_DTX=m +CONFIG_SURFACE_GPE=m +CONFIG_SURFACE_HOTPLUG=m +CONFIG_SURFACE_PLATFORM_PROFILE=m +CONFIG_SURFACE_PRO3_BUTTON=m +CONFIG_SURFACE_AGGREGATOR=m +CONFIG_SURFACE_AGGREGATOR_BUS=y +# CONFIG_SURFACE_AGGREGATOR_ERROR_INJECTION is not set CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACPI_WMI=m CONFIG_WMI_BMOF=m @@ -8869,51 +8960,7 @@ CONFIG_INTEL_SCU_PLATFORM=m CONFIG_INTEL_SCU_IPC_UTIL=m CONFIG_SIEMENS_SIMATIC_IPC=m CONFIG_WINMATE_FM07_KEYS=m -CONFIG_PMC_ATOM=y -CONFIG_CHROME_PLATFORMS=y -CONFIG_CHROMEOS_ACPI=m -CONFIG_CHROMEOS_LAPTOP=m -CONFIG_CHROMEOS_PSTORE=m -CONFIG_CHROMEOS_TBMC=m -CONFIG_CROS_EC=m -CONFIG_CROS_EC_I2C=m -CONFIG_CROS_EC_ISHTP=m -CONFIG_CROS_EC_SPI=m -CONFIG_CROS_EC_LPC=m -CONFIG_CROS_EC_PROTO=y -CONFIG_CROS_KBD_LED_BACKLIGHT=m -CONFIG_CROS_EC_CHARDEV=m -CONFIG_CROS_EC_LIGHTBAR=m -CONFIG_CROS_EC_DEBUGFS=m -CONFIG_CROS_EC_SENSORHUB=m -CONFIG_CROS_EC_SYSFS=m -CONFIG_CROS_EC_TYPEC=m -CONFIG_CROS_USBPD_LOGGER=m -CONFIG_CROS_USBPD_NOTIFY=m -CONFIG_CHROMEOS_PRIVACY_SCREEN=m -CONFIG_WILCO_EC=m -CONFIG_WILCO_EC_DEBUGFS=m -CONFIG_WILCO_EC_EVENTS=m -CONFIG_WILCO_EC_TELEMETRY=m -CONFIG_MELLANOX_PLATFORM=y -CONFIG_MLXREG_HOTPLUG=m -CONFIG_MLXREG_IO=m -CONFIG_MLXREG_LC=m -CONFIG_NVSW_SN2201=m -CONFIG_SURFACE_PLATFORMS=y -CONFIG_SURFACE3_WMI=m -CONFIG_SURFACE_3_POWER_OPREGION=m -CONFIG_SURFACE_ACPI_NOTIFY=m -CONFIG_SURFACE_AGGREGATOR_CDEV=m -CONFIG_SURFACE_AGGREGATOR_REGISTRY=m -CONFIG_SURFACE_DTX=m -CONFIG_SURFACE_GPE=m -CONFIG_SURFACE_HOTPLUG=m -CONFIG_SURFACE_PLATFORM_PROFILE=m -CONFIG_SURFACE_PRO3_BUTTON=m -CONFIG_SURFACE_AGGREGATOR=m -CONFIG_SURFACE_AGGREGATOR_BUS=y -# CONFIG_SURFACE_AGGREGATOR_ERROR_INJECTION is not set +CONFIG_P2SB=y CONFIG_HAVE_CLK=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y @@ -9021,6 +9068,11 @@ CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m # end of NXP/Freescale QorIQ SoC drivers # +# fujitsu SoC drivers +# +# end of fujitsu SoC drivers + +# # i.MX SoC drivers # # end of i.MX SoC drivers @@ -9190,6 +9242,7 @@ CONFIG_AXP288_ADC=m CONFIG_CC10001_ADC=m CONFIG_DA9150_GPADC=m CONFIG_DLN2_ADC=m +CONFIG_ENVELOPE_DETECTOR=m CONFIG_HI8435=m CONFIG_HX711=m CONFIG_INA2XX_ADC=m @@ -9213,6 +9266,7 @@ CONFIG_MEN_Z188_ADC=m CONFIG_MP2629_ADC=m CONFIG_NAU7802=m CONFIG_PALMAS_GPADC=m +CONFIG_SD_ADC_MODULATOR=m CONFIG_TI_ADC081C=m CONFIG_TI_ADC0832=m CONFIG_TI_ADC084S021=m @@ -9231,6 +9285,7 @@ CONFIG_TI_TLC4541=m CONFIG_TI_TSC2046=m CONFIG_TWL4030_MADC=m CONFIG_TWL6030_GPADC=m +CONFIG_VF610_ADC=m CONFIG_VIPERBOARD_ADC=m CONFIG_XILINX_XADC=m # end of Analog to digital converters @@ -9706,10 +9761,10 @@ CONFIG_NTB_SWITCHTEC=m # CONFIG_NTB_PERF is not set # CONFIG_NTB_MSI_TEST is not set CONFIG_NTB_TRANSPORT=m -# CONFIG_VME_BUS is not set CONFIG_PWM=y CONFIG_PWM_SYSFS=y # CONFIG_PWM_DEBUG is not set +CONFIG_PWM_CLK=m CONFIG_PWM_CRC=y CONFIG_PWM_CROS_EC=m CONFIG_PWM_DWC=m @@ -9733,6 +9788,7 @@ CONFIG_BOARD_TPCI200=m CONFIG_SERIAL_IPOCTAL=m CONFIG_RESET_CONTROLLER=y CONFIG_RESET_TI_SYSCON=m +CONFIG_RESET_TI_TPS380X=m # # PHY Subsystem @@ -9780,7 +9836,6 @@ CONFIG_USB4=m # # Android # -CONFIG_ANDROID=y CONFIG_ANDROID_BINDER_IPC=y CONFIG_ANDROID_BINDERFS=y CONFIG_ANDROID_BINDER_DEVICES="" @@ -9844,6 +9899,8 @@ CONFIG_FPGA_DFL_FME_REGION=m CONFIG_FPGA_DFL_AFU=m CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m CONFIG_FPGA_DFL_PCI=m +CONFIG_FPGA_M10_BMC_SEC_UPDATE=m +CONFIG_FPGA_MGR_MICROCHIP_SPI=m CONFIG_TEE=m CONFIG_AMDTEE=m CONFIG_MULTIPLEXER=m @@ -10275,6 +10332,7 @@ CONFIG_NLS_MAC_ROMANIAN=m CONFIG_NLS_MAC_TURKISH=m CONFIG_NLS_UTF8=m CONFIG_DLM=m +# CONFIG_DLM_DEPRECATED_API is not set CONFIG_DLM_DEBUG=y CONFIG_UNICODE=y # CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set @@ -10327,9 +10385,12 @@ CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/usr/bin/tomoyo-init" CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/usr/lib/systemd/systemd" # CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING is not set CONFIG_SECURITY_APPARMOR=y +# CONFIG_SECURITY_APPARMOR_DEBUG is not set +CONFIG_SECURITY_APPARMOR_INTROSPECT_POLICY=y CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y -# CONFIG_SECURITY_APPARMOR_DEBUG is not set +CONFIG_SECURITY_APPARMOR_EXPORT_BINARY=y +CONFIG_SECURITY_APPARMOR_PARANOID_LOAD=y CONFIG_SECURITY_LOADPIN=y CONFIG_SECURITY_LOADPIN_ENFORCE=y CONFIG_SECURITY_YAMA=y @@ -10367,6 +10428,7 @@ CONFIG_LSM="landlock,lockdown,yama,integrity,bpf" # Memory initialization # CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y # CONFIG_INIT_STACK_NONE is not set # CONFIG_INIT_STACK_ALL_PATTERN is not set @@ -10461,12 +10523,14 @@ CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_OFB=m CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_XCTR=m CONFIG_CRYPTO_XTS=m CONFIG_CRYPTO_KEYWRAP=m CONFIG_CRYPTO_NHPOLY1305=m CONFIG_CRYPTO_NHPOLY1305_SSE2=m CONFIG_CRYPTO_NHPOLY1305_AVX2=m CONFIG_CRYPTO_ADIANTUM=m +CONFIG_CRYPTO_HCTR2=m CONFIG_CRYPTO_ESSIV=m # @@ -10491,6 +10555,8 @@ CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m CONFIG_CRYPTO_CRC64_ROCKSOFT=y CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_POLYVAL=m +CONFIG_CRYPTO_POLYVAL_CLMUL_NI=m CONFIG_CRYPTO_POLY1305=m CONFIG_CRYPTO_POLY1305_X86_64=m CONFIG_CRYPTO_MD4=m @@ -10534,6 +10600,7 @@ CONFIG_CRYPTO_DES3_EDE_X86_64=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_CHACHA20_X86_64=m +CONFIG_CRYPTO_ARIA=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m CONFIG_CRYPTO_SERPENT_AVX_X86_64=m @@ -10673,6 +10740,7 @@ CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m CONFIG_CRYPTO_LIB_POLY1305=m CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m +CONFIG_CRYPTO_LIB_SHA1=y CONFIG_CRYPTO_LIB_SHA256=y # end of Crypto library routines @@ -10800,7 +10868,6 @@ CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y CONFIG_ARCH_HAS_COPY_MC=y CONFIG_ARCH_STACKWALK=y CONFIG_STACKDEPOT=y -CONFIG_STACK_HASH_ORDER=20 CONFIG_SBITMAP=y CONFIG_PARMAN=m CONFIG_OBJAGG=m @@ -10808,6 +10875,7 @@ CONFIG_OBJAGG=m CONFIG_PLDMFW=y CONFIG_ASN1_ENCODER=m +CONFIG_POLYNOMIAL=m # # Kernel hacking @@ -10904,6 +10972,7 @@ CONFIG_GENERIC_PTDUMP=y CONFIG_PTDUMP_CORE=y # CONFIG_PTDUMP_DEBUGFS is not set # CONFIG_DEBUG_OBJECTS is not set +CONFIG_SHRINKER_DEBUG=y CONFIG_HAVE_DEBUG_KMEMLEAK=y # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_STACK_USAGE is not set @@ -11090,6 +11159,7 @@ CONFIG_HIST_TRIGGERS=y # CONFIG_SYNTH_EVENT_GEN_TEST is not set # CONFIG_KPROBE_EVENT_GEN_TEST is not set # CONFIG_HIST_TRIGGERS_DEBUG is not set +# CONFIG_RV is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y diff --git a/fix_project_c.patch b/fix_project_c.patch deleted file mode 100644 index cd662434c490..000000000000 --- a/fix_project_c.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 570d8c5b6f7439217b45906568adddb0a6cc2751 Mon Sep 17 00:00:00 2001 -From: Alfred Chen <cchalpha@gmail.com> -Date: Tue, 15 Dec 2020 11:19:05 +0800 -Subject: [PATCH] sched/bmq: Fix compilation issue. - ---- - kernel/sched/bmq_imp.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/kernel/sched/bmq_imp.h b/kernel/sched/bmq_imp.h -index 83c2d019c446..3faba5f9bb69 100644 ---- a/kernel/sched/bmq_imp.h -+++ b/kernel/sched/bmq_imp.h -@@ -62,7 +62,7 @@ static inline void time_slice_expired(struct task_struct *p, struct rq *rq) - } - } - --static inline int task_running_nice(struct task_struct *p) -+inline int task_running_nice(struct task_struct *p) - { - return (p->prio + p->boost_prio > DEFAULT_PRIO + MAX_PRIORITY_ADJ); - }
\ No newline at end of file diff --git a/pf_defconfig b/pf_defconfig index 5f80ed32f982..3d48202879a9 100644 --- a/pf_defconfig +++ b/pf_defconfig @@ -1,5 +1,4 @@ # CONFIG_SCHED_BMQ=y -# CONFIG_LOCALVERSION_AUTO is not set # CONFIG_AUDIT is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y |