public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] lib/bsearch: add mutex protection for thread-safe binary search
@ 2025-10-16  9:06 XueBing Chen
  2025-10-16  9:42 ` Kuan-Wei Chiu
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: XueBing Chen @ 2025-10-16  9:06 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel, XueBing Chen

Replace the __inline_bsearch() wrapper with a full implementation
that includes mutex protection to ensure thread safety when
multiple threads call bsearch() concurrently.

The original implementation lacked synchronization, which could
lead to race conditions in multi-threaded environments when
accessing shared arrays or using non-atomic comparison functions.

Signed-off-by: XueBing Chen <chenxb_99091@126.com>
---
 lib/bsearch.c | 29 ++++++++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/lib/bsearch.c b/lib/bsearch.c
index bf86aa66f..9a5a2e949 100644
--- a/lib/bsearch.c
+++ b/lib/bsearch.c
@@ -1,9 +1,12 @@
-// SPDX-License-Identifier: GPL-2.0-only
 /*
  * A generic implementation of binary search for the Linux kernel
  *
  * Copyright (C) 2008-2009 Ksplice, Inc.
  * Author: Tim Abbott <tabbott@ksplice.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2.
  */
 
 #include <linux/export.h>
@@ -28,9 +31,29 @@
  * the key and elements in the array are of the same type, you can use
  * the same comparison function for both sort() and bsearch().
  */
-void *bsearch(const void *key, const void *base, size_t num, size_t size, cmp_func_t cmp)
+DEFINE_MUTEX(cmp_mutex);
+void *bsearch(const void *key, const void *base, size_t num, size_t size,
+	      int (*cmp)(const void *key, const void *elt))
 {
-	return __inline_bsearch(key, base, num, size, cmp);
+	const char *pivot;
+	int result;
+
+	while (num > 0) {
+		pivot = base + (num >> 1) * size;
+		mutex_lock(&cmp_mutex);
+		result = cmp(key, pivot);
+		mutex_unlock(&cmp_mutex);
+		if (result == 0)
+			return (void *)pivot;
+
+		if (result > 0) {
+			base = pivot + size;
+			num--;
+		}
+		num >>= 1;
+	}
+
+	return NULL;
 }
 EXPORT_SYMBOL(bsearch);
 NOKPROBE_SYMBOL(bsearch);
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] lib/bsearch: add mutex protection for thread-safe binary search
  2025-10-16  9:06 [PATCH] lib/bsearch: add mutex protection for thread-safe binary search XueBing Chen
@ 2025-10-16  9:42 ` Kuan-Wei Chiu
  2025-10-17  7:28 ` kernel test robot
  2025-10-21  4:47 ` kernel test robot
  2 siblings, 0 replies; 4+ messages in thread
From: Kuan-Wei Chiu @ 2025-10-16  9:42 UTC (permalink / raw)
  To: XueBing Chen; +Cc: akpm, linux-kernel

Hi XueBing,

On Thu, Oct 16, 2025 at 05:06:40PM +0800, XueBing Chen wrote:
> Replace the __inline_bsearch() wrapper with a full implementation
> that includes mutex protection to ensure thread safety when
> multiple threads call bsearch() concurrently.

Adding a global mutex lock here will introduce a performance penalty
for all users of bsearch(), even those who do not require this
protection.

If a specific user needs synchronization, shouldn't they be responsible
for implementing it? For example, by adding a lock around their call t
bsearch() or implementing the necessary locking within their compare
function.

> 
> The original implementation lacked synchronization, which could
> lead to race conditions in multi-threaded environments when
> accessing shared arrays or using non-atomic comparison functions.

Could you please provide more details on the specific race condition
you observed? What is the use case, and how does this race manifest?

A concrete example, a reproducer, or a link to a bug report would be
very helpful to understand the motivation for this change.

