aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2008-04-14 00:54:34 -0400
committerDavid S. Miller <davem@davemloft.net>2008-04-14 00:54:34 -0400
commit2cf83afe902fd72ef4b211774e48ab39890fb328 (patch)
tree243632f455cda34b0a9ecf6e8a34d435ccfcefca /drivers
parentac6f78192054784f02dd47f8e6d7d1c8d75ab173 (diff)
[ATM] drivers/atm/horizon.c: stop inlining largish static functions
drivers/atm/horizon.c has unusually large number of static inline functions - 36. I looked through them. Most of them seems to be small enough, but a few are big, others are using udelay or busy loop, and as such are better not be inlined. This patch removes "inline" from these static functions (regardless of number of callsites - gcc nowadays auto-inlines statics with one callsite). Size difference for 32bit x86: text data bss dec hex filename 8201 180 6 8387 20c3 linux-2.6-ALLYES/drivers/atm/horizon.o 7840 180 6 8026 1f5a linux-2.6.inline-ALLYES/drivers/atm/horizon.o Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/atm/horizon.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/drivers/atm/horizon.c b/drivers/atm/horizon.c
index 9b2cf253f02f..c0ac728dc564 100644
--- a/drivers/atm/horizon.c
+++ b/drivers/atm/horizon.c
@@ -424,7 +424,7 @@ static inline void FLUSH_RX_CHANNEL (hrz_dev * dev, u16 channel) {
424 return; 424 return;
425} 425}
426 426
427static inline void WAIT_FLUSH_RX_COMPLETE (hrz_dev * dev) { 427static void WAIT_FLUSH_RX_COMPLETE (hrz_dev * dev) {
428 while (rd_regw (dev, RX_CHANNEL_PORT_OFF) & FLUSH_CHANNEL) 428 while (rd_regw (dev, RX_CHANNEL_PORT_OFF) & FLUSH_CHANNEL)
429 ; 429 ;
430 return; 430 return;
@@ -435,7 +435,7 @@ static inline void SELECT_RX_CHANNEL (hrz_dev * dev, u16 channel) {
435 return; 435 return;
436} 436}
437 437
438static inline void WAIT_UPDATE_COMPLETE (hrz_dev * dev) { 438static void WAIT_UPDATE_COMPLETE (hrz_dev * dev) {
439 while (rd_regw (dev, RX_CHANNEL_PORT_OFF) & RX_CHANNEL_UPDATE_IN_PROGRESS) 439 while (rd_regw (dev, RX_CHANNEL_PORT_OFF) & RX_CHANNEL_UPDATE_IN_PROGRESS)
440 ; 440 ;
441 return; 441 return;
@@ -796,7 +796,7 @@ static void hrz_change_vc_qos (ATM_RXER * rxer, MAAL_QOS * qos) {
796 796
797/********** free an skb (as per ATM device driver documentation) **********/ 797/********** free an skb (as per ATM device driver documentation) **********/
798 798
799static inline void hrz_kfree_skb (struct sk_buff * skb) { 799static void hrz_kfree_skb (struct sk_buff * skb) {
800 if (ATM_SKB(skb)->vcc->pop) { 800 if (ATM_SKB(skb)->vcc->pop) {
801 ATM_SKB(skb)->vcc->pop (ATM_SKB(skb)->vcc, skb); 801 ATM_SKB(skb)->vcc->pop (ATM_SKB(skb)->vcc, skb);
802 } else { 802 } else {
@@ -1076,7 +1076,7 @@ static void rx_schedule (hrz_dev * dev, int irq) {
1076 1076
1077/********** handle RX bus master complete events **********/ 1077/********** handle RX bus master complete events **********/
1078 1078
1079static inline void rx_bus_master_complete_handler (hrz_dev * dev) { 1079static void rx_bus_master_complete_handler (hrz_dev * dev) {
1080 if (test_bit (rx_busy, &dev->flags)) { 1080 if (test_bit (rx_busy, &dev->flags)) {
1081 rx_schedule (dev, 1); 1081 rx_schedule (dev, 1);
1082 } else { 1082 } else {
@@ -1089,7 +1089,7 @@ static inline void rx_bus_master_complete_handler (hrz_dev * dev) {
1089 1089
1090/********** (queue to) become the next TX thread **********/ 1090/********** (queue to) become the next TX thread **********/
1091 1091
1092static inline int tx_hold (hrz_dev * dev) { 1092static int tx_hold (hrz_dev * dev) {
1093 PRINTD (DBG_TX, "sleeping at tx lock %p %lu", dev, dev->flags); 1093 PRINTD (DBG_TX, "sleeping at tx lock %p %lu", dev, dev->flags);
1094 wait_event_interruptible(dev->tx_queue, (!test_and_set_bit(tx_busy, &dev->flags))); 1094 wait_event_interruptible(dev->tx_queue, (!test_and_set_bit(tx_busy, &dev->flags)));
1095 PRINTD (DBG_TX, "woken at tx lock %p %lu", dev, dev->flags); 1095 PRINTD (DBG_TX, "woken at tx lock %p %lu", dev, dev->flags);
@@ -1232,7 +1232,7 @@ static void tx_schedule (hrz_dev * const dev, int irq) {
1232 1232
1233/********** handle TX bus master complete events **********/ 1233/********** handle TX bus master complete events **********/
1234 1234
1235static inline void tx_bus_master_complete_handler (hrz_dev * dev) { 1235static void tx_bus_master_complete_handler (hrz_dev * dev) {
1236 if (test_bit (tx_busy, &dev->flags)) { 1236 if (test_bit (tx_busy, &dev->flags)) {
1237 tx_schedule (dev, 1); 1237 tx_schedule (dev, 1);
1238 } else { 1238 } else {
@@ -1246,7 +1246,7 @@ static inline void tx_bus_master_complete_handler (hrz_dev * dev) {
1246/********** move RX Q pointer to next item in circular buffer **********/ 1246/********** move RX Q pointer to next item in circular buffer **********/
1247 1247
1248// called only from IRQ sub-handler 1248// called only from IRQ sub-handler
1249static inline u32 rx_queue_entry_next (hrz_dev * dev) { 1249static u32 rx_queue_entry_next (hrz_dev * dev) {
1250 u32 rx_queue_entry; 1250 u32 rx_queue_entry;
1251 spin_lock (&dev->mem_lock); 1251 spin_lock (&dev->mem_lock);
1252 rx_queue_entry = rd_mem (dev, &dev->rx_q_entry->entry); 1252 rx_queue_entry = rd_mem (dev, &dev->rx_q_entry->entry);
@@ -1270,7 +1270,7 @@ static inline void rx_disabled_handler (hrz_dev * dev) {
1270/********** handle RX data received by device **********/ 1270/********** handle RX data received by device **********/
1271 1271
1272// called from IRQ handler 1272// called from IRQ handler
1273static inline void rx_data_av_handler (hrz_dev * dev) { 1273static void rx_data_av_handler (hrz_dev * dev) {
1274 u32 rx_queue_entry; 1274 u32 rx_queue_entry;
1275 u32 rx_queue_entry_flags; 1275 u32 rx_queue_entry_flags;
1276 u16 rx_len; 1276 u16 rx_len;
@@ -1394,7 +1394,7 @@ static irqreturn_t interrupt_handler(int irq, void *dev_id)
1394 irq_ok = 0; 1394 irq_ok = 0;
1395 while ((int_source = rd_regl (dev, INT_SOURCE_REG_OFF) 1395 while ((int_source = rd_regl (dev, INT_SOURCE_REG_OFF)
1396 & INTERESTING_INTERRUPTS)) { 1396 & INTERESTING_INTERRUPTS)) {
1397 // In the interests of fairness, the (inline) handlers below are 1397 // In the interests of fairness, the handlers below are
1398 // called in sequence and without immediate return to the head of 1398 // called in sequence and without immediate return to the head of
1399 // the while loop. This is only of issue for slow hosts (or when 1399 // the while loop. This is only of issue for slow hosts (or when
1400 // debugging messages are on). Really slow hosts may find a fast 1400 // debugging messages are on). Really slow hosts may find a fast
@@ -1458,7 +1458,7 @@ static void do_housekeeping (unsigned long arg) {
1458/********** find an idle channel for TX and set it up **********/ 1458/********** find an idle channel for TX and set it up **********/
1459 1459
1460// called with tx_busy set 1460// called with tx_busy set
1461static inline short setup_idle_tx_channel (hrz_dev * dev, hrz_vcc * vcc) { 1461static short setup_idle_tx_channel (hrz_dev * dev, hrz_vcc * vcc) {
1462 unsigned short idle_channels; 1462 unsigned short idle_channels;
1463 short tx_channel = -1; 1463 short tx_channel = -1;
1464 unsigned int spin_count; 1464 unsigned int spin_count;
@@ -1777,13 +1777,13 @@ static void hrz_reset (const hrz_dev * dev) {
1777 1777
1778/********** read the burnt in address **********/ 1778/********** read the burnt in address **********/
1779 1779
1780static inline void WRITE_IT_WAIT (const hrz_dev *dev, u32 ctrl) 1780static void WRITE_IT_WAIT (const hrz_dev *dev, u32 ctrl)
1781{ 1781{
1782 wr_regl (dev, CONTROL_0_REG, ctrl); 1782 wr_regl (dev, CONTROL_0_REG, ctrl);
1783 udelay (5); 1783 udelay (5);
1784} 1784}
1785 1785
1786static inline void CLOCK_IT (const hrz_dev *dev, u32 ctrl) 1786static void CLOCK_IT (const hrz_dev *dev, u32 ctrl)
1787{ 1787{
1788 // DI must be valid around rising SK edge 1788 // DI must be valid around rising SK edge
1789 WRITE_IT_WAIT(dev, ctrl & ~SEEPROM_SK); 1789 WRITE_IT_WAIT(dev, ctrl & ~SEEPROM_SK);