The following patch against linux_2_4 fixes this sort of compilation error with gcc 3.4: au1000_eth.c: In function `au1000_init_module': au1000_eth.c:97: sorry, unimplemented: inlining failed in call to 'str2eaddr': function body not available au1000_eth.c:1219: sorry, unimplemented: called from here I'm not wholly sure it's the Right Thing, as I define str2eaddr in au1000_eth.c, which makes for more code duplication. Index: drivers/net/au1000_eth.c =================================================================== RCS file: /home/kevint/whdd/linux-mips-cvs/linux/drivers/net/au1000_eth.c,v retrieving revision 1.5.2.33 diff -u -r1.5.2.33 au1000_eth.c --- drivers/net/au1000_eth.c 26 Nov 2004 08:40:13 -0000 1.5.2.33 +++ drivers/net/au1000_eth.c 10 Jun 2005 20:56:19 -0000 @@ -90,12 +90,12 @@ static int mdio_read(struct net_device *, int, int); static void mdio_write(struct net_device *, int, int, u16); static void dump_mii(struct net_device *dev, int phy_id); +static inline void str2eaddr(unsigned char *ea, unsigned char *str); +static inline unsigned char str2hexnum(unsigned char c); // externs extern void ack_rise_edge_irq(unsigned int); extern int get_ethernet_addr(char *ethernet_addr); -extern inline void str2eaddr(unsigned char *ea, unsigned char *str); -extern inline unsigned char str2hexnum(unsigned char c); extern char * __init prom_getcmdline(void); /* @@ -146,6 +146,32 @@ "100BaseT", "100BaseTX", "100BaseFX" }; +static inline void str2eaddr(unsigned char *ea, unsigned char *str) +{ + int i; + + for (i = 0; i < 6; i++) { + unsigned char num; + + if ((*str == '.') || (*str == ':')) + str++; + num = str2hexnum(*str++) << 4; + num |= (str2hexnum(*str++)); + ea[i] = num; + } +} + +static inline unsigned char str2hexnum(unsigned char c) +{ + if(c >= '0' && c <= '9') + return c - '0'; + if(c >= 'a' && c <= 'f') + return c - 'a' + 10; + if(c >= 'A' && c <= 'F') + return c - 'A' + 10; + return 0; /* foo */ +} + int bcm_5201_init(struct net_device *dev, int phy_addr) { s16 data; -- The moon is waxing crescent, 12.3% illuminated, 3.4 days old.