kasan_test.c (002c6ca75289a4ac4f6738213dd2d258704886e4) kasan_test.c (8032bf1233a74627ce69b803608e650f3f35971c)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 *
4 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
5 * Author: Andrey Ryabinin <a.ryabinin@samsung.com>
6 */
7
8#include <linux/bitops.h>

--- 1285 unchanged lines hidden (view full) ---

1294{
1295 char *ptr;
1296 struct page *pages;
1297 int i, size, order;
1298
1299 KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_KASAN_GENERIC);
1300
1301 for (i = 0; i < 256; i++) {
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 *
4 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
5 * Author: Andrey Ryabinin <a.ryabinin@samsung.com>
6 */
7
8#include <linux/bitops.h>

--- 1285 unchanged lines hidden (view full) ---

1294{
1295 char *ptr;
1296 struct page *pages;
1297 int i, size, order;
1298
1299 KASAN_TEST_NEEDS_CONFIG_OFF(test, CONFIG_KASAN_GENERIC);
1300
1301 for (i = 0; i < 256; i++) {
1302 size = prandom_u32_max(1024) + 1;
1302 size = get_random_u32_below(1024) + 1;
1303 ptr = kmalloc(size, GFP_KERNEL);
1304 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
1305 KUNIT_EXPECT_GE(test, (u8)get_tag(ptr), (u8)KASAN_TAG_MIN);
1306 KUNIT_EXPECT_LT(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL);
1307 kfree(ptr);
1308 }
1309
1310 for (i = 0; i < 256; i++) {
1303 ptr = kmalloc(size, GFP_KERNEL);
1304 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
1305 KUNIT_EXPECT_GE(test, (u8)get_tag(ptr), (u8)KASAN_TAG_MIN);
1306 KUNIT_EXPECT_LT(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL);
1307 kfree(ptr);
1308 }
1309
1310 for (i = 0; i < 256; i++) {
1311 order = prandom_u32_max(4) + 1;
1311 order = get_random_u32_below(4) + 1;
1312 pages = alloc_pages(GFP_KERNEL, order);
1313 ptr = page_address(pages);
1314 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
1315 KUNIT_EXPECT_GE(test, (u8)get_tag(ptr), (u8)KASAN_TAG_MIN);
1316 KUNIT_EXPECT_LT(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL);
1317 free_pages((unsigned long)ptr, order);
1318 }
1319
1320 if (!IS_ENABLED(CONFIG_KASAN_VMALLOC))
1321 return;
1322
1323 for (i = 0; i < 256; i++) {
1312 pages = alloc_pages(GFP_KERNEL, order);
1313 ptr = page_address(pages);
1314 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
1315 KUNIT_EXPECT_GE(test, (u8)get_tag(ptr), (u8)KASAN_TAG_MIN);
1316 KUNIT_EXPECT_LT(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL);
1317 free_pages((unsigned long)ptr, order);
1318 }
1319
1320 if (!IS_ENABLED(CONFIG_KASAN_VMALLOC))
1321 return;
1322
1323 for (i = 0; i < 256; i++) {
1324 size = prandom_u32_max(1024) + 1;
1324 size = get_random_u32_below(1024) + 1;
1325 ptr = vmalloc(size);
1326 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
1327 KUNIT_EXPECT_GE(test, (u8)get_tag(ptr), (u8)KASAN_TAG_MIN);
1328 KUNIT_EXPECT_LT(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL);
1329 vfree(ptr);
1330 }
1331}
1332

--- 125 unchanged lines hidden ---
1325 ptr = vmalloc(size);
1326 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr);
1327 KUNIT_EXPECT_GE(test, (u8)get_tag(ptr), (u8)KASAN_TAG_MIN);
1328 KUNIT_EXPECT_LT(test, (u8)get_tag(ptr), (u8)KASAN_TAG_KERNEL);
1329 vfree(ptr);
1330 }
1331}
1332

--- 125 unchanged lines hidden ---