net/hamachi.c: remove bogus inline at function prototype (fwd)
PATCH 1/1 net/hamachi.c: remove bogus inline at function prototype (fwd)
FYI:
The patch forwarded below is still required in 2.6.8-rc2-mm1.
----- Forwarded message from Adrian Bunk <[email protected]> -----
Date: Wed, 14 Jul 2004 23:52:56 +0200
From: Adrian Bunk <[email protected]>
To: [email protected]
Cc: [email protected], [email protected]
Subject: [2.6 patch] net/hamachi.c: remove bogus inline at function prototype
Trying to compile drivers/net/hamachi.c in 2.6.8-rc1-mm1 using gcc 3.4 results in the folloeing compile error:
<-- snip -->
...
CC drivers/net/hamachi.odrivers/net/hamachi.c: In function `hamachi_interrupt':drivers/net/hamachi.c:562: sorry, unimplemented: inlining failed in call to 'hamachi_rx': function body not available drivers/net/hamachi.c:1402: sorry, unimplemented: called from here make[2]: *** [drivers/net/hamachi.o] Error 1
<-- snip -->
The inline at the prototype is bogus since the function itself is not marked as inline.
drivers/net/hamachi.c renamed from drivers/net/hamachi.c.old +1 -1
@@ -559,7 +559,7 @@static void hamachi_init_ring (struct net_device *dev);static int hamachi_start_xmit (struct sk_buff *skb,struct net_device *dev);static irqreturn_t hamachi_interrupt (int irq,void *dev_instance,struct pt_regs *regs); -static inline int hamachi_rx (struct net_device *dev); +static int hamachi_rx (struct net_device *dev);static inline int hamachi_tx (struct net_device *dev);static void hamachi_error (struct net_device *dev,int intr_status);static int hamachi_close (struct net_device *dev);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
----- End forwarded message -----
Quoted 39 lines · Adrian Bunk
FYI:
The patch forwarded below is still required in 2.6.8-rc2-mm1.----- Forwarded message from Adrian Bunk <[email protected]> -----
Date: Wed, 14 Jul 2004 23:52:56 +0200
From: Adrian Bunk <[email protected]>
To: [email protected]
Cc: [email protected], [email protected]
Subject: [2.6 patch]net/hamachi.c: remove bogus inline at function prototypeTrying to compile
drivers/net/hamachi.cin 2.6.8-rc1-mm1 using gcc 3.4 results in the folloeing compile error:<-- snip -->
...
CCdrivers/net/hamachi.odrivers/net/hamachi.c: In function `hamachi_interrupt':drivers/net/hamachi.c:562: sorry, unimplemented: inlining failed in call to 'hamachi_rx': function body not availabledrivers/net/hamachi.c:1402: sorry, unimplemented: called from here make[2]: *** [drivers/net/hamachi.o] Error 1<-- snip -->
The inline at the prototype is bogus since the function itself is not marked as inline.
Signed-off-by Adrian Bunk <[email protected]>
drivers/net/hamachi.c line 565
Quoted 8 lines
drivers/net/hamachi.c renamed from drivers/net/hamachi.c.old +1
-1@@ -559,7 +559,7 @@static void hamachi_init_ring (struct net_device *dev);static int hamachi_start_xmit (struct sk_buff *skb,struct net_device *dev);static irqreturn_t hamachi_interrupt (int irq,void *dev_instance,struct pt_regs *regs); -static inline int hamachi_rx (struct net_device *dev); +static int hamachi_rx (struct net_device *dev);static inline int hamachi_tx (struct net_device *dev);static void hamachi_error (struct net_device *dev,int intr_status);static int hamachi_close (struct net_device *dev);
Wouldn't it make sense to also un-inline hamachi_tx? both the _rx and _tx functions are quite big - are they really suitable to be inlined?
Here's a proposed patch against 2.6.8-rc2-mm1
drivers/net/hamachi.c +3 -3
@@ -559,8 +559,8 @@ static void hamachi_tx_timeout(struct nestatic void hamachi_init_ring (struct net_device *dev);static int hamachi_start_xmit (struct sk_buff *skb,struct net_device *dev);static irqreturn_t hamachi_interrupt (int irq,void *dev_instance,struct pt_regs *regs); -static inline int hamachi_rx (struct net_device *dev); -static inline int hamachi_tx (struct net_device *dev); +static int hamachi_rx (struct net_device *dev); +static int hamachi_tx (struct net_device *dev);static void hamachi_error (struct net_device *dev,int intr_status);static int hamachi_close (struct net_device *dev);static struct net_device_stats *hamachi_get_stats (struct net_device *dev);
@@ -998,7 +998,7 @@ static int hamachi_open(struct net_devicreturn 0 ; } -static inline int hamachi_tx (struct net_device *dev) +static int hamachi_tx (struct net_device *dev) {struct hamachi_private *hmp = dev->priv;
/Jesper Juhl
Quoted 2 lines · Jesper Juhl
...
Wouldn't it make sense to also un-inlinehamachi_tx? both the_rxand_tx
My primary goal was to fix the compilation with gcc 3.4, not to evaluate all inlines (which is also a good thing to do).
Quoted 1 line
functions are quite big - are they really suitable to be inlined?
Each of thamachi_{tx,rx} has exacly one caller, which might be a reason in favor of inlining.
Quoted 2 lines
Here's a proposed patch against 2.6.8-rc2-mm1
...
Looks good.
Quoted 1 line
/Jesper Juhl
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed