ioreamp() and modules
From: Takashi Oe <hidden>
Date: 1999-03-02 07:13:57
Hi, Recently, I've been trying to modify pm2fb.c so that it works for my Permedia 2v card, but I'm not getting much success with ioremap(). I have a dummy driver which basically does ioremap() and some register accesses and exits. As long as the driver is compiled in, everything goes as expected and things are nice. However, when the driver is loaded via insmod, it usually ends up causing a kernel exception. The size of i/o mapping seems to matter. For example, if I try to ioremap the size of 0x10000 or so, it will cause the exception almost every time with 2.2.2 from cvs.samba.org as of yesterday, but, if the size is about 0x1000 or so, I have to load the driver many times before causing the exception. When the exception occurs, it usually goes like ioremap __ioremap map_page MMU_get_page and, since MMU_get_page() is __initfunc(), there is no wonder I see the exception, but I don't know why MMU_get_page() gets to be called in the first place. I don't remember exactly how it was with 2.2.1, but it wasn't much better as I recall. I have made a workaround and it's attached. It just avoids using map_page() and probably not good for performance reasons or something. Anyhow, I am yet to see the exception with this patch. Has anybody seen something like this? My machine is Apple PowerMac 7600 with 604e/225MHz and 128MB RAM. Takashi Oe
Attachments
- init.c.diff [text/plain] 1476 bytes · preview