[PATCH 2.4.28-pre4] e1000 driver, gcc-3.4 inlining fix

From: O.Sezer
Date: Sun Oct 10 2004 - 04:29:19 EST


Marcelo:
The changes to e1000_main.c introduced in -pre4 via the cset:
"e1000 - white space corrections, other cleanups" results in
the compiler failure below:

e1000_main.c: In function `e1000_up':
e1000_main.c:132: sorry, unimplemented: inlining failed in call to 'e1000_irq_enable': function body not available
e1000_main.c:277: sorry, unimplemented: called from here

The attached patch, taken from 2.6, fixes it.

Ozkan Sezer

--- 28p4/drivers/net/e1000/e1000_main.c.BAK 2004-10-09 14:45:37.000000000 +0300
+++ 28p4/drivers/net/e1000/e1000_main.c 2004-10-10 12:15:15.000000000 +0300
@@ -128,8 +128,8 @@
static struct net_device_stats * e1000_get_stats(struct net_device *netdev);
static int e1000_change_mtu(struct net_device *netdev, int new_mtu);
static int e1000_set_mac(struct net_device *netdev, void *p);
-static inline void e1000_irq_disable(struct e1000_adapter *adapter);
-static inline void e1000_irq_enable(struct e1000_adapter *adapter);
+static void e1000_irq_disable(struct e1000_adapter *adapter);
+static void e1000_irq_enable(struct e1000_adapter *adapter);
static irqreturn_t e1000_intr(int irq, void *data, struct pt_regs *regs);
static boolean_t e1000_clean_tx_irq(struct e1000_adapter *adapter);
#ifdef CONFIG_E1000_NAPI
@@ -146,9 +146,9 @@
void set_ethtool_ops(struct net_device *netdev);
static void e1000_enter_82542_rst(struct e1000_adapter *adapter);
static void e1000_leave_82542_rst(struct e1000_adapter *adapter);
-static inline void e1000_rx_checksum(struct e1000_adapter *adapter,
- struct e1000_rx_desc *rx_desc,
- struct sk_buff *skb);
+static void e1000_rx_checksum(struct e1000_adapter *adapter,
+ struct e1000_rx_desc *rx_desc,
+ struct sk_buff *skb);
static void e1000_tx_timeout(struct net_device *dev);
static void e1000_tx_timeout_task(struct net_device *dev);
static void e1000_smartspeed(struct e1000_adapter *adapter);
@@ -2063,7 +2063,7 @@
* @adapter: board private structure
**/

-static inline void
+static void
e1000_irq_disable(struct e1000_adapter *adapter)
{
atomic_inc(&adapter->irq_sem);
@@ -2077,7 +2077,7 @@
* @adapter: board private structure
**/

-static inline void
+static void
e1000_irq_enable(struct e1000_adapter *adapter)
{
if(likely(atomic_dec_and_test(&adapter->irq_sem))) {
@@ -2582,7 +2582,7 @@
* @sk_buff: socket buffer with received data
**/

-static inline void
+static void
e1000_rx_checksum(struct e1000_adapter *adapter,
struct e1000_rx_desc *rx_desc,
struct sk_buff *skb)