From: Andrew Morton <akpm@osdl.org>
To: Ard -kwaak- van Breemen <ard@telegraafnet.nl>
Cc: "Zhang, Yanmin" <yanmin.zhang@intel.com>,
Chuck Ebbert <76306.1226@compuserve.com>,
Yinghai Lu <yinghai.lu@amd.com>,
take@libero.it, agalanin@mera.ru, linux-kernel@vger.kernel.org,
bugme-daemon@bugzilla.kernel.org,
"Eric W. Biederman" <ebiederm@xmission.com>
Subject: Re: [Bug 7505] Linux-2.6.18 fails to boot on AMD64 machine
Date: Fri, 22 Dec 2006 11:10:58 -0800 [thread overview]
Message-ID: <20061222111058.bb101d81.akpm@osdl.org> (raw)
In-Reply-To: <20061222141655.GE31882@telegraafnet.nl>
On Fri, 22 Dec 2006 15:16:55 +0100
Ard -kwaak- van Breemen <ard@telegraafnet.nl> wrote:
> On Fri, Dec 22, 2006 at 03:00:59PM +0100, Ard -kwaak- van Breemen wrote:
> > 262 if (!irqs_disabled()) printk(__FILE__ "%s(): blaat: interrupts were enabled early@%d\n",__FUNCTION__,__LINE__);
> > 263
> > 264 ide_init_hwif_ports(&hw, ide_default_io_base(index), 0, &hwif->irq);
> ------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^
> which does a if (pci_find_device(PCI_ANY_ID, PCI_ANY_ID,
> in include/asm-i386/ide.h
>
> which should be really the part that does the irq enabling.
doh, I missed down_read():
--- a/lib/rwsem-spinlock.c~down_write-preserve-local-irqs
+++ a/lib/rwsem-spinlock.c
@@ -129,13 +129,14 @@ void fastcall __sched __down_read(struct
{
struct rwsem_waiter waiter;
struct task_struct *tsk;
+ unsigned long flags;
- spin_lock_irq(&sem->wait_lock);
+ spin_lock_irqsave(&sem->wait_lock, flags);
if (sem->activity >= 0 && list_empty(&sem->wait_list)) {
/* granted */
sem->activity++;
- spin_unlock_irq(&sem->wait_lock);
+ spin_unlock_irqrestore(&sem->wait_lock, flags);
goto out;
}
@@ -150,7 +151,7 @@ void fastcall __sched __down_read(struct
list_add_tail(&waiter.list, &sem->wait_list);
/* we don't need to touch the semaphore struct anymore */
- spin_unlock_irq(&sem->wait_lock);
+ spin_unlock_irqrestore(&sem->wait_lock, flags);
/* wait to be given the lock */
for (;;) {
@@ -195,13 +196,14 @@ void fastcall __sched __down_write_neste
{
struct rwsem_waiter waiter;
struct task_struct *tsk;
+ unsigned long flags;
- spin_lock_irq(&sem->wait_lock);
+ spin_lock_irqsave(&sem->wait_lock, flags);
if (sem->activity == 0 && list_empty(&sem->wait_list)) {
/* granted */
sem->activity = -1;
- spin_unlock_irq(&sem->wait_lock);
+ spin_unlock_irqrestore(&sem->wait_lock, flags);
goto out;
}
@@ -216,7 +218,7 @@ void fastcall __sched __down_write_neste
list_add_tail(&waiter.list, &sem->wait_list);
/* we don't need to touch the semaphore struct anymore */
- spin_unlock_irq(&sem->wait_lock);
+ spin_unlock_irqrestore(&sem->wait_lock, flags);
/* wait to be given the lock */
for (;;) {
_
next prev parent reply other threads:[~2006-12-22 19:12 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-22 4:41 Zhang, Yanmin
2006-12-22 8:22 ` Ard -kwaak- van Breemen
2006-12-22 8:30 ` Andrew Morton
2006-12-22 9:32 ` Stefano Takekawa
2006-12-22 9:43 ` Andrew Morton
2006-12-22 13:23 ` Stefano Takekawa
2006-12-22 10:30 ` Ard -kwaak- van Breemen
2006-12-22 14:00 ` Ard -kwaak- van Breemen
2006-12-22 14:16 ` Ard -kwaak- van Breemen
2006-12-22 19:10 ` Andrew Morton [this message]
2006-12-22 14:35 ` Ard -kwaak- van Breemen
2006-12-29 15:08 ` Ard -kwaak- van Breemen
2006-12-22 14:41 ` Ard -kwaak- van Breemen
2006-12-22 15:42 ` Ard -kwaak- van Breemen
2006-12-28 23:51 ` Andrew Morton
2006-12-29 10:18 ` Stefano Takekawa
2006-12-29 12:51 ` Ard -kwaak- van Breemen
2006-12-29 13:27 ` Ard -kwaak- van Breemen
2006-12-29 14:10 ` Ard -kwaak- van Breemen
2006-12-29 15:01 ` Ard -kwaak- van Breemen
2006-12-29 15:05 ` Ard -kwaak- van Breemen
2006-12-29 15:24 ` Ard -kwaak- van Breemen
2006-12-29 15:42 ` Ard -kwaak- van Breemen
2006-12-30 19:46 ` [PATCH 2.6.20-rc2-git1] start_kernel: Test if irq's got enabled early, barf, and disable them again Ard -kwaak- van Breemen
2008-03-03 22:46 ` Tony Luck
2008-03-04 0:34 ` Stephen Rothwell
2006-12-30 19:58 ` [PATCH 2.6.20-rc2-git1] kernelparams: detect if and which parameter parsing enabled irq's Ard -kwaak- van Breemen
2006-12-30 20:15 ` [PATCH 2.6.20-rc2-git1] PCI: prevent down_read when pci_devices is empty Ard -kwaak- van Breemen
-- strict thread matches above, loose matches on Subject: below --
2006-12-21 8:04 [Bug 7505] Linux-2.6.18 fails to boot on AMD64 machine Zhang, Yanmin
2006-12-21 19:52 ` Ard -kwaak- van Breemen
2006-12-21 20:11 ` Andrew Morton
2006-12-21 21:05 ` Ard -kwaak- van Breemen
2006-12-22 18:42 ` Ard -kwaak- van Breemen
2006-12-22 19:39 ` Stefano Takekawa
2006-12-20 9:59 Chuck Ebbert
2006-12-20 10:12 ` Yinghai Lu
2006-12-20 10:37 ` Andrew Morton
2006-12-20 10:55 ` Arjan van de Ven
2006-12-20 6:42 Chuck Ebbert
2006-12-20 9:11 ` Yinghai Lu
[not found] <200612181543.kBIFhcIc001555@fire-2.osdl.org>
2006-12-18 16:48 ` Eric W. Biederman
2006-12-20 1:29 ` Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061222111058.bb101d81.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=76306.1226@compuserve.com \
--cc=agalanin@mera.ru \
--cc=ard@telegraafnet.nl \
--cc=bugme-daemon@bugzilla.kernel.org \
--cc=ebiederm@xmission.com \
--cc=linux-kernel@vger.kernel.org \
--cc=take@libero.it \
--cc=yanmin.zhang@intel.com \
--cc=yinghai.lu@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®