Merge tag 'tegra-for-5.17-arm-dt-fixes-2' of git://git.kernel.org/pub/scm/linux/kerne...
[linux-2.6-microblaze.git] / mm / kfence / core.c
index a19154a..13128fa 100644 (file)
@@ -47,7 +47,8 @@
 
 static bool kfence_enabled __read_mostly;
 
-static unsigned long kfence_sample_interval __read_mostly = CONFIG_KFENCE_SAMPLE_INTERVAL;
+unsigned long kfence_sample_interval __read_mostly = CONFIG_KFENCE_SAMPLE_INTERVAL;
+EXPORT_SYMBOL_GPL(kfence_sample_interval); /* Export for test modules. */
 
 #ifdef MODULE_PARAM_PREFIX
 #undef MODULE_PARAM_PREFIX
@@ -360,7 +361,7 @@ static void *kfence_guarded_alloc(struct kmem_cache *cache, size_t size, gfp_t g
 {
        struct kfence_metadata *meta = NULL;
        unsigned long flags;
-       struct page *page;
+       struct slab *slab;
        void *addr;
 
        /* Try to obtain a free object. */
@@ -424,13 +425,14 @@ static void *kfence_guarded_alloc(struct kmem_cache *cache, size_t size, gfp_t g
 
        alloc_covered_add(alloc_stack_hash, 1);
 
-       /* Set required struct page fields. */
-       page = virt_to_page(meta->addr);
-       page->slab_cache = cache;
-       if (IS_ENABLED(CONFIG_SLUB))
-               page->objects = 1;
-       if (IS_ENABLED(CONFIG_SLAB))
-               page->s_mem = addr;
+       /* Set required slab fields. */
+       slab = virt_to_slab((void *)meta->addr);
+       slab->slab_cache = cache;
+#if defined(CONFIG_SLUB)
+       slab->objects = 1;
+#elif defined(CONFIG_SLAB)
+       slab->s_mem = addr;
+#endif
 
        /* Memory initialization. */
        for_each_canary(meta, set_canary_byte);