On Wed, May 29, 2024 at 01:17:35PM +0100, Ivan Orlov wrote: > On 5/19/24 20:12, Kees Cook wrote: > > #define test(condition, msg, ...) \ > > ({ \ > > int cond = (condition); \ > > if (cond) \ > > - pr_warn("[%d] " msg "\n", __LINE__, ##__VA_ARGS__); \ > > + KUNIT_EXPECT_FALSE_MSG(test, cond, msg, ##__VA_ARGS__); \ > > cond; \ > > }) > It looks like the 'test' macro is not used anymore, so probably it should be > removed. Oops, yes. Thanks! > > +static int usercopy_test_init(struct kunit *test) > > +{ > > + struct usercopy_test_priv *priv; > > + unsigned long user_addr; > > - if (ret == 0) { > > - pr_info("tests passed.\n"); > > - return 0; > > - } > > + priv = kunit_kzalloc(test, sizeof(*priv), GFP_KERNEL); > > + if (!priv) > > + return -ENOMEM; > > Should the check be done with KUNIT_ASSERT_NOT_ERR_OR_NULL here as well, as > it is done with priv->kmem? Yes, that's much more idiomatic. I'll adjust this too. > Other than that, > > Tested-by: Ivan Orlov <ivan.orlov0322@xxxxxxxxx> Thanks! -- Kees Cook