> 
> Signed-off-by: XueBing Chen <chenxb_99091@126.com>
> ---
>  lib/bsearch.c | 29 ++++++++++++++++++++++++++---
>  1 file changed, 26 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/bsearch.c b/lib/bsearch.c
> index bf86aa66f..9a5a2e949 100644
> --- a/lib/bsearch.c
> +++ b/lib/bsearch.c
> @@ -1,9 +1,12 @@
> -// SPDX-License-Identifier: GPL-2.0-only
>  /*
>   * A generic implementation of binary search for the Linux kernel
>   *
>   * Copyright (C) 2008-2009 Ksplice, Inc.
>   * Author: Tim Abbott <tabbott@ksplice.com>
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; version 2.

The addition of the full GPL-2 boilerplate text seems redundant and is
unrelated to the patch's functional change.

>   */
>  
>  #include <linux/export.h>
> @@ -28,9 +31,29 @@
>   * the key and elements in the array are of the same type, you can use
>   * the same comparison function for both sort() and bsearch().
>   */
> -void *bsearch(const void *key, const void *base, size_t num, size_t size, cmp_func_t cmp)
> +DEFINE_MUTEX(cmp_mutex);
> +void *bsearch(const void *key, const void *base, size_t num, size_t size,
> +	      int (*cmp)(const void *key, const void *elt))
>  {
> -	return __inline_bsearch(key, base, num, size, cmp);

This patch replaces the wrapper with a full implementation for the
exported bsearch(), but the inline version remains unlocked.

Why should the non-inline version have this protection while the inline
version does not? This creates an inconsistency.

> +	const char *pivot;
> +	int result;
> +
> +	while (num > 0) {
> +		pivot = base + (num >> 1) * size;
> +		mutex_lock(&cmp_mutex);
> +		result = cmp(key, pivot);
> +		mutex_unlock(&cmp_mutex);

If the intent is to protect a cmp function that is not re-entrant,
shouldn't the user who provides that cmp function be responsible for
adding the lock inside it?

Regards,
Kuan-Wei

> +		if (result == 0)
> +			return (void *)pivot;
> +
> +		if (result > 0) {
> +			base = pivot + size;
> +			num--;
> +		}
> +		num >>= 1;
> +	}
> +
> +	return NULL;
>  }
>  EXPORT_SYMBOL(bsearch);
>  NOKPROBE_SYMBOL(bsearch);
> -- 
> 2.17.1
> 
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] lib/bsearch: add mutex protection for thread-safe binary search
  2025-10-16  9:06 [PATCH] lib/bsearch: add mutex protection for thread-safe binary search XueBing Chen
  2025-10-16  9:42 ` Kuan-Wei Chiu
@ 2025-10-17  7:28 ` kernel test robot
  2025-10-21  4:47 ` kernel test robot
  2 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-10-17  7:28 UTC (permalink / raw)
  To: XueBing Chen, akpm; +Cc: oe-kbuild-all, linux-kernel, XueBing Chen

Hi XueBing,

kernel test robot noticed the following build warnings:

[auto build test WARNING on akpm-mm/mm-nonmm-unstable]
[also build test WARNING on akpm-mm/mm-everything linus/master v6.18-rc1 next-20251016]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/XueBing-Chen/lib-bsearch-add-mutex-protection-for-thread-safe-binary-search/20251016-171911
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-nonmm-unstable
patch link:    https://lore.kernel.org/r/20251016090640.6331-1-chenxb_99091%40126.com
patch subject: [PATCH] lib/bsearch: add mutex protection for thread-safe binary search
config: arm-randconfig-r121-20251017 (https://download.01.org/0day-ci/archive/20251017/202510171538.n1mAFlu0-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251017/202510171538.n1mAFlu0-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202510171538.n1mAFlu0-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> lib/bsearch.c:34:1: sparse: sparse: symbol 'cmp_mutex' was not declared. Should it be static?

vim +/cmp_mutex +34 lib/bsearch.c

    15	
    16	/*
    17	 * bsearch - binary search an array of elements
    18	 * @key: pointer to item being searched for
    19	 * @base: pointer to first element to search
    20	 * @num: number of elements
    21	 * @size: size of each element
    22	 * @cmp: pointer to comparison function
    23	 *
    24	 * This function does a binary search on the given array.  The
    25	 * contents of the array should already be in ascending sorted order
    26	 * under the provided comparison function.
    27	 *
    28	 * Note that the key need not have the same type as the elements in
    29	 * the array, e.g. key could be a string and the comparison function
    30	 * could compare the string with the struct's name field.  However, if
    31	 * the key and elements in the array are of the same type, you can use
    32	 * the same comparison function for both sort() and bsearch().
    33	 */
  > 34	DEFINE_MUTEX(cmp_mutex);

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] lib/bsearch: add mutex protection for thread-safe binary search
  2025-10-16  9:06 [PATCH] lib/bsearch: add mutex protection for thread-safe binary search XueBing Chen
  2025-10-16  9:42 ` Kuan-Wei Chiu
  2025-10-17  7:28 ` kernel test robot
@ 2025-10-21  4:47 ` kernel test robot
  2 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-10-21  4:47 UTC (permalink / raw)
  To: XueBing Chen; +Cc: oe-lkp, lkp, linux-kernel, akpm, XueBing Chen, oliver.sang



Hello,

