lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080207002915.GA27124@elte.hu>
Date:	Thu, 7 Feb 2008 01:29:15 +0100
From:	Ingo Molnar <mingo@...e.hu>
To:	Jeff Garzik <jeff@...zik.org>
Cc:	LKML <linux-kernel@...r.kernel.org>, akpm@...ux-foundation.org,
	Linus Torvalds <torvalds@...ux-foundation.org>
Subject: [bug] Re: [PATCH 4/12] riscom8: fix SMP brokenness


* Jeff Garzik <jeff@...zik.org> wrote:

> After analyzing the elements that save_flags/cli/sti/restore_flags 
> were protecting, convert their usages to a global spinlock (the 
> easiest and most obvious next-step).  There were some usages of flags 
> being intentionally cached, because the code already knew the state of 
> interrupts.  These have been taken into account.
> 
> This allows us to remove CONFIG_BROKEN_ON_SMP.  Completely untested.

regression for sale :-) The above patch, after sitting in -mm for 
approximately 3 months, just went upstream today via commit 
d9afa43532adf8a31b93c4c7601f and promptly broke tonight's x86.git 
randconfig qa run via tons of these messages:

[    3.768431] BUG: scheduling while atomic: swapper/1/0x00000002
[    3.769430] 1 lock held by swapper/1:
[    3.770437]  #0:  (riscom_lock){--..}, at: [<80389ceb>] rc_release_drivers+0xe/0x33
[    3.776430] Pid: 1, comm: swapper Not tainted 2.6.24 #14
[    3.777428]  [<801167d3>] __schedule_bug+0x6e/0x75
[    3.779427]  [<80756065>] schedule+0x35c/0x429
[    3.781427]  [<80103a0b>] ? restore_nocheck+0x12/0x15
[    3.784427]  [<80103a0b>] ? restore_nocheck+0x12/0x15
[    3.786426]  [<80756381>] schedule_timeout+0x69/0xa2
[    3.788426]  [<80758337>] ? _spin_unlock_irq+0x25/0x40
[    3.790426]  [<80755c0e>] wait_for_common+0x96/0x10d
[    3.792425]  [<80115edc>] ? default_wake_function+0x0/0xd
[    3.794425]  [<80755d07>] wait_for_completion+0x12/0x14
[    3.796425]  [<801282fe>] call_usermodehelper_exec+0x78/0x8c
[    3.798424]  [<8015a041>] ? slob_alloc+0xd8/0x1ad
[    3.800424]  [<80301640>] kobject_uevent_env+0x3ae/0x3c5
[    3.802424]  [<803ac361>] ? dev_uevent+0x0/0x25a
[    3.804424]  [<80301661>] kobject_uevent+0xa/0xc
[    3.806423]  [<803acc06>] device_del+0x139/0x15d
[    3.808423]  [<803acc58>] device_unregister+0x2e/0x3b
[    3.810423]  [<803acc8e>] device_destroy+0x29/0x2f
[    3.812422]  [<8035965f>] tty_unregister_device+0x18/0x1a
[    3.814422]  [<8035970b>] tty_unregister_driver+0xaa/0xf6
[    3.816422]  [<80389cf7>] rc_release_drivers+0x1a/0x33
[    3.818421]  [<80ac5e16>] riscom8_init_module+0x4ff/0x539
[    3.820421]  [<8012e76f>] ? ktime_get_ts+0x44/0x49
[    3.822421]  [<80aaf701>] kernel_init+0x9a/0x263
[    3.824421]  [<80ac5917>] ? riscom8_init_module+0x0/0x539
[    3.827420]  [<80aaf667>] ? kernel_init+0x0/0x263
[    3.829420]  [<8010455f>] kernel_thread_helper+0x7/0x18
[    3.831419]  =======================

to reproduce: enable CONFIG_RISCOM8=y on an SMP+PREEMPT kernel and boot 
it. You dont need a riscom8 to trigger these messages (i dont have it 
either). (i suspect 'modprobe riscom8' would trigger similar messages) 
Bootlog and config attached.

	Ingo

Download attachment "boot.log.bz2" of type "application/x-bzip2" (52824 bytes)

View attachment "config" of type "text/plain" (45593 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