From: Ralf Baechle <ralf@linux-mips.org>
To: Bryan Althouse <bryan.althouse@3phoenix.com>
Cc: linux-mips@linux-mips.org
Subject: Re: custom ide driver causes "Badness in smp_call_function"
Date: Fri, 26 Aug 2005 15:10:47 +0100 [thread overview]
Message-ID: <20050826141047.GA8777@linux-mips.org> (raw)
In-Reply-To: <20050825211218Z8225471-3678+7505@linux-mips.org>
On Thu, Aug 25, 2005 at 05:17:48PM -0400, Bryan Althouse wrote:
> If I change the line "hwif->irq = 0" in my driver to "hwif->irq = 5", my SMP
> kernel no longer experiences SMP badness. Instead, I get many lines like
> "hda: lost interrupt", and the drive is not usable. If I compile the kernel
> without SMP, the drive works properly as before. I tried irq = 5 because I
> noticed that /proc/interrupts indicated that ide0 was being probed at 5.
> With the SMP kernel, /proc/interrupts shows a count of 0 for ide0. My
> non-SMP kernel shows a count that increments when the drive is being used
> (as expected).
Try this patch below and let me know. I would also like to ask those
people who used to suffer from aliases with IDE PIO to try this patch.
Ralf
Index: include/asm-mips/mach-generic/ide.h
===================================================================
RCS file: /home/cvs/linux/include/asm-mips/mach-generic/ide.h,v
retrieving revision 1.9
diff -u -r1.9 ide.h
--- include/asm-mips/mach-generic/ide.h 19 Apr 2005 12:26:59 -0000 1.9
+++ include/asm-mips/mach-generic/ide.h 26 Aug 2005 14:04:38 -0000
@@ -19,6 +19,7 @@
#include <linux/pci.h>
#include <linux/stddef.h>
#include <asm/processor.h>
+#include <asm/cacheflush.h>
#ifndef MAX_HWIFS
# ifdef CONFIG_BLK_DEV_IDEPCI
@@ -105,12 +106,14 @@
/* MIPS port and memory-mapped I/O string operations. */
-static inline void __ide_flush_dcache_range(unsigned long addr, unsigned long size)
+static inline void __ide_flush_dcache_range(unsigned long addr,
+ unsigned long size)
{
- if (cpu_has_dc_aliases) {
- unsigned long end = addr + size;
- for (; addr < end; addr += PAGE_SIZE)
- flush_dcache_page(virt_to_page(addr));
+ unsigned long end = addr + size;
+
+ while (addr < end) {
+ SetPageDcacheDirty(virt_to_page(addr));
+ addr += PAGE_SIZE;
}
}
next prev parent reply other threads:[~2005-08-26 14:05 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-23 14:07 custom ide driver causes "Badness in smp_call_function" Bryan Althouse
2005-08-23 14:07 ` Bryan Althouse
2005-08-24 15:24 ` Ralf Baechle
2005-08-25 15:26 ` Bryan Althouse
2005-08-25 15:26 ` Bryan Althouse
2005-08-25 15:42 ` Ralf Baechle
2005-08-25 21:17 ` Bryan Althouse
2005-08-25 21:17 ` Bryan Althouse
2005-08-26 14:10 ` Ralf Baechle [this message]
2005-08-26 14:58 ` Bryan Althouse
2005-08-26 14:58 ` Bryan Althouse
2005-08-26 15:47 ` Alan Cox
2005-08-26 18:05 ` Bryan Althouse
2005-08-26 18:05 ` Bryan Althouse
2005-08-26 18:16 ` Bryan Althouse
2005-08-26 18:16 ` Bryan Althouse
2005-08-26 16:28 ` Ralf Baechle
2005-08-26 16:36 ` Bryan Althouse
2005-08-26 16:36 ` Bryan Althouse
2005-08-26 16:41 ` Ralf Baechle
2005-09-01 16:15 ` Bryan Althouse
2005-09-01 16:15 ` Bryan Althouse
2005-09-01 16:52 ` Ralf Baechle DL5RB
2005-09-02 12:48 ` Atsushi Nemoto
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=20050826141047.GA8777@linux-mips.org \
--to=ralf@linux-mips.org \
--cc=bryan.althouse@3phoenix.com \
--cc=linux-mips@linux-mips.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.