Re: e2b2rom_init_one(): Unable to register resource

From: Cyrill Gorcunov
Date: Sun Feb 18 2007 - 05:45:32 EST


On Sat, Feb 17, 2007 at 11:29:19PM +0200, Dan Aloni wrote:
| Hello,
|
| I'm running the x86_64 arch of Linux 2.6.20 on a Supermicro X6DH8-XG2
| board and I got this during boot:
|
| [248660.950695] device id = 2440
| [248660.950699] device id = 2480
| [248660.950703] device id = 24c0
| [248660.950706] device id = 24d0
| [248660.950709] matched device = 24d0
| [248660.950712] matched device id 24d0
| [248660.950716] pci_read_config_byte : 4
| [248660.950723] esb2rom: esb2rom_init_one(): Unable to register resource
| 0xffffffffffc00000-0xffffffff - kernel bug?
| [248660.950729] esb2rom: ioremap(ffffffffffc00000, 100400000) failed
| [248660.956859] retVal = -19
|
| Looks like some kind of a 64-bit portability bug...
|
| --
| Dan Aloni
| XIV LTD, http://www.xivstorage.com
| da-x (at) monatomic.org, dan (at) xiv.co.il
| -
| To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
| the body of a message to majordomo@xxxxxxxxxxxxxxx
| More majordomo info at http://vger.kernel.org/majordomo-info.html
| Please read the FAQ at http://www.tux.org/lkml/
|

Hi,

here is a patch attached to the mail. You may test it. Actually
I have no 64bit machine to test it and I'm worried about the
patch accuracy. So be carefull testing it. I sent a copy of the
message to Andi Kleen (who is a maintainer of X86-64 port) may be
we should wait for its answer ;)

Cyrill

diff --git a/drivers/mtd/maps/esb2rom.c b/drivers/mtd/maps/esb2rom.c
index a9d808a..d63c060 100644
--- a/drivers/mtd/maps/esb2rom.c
+++ b/drivers/mtd/maps/esb2rom.c
@@ -214,6 +214,9 @@ static int __devinit esb2rom_init_one(struct pci_dev *pdev,

/* reserved 0x0020 and 0x0010 */
window->phys -= 0x400000UL;
+#ifdef CONFIG_64BIT
+ window->phys &= 0xffffffffUL;
+#endif
window->size = (0xffffffffUL - window->phys) + 1UL;

/* Enable writes through the rom window */