2001-02-26 15:42:41

by Stephen Mollett

[permalink] [raw]
Subject: "io mapaddr 0xXXXXX not valid" in smc-mca in 2.4.x

In kernel version 2.4.x (x from 0 to 2-ac3), the
smc-mca driver gives many errors like the following on
the console log:

io mapaddr 0xXXXXX not valid at smc-mca.c:YYY!

where XXXXX is an address within the shared-memory
assigned to the adapter card, and YYY is 378, 398 or
408.

I have tested the driver on two IBM MCA systems - a
9577 and an 8590. I have tried three different network
adapters in each machine:

WD Ethercard PLUS 10T/A (WD8003W/A)
SMC Ethercard PLUS Elite/A BNC/AUI (WD8013EP/A)
SMC Ethercard PLUS Elite/A UTP/AUI (WD8013WP/A)

All the adapters give the errors, in both machines.
All adapters and both PS/2s are known to be good with
kernel 2.2.17.

* please cc any responses to me <[email protected]>
as I do not subscribe to the list.

Regards,
Stephen Mollett

__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail.
http://personal.mail.yahoo.com/


2001-02-26 20:07:35

by J.A. Magallon

[permalink] [raw]
Subject: Re: "io mapaddr 0xXXXXX not valid" in smc-mca in 2.4.x


On 02.26 Stephen Mollett wrote:
> In kernel version 2.4.x (x from 0 to 2-ac3), the
> smc-mca driver gives many errors like the following on
> the console log:
>
> io mapaddr 0xXXXXX not valid at smc-mca.c:YYY!
>
> where XXXXX is an address within the shared-memory
> assigned to the adapter card, and YYY is 378, 398 or
> 408.
>

AFAIK, it is a bug in the driver. That output is generated by
arch/i386/lib/iodebug.c, a routine to catch buggy drivers like that.
Look at
include/asm-i386/io.h, line 112 or so:
/*
* Temporary debugging check to catch old code using
* unmapped ISA addresses. Will be removed in 2.4.
*/
#if CONFIG_DEBUG_IOVIRT
extern void *__io_virt_debug(unsigned long x, const char *file, int line);
extern unsigned long __io_phys_debug(unsigned long x, const char *file, int li
ne);
#define __io_virt(x) __io_virt_debug((unsigned long)(x), __FILE__, __LINE__)
//#define __io_phys(x) __io_phys_debug((unsigned long)(x), __FILE__, __LINE__)
#else
#define __io_virt(x) ((void *)(x))
//#define __io_phys(x) __pa(x)
#endif

So you should mail driver mantainer, if it is known....

--
J.A. Magallon $> cd pub
mailto:[email protected] $> more beer

Linux werewolf 2.4.2-ac4 #2 SMP Mon Feb 26 00:21:23 CET 2001 i686

2001-02-26 20:13:25

by Alan

[permalink] [raw]
Subject: Re: "io mapaddr 0xXXXXX not valid" in smc-mca in 2.4.x

> AFAIK, it is a bug in the driver. That output is generated by
> arch/i386/lib/iodebug.c, a routine to catch buggy drivers like that.
> Look at
> include/asm-i386/io.h, line 112 or so:

Yes. Its someone using readb and friends on an unremapped address. In this
case I had a look and a guess at a fix is in ac5 (out RSN)

2001-02-27 19:49:51

by Stephen Mollett

[permalink] [raw]
Subject: Re: "io mapaddr 0xXXXXX not valid" in smc-mca in 2.4.x

On Monday 26 February 2001 8:15 pm, Alan Cox wrote:
> ... I had a look and a guess at a fix is in ac5 (out RSN)

You'll be glad to hear that the driver is now working perfectly. Thanks!

Regards,
Stephen Mollett