summaryrefslogtreecommitdiff
path: root/lib/ref_tracker.c
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2022-03-23 09:58:40 +0100
committerJiri Kosina <jkosina@suse.cz>2022-03-23 09:58:40 +0100
commitb690490d6d466972ade172ee2e7f6ffa49e7e910 (patch)
tree50a93da28c9128e19eb7a3038aecf75dab6b36e1 /lib/ref_tracker.c
parentf97ec5d75e9261a5da78dc28a8955b7cc0c4468b (diff)
parent0f203948230720e849ad50d158adac1cd32c282f (diff)
Merge branch 'for-5.18/amd-sfh' into for-linus
- dead code elimination (Christophe JAILLET)
Diffstat (limited to 'lib/ref_tracker.c')
-rw-r--r--lib/ref_tracker.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/ref_tracker.c b/lib/ref_tracker.c
index 0ae2e66dcf0f..a6789c0c626b 100644
--- a/lib/ref_tracker.c
+++ b/lib/ref_tracker.c
@@ -69,9 +69,12 @@ int ref_tracker_alloc(struct ref_tracker_dir *dir,
unsigned long entries[REF_TRACKER_STACK_ENTRIES];
struct ref_tracker *tracker;
unsigned int nr_entries;
+ gfp_t gfp_mask = gfp;
unsigned long flags;
- *trackerp = tracker = kzalloc(sizeof(*tracker), gfp | __GFP_NOFAIL);
+ if (gfp & __GFP_DIRECT_RECLAIM)
+ gfp_mask |= __GFP_NOFAIL;
+ *trackerp = tracker = kzalloc(sizeof(*tracker), gfp_mask);
if (unlikely(!tracker)) {
pr_err_once("memory allocation failure, unreliable refcount tracker.\n");
refcount_inc(&dir->untracked);