ANDROID: kunit: Provision kunit as a vendor module

'kunit_test' member variable in task_struct is defined
under CONFIG_KUNIT. Besides there are supportive functions
in slub and kasan which gets conditionally compiled out.

Allow kunit to be build as vendor module by removing
compile time dependencies.

Bug: 215096354
Change-Id: If57b1df6e479aa0388aabc53af5ae10e20a844b2
Signed-off-by: Shiraz Hashim <quic_shashim@quicinc.com>
This commit is contained in:
Shiraz Hashim
2022-04-04 22:37:26 +05:30
parent e8bca85bc1
commit d9f210a14d
3 changed files with 0 additions and 14 deletions

View File

@@ -1353,9 +1353,7 @@ struct task_struct {
#endif #endif
#endif #endif
#if IS_ENABLED(CONFIG_KUNIT)
struct kunit *kunit_test; struct kunit *kunit_test;
#endif
#ifdef CONFIG_FUNCTION_GRAPH_TRACER #ifdef CONFIG_FUNCTION_GRAPH_TRACER
/* Index of current stored address in ret_stack: */ /* Index of current stored address in ret_stack: */

View File

@@ -343,7 +343,6 @@ static bool report_enabled(void)
return !test_and_set_bit(KASAN_BIT_REPORTED, &kasan_flags); return !test_and_set_bit(KASAN_BIT_REPORTED, &kasan_flags);
} }
#if IS_ENABLED(CONFIG_KUNIT)
static void kasan_update_kunit_status(struct kunit *cur_test) static void kasan_update_kunit_status(struct kunit *cur_test)
{ {
struct kunit_resource *resource; struct kunit_resource *resource;
@@ -360,7 +359,6 @@ static void kasan_update_kunit_status(struct kunit *cur_test)
WRITE_ONCE(kasan_data->report_found, true); WRITE_ONCE(kasan_data->report_found, true);
kunit_put_resource(resource); kunit_put_resource(resource);
} }
#endif /* IS_ENABLED(CONFIG_KUNIT) */
void kasan_report_invalid_free(void *object, unsigned long ip) void kasan_report_invalid_free(void *object, unsigned long ip)
{ {
@@ -369,10 +367,8 @@ void kasan_report_invalid_free(void *object, unsigned long ip)
object = kasan_reset_tag(object); object = kasan_reset_tag(object);
#if IS_ENABLED(CONFIG_KUNIT)
if (current->kunit_test) if (current->kunit_test)
kasan_update_kunit_status(current->kunit_test); kasan_update_kunit_status(current->kunit_test);
#endif /* IS_ENABLED(CONFIG_KUNIT) */
start_report(&flags); start_report(&flags);
pr_err("BUG: KASAN: double-free or invalid-free in %pS\n", (void *)ip); pr_err("BUG: KASAN: double-free or invalid-free in %pS\n", (void *)ip);
@@ -389,10 +385,8 @@ void kasan_report_async(void)
{ {
unsigned long flags; unsigned long flags;
#if IS_ENABLED(CONFIG_KUNIT)
if (current->kunit_test) if (current->kunit_test)
kasan_update_kunit_status(current->kunit_test); kasan_update_kunit_status(current->kunit_test);
#endif /* IS_ENABLED(CONFIG_KUNIT) */
start_report(&flags); start_report(&flags);
pr_err("BUG: KASAN: invalid-access\n"); pr_err("BUG: KASAN: invalid-access\n");
@@ -411,10 +405,8 @@ static void __kasan_report(unsigned long addr, size_t size, bool is_write,
void *untagged_addr; void *untagged_addr;
unsigned long flags; unsigned long flags;
#if IS_ENABLED(CONFIG_KUNIT)
if (current->kunit_test) if (current->kunit_test)
kasan_update_kunit_status(current->kunit_test); kasan_update_kunit_status(current->kunit_test);
#endif /* IS_ENABLED(CONFIG_KUNIT) */
disable_trace_on_warning(); disable_trace_on_warning();

View File

@@ -530,7 +530,6 @@ static void __fill_map(unsigned long *obj_map, struct kmem_cache *s,
set_bit(__obj_to_index(s, addr, p), obj_map); set_bit(__obj_to_index(s, addr, p), obj_map);
} }
#if IS_ENABLED(CONFIG_KUNIT)
static bool slab_add_kunit_errors(void) static bool slab_add_kunit_errors(void)
{ {
struct kunit_resource *resource; struct kunit_resource *resource;
@@ -546,9 +545,6 @@ static bool slab_add_kunit_errors(void)
kunit_put_resource(resource); kunit_put_resource(resource);
return true; return true;
} }
#else
static inline bool slab_add_kunit_errors(void) { return false; }
#endif
/* /*
* Determine a map of object in use on a page. * Determine a map of object in use on a page.