kernel test robot noticed "BUG:sleeping_function_called_from_invalid_context_at_kernel/locking/mutex.c" on:

commit: b10b12648a2241455e9fee86967327ba9553ec48 ("[PATCH] lib/bsearch: add mutex protection for thread-safe binary search")
url: https://github.com/intel-lab-lkp/linux/commits/XueBing-Chen/lib-bsearch-add-mutex-protection-for-thread-safe-binary-search/20251016-171911
base: https://git.kernel.org/cgit/linux/kernel/git/akpm/mm.git mm-nonmm-unstable
patch link: https://lore.kernel.org/all/20251016090640.6331-1-chenxb_99091@126.com/
patch subject: [PATCH] lib/bsearch: add mutex protection for thread-safe binary search

in testcase: boot

config: i386-randconfig-015-20251019
compiler: gcc-14
test machine: qemu-system-i386 -enable-kvm -cpu SandyBridge -smp 2 -m 4G

(please refer to attached dmesg/kmsg for entire log/backtrace)



If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202510211047.d2cd27e5-lkp@intel.com


[   14.272996][   T98] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:575
[   14.275210][   T98] in_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 98, name: modprobe
[   14.275220][   T98] preempt_count: 0, expected: 0
Starting Load Kernel Modules...
[   14.275223][   T98] RCU nest depth: 1, expected: 0
[   14.275227][   T98] 1 lock held by modprobe/98:
[   14.275231][   T98]  #0: b2995db8 (rcu_read_lock){....}-{1:3}, at: check_modstruct_version (kernel/module/version.c:77)
[   14.291645][   T98] CPU: 1 UID: 0 PID: 98 Comm: modprobe Tainted: G                T   6.18.0-rc1-00043-gb10b12648a22 #1 PREEMPT(full)
[   14.291655][   T98] Tainted: [T]=RANDSTRUCT
[   14.291658][   T98] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   14.291660][   T98] Call Trace:
[   14.291663][   T98]  ? show_stack (arch/x86/kernel/dumpstack.c:319)
[   14.291676][   T98]  dump_stack_lvl (lib/dump_stack.c:122)
[   14.291687][   T98]  dump_stack (lib/dump_stack.c:130)
[   14.291692][   T98]  __might_resched.cold (kernel/sched/core.c:8926)
[   14.291706][   T98]  __might_sleep (kernel/sched/core.c:8855)
[   14.291713][   T98]  ? local_clock_noinstr (kernel/sched/clock.c:304 (discriminator 1))
[   14.291724][   T98]  __mutex_lock (include/linux/kernel.h:61 kernel/locking/mutex.c:575 kernel/locking/mutex.c:760)
[   14.291755][   T98]  mutex_lock_nested (kernel/locking/mutex.c:813)
[   14.291759][   T98]  ? bsearch (lib/bsearch.c:44)
[   14.291765][   T98]  bsearch (lib/bsearch.c:44)
[   14.291776][   T98]  find_exported_symbol_in_section (kernel/module/main.c:373)
[   14.291784][   T98]  ? unregister_module_notifier (kernel/module/main.c:358)
[   14.291792][   T98]  find_symbol (kernel/module/main.c:401 (discriminator 2))
[   14.291799][   T98]  ? lock_acquire (kernel/locking/lockdep.c:5872)
[   14.291807][   T98]  ? check_version (kernel/module/version.c:77)
[   14.291816][   T98]  check_modstruct_version (kernel/module/version.c:90)
[   14.291822][   T98]  ? check_version (kernel/module/version.c:77)
[   14.291837][   T98]  early_mod_check (kernel/module/main.c:3333 (discriminator 1))
[   14.291850][   T98]  load_module (kernel/module/main.c:3384)
[   14.291854][   T98]  ? kernel_read (fs/read_write.c:549)
[   14.291872][   T98]  ? init_module_from_file (kernel/module/main.c:3683)
[   14.291891][   T98]  init_module_from_file (kernel/module/main.c:3702)
[   14.291930][   T98]  __ia32_sys_finit_module (kernel/module/main.c:3713 kernel/module/main.c:3739 kernel/module/main.c:3723 kernel/module/main.c:3723)
[   14.291961][   T98]  ia32_sys_call (arch/x86/entry/syscall_32.c:50)
[   14.291968][   T98]  do_int80_syscall_32 (arch/x86/entry/syscall_32.c:83 (discriminator 1) arch/x86/entry/syscall_32.c:259 (discriminator 1))
[   14.291977][   T98]  entry_INT80_32 (arch/x86/entry/entry_32.S:945)
[   14.291981][   T98] EIP: 0xa7f33092
[   14.291986][   T98] Code: 00 00 00 e9 90 ff ff ff ff a3 24 00 00 00 68 30 00 00 00 e9 80 ff ff ff ff a3 f8 ff ff ff 66 90 00 00 00 00 00 00 00 00 cd 80 <c3> 8d b4 26 00 00 00 00 8d b6 00 00 00 00 8b 1c 24 c3 8d b4 26 00
All code
========
   0:	00 00                	add    %al,(%rax)
   2:	00 e9                	add    %ch,%cl
   4:	90                   	nop
   5:	ff                   	(bad)
   6:	ff                   	(bad)
   7:	ff                   	(bad)
   8:	ff a3 24 00 00 00    	jmp    *0x24(%rbx)
   e:	68 30 00 00 00       	push   $0x30
  13:	e9 80 ff ff ff       	jmp    0xffffffffffffff98
  18:	ff a3 f8 ff ff ff    	jmp    *-0x8(%rbx)
  1e:	66 90                	xchg   %ax,%ax
	...
  28:	cd 80                	int    $0x80
  2a:*	c3                   	ret		<-- trapping instruction
  2b:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
  32:	8d b6 00 00 00 00    	lea    0x0(%rsi),%esi
  38:	8b 1c 24             	mov    (%rsp),%ebx
  3b:	c3                   	ret
  3c:	8d                   	.byte 0x8d
  3d:	b4 26                	mov    $0x26,%ah
	...

