Skip to contentSkip to conversation

net/hamachi.c: remove bogus inline at function prototype (fwd)

PATCH In review Adrian Bunk 2 participants 3 messages Jul 29, 2004 – Aug 1, 2004 Network drivers

lore
Share & tools
lore
#0 lore raw

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.o
drivers/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 -----

#1 lore raw
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 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.o
drivers/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 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
diff -up linux-2.6.8-rc2-mm1-orig/drivers/net/hamachi.c linux-2.6.8-rc2-mm1/drivers/net/hamachi.c
@@ -559,8 +559,8 @@ static void hamachi_tx_timeout(struct ne
 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 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_devic
 	return 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

#2 lore raw
Quoted 2 lines · Jesper Juhl

...
Wouldn't it make sense to also un-inline hamachi_tx? both the _rx and _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