e1000 driver, gcc-3.4 inlining fix
PATCH 1/1 e1000 driver, gcc-3.4 inlining fix
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
drivers/net/e1000/e1000_main.c renamed from drivers/net/e1000/e1000_main.c.BAK +8 -8
@@ -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)