From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932225Ab0DHOxz (ORCPT ); Thu, 8 Apr 2010 10:53:55 -0400 Received: from mail-pw0-f46.google.com ([209.85.160.46]:33599 "EHLO mail-pw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758609Ab0DHOxx convert rfc822-to-8bit (ORCPT ); Thu, 8 Apr 2010 10:53:53 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=Te+O/PliMsBOR9ZMbEzSIC58tNseZspmdK81LuiOOSE+v1FMoq2dWSP36x1DbQA17Z bXXe3ffK+QhtfofXvckPO7P292ExUwDR1UOglS5OrHBskxy6mmX9qVURqTR57i4NS2ug FFqXsB3NqJgBz/4bgZL6UaDugDZ6ePcNc0J80= MIME-Version: 1.0 In-Reply-To: <4BBD7997.1020803@ladisch.de> References: <4BBC9CA1.5080102@ladisch.de> <4BBD1957.90502@gmail.com> <4BBD7997.1020803@ladisch.de> Date: Thu, 8 Apr 2010 07:53:53 -0700 Message-ID: Subject: Re: Failed to initialize MSI interrupts && ioremap reserve_memtype failed -22 From: Mark Knecht To: Clemens Ladisch Cc: Robert Hancock , Linux Kernel List Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 7, 2010 at 11:37 PM, Clemens Ladisch wrote: > Robert Hancock wrote: >> Hmm, not really clear to me why MSI wouldn't be used.. there aren't >> any kernel messages that seem to say why MSI would be disabled or >> unsupported. Unless maybe that particular model doesn't support MSI? > > This Intel onboard adapter always supports MSI, and AFAICS there is no > MSI quirk for this chipset. > > Mark, is CONFIG_PCI_MSI actually enabled? > >> > ioremap reserve_memtype failed -22 > > ioremap is used by drivers (and sometimes by the kernel itself) to get > access to some device's memory-mapped I/O range.  "-22" is -EINVAL and > is returned by reserve_memtype to indicate that the requested memory > range includes both RAM and not-RAM. > > Without a following error message, it's not possible to find out which > device that is, and where that funny address range comes from.  The fact > that there is no error message might indicate that this is harmless, but > if you want to find out more, add the following lines to > arch/x86/mm/ioremap.c directly after the error message: > >                printk(KERN_ERR "phys_addr: %#Lx, size: %#Lx\n", >                       (u64)phys_addr, (u64)size); >                dump_stack(); > > > Regards, > Clemens > Indeed, MSI was not enabled so turning it on got rid of the MSI message. Here is the new stuff in dmesg from the code stub above: Adding 4200988k swap on /dev/sda2. Priority:-1 extents:1 across:4200988k Adding 4200988k swap on /dev/sdb2. Priority:-2 extents:1 across:4200988k Adding 4200988k swap on /dev/sdc2. Priority:-3 extents:1 across:4200988k e1000e 0000:00:19.0: irq 31 for MSI/MSI-X e1000e 0000:00:19.0: irq 31 for MSI/MSI-X e1000e: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX 0000:00:19.0: eth0: 10/100 speed: disabling TSO NET: Registered protocol family 10 ioremap reserve_memtype failed -22 phys_addr: 0xcf7fe000, size: 0x2000 Pid: 3897, comm: X Tainted: P 2.6.33-gentoo #4 Call Trace: [] ? __ioremap_caller+0x1e2/0x30e [] ? _nv006553rm+0x3a/0x40 [nvidia] [] ? _nv006553rm+0x3a/0x40 [nvidia] [] ? _nv007450rm+0xa0/0x1e4 [nvidia] [] ? _nv007499rm+0x76/0xb3 [nvidia] [] ? _nv007478rm+0xc8/0x325 [nvidia] [] ? _nv007428rm+0xaa/0x19a [nvidia] [] ? _nv007479rm+0x50/0x5d [nvidia] [] ? _nv007487rm+0x6e/0x78 [nvidia] [] ? _nv010998rm+0x69/0x121 [nvidia] [] ? _nv010944rm+0xde/0xf7 [nvidia] [] ? _nv025178rm+0x68/0x194 [nvidia] [] ? _nv014218rm+0x177/0x45c [nvidia] [] ? _nv013795rm+0xc9/0x13a [nvidia] [] ? _nv014028rm+0xd/0x12 [nvidia] [] ? _nv004517rm+0x160/0x26f [nvidia] [] ? _nv004523rm+0x47e/0x651 [nvidia] [] ? rm_init_adapter+0x69/0xbd [nvidia] [] ? nv_kern_open+0x4f5/0x640 [nvidia] [] ? chrdev_open+0x190/0x1af [] ? chrdev_open+0x0/0x1af [] ? __dentry_open+0x19d/0x2b9 [] ? do_filp_open+0x504/0xa96 [] ? capable+0x22/0x41 [] ? notify_change+0x2b3/0x2c5 [] ? alloc_fd+0x112/0x123 [] ? do_sys_open+0x55/0x102 [] ? system_call_fastpath+0x16/0x1b eth0: no IPv6 routers present mark@k2 ~ $ Hopefully I put it in the way you intended me to do: if (retval) { printk(KERN_ERR "ioremap reserve_memtype failed %d\n", retval); printk(KERN_ERR "phys_addr: %#Lx, size: %#Lx\n", (u64)phys_addr, (u64)size); dump_stack(); return NULL; } Seems like maybe you would want symbols or something. If so then please let me know how to turn that on and I'll give it a try. Thanks, Mark