01 Jun, 2007
6 commits
-
With these two lines in the reverse order the drives/block/ccis.c was
oopsing in msi_free_irqs. Silly us calling writel on an area after
we unmap it.BUG: unable to handle kernel paging request at virtual address f8b2200c
printing eip:
c01e9cc7
*pdpt = 0000000000003001
*pde = 0000000037e48067
*pte = 0000000000000000
Oops: 0002 [#1]
SMP
Modules linked in: cciss ipv6 parport_pc lp parport autofs4 i2c_dev i2c_core
sunrpc loop dm_multipath button battery asus_acpi ac tg3 floppy sg dm_snapshot
dm_zero dm_mirror ext3 jbd dm_mod ata_piix libata mptsas scsi_transport_sas
mptspi scsi_transport_spi mptscsih mptbase sd_mod scsi_mod
CPU: 1
EIP: 0060:[] Not tainted VLI
EFLAGS: 00010286 (2.6.22-rc2-gd2579053 #1)
EIP is at msi_free_irqs+0x81/0xbe
eax: f8b22000 ebx: f71f3180 ecx: f7fff280 edx: c1886eb8
esi: f7c4e800 edi: f7c4ec48 ebp: 00000002 esp: f5a0dec8
ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
Process rmmod (pid: 5286, ti=f5a0d000 task=c47d2550 task.ti=f5a0d000)
Stack: 00000002 f8b72294 00000400 f8b69ca7 f8b6bc6c 00000002 00000000 00000000
00000000 00000000 00000000 f5a997f4 f8b69d61 f7c5a4b0 f7c4e848 f7c4e848
f7c4e800 f7c4e800 f8b72294 f7c4e848 f8b72294 c01e3cdf f7c4e848 c024c469
Call Trace:
[] cciss_shutdown+0xae/0xc3 [cciss]
[] cciss_remove_one+0xa5/0x178 [cciss]
[] pci_device_remove+0x16/0x35
[] __device_release_driver+0x71/0x8e
[] driver_detach+0xa0/0xde
[] bus_remove_driver+0x27/0x41
[] pci_unregister_driver+0xb/0x13
[] cciss_cleanup+0xf/0x51 [cciss]
[] sys_delete_module+0x110/0x135
[] sysenter_past_esp+0x5f/0x85Here's a patch that just reverses the 2 lines of code as Eric suggests. Please
consider this for inclusion.Signed-off-by: Mike Miller
Signed-off-by: Chase Maupin
Signed-off-by: "Eric W. Biederman"
Cc: Andi Kleen
Cc: Greg KH
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
"Mike Miller (OS Dev)" writes:
Found what seems the problem with our vectors being listed backward. In
drivers/pci/msi.c we should be using list_add_tail rather than list_add to
preserve the ordering across various kernels. Please consider this for
inclusion.Signed-off-by: "Eric W. Biederman"
Screwed-up-by: Michael Ellerman
Cc: "Mike Miller (OS Dev)"
Cc: Andi Kleen
Cc: Greg KH
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
The Via VT3351 APIC does not play well with MSI and unleashes a flood
of APIC errors when MSI is used to deliver interrupts. The problem
was recently exposed when the atl1 network device driver, which enables
MSI by default, stimulated APIC errors on an Asus M2V mainboard, which
employs the Via VT3351.
See http://bugzilla.kernel.org/show_bug.cgi?id=8472 for additional
details on this bug.Signed-off-by: Jay Cliburn
Signed-off-by: Greg Kroah-Hartman -
pci_find_present() is only matching the last item in the list of ids.
The break after the match is found only escapes the for loop, not the
while loop, so found gets reset to NULL on the next pass.Signed-off-by: Ben Gardner
Cc: Alan Cox
Signed-off-by: Andrew Morton
Signed-off-by: Greg Kroah-Hartman -
I've been seeing lots of messages like these:
eth0: No interrupt was generated using MSI, switching to INTx mode. Please
report this failure to the PCI maintainer and include system chipset
information.On several systems that use the following Severworks HT1000 (also sometimes
labeled as a Broadcom chipset as well) bridge chips. It doesn't appear MSI
works well (if at all) on these systems.Signed-off-by: Andy Gospodarek
Cc: "Eric W. Biederman"
Signed-off-by: Andrew Morton
Signed-off-by: Greg Kroah-Hartman -
In file included from drivers/pci/msi.c:22:
include/asm/smp.h:17:26: asm/arch/smp.h: No such file or directory
include/asm/smp.h:20:3: #error " included in non-SMP build"
include/asm/smp.h:23:1: warning: "raw_smp_processor_id" redefined
In file included from include/linux/sched.h:65,
from include/linux/mm.h:4,
from drivers/pci/msi.c:10:
include/linux/smp.h:85:1: warning: this is the location of the previous
definitionTested on powerpc, i386, and x86_64.
Signed-off-by: Dan Williams
Acked-by: Eric W. Biederman
Signed-off-by: Greg Kroah-Hartman
31 May, 2007
1 commit
-
Commit c0affe9db42bf85f4a606b3262c35ec59a5d3788 doesn't work because
the host controller is being quirked not a PCI bridge. This patch
reverts the commit, rename quirk_svw_msi() to quirk_disable_all_msi()
and use it instead.Signed-off-by: Tejun Heo
Cc: Matias Alejandro Torres
Cc: Greg K-H
Cc: Jeff Garzik
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
22 May, 2007
1 commit
-
First thing mm.h does is including sched.h solely for can_do_mlock() inline
function which has "current" dereference inside. By dealing with can_do_mlock()
mm.h can be detached from sched.h which is good. See below, why.This patch
a) removes unconditional inclusion of sched.h from mm.h
b) makes can_do_mlock() normal function in mm/mlock.c
c) exports can_do_mlock() to not break compilation
d) adds sched.h inclusions back to files that were getting it indirectly.
e) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were
getting them indirectlyNet result is:
a) mm.h users would get less code to open, read, preprocess, parse, ... if
they don't need sched.h
b) sched.h stops being dependency for significant number of files:
on x86_64 allmodconfig touching sched.h results in recompile of 4083 files,
after patch it's only 3744 (-8.3%).Cross-compile tested on
all arm defconfigs, all mips defconfigs, all powerpc defconfigs,
alpha alpha-up
arm
i386 i386-up i386-defconfig i386-allnoconfig
ia64 ia64-up
m68k
mips
parisc parisc-up
powerpc powerpc-up
s390 s390-up
sparc sparc-up
sparc64 sparc64-up
um-x86_64
x86_64 x86_64-up x86_64-defconfig x86_64-allnoconfigas well as my two usual configs.
Signed-off-by: Alexey Dobriyan
Signed-off-by: Linus Torvalds
16 May, 2007
1 commit
-
Signed-off-by: Al Viro
Signed-off-by: Linus Torvalds
12 May, 2007
3 commits
-
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
pata_platform: don't use generic ata_port_start
Use menuconfig objects: libata
add the ATI SB700 SATA controller device id to AHCI pci table
Add the combined mode for ATI SB700
pata_pcmcia: recognize 2GB CompactFlash from Transcend
git-libata-all: sata_via build fix
libata-acpi: clean up parameters and misc stuff
libata-acpi: s/CONFIG_SATA_ACPI/CONFIG_ATA_ACPI/
libata: give devices one last chance even if recovery failed with -EINVAL
libata: fallback to the other IDENTIFY on device error, take#2
libata: ignore EH scheduling during initialization
libata: clean up SFF init mess
libata: implement libata.spindown_compat
libata: reimplement suspend/resume support using sdev->manage_start_stop -
Today's find is a triggered assertion in msi_free_irqs() when the system
doesn't support MSI, in which case arch_setup_msi_irqs() always returns
an error.The problem is that when this happens we branch into msi_free_irqs(), to
which you added the following assertion loop:list_for_each_entry(entry, &dev->msi_list, list)
BUG_ON(irq_has_action(entry->irq));Well, if arch_setup_msi_irqs() fails, entry->irq will be zero and
although that's never assigned to any normal devices we use that IRQ
number for the timer interrupt on sparc64 so this assertion triggers.Better to test for zero before doing the irq_has_action() assertion
thing.Signed-off-by: David S. Miller
Signed-off-by: Linus Torvalds -
Besides those modes in ATI SB600 SATA controller, ATI SB700 supports one
more mode:the combined mode.The combined mode is a Legacy IDE mode used for compatibility with some old
OS without AHCI driver, but now it is not necessary for Linux since the
kernel has supported AHCI.Signed-off-by: Luugi Marsan
Cc: Jeff Garzik
Cc: Tejun Heo
Signed-off-by: Andrew Morton
Signed-off-by: Jeff Garzik
11 May, 2007
1 commit
-
Lots of places where we passed a "struct pci_device *" rather than
a "struct device *". One place where we used a "%s" in the format,
but forgot to provide an argument.Acked-by: John Keller
Signed-off-by: Tony Luck
09 May, 2007
3 commits
-
Signed-off-by: Randy Dunlap
Signed-off-by: Adrian Bunk -
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (77 commits)
[POWERPC] Abolish powerpc_flash_init()
[POWERPC] Early serial debug support for PPC44x
[POWERPC] Support for the Ebony 440GP reference board in arch/powerpc
[POWERPC] Add device tree for Ebony
[POWERPC] Add powerpc/platforms/44x, disable platforms/4xx for now
[POWERPC] MPIC U3/U4 MSI backend
[POWERPC] MPIC MSI allocator
[POWERPC] Enable MSI mappings for MPIC
[POWERPC] Tell Phyp we support MSI
[POWERPC] RTAS MSI implementation
[POWERPC] PowerPC MSI infrastructure
[POWERPC] Rip out the existing powerpc msi stubs
[POWERPC] Remove use of 4level-fixup.h for ppc32
[POWERPC] Add powerpc PCI-E reset API implementation
[POWERPC] Holly bootwrapper
[POWERPC] Holly DTS
[POWERPC] Holly defconfig
[POWERPC] Add support for 750CL Holly board
[POWERPC] Generalize tsi108 PCI setup
[POWERPC] Generalize tsi108 PHY types
...Fixed conflict in include/asm-powerpc/kdebug.h manually
Signed-off-by: Linus Torvalds
-
Remove includes of where it is not used/needed.
Suggested by Al Viro.Builds cleanly on x86_64, i386, alpha, ia64, powerpc, sparc,
sparc64, and arm (all 59 defconfigs).Signed-off-by: Randy Dunlap
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
08 May, 2007
1 commit
05 May, 2007
1 commit
-
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6:
remove "struct subsystem" as it is no longer needed
sysfs: printk format warning
DOC: Fix wrong identifier name in Documentation/driver-model/devres.txt
platform: reorder platform_device_del
Driver core: fix show_uevent from taking up way too much stack
03 May, 2007
22 commits
-
pci_create_sysfs_dev_files() should call pci_remove_resource_files() in
its error path, to match the call it makes to pci_create_resource_files().Signed-off-by: Michael Ellerman
Signed-off-by: Greg Kroah-Hartman -
MSI doesn't work on RS400-200 and RS480 requiring pci=nomsi kernel
boot parameter for ahci to work. This patch disables MSI on those
chips.http://thread.gmane.org/gmane.linux.ide/17820
http://thread.gmane.org/gmane.linux.ide/17516
https://bugzilla.novell.com/show_bug.cgi?id=263893Signed-off-by: Tejun Heo
Signed-off-by: Greg Kroah-Hartman -
Use menuconfigs instead of menus, so the whole menu can be disabled at
once instead of going through all options.Signed-off-by: Jan Engelhardt
Cc: Scott Murray
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
cc: Philip Guo
Here's a small patch against the current git tree for the ZT5550 CPCI
hotplug driver to fix an issue with port freeing that Philip Guo found.Signed-off-by: Scott Murray
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Remove the semaphores from the get routine. These do not
appear to be protecting anything that I can make out,
and they also do not seem to be required by the hotplug
driver.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Calls to pcibios_add should be symmetric with calls to pcibios_remove.
Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
At first blush, the disable_slot() routine does not look
at all like its symmetric with the enable_slot() routine;
as it seems to call a very different set of routines.
However, this is easily fixed: pcibios_remove_pci_devices()
does the right thing.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Fix up the documentation: the rpaphp_add_slot() does not actually
handle embedded slots: in fact, it ignores them. Fix the flow of
control in the routine that checks for embedded slots.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Document some of the interaction between dlpar and hotplug.
viz, the a dlpar remove of a htoplug slot uses hotplug to remove it.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Rename rpaphp_register_pci_slot() because its easy to confuse
with rpaphp_register_slot() even though it does something
completely different. Rename it to rpaphp_enable_slot() because
its almost identical to enbale_slot().Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Eliminate the tail call to rpaphp_register_slot()
by placing it in the caller. This will help later
dis-entanglement.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
The rpaphp_set_attention_status() routine seems to be a wrapper
around a single rtas call. Abolish it.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
The debug function print_slot_pci_funcs() is a large wrapper
around two debug print statements. Just invoke these directly.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
The setup_pci_slot() routine appears to be nothing else than
a big, complicated wrapper around pcibios_add_pci_devices().
Remove the wrapping, and call pcibios_add_pci_devices() directly.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Delete another stovepipe: a call to a routine which does nothing.
Remove un-needed semaphore as well.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Remove another stove-pipe; this funcion was called from
two different places, with a compile-time const that is
then run-time checked to perform two different things.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Remove another stovepipe: a call which wraps another call, and
just adds printks.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Remove a stove-pipe-- a function that is called from only one place,
does nothing but wraps another function with debug printk's.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Remove un-needed goto.
Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Fix a memleak; the slot->location string was never freed.
Fix some whitespace and overlong-line probelms while we're here.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
The routine that called an alloc should be the same routine that
calles the mathcing free, if anything in the middle failed.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman -
Cleanup cruft: remove the global "num_slots" variable;
although scattered across multiple files, it is used only
once, in a debug statement.Signed-off-by: Linas Vepstas
Cc: John Rose
Signed-off-by: Kristen Carlson Accardi
Signed-off-by: Greg Kroah-Hartman