diff options
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch | 2 | ||||
-rw-r--r-- | 0002-mm-vmscan-fix-extreme-overreclaim-and-swap-floods.patch | 2 | ||||
-rw-r--r-- | 0003-soundwire-intel-Initialize-clock-stop-timeout.patch | 2 | ||||
-rw-r--r-- | 0004-drm-sched-add-DRM_SCHED_FENCE_DONT_PIPELINE-flag.patch | 6 | ||||
-rw-r--r-- | 0005-drm-amdgpu-use-DRM_SCHED_FENCE_DONT_PIPELINE-for-VM-.patch | 2 | ||||
-rw-r--r-- | 0006-drm-i915-Fix-unhandled-deadlock-in-grab_vma.patch | 223 | ||||
-rw-r--r-- | PKGBUILD | 18 | ||||
-rw-r--r-- | config | 12 |
9 files changed, 258 insertions, 31 deletions
@@ -1,5 +1,5 @@ pkgbase = linux-ck - pkgver = 6.0.9 + pkgver = 6.0.10 pkgrel = 1 url = https://wiki.archlinux.org/index.php/Linux-ck arch = x86_64 @@ -11,8 +11,8 @@ pkgbase = linux-ck makedepends = tar makedepends = xz options = !strip - source = https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.0.9.tar.xz - source = https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.0.9.tar.sign + source = https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.0.10.tar.xz + source = https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.0.10.tar.sign source = config source = more-uarches-20221104.tar.gz::https://github.com/graysky2/kernel_compiler_patch/archive/20221104.tar.gz source = ck-hrtimer-5be918e798e2c2cc94fa7dd0f6f031921a4f7598.tar.gz::https://github.com/graysky2/linux-patches/archive/5be918e798e2c2cc94fa7dd0f6f031921a4f7598.tar.gz @@ -21,18 +21,20 @@ pkgbase = linux-ck source = 0003-soundwire-intel-Initialize-clock-stop-timeout.patch source = 0004-drm-sched-add-DRM_SCHED_FENCE_DONT_PIPELINE-flag.patch source = 0005-drm-amdgpu-use-DRM_SCHED_FENCE_DONT_PIPELINE-for-VM-.patch + source = 0006-drm-i915-Fix-unhandled-deadlock-in-grab_vma.patch validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886 validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E - sha256sums = 6114a208e82739b4a1ab059ace35262be2a83be34cd1ae23cb8a09337db831c7 + sha256sums = 39e57fcd84cd70bfa3e1a4185d3aa0ed7f1432f24c6548d16326b0c3c9541dd0 sha256sums = SKIP - sha256sums = 05168cbbeb6378eec6c84fe3300cede4fa5cf6130c39fb8af95040529bd390a6 + sha256sums = 848ccd048f91b17f0e0192d2900c462986eeacf78bb578b2de9498c4a0526983 sha256sums = 3a8f397b89bad95c46f42c0f80ede7536a4a45a28621e00ed486918a55f905ed sha256sums = 85b197dbe033264925b4803b3c8907ed73b967061c098e269eacd5575d6da34b - sha256sums = ff9076ecd73cc7725d2c9c0d9d381904b9bcc75cffc0da7ecccc0886c99b02a2 - sha256sums = b9a998b084cd583dac4cc755aab79e8810013c4c0d6d9f5e4fa78d2939314ced - sha256sums = 757cb209f1b1759f4c9efcc77501be9ee73676db069d0440104255ab35c4cdd0 - sha256sums = a3ffe9f133029d60bf8fa66775cee64e160ddf33c265e7807eb3dea7d1981ac4 - sha256sums = 26669e4925ac1869eeb53a7d9578c8af742c6a7e8cdcdb9af2c081774581a032 + sha256sums = 05a9b754ff501c45833238db1f304533a3b0aec3f9281cb8381c580066a2eff5 + sha256sums = 800804877e411394cd7aa77884054e0447da51b5fb010e3f3f992bfe41e41fba + sha256sums = 3f5a6fc58ae54bcfd95e147a2156c501eecfd9fcf2a9ceed056df87d59954af8 + sha256sums = 9aeaddde2dd4bca54ee00ee11a53677a3afe82c61543c416708edaa0f27097c9 + sha256sums = 5d22887375ab7a8615b7ad84445d5c62350be23873396222c48f6e39dd64161c + sha256sums = 966f24db411f100a2c7028c7e26814fa34a742f55a236df5df5357174404750a pkgname = linux-ck pkgdesc = The Linux kernel and modules with ck's hrtimer patches diff --git a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch index 729a9b92202a..a53367407193 100644 --- a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch +++ b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch @@ -1,4 +1,4 @@ -From d6cebe6cf6f0f344134326a02131a281f507c437 Mon Sep 17 00:00:00 2001 +From f763c5f50435a3eb7e9ebf2bdc98c6f42d76eb34 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 1/7] ZEN: Add sysctl and CONFIG to disallow unprivileged diff --git a/0002-mm-vmscan-fix-extreme-overreclaim-and-swap-floods.patch b/0002-mm-vmscan-fix-extreme-overreclaim-and-swap-floods.patch index 0dc77994236f..95bb2f11106d 100644 --- a/0002-mm-vmscan-fix-extreme-overreclaim-and-swap-floods.patch +++ b/0002-mm-vmscan-fix-extreme-overreclaim-and-swap-floods.patch @@ -1,4 +1,4 @@ -From 3289d1b987742ac1a7fdabdc91db1849844e8713 Mon Sep 17 00:00:00 2001 +From a6f5827368ab235751c4af71b3c27c601ff803f1 Mon Sep 17 00:00:00 2001 From: Johannes Weiner <hannes@cmpxchg.org> Date: Tue, 2 Aug 2022 12:28:11 -0400 Subject: [PATCH 2/7] mm: vmscan: fix extreme overreclaim and swap floods diff --git a/0003-soundwire-intel-Initialize-clock-stop-timeout.patch b/0003-soundwire-intel-Initialize-clock-stop-timeout.patch index fd8c8abd0cd1..46502e56099e 100644 --- a/0003-soundwire-intel-Initialize-clock-stop-timeout.patch +++ b/0003-soundwire-intel-Initialize-clock-stop-timeout.patch @@ -1,4 +1,4 @@ -From 6daf906d3fd4818ba9be0a806df94f7a4c20f263 Mon Sep 17 00:00:00 2001 +From 5ee238d09efc2243473b0eaa14496c18e1d1c924 Mon Sep 17 00:00:00 2001 From: Sjoerd Simons <sjoerd@collabora.com> Date: Sat, 8 Oct 2022 21:57:51 +0200 Subject: [PATCH 3/7] soundwire: intel: Initialize clock stop timeout diff --git a/0004-drm-sched-add-DRM_SCHED_FENCE_DONT_PIPELINE-flag.patch b/0004-drm-sched-add-DRM_SCHED_FENCE_DONT_PIPELINE-flag.patch index 8f58ced64ba3..51063a433be4 100644 --- a/0004-drm-sched-add-DRM_SCHED_FENCE_DONT_PIPELINE-flag.patch +++ b/0004-drm-sched-add-DRM_SCHED_FENCE_DONT_PIPELINE-flag.patch @@ -1,4 +1,4 @@ -From 3a3573ec2d5f7453819ff0c2701501e753a71907 Mon Sep 17 00:00:00 2001 +From 0f134b2b1903b238d7bd126c45c59242025fd823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> Date: Fri, 7 Oct 2022 09:51:13 +0200 Subject: [PATCH 4/7] drm/sched: add DRM_SCHED_FENCE_DONT_PIPELINE flag @@ -17,10 +17,10 @@ Signed-off-by: Christian König <christian.koenig@amd.com> 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/scheduler/sched_entity.c b/drivers/gpu/drm/scheduler/sched_entity.c -index 6b25b2f4f5a3..6137537aaea4 100644 +index 7ef1a086a6fb..4b913dbb7d7b 100644 --- a/drivers/gpu/drm/scheduler/sched_entity.c +++ b/drivers/gpu/drm/scheduler/sched_entity.c -@@ -385,7 +385,8 @@ static bool drm_sched_entity_add_dependency_cb(struct drm_sched_entity *entity) +@@ -389,7 +389,8 @@ static bool drm_sched_entity_add_dependency_cb(struct drm_sched_entity *entity) } s_fence = to_drm_sched_fence(fence); diff --git a/0005-drm-amdgpu-use-DRM_SCHED_FENCE_DONT_PIPELINE-for-VM-.patch b/0005-drm-amdgpu-use-DRM_SCHED_FENCE_DONT_PIPELINE-for-VM-.patch index b6a85f9e4d21..291fee74396f 100644 --- a/0005-drm-amdgpu-use-DRM_SCHED_FENCE_DONT_PIPELINE-for-VM-.patch +++ b/0005-drm-amdgpu-use-DRM_SCHED_FENCE_DONT_PIPELINE-for-VM-.patch @@ -1,4 +1,4 @@ -From 5d9fceb0e65b7ac6aa6426fc6957e999f1cc2b9f Mon Sep 17 00:00:00 2001 +From 6e755c436e31374e96be923e96d4bc81a8a13f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> Date: Fri, 7 Oct 2022 10:59:58 +0200 Subject: [PATCH 5/7] drm/amdgpu: use DRM_SCHED_FENCE_DONT_PIPELINE for VM diff --git a/0006-drm-i915-Fix-unhandled-deadlock-in-grab_vma.patch b/0006-drm-i915-Fix-unhandled-deadlock-in-grab_vma.patch new file mode 100644 index 000000000000..cecf8b9caa8e --- /dev/null +++ b/0006-drm-i915-Fix-unhandled-deadlock-in-grab_vma.patch @@ -0,0 +1,223 @@ +From f7f83dfc74d55e134cc85668089d66d4d6df2107 Mon Sep 17 00:00:00 2001 +From: Mani Milani <mani@chromium.org> +Date: Thu, 10 Nov 2022 16:31:33 +1100 +Subject: [PATCH 6/7] drm/i915: Fix unhandled deadlock in grab_vma() + +At present, the gpu thread crashes at times when grab_vma() attempts to +acquire a gem object lock when in a deadlock state. + +Problems: +I identified the following 4 issues in the current code: +1. Since grab_vma() calls i915_gem_object_trylock(), which consequently + calls ww_mutex_trylock(), to acquire lock, it does not perform any + -EDEADLK handling; And -EALREADY handling is also unreliable, + according to the description of ww_mutex_trylock(). +2. Since the return value of grab_vma() is a boolean showing + success/failure, it does not provide any extra information on the + failure reason, and therefore does not provide any mechanism to its + caller to take any action to fix a potential deadlock. +3. Current grab_vma() implementation produces inconsistent behaviour + depending on the refcount value, without informing the caller. If + refcount is already zero, grab_vma() neither acquires lock nor + increments the refcount, but still returns 'true' for success! This + means that grab_vma() returning true (for success) does not always + mean that the gem obj is actually safely accessible. +4. Currently, calling "i915_gem_object_lock(obj,ww)" is meant to be + followed by a consequent "i915_gem_object_unlock(obj)" ONLY if the + original 'ww' object pointer was NULL, or otherwise not be called and + leave the houskeeping to "i915_gem_ww_ctx_fini(ww)". There are a few + issues with this: + - This is not documented anywhere in the code (that I could find), + but only explained in an older commit message. + - This produces an inconsistent usage of the lock/unlock functions, + increasing the chance of mistakes and issues. + - This is not a clean design as it requires any new code that calls + these lock/unlock functions to know their internals, as well as the + internals of the functions calling the new code being added. + +Fix: +To fix the issues above, this patch: +1. Changes grab_vma() to call i915_gem_object_lock() instead of + i915_gem_object_trylock(), to handle -EDEADLK and -EALREADY cases. + This should not cause any issue since the PIN_NONBLOCK flag is + checked beforehand in the 2 cases grab_vma() is called. +2. Changes grab_vma() to return the actual error code, instead of bool. +3. Changes grab_vma() to behave consistently when returning success, by + both incrementing the refcount and acquiring lock at all times. +4. Changes i915_gem_object_unlock() to pair with i915_gem_object_lock() + nicely in all cases and do the housekeeping without the need for the + caller to do anything other than simply calling lock and unlock. +5. Ensures the gem obj->obj_link is initialized and deleted from the ww + list such that it can be tested for emptiness using list_empty(). + +Signed-off-by: Mani Milani <mani@chromium.org> +For: https://gitlab.freedesktop.org/drm/intel/-/issues/7570 +--- + drivers/gpu/drm/i915/gem/i915_gem_object.c | 2 + + drivers/gpu/drm/i915/gem/i915_gem_object.h | 10 ++++- + drivers/gpu/drm/i915/i915_gem_evict.c | 48 ++++++++++++---------- + drivers/gpu/drm/i915/i915_gem_ww.c | 8 ++-- + 4 files changed, 41 insertions(+), 27 deletions(-) + +diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c +index 85482a04d158..0caf171b37d9 100644 +--- a/drivers/gpu/drm/i915/gem/i915_gem_object.c ++++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c +@@ -78,6 +78,8 @@ void i915_gem_object_init(struct drm_i915_gem_object *obj, + + INIT_LIST_HEAD(&obj->mm.link); + ++ INIT_LIST_HEAD(&obj->obj_link); ++ + INIT_LIST_HEAD(&obj->lut_list); + spin_lock_init(&obj->lut_lock); + +diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.h b/drivers/gpu/drm/i915/gem/i915_gem_object.h +index 6f0a3ce35567..fe634aebc067 100644 +--- a/drivers/gpu/drm/i915/gem/i915_gem_object.h ++++ b/drivers/gpu/drm/i915/gem/i915_gem_object.h +@@ -219,7 +219,7 @@ static inline bool i915_gem_object_trylock(struct drm_i915_gem_object *obj, + return ww_mutex_trylock(&obj->base.resv->lock, &ww->ctx); + } + +-static inline void i915_gem_object_unlock(struct drm_i915_gem_object *obj) ++static inline void __i915_gem_object_unlock(struct drm_i915_gem_object *obj) + { + if (obj->ops->adjust_lru) + obj->ops->adjust_lru(obj); +@@ -227,6 +227,14 @@ static inline void i915_gem_object_unlock(struct drm_i915_gem_object *obj) + dma_resv_unlock(obj->base.resv); + } + ++static inline void i915_gem_object_unlock(struct drm_i915_gem_object *obj) ++{ ++ if (list_empty(&obj->obj_link)) ++ __i915_gem_object_unlock(obj); ++ else ++ i915_gem_ww_unlock_single(obj); ++} ++ + static inline void + i915_gem_object_set_readonly(struct drm_i915_gem_object *obj) + { +diff --git a/drivers/gpu/drm/i915/i915_gem_evict.c b/drivers/gpu/drm/i915/i915_gem_evict.c +index f025ee4fa526..3eb514b4eddc 100644 +--- a/drivers/gpu/drm/i915/i915_gem_evict.c ++++ b/drivers/gpu/drm/i915/i915_gem_evict.c +@@ -55,29 +55,33 @@ static int ggtt_flush(struct intel_gt *gt) + return intel_gt_wait_for_idle(gt, MAX_SCHEDULE_TIMEOUT); + } + +-static bool grab_vma(struct i915_vma *vma, struct i915_gem_ww_ctx *ww) ++static int grab_vma(struct i915_vma *vma, struct i915_gem_ww_ctx *ww) + { ++ int err; ++ ++ /* Dead objects don't need pins */ ++ if (dying_vma(vma)) ++ atomic_and(~I915_VMA_PIN_MASK, &vma->flags); ++ ++ err = i915_gem_object_lock(vma->obj, ww); ++ + /* + * We add the extra refcount so the object doesn't drop to zero until +- * after ungrab_vma(), this way trylock is always paired with unlock. ++ * after ungrab_vma(), this way lock is always paired with unlock. + */ +- if (i915_gem_object_get_rcu(vma->obj)) { +- if (!i915_gem_object_trylock(vma->obj, ww)) { +- i915_gem_object_put(vma->obj); +- return false; +- } +- } else { +- /* Dead objects don't need pins */ +- atomic_and(~I915_VMA_PIN_MASK, &vma->flags); +- } ++ if (!err) ++ i915_gem_object_get(vma->obj); + +- return true; ++ return err; + } + + static void ungrab_vma(struct i915_vma *vma) + { +- if (dying_vma(vma)) ++ if (dying_vma(vma)) { ++ /* Dead objects don't need pins */ ++ atomic_and(~I915_VMA_PIN_MASK, &vma->flags); + return; ++ } + + i915_gem_object_unlock(vma->obj); + i915_gem_object_put(vma->obj); +@@ -93,10 +97,11 @@ mark_free(struct drm_mm_scan *scan, + if (i915_vma_is_pinned(vma)) + return false; + +- if (!grab_vma(vma, ww)) ++ if (grab_vma(vma, ww)) + return false; + + list_add(&vma->evict_link, unwind); ++ + return drm_mm_scan_add_block(scan, &vma->node); + } + +@@ -284,10 +289,12 @@ i915_gem_evict_something(struct i915_address_space *vm, + vma = container_of(node, struct i915_vma, node); + + /* If we find any non-objects (!vma), we cannot evict them */ +- if (vma->node.color != I915_COLOR_UNEVICTABLE && +- grab_vma(vma, ww)) { +- ret = __i915_vma_unbind(vma); +- ungrab_vma(vma); ++ if (vma->node.color != I915_COLOR_UNEVICTABLE) { ++ ret = grab_vma(vma, ww); ++ if (!ret) { ++ ret = __i915_vma_unbind(vma); ++ ungrab_vma(vma); ++ } + } else { + ret = -ENOSPC; + } +@@ -382,10 +389,9 @@ int i915_gem_evict_for_node(struct i915_address_space *vm, + break; + } + +- if (!grab_vma(vma, ww)) { +- ret = -ENOSPC; ++ ret = grab_vma(vma, ww); ++ if (ret) + break; +- } + + /* + * Never show fear in the face of dragons! +diff --git a/drivers/gpu/drm/i915/i915_gem_ww.c b/drivers/gpu/drm/i915/i915_gem_ww.c +index 3f6ff139478e..937b279f50fc 100644 +--- a/drivers/gpu/drm/i915/i915_gem_ww.c ++++ b/drivers/gpu/drm/i915/i915_gem_ww.c +@@ -19,16 +19,14 @@ static void i915_gem_ww_ctx_unlock_all(struct i915_gem_ww_ctx *ww) + struct drm_i915_gem_object *obj; + + while ((obj = list_first_entry_or_null(&ww->obj_list, struct drm_i915_gem_object, obj_link))) { +- list_del(&obj->obj_link); +- i915_gem_object_unlock(obj); +- i915_gem_object_put(obj); ++ i915_gem_ww_unlock_single(obj); + } + } + + void i915_gem_ww_unlock_single(struct drm_i915_gem_object *obj) + { +- list_del(&obj->obj_link); +- i915_gem_object_unlock(obj); ++ list_del_init(&obj->obj_link); ++ __i915_gem_object_unlock(obj); + i915_gem_object_put(obj); + } + +-- +2.38.1 + @@ -68,7 +68,7 @@ _subarch= ### IMPORTANT: Do no edit below this line unless you know what you're doing pkgbase=linux-ck -pkgver=6.0.9 +pkgver=6.0.10 pkgrel=1 arch=(x86_64) url="https://wiki.archlinux.org/index.php/Linux-ck" @@ -95,21 +95,23 @@ source=( 0003-soundwire-intel-Initialize-clock-stop-timeout.patch 0004-drm-sched-add-DRM_SCHED_FENCE_DONT_PIPELINE-flag.patch 0005-drm-amdgpu-use-DRM_SCHED_FENCE_DONT_PIPELINE-for-VM-.patch + 0006-drm-i915-Fix-unhandled-deadlock-in-grab_vma.patch ) validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman ) -sha256sums=('6114a208e82739b4a1ab059ace35262be2a83be34cd1ae23cb8a09337db831c7' +sha256sums=('39e57fcd84cd70bfa3e1a4185d3aa0ed7f1432f24c6548d16326b0c3c9541dd0' 'SKIP' - '05168cbbeb6378eec6c84fe3300cede4fa5cf6130c39fb8af95040529bd390a6' + '848ccd048f91b17f0e0192d2900c462986eeacf78bb578b2de9498c4a0526983' '3a8f397b89bad95c46f42c0f80ede7536a4a45a28621e00ed486918a55f905ed' '85b197dbe033264925b4803b3c8907ed73b967061c098e269eacd5575d6da34b' - 'ff9076ecd73cc7725d2c9c0d9d381904b9bcc75cffc0da7ecccc0886c99b02a2' - 'b9a998b084cd583dac4cc755aab79e8810013c4c0d6d9f5e4fa78d2939314ced' - '757cb209f1b1759f4c9efcc77501be9ee73676db069d0440104255ab35c4cdd0' - 'a3ffe9f133029d60bf8fa66775cee64e160ddf33c265e7807eb3dea7d1981ac4' - '26669e4925ac1869eeb53a7d9578c8af742c6a7e8cdcdb9af2c081774581a032') + '05a9b754ff501c45833238db1f304533a3b0aec3f9281cb8381c580066a2eff5' + '800804877e411394cd7aa77884054e0447da51b5fb010e3f3f992bfe41e41fba' + '3f5a6fc58ae54bcfd95e147a2156c501eecfd9fcf2a9ceed056df87d59954af8' + '9aeaddde2dd4bca54ee00ee11a53677a3afe82c61543c416708edaa0f27097c9' + '5d22887375ab7a8615b7ad84445d5c62350be23873396222c48f6e39dd64161c' + '966f24db411f100a2c7028c7e26814fa34a742f55a236df5df5357174404750a') prepare() { cd linux-${pkgver} @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.0.5-arch1 Kernel Configuration +# Linux/x86 6.0.10-arch2 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.0" CONFIG_CC_IS_GCC=y @@ -4470,7 +4470,7 @@ CONFIG_IPMI_IPMB=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m CONFIG_IPMB_DEVICE_INTERFACE=m -CONFIG_HW_RANDOM=m +CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m @@ -4497,10 +4497,10 @@ CONFIG_DEVPORT=y CONFIG_HPET=y # CONFIG_HPET_MMAP is not set CONFIG_HANGCHECK_TIMER=m -CONFIG_TCG_TPM=m +CONFIG_TCG_TPM=y CONFIG_HW_RANDOM_TPM=y -CONFIG_TCG_TIS_CORE=m -CONFIG_TCG_TIS=m +CONFIG_TCG_TIS_CORE=y +CONFIG_TCG_TIS=y CONFIG_TCG_TIS_SPI=m CONFIG_TCG_TIS_SPI_CR50=y CONFIG_TCG_TIS_I2C=m @@ -4512,7 +4512,7 @@ CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m CONFIG_TCG_INFINEON=m CONFIG_TCG_XEN=m -CONFIG_TCG_CRB=m +CONFIG_TCG_CRB=y CONFIG_TCG_VTPM_PROXY=m CONFIG_TCG_TIS_ST33ZP24=m CONFIG_TCG_TIS_ST33ZP24_I2C=m |