Skip to content

Commit aa4e460

Browse files
Vasily Gorbiktorvalds
Vasily Gorbik
authored andcommitted
lib/crc32test: remove extra local_irq_disable/enable
Commit 4d00409 ("lockdep: Fix lockdep recursion") uncovered the following issue in lib/crc32test reported on s390: BUG: using __this_cpu_read() in preemptible [00000000] code: swapper/0/1 caller is lockdep_hardirqs_on_prepare+0x48/0x270 CPU: 6 PID: 1 Comm: swapper/0 Not tainted 5.9.0-next-20201015-15164-g03d992bd2de6 #19 Hardware name: IBM 3906 M04 704 (LPAR) Call Trace: lockdep_hardirqs_on_prepare+0x48/0x270 trace_hardirqs_on+0x9c/0x1b8 crc32_test.isra.0+0x170/0x1c0 crc32test_init+0x1c/0x40 do_one_initcall+0x40/0x130 do_initcalls+0x126/0x150 kernel_init_freeable+0x1f6/0x230 kernel_init+0x22/0x150 ret_from_fork+0x24/0x2c no locks held by swapper/0/1. Remove extra local_irq_disable/local_irq_enable helpers calls. Fixes: 5fb7f87 ("lib: add module support to crc32 tests") Signed-off-by: Vasily Gorbik <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Link: https://lkml.kernel.org/r/patch.git-4369da00c06e.your-ad-here.call-01602859837-ext-1679@work.hours Signed-off-by: Linus Torvalds <[email protected]>
1 parent 7b3c36f commit aa4e460

File tree

1 file changed

+0
-4
lines changed

1 file changed

+0
-4
lines changed

lib/crc32test.c

-4
Original file line numberDiff line numberDiff line change
@@ -683,7 +683,6 @@ static int __init crc32c_test(void)
683683

684684
/* reduce OS noise */
685685
local_irq_save(flags);
686-
local_irq_disable();
687686

688687
nsec = ktime_get_ns();
689688
for (i = 0; i < 100; i++) {
@@ -694,7 +693,6 @@ static int __init crc32c_test(void)
694693
nsec = ktime_get_ns() - nsec;
695694

696695
local_irq_restore(flags);
697-
local_irq_enable();
698696

699697
pr_info("crc32c: CRC_LE_BITS = %d\n", CRC_LE_BITS);
700698

@@ -768,7 +766,6 @@ static int __init crc32_test(void)
768766

769767
/* reduce OS noise */
770768
local_irq_save(flags);
771-
local_irq_disable();
772769

773770
nsec = ktime_get_ns();
774771
for (i = 0; i < 100; i++) {
@@ -783,7 +780,6 @@ static int __init crc32_test(void)
783780
nsec = ktime_get_ns() - nsec;
784781

785782
local_irq_restore(flags);
786-
local_irq_enable();
787783

788784
pr_info("crc32: CRC_LE_BITS = %d, CRC_BE BITS = %d\n",
789785
CRC_LE_BITS, CRC_BE_BITS);

0 commit comments

Comments
 (0)