Skip to content

Commit

Permalink
Merge tag 'hardening-v6.10-rc6' of git://git.kernel.org/pub/scm/linux…
Browse files Browse the repository at this point in the history
…/kernel/git/kees/linux

Pull hardening fixes from Kees Cook:

 - Remove invalid tty __counted_by annotation (Nathan Chancellor)

 - Add missing MODULE_DESCRIPTION()s for KUnit string tests (Jeff
   Johnson)

 - Remove non-functional per-arch kstack entropy filtering

* tag 'hardening-v6.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
  tty: mxser: Remove __counted_by from mxser_board.ports[]
  randomize_kstack: Remove non-functional per-arch entropy filtering
  string: kunit: add missing MODULE_DESCRIPTION() macros
  • Loading branch information
torvalds committed Jun 28, 2024
2 parents 093d960 + 1c07c9b commit b75f947
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 20 deletions.
16 changes: 7 additions & 9 deletions arch/arm64/kernel/syscall.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,15 @@ static void invoke_syscall(struct pt_regs *regs, unsigned int scno,
syscall_set_return_value(current, regs, 0, ret);

/*
* Ultimately, this value will get limited by KSTACK_OFFSET_MAX(),
* but not enough for arm64 stack utilization comfort. To keep
* reasonable stack head room, reduce the maximum offset to 9 bits.
* This value will get limited by KSTACK_OFFSET_MAX(), which is 10
* bits. The actual entropy will be further reduced by the compiler
* when applying stack alignment constraints: the AAPCS mandates a
* 16-byte aligned SP at function boundaries, which will remove the
* 4 low bits from any entropy chosen here.
*
* The actual entropy will be further reduced by the compiler when
* applying stack alignment constraints: the AAPCS mandates a
* 16-byte (i.e. 4-bit) aligned SP at function boundaries.
*
* The resulting 5 bits of entropy is seen in SP[8:4].
* The resulting 6 bits of entropy is seen in SP[9:4].
*/
choose_random_kstack_offset(get_random_u16() & 0x1FF);
choose_random_kstack_offset(get_random_u16());
}

static inline bool has_syscall_work(unsigned long flags)
Expand Down
2 changes: 1 addition & 1 deletion arch/s390/include/asm/entry-common.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ static __always_inline void arch_exit_to_user_mode(void)
static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs,
unsigned long ti_work)
{
choose_random_kstack_offset(get_tod_clock_fast() & 0xff);
choose_random_kstack_offset(get_tod_clock_fast());
}

#define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare
Expand Down
15 changes: 6 additions & 9 deletions arch/x86/include/asm/entry-common.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,19 +73,16 @@ static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs,
#endif

/*
* Ultimately, this value will get limited by KSTACK_OFFSET_MAX(),
* but not enough for x86 stack utilization comfort. To keep
* reasonable stack head room, reduce the maximum offset to 8 bits.
*
* The actual entropy will be further reduced by the compiler when
* applying stack alignment constraints (see cc_stack_align4/8 in
* This value will get limited by KSTACK_OFFSET_MAX(), which is 10
* bits. The actual entropy will be further reduced by the compiler
* when applying stack alignment constraints (see cc_stack_align4/8 in
* arch/x86/Makefile), which will remove the 3 (x86_64) or 2 (ia32)
* low bits from any entropy chosen here.
*
* Therefore, final stack offset entropy will be 5 (x86_64) or
* 6 (ia32) bits.
* Therefore, final stack offset entropy will be 7 (x86_64) or
* 8 (ia32) bits.
*/
choose_random_kstack_offset(rdtsc() & 0xFF);
choose_random_kstack_offset(rdtsc());
}
#define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare

Expand Down
2 changes: 1 addition & 1 deletion drivers/tty/mxser.c
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ struct mxser_board {
enum mxser_must_hwid must_hwid;
speed_t max_baud;

struct mxser_port ports[] __counted_by(nports);
struct mxser_port ports[] /* __counted_by(nports) */;
};

static DECLARE_BITMAP(mxser_boards, MXSER_BOARDS);
Expand Down
1 change: 1 addition & 0 deletions lib/string_helpers_kunit.c
Original file line number Diff line number Diff line change
Expand Up @@ -625,4 +625,5 @@ static struct kunit_suite string_helpers_test_suite = {

kunit_test_suites(&string_helpers_test_suite);

MODULE_DESCRIPTION("Test cases for string helpers module");
MODULE_LICENSE("Dual BSD/GPL");
1 change: 1 addition & 0 deletions lib/string_kunit.c
Original file line number Diff line number Diff line change
Expand Up @@ -633,4 +633,5 @@ static struct kunit_suite string_test_suite = {

kunit_test_suites(&string_test_suite);

MODULE_DESCRIPTION("Test cases for string functions");
MODULE_LICENSE("GPL v2");

0 comments on commit b75f947

Please sign in to comment.