Code starting with the faulting instruction
===========================================
   0:	c3                   	ret
   1:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
   8:	8d b6 00 00 00 00    	lea    0x0(%rsi),%esi
   e:	8b 1c 24             	mov    (%rsp),%ebx
  11:	c3                   	ret
  12:	8d                   	.byte 0x8d
  13:	b4 26                	mov    $0x26,%ah
	...
[   14.291989][   T98] EAX: ffffffda EBX: 00000003 ECX: 0042e214 EDX: 00000000
[   14.291992][   T98] ESI: 011d6ec0 EDI: 011d6de0 EBP: 00000000 ESP: afd3c788
[   14.291995][   T98] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b EFLAGS: 00200296
[   14.292023][   T98]
[   14.335982][   T98] =============================
[   14.335987][   T98] [ BUG: Invalid wait context ]
Startin[   14.335990][   T98] 6.18.0-rc1-00043-gb10b12648a22 #1 Tainted: G        W       T
[   14.335993][   T98] -----------------------------
[   14.335995][   T98] modprobe/98 is trying to lock:
[   14.335998][   T98] b2a23080 (cmp_mutex){+.+.}-{4:4}, at: bsearch (lib/bsearch.c:44)
[   14.367204][   T98] other info that might help us debug this:
[   14.367208][   T98] context-{5:5}
[   14.367211][   T98] 1 lock held by modprobe/98:
[   14.367214][   T98]  #0: b2995db8 (rcu_read_lock){....}-{1:3}, at: check_modstruct_version (kernel/module/version.c:77)
[   14.367233][   T98] stack backtrace:
[   14.373209][   T98] CPU: 1 UID: 0 PID: 98 Comm: modprobe Tainted: G        W       T   6.18.0-rc1-00043-gb10b12648a22 #1 PREEMPT(full)
[   14.373217][   T98] Tainted: [W]=WARN, [T]=RANDSTRUCT
[   14.373219][   T98] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
[   14.373221][   T98] Call Trace:
[   14.373225][   T98]  ? show_stack (arch/x86/kernel/dumpstack.c:319)
[   14.373237][   T98]  dump_stack_lvl (lib/dump_stack.c:122)
[   14.373244][   T98]  dump_stack (lib/dump_stack.c:130)
[   14.373248][   T98]  __lock_acquire (kernel/locking/lockdep.c:4832 kernel/locking/lockdep.c:4902 kernel/locking/lockdep.c:5187)
[   14.373255][   T98]  lock_acquire (include/trace/events/lock.h:24 (discriminator 1) kernel/locking/lockdep.c:5831 (discriminator 1))
[   14.373259][   T98]  ? bsearch (lib/bsearch.c:44)
[   14.373265][   T98]  ? dump_stack (lib/dump_stack.c:130)
[   14.373268][   T98]  ? __might_resched.cold (kernel/sched/core.c:8926)
[   14.373273][   T98]  lock_acquire (kernel/locking/lockdep.c:5872)
[   14.373277][   T98]  ? bsearch (lib/bsearch.c:44)
[   14.373281][   T98]  __mutex_lock (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/jump_label.h:262 include/trace/events/lock.h:95 kernel/locking/mutex.c:600 kernel/locking/mutex.c:760)
[   14.373286][   T98]  ? bsearch (lib/bsearch.c:44)
[   14.373293][   T98]  mutex_lock_nested (kernel/locking/mutex.c:813)
[   14.373296][   T98]  ? bsearch (lib/bsearch.c:44)
[   14.373299][   T98]  bsearch (lib/bsearch.c:44)
[   14.373303][   T98]  find_exported_symbol_in_section (kernel/module/main.c:373)
[   14.373310][   T98]  ? unregister_module_notifier (kernel/module/main.c:358)
[   14.373315][   T98]  find_symbol (kernel/module/main.c:401 (discriminator 2))
[   14.373319][   T98]  ? lock_acquire (kernel/locking/lockdep.c:5872)
[   14.373322][   T98]  ? check_version (kernel/module/version.c:77)
[   14.373326][   T98]  check_modstruct_version (kernel/module/version.c:90)
[   14.373330][   T98]  ? check_version (kernel/module/version.c:77)
[   14.373335][   T98]  early_mod_check (kernel/module/main.c:3333 (discriminator 1))
[   14.373339][   T98]  load_module (kernel/module/main.c:3384)
[   14.373343][   T98]  ? kernel_read (fs/read_write.c:549)
[   14.373350][   T98]  ? init_module_from_file (kernel/module/main.c:3683)
[   14.373355][   T98]  init_module_from_file (kernel/module/main.c:3702)
[   14.373364][   T98]  __ia32_sys_finit_module (kernel/module/main.c:3713 kernel/module/main.c:3739 kernel/module/main.c:3723 kernel/module/main.c:3723)
[   14.373372][   T98]  ia32_sys_call (arch/x86/entry/syscall_32.c:50)
[   14.373378][   T98]  do_int80_syscall_32 (arch/x86/entry/syscall_32.c:83 (discriminator 1) arch/x86/entry/syscall_32.c:259 (discriminator 1))
[   14.373382][   T98]  entry_INT80_32 (arch/x86/entry/entry_32.S:945)
[   14.373386][   T98] EIP: 0xa7f33092
[   14.373390][   T98] Code: 00 00 00 e9 90 ff ff ff ff a3 24 00 00 00 68 30 00 00 00 e9 80 ff ff ff ff a3 f8 ff ff ff 66 90 00 00 00 00 00 00 00 00 cd 80 <c3> 8d b4 26 00 00 00 00 8d b6 00 00 00 00 8b 1c 24 c3 8d b4 26 00
All code
========
   0:	00 00                	add    %al,(%rax)
   2:	00 e9                	add    %ch,%cl
   4:	90                   	nop
   5:	ff                   	(bad)
   6:	ff                   	(bad)
   7:	ff                   	(bad)
   8:	ff a3 24 00 00 00    	jmp    *0x24(%rbx)
   e:	68 30 00 00 00       	push   $0x30
  13:	e9 80 ff ff ff       	jmp    0xffffffffffffff98
  18:	ff a3 f8 ff ff ff    	jmp    *-0x8(%rbx)
  1e:	66 90                	xchg   %ax,%ax
	...
  28:	cd 80                	int    $0x80
  2a:*	c3                   	ret		<-- trapping instruction
  2b:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
  32:	8d b6 00 00 00 00    	lea    0x0(%rsi),%esi
  38:	8b 1c 24             	mov    (%rsp),%ebx
  3b:	c3                   	ret
  3c:	8d                   	.byte 0x8d
  3d:	b4 26                	mov    $0x26,%ah
	...

Code starting with the faulting instruction
===========================================
   0:	c3                   	ret
   1:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
   8:	8d b6 00 00 00 00    	lea    0x0(%rsi),%esi
   e:	8b 1c 24             	mov    (%rsp),%ebx
  11:	c3                   	ret
  12:	8d                   	.byte 0x8d
  13:	b4 26                	mov    $0x26,%ah
	...
[   14.373393][   T98] EAX: ffffffda EBX: 00000003 ECX: 0042e214 EDX: 00000000
[   14.373397][   T98] ESI: 011d6ec0 EDI: 011d6de0 EBP: 00000000 ESP: afd3c788
[   14.373400][   T98] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b EFLAGS: 00200296



The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20251021/202510211047.d2cd27e5-lkp@intel.com



-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-10-21  4:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-16  9:06 [PATCH] lib/bsearch: add mutex protection for thread-safe binary search XueBing Chen
2025-10-16  9:42 ` Kuan-Wei Chiu
2025-10-17  7:28 ` kernel test robot
2025-10-21  4:47 ` kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox