• Linus Torvalds's avatar
    thunderbolt: test: split up test cases in tb_test_credit_alloc_all · 4b93c544
    Linus Torvalds authored
    The tb_test_credit_alloc_all() function had a huge number of
    KUNIT_ASSERT() statements, all of which (though the magic of many many
    layers of inscrutable macros) ended up allocating and initializing
    various test assertion structures on the stack.
    
    Don't do that.  The kernel stack isn't infinite, and we have compiler
    warnings (now errors) for the case where a stack frame grows too large.
    
    Like it did here, by not an inconsiderable margin:
    
       drivers/thunderbolt/test.c: In function ‘tb_test_credit_alloc_all’:
       drivers/thunderbolt/test.c:2367:1: error: the frame size of 4500 bytes is larger than 2048 bytes [-Werror=frame-larger-than=]
        2367 | }
             | ^
    
    Solve this similarly to the lib/test_scanf case: split out the tests
    into several smaller functions, each just testing one particular tunnel
    credit allocation.
    
    This makes the i386 allyesconfig build work for me again.
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    4b93c544
test.c 82.9 KB