update to a newer snapshot and m. buesch snapshots
[openwrt.git] / target / linux / generic-2.6 / patches / 006-gcc4_inline_fix.patch
1 diff -Nur linux-2.6.15.1/Documentation/feature-removal-schedule.txt linux-2.6.15.1-owrt/Documentation/feature-removal-schedule.txt
2 --- linux-2.6.15.1/Documentation/feature-removal-schedule.txt   2006-01-15 07:16:02.000000000 +0100
3 +++ linux-2.6.15.1-owrt/Documentation/feature-removal-schedule.txt      2006-01-27 15:03:21.000000000 +0100
4 @@ -143,6 +143,15 @@
5  
6  ---------------------------
7  
8 +What:  CONFIG_FORCED_INLINING
9 +When:  June 2006
10 +Why:   Config option is there to see if gcc is good enough. (in january
11 +       2006). If it is, the behavior should just be the default. If it's not,
12 +       the option should just go away entirely.
13 +Who:   Arjan van de Ven
14 +
15 +---------------------------
16 +
17  What:  START_ARRAY ioctl for md
18  When:  July 2006
19  Files: drivers/md/md.c
20 diff -Nur linux-2.6.15.1/drivers/acpi/ec.c linux-2.6.15.1-owrt/drivers/acpi/ec.c
21 --- linux-2.6.15.1/drivers/acpi/ec.c    2006-01-15 07:16:02.000000000 +0100
22 +++ linux-2.6.15.1-owrt/drivers/acpi/ec.c       2006-01-27 15:08:36.000000000 +0100
23 @@ -153,7 +153,7 @@
24                               Transaction Management
25     -------------------------------------------------------------------------- */
26  
27 -static inline u32 acpi_ec_read_status(union acpi_ec *ec)
28 +static u32 acpi_ec_read_status(union acpi_ec *ec)
29  {
30         u32 status = 0;
31  
32 diff -Nur linux-2.6.15.1/drivers/base/firmware_class.c linux-2.6.15.1-owrt/drivers/base/firmware_class.c
33 --- linux-2.6.15.1/drivers/base/firmware_class.c        2006-01-15 07:16:02.000000000 +0100
34 +++ linux-2.6.15.1-owrt/drivers/base/firmware_class.c   2006-01-27 15:08:36.000000000 +0100
35 @@ -47,7 +47,7 @@
36         struct timer_list timeout;
37  };
38  
39 -static inline void
40 +static void
41  fw_load_abort(struct firmware_priv *fw_priv)
42  {
43         set_bit(FW_STATUS_ABORT, &fw_priv->status);
44 diff -Nur linux-2.6.15.1/drivers/block/loop.c linux-2.6.15.1-owrt/drivers/block/loop.c
45 --- linux-2.6.15.1/drivers/block/loop.c 2006-01-15 07:16:02.000000000 +0100
46 +++ linux-2.6.15.1-owrt/drivers/block/loop.c    2006-01-27 15:08:36.000000000 +0100
47 @@ -281,7 +281,7 @@
48   * This helper just factors out common code between do_lo_send_direct_write()
49   * and do_lo_send_write().
50   */
51 -static inline int __do_lo_send_write(struct file *file,
52 +static int __do_lo_send_write(struct file *file,
53                 u8 __user *buf, const int len, loff_t pos)
54  {
55         ssize_t bw;
56 diff -Nur linux-2.6.15.1/drivers/bluetooth/hci_bcsp.c linux-2.6.15.1-owrt/drivers/bluetooth/hci_bcsp.c
57 --- linux-2.6.15.1/drivers/bluetooth/hci_bcsp.c 2006-01-15 07:16:02.000000000 +0100
58 +++ linux-2.6.15.1-owrt/drivers/bluetooth/hci_bcsp.c    2006-01-27 15:08:36.000000000 +0100
59 @@ -494,7 +494,7 @@
60         }
61  }
62  
63 -static inline void bcsp_complete_rx_pkt(struct hci_uart *hu)
64 +static void bcsp_complete_rx_pkt(struct hci_uart *hu)
65  {
66         struct bcsp_struct *bcsp = hu->priv;
67         int pass_up;
68 diff -Nur linux-2.6.15.1/drivers/char/drm/r128_state.c linux-2.6.15.1-owrt/drivers/char/drm/r128_state.c
69 --- linux-2.6.15.1/drivers/char/drm/r128_state.c        2006-01-15 07:16:02.000000000 +0100
70 +++ linux-2.6.15.1-owrt/drivers/char/drm/r128_state.c   2006-01-27 15:08:36.000000000 +0100
71 @@ -220,7 +220,7 @@
72         ADVANCE_RING();
73  }
74  
75 -static __inline__ void r128_emit_state(drm_r128_private_t * dev_priv)
76 +static void r128_emit_state(drm_r128_private_t * dev_priv)
77  {
78         drm_r128_sarea_t *sarea_priv = dev_priv->sarea_priv;
79         unsigned int dirty = sarea_priv->dirty;
80 diff -Nur linux-2.6.15.1/drivers/cpufreq/cpufreq.c linux-2.6.15.1-owrt/drivers/cpufreq/cpufreq.c
81 --- linux-2.6.15.1/drivers/cpufreq/cpufreq.c    2006-01-15 07:16:02.000000000 +0100
82 +++ linux-2.6.15.1-owrt/drivers/cpufreq/cpufreq.c       2006-01-27 15:08:36.000000000 +0100
83 @@ -41,7 +41,6 @@
84  /* internal prototypes */
85  static int __cpufreq_governor(struct cpufreq_policy *policy, unsigned int event);
86  static void handle_update(void *data);
87 -static inline void adjust_jiffies(unsigned long val, struct cpufreq_freqs *ci);
88  
89  /**
90   * Two notifier lists: the "policy" list is involved in the 
91 @@ -127,7 +126,7 @@
92  static unsigned int disable_ratelimit = 1;
93  static DEFINE_SPINLOCK(disable_ratelimit_lock);
94  
95 -static inline void cpufreq_debug_enable_ratelimit(void)
96 +static void cpufreq_debug_enable_ratelimit(void)
97  {
98         unsigned long flags;
99  
100 @@ -137,7 +136,7 @@
101         spin_unlock_irqrestore(&disable_ratelimit_lock, flags);
102  }
103  
104 -static inline void cpufreq_debug_disable_ratelimit(void)
105 +static void cpufreq_debug_disable_ratelimit(void)
106  {
107         unsigned long flags;
108  
109 @@ -206,7 +205,7 @@
110  static unsigned long l_p_j_ref;
111  static unsigned int  l_p_j_ref_freq;
112  
113 -static inline void adjust_jiffies(unsigned long val, struct cpufreq_freqs *ci)
114 +static void adjust_jiffies(unsigned long val, struct cpufreq_freqs *ci)
115  {
116         if (ci->flags & CPUFREQ_CONST_LOOPS)
117                 return;
118 diff -Nur linux-2.6.15.1/drivers/ide/ide-cd.c linux-2.6.15.1-owrt/drivers/ide/ide-cd.c
119 --- linux-2.6.15.1/drivers/ide/ide-cd.c 2006-01-15 07:16:02.000000000 +0100
120 +++ linux-2.6.15.1-owrt/drivers/ide/ide-cd.c    2006-01-27 15:08:36.000000000 +0100
121 @@ -980,7 +980,7 @@
122   * and attempt to recover if there are problems.  Returns  0 if everything's
123   * ok; nonzero if the request has been terminated.
124   */
125 -static inline
126 +static
127  int cdrom_read_check_ireason (ide_drive_t *drive, int len, int ireason)
128  {
129         if (ireason == 2)
130 @@ -1541,7 +1541,7 @@
131  /*
132   * Write handling
133   */
134 -static inline int cdrom_write_check_ireason(ide_drive_t *drive, int len, int ireason)
135 +static int cdrom_write_check_ireason(ide_drive_t *drive, int len, int ireason)
136  {
137         /* Two notes about IDE interrupt reason here - 0 means that
138          * the drive wants to receive data from us, 2 means that
139 diff -Nur linux-2.6.15.1/drivers/ide/ide-disk.c linux-2.6.15.1-owrt/drivers/ide/ide-disk.c
140 --- linux-2.6.15.1/drivers/ide/ide-disk.c       2006-01-15 07:16:02.000000000 +0100
141 +++ linux-2.6.15.1-owrt/drivers/ide/ide-disk.c  2006-01-27 15:08:36.000000000 +0100
142 @@ -477,7 +477,7 @@
143                && id->lba_capacity_2;
144  }
145  
146 -static inline void idedisk_check_hpa(ide_drive_t *drive)
147 +static void idedisk_check_hpa(ide_drive_t *drive)
148  {
149         unsigned long long capacity, set_max;
150         int lba48 = idedisk_supports_lba48(drive->id);
151 diff -Nur linux-2.6.15.1/drivers/ide/ide-taskfile.c linux-2.6.15.1-owrt/drivers/ide/ide-taskfile.c
152 --- linux-2.6.15.1/drivers/ide/ide-taskfile.c   2006-01-15 07:16:02.000000000 +0100
153 +++ linux-2.6.15.1-owrt/drivers/ide/ide-taskfile.c      2006-01-27 15:08:36.000000000 +0100
154 @@ -308,7 +308,7 @@
155                 ide_pio_sector(drive, write);
156  }
157  
158 -static inline void ide_pio_datablock(ide_drive_t *drive, struct request *rq,
159 +static void ide_pio_datablock(ide_drive_t *drive, struct request *rq,
160                                      unsigned int write)
161  {
162         if (rq->bio)    /* fs request */
163 diff -Nur linux-2.6.15.1/drivers/infiniband/core/cm.c linux-2.6.15.1-owrt/drivers/infiniband/core/cm.c
164 --- linux-2.6.15.1/drivers/infiniband/core/cm.c 2006-01-15 07:16:02.000000000 +0100
165 +++ linux-2.6.15.1-owrt/drivers/infiniband/core/cm.c    2006-01-27 15:08:36.000000000 +0100
166 @@ -850,7 +850,7 @@
167                        param->private_data_len);
168  }
169  
170 -static inline int cm_validate_req_param(struct ib_cm_req_param *param)
171 +static int cm_validate_req_param(struct ib_cm_req_param *param)
172  {
173         /* peer-to-peer not supported */
174         if (param->peer_to_peer)
175 @@ -999,7 +999,7 @@
176                  (be32_to_cpu(local_qpn) > be32_to_cpu(remote_qpn))));
177  }
178  
179 -static inline void cm_format_paths_from_req(struct cm_req_msg *req_msg,
180 +static void cm_format_paths_from_req(struct cm_req_msg *req_msg,
181                                             struct ib_sa_path_rec *primary_path,
182                                             struct ib_sa_path_rec *alt_path)
183  {
184 diff -Nur linux-2.6.15.1/drivers/isdn/hisax/avm_pci.c linux-2.6.15.1-owrt/drivers/isdn/hisax/avm_pci.c
185 --- linux-2.6.15.1/drivers/isdn/hisax/avm_pci.c 2006-01-15 07:16:02.000000000 +0100
186 +++ linux-2.6.15.1-owrt/drivers/isdn/hisax/avm_pci.c    2006-01-27 15:08:36.000000000 +0100
187 @@ -358,7 +358,7 @@
188         }
189  }
190  
191 -static inline void
192 +static void
193  HDLC_irq(struct BCState *bcs, u_int stat) {
194         int len;
195         struct sk_buff *skb;
196 diff -Nur linux-2.6.15.1/drivers/isdn/hisax/diva.c linux-2.6.15.1-owrt/drivers/isdn/hisax/diva.c
197 --- linux-2.6.15.1/drivers/isdn/hisax/diva.c    2006-01-15 07:16:02.000000000 +0100
198 +++ linux-2.6.15.1-owrt/drivers/isdn/hisax/diva.c       2006-01-27 15:08:36.000000000 +0100
199 @@ -476,7 +476,7 @@
200         }
201  }
202  
203 -static inline void
204 +static void
205  Memhscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx)
206  {
207         u_char r;
208 diff -Nur linux-2.6.15.1/drivers/isdn/hisax/hscx_irq.c linux-2.6.15.1-owrt/drivers/isdn/hisax/hscx_irq.c
209 --- linux-2.6.15.1/drivers/isdn/hisax/hscx_irq.c        2006-01-15 07:16:02.000000000 +0100
210 +++ linux-2.6.15.1-owrt/drivers/isdn/hisax/hscx_irq.c   2006-01-27 15:08:36.000000000 +0100
211 @@ -119,7 +119,7 @@
212         }
213  }
214  
215 -static inline void
216 +static void
217  hscx_interrupt(struct IsdnCardState *cs, u_char val, u_char hscx)
218  {
219         u_char r;
220 @@ -221,7 +221,7 @@
221         }
222  }
223  
224 -static inline void
225 +static void
226  hscx_int_main(struct IsdnCardState *cs, u_char val)
227  {
228  
229 diff -Nur linux-2.6.15.1/drivers/isdn/hisax/jade_irq.c linux-2.6.15.1-owrt/drivers/isdn/hisax/jade_irq.c
230 --- linux-2.6.15.1/drivers/isdn/hisax/jade_irq.c        2006-01-15 07:16:02.000000000 +0100
231 +++ linux-2.6.15.1-owrt/drivers/isdn/hisax/jade_irq.c   2006-01-27 15:08:36.000000000 +0100
232 @@ -110,7 +110,7 @@
233  }
234  
235  
236 -static inline void
237 +static void
238  jade_interrupt(struct IsdnCardState *cs, u_char val, u_char jade)
239  {
240         u_char r;
241 diff -Nur linux-2.6.15.1/drivers/md/bitmap.c linux-2.6.15.1-owrt/drivers/md/bitmap.c
242 --- linux-2.6.15.1/drivers/md/bitmap.c  2006-01-15 07:16:02.000000000 +0100
243 +++ linux-2.6.15.1-owrt/drivers/md/bitmap.c     2006-01-27 15:08:36.000000000 +0100
244 @@ -200,7 +200,7 @@
245  /* if page is completely empty, put it back on the free list, or dealloc it */
246  /* if page was hijacked, unmark the flag so it might get alloced next time */
247  /* Note: lock should be held when calling this */
248 -static inline void bitmap_checkfree(struct bitmap *bitmap, unsigned long page)
249 +static void bitmap_checkfree(struct bitmap *bitmap, unsigned long page)
250  {
251         char *ptr;
252  
253 diff -Nur linux-2.6.15.1/drivers/md/dm.c linux-2.6.15.1-owrt/drivers/md/dm.c
254 --- linux-2.6.15.1/drivers/md/dm.c      2006-01-15 07:16:02.000000000 +0100
255 +++ linux-2.6.15.1-owrt/drivers/md/dm.c 2006-01-27 15:08:36.000000000 +0100
256 @@ -292,7 +292,7 @@
257   * Decrements the number of outstanding ios that a bio has been
258   * cloned into, completing the original io if necc.
259   */
260 -static inline void dec_pending(struct dm_io *io, int error)
261 +static void dec_pending(struct dm_io *io, int error)
262  {
263         if (error)
264                 io->error = error;
265 diff -Nur linux-2.6.15.1/drivers/md/dm-crypt.c linux-2.6.15.1-owrt/drivers/md/dm-crypt.c
266 --- linux-2.6.15.1/drivers/md/dm-crypt.c        2006-01-15 07:16:02.000000000 +0100
267 +++ linux-2.6.15.1-owrt/drivers/md/dm-crypt.c   2006-01-27 15:08:36.000000000 +0100
268 @@ -228,7 +228,7 @@
269  };
270  
271  
272 -static inline int
273 +static int
274  crypt_convert_scatterlist(struct crypt_config *cc, struct scatterlist *out,
275                            struct scatterlist *in, unsigned int length,
276                            int write, sector_t sector)
277 diff -Nur linux-2.6.15.1/drivers/md/dm-ioctl.c linux-2.6.15.1-owrt/drivers/md/dm-ioctl.c
278 --- linux-2.6.15.1/drivers/md/dm-ioctl.c        2006-01-15 07:16:02.000000000 +0100
279 +++ linux-2.6.15.1-owrt/drivers/md/dm-ioctl.c   2006-01-27 15:08:36.000000000 +0100
280 @@ -588,7 +588,7 @@
281  /*
282   * Always use UUID for lookups if it's present, otherwise use name or dev.
283   */
284 -static inline struct hash_cell *__find_device_hash_cell(struct dm_ioctl *param)
285 +static struct hash_cell *__find_device_hash_cell(struct dm_ioctl *param)
286  {
287         if (*param->uuid)
288                 return __get_uuid_cell(param->uuid);
289 @@ -598,7 +598,7 @@
290                 return dm_get_mdptr(huge_decode_dev(param->dev));
291  }
292  
293 -static inline struct mapped_device *find_device(struct dm_ioctl *param)
294 +static struct mapped_device *find_device(struct dm_ioctl *param)
295  {
296         struct hash_cell *hc;
297         struct mapped_device *md = NULL;
298 diff -Nur linux-2.6.15.1/drivers/md/dm-snap.c linux-2.6.15.1-owrt/drivers/md/dm-snap.c
299 --- linux-2.6.15.1/drivers/md/dm-snap.c 2006-01-15 07:16:02.000000000 +0100
300 +++ linux-2.6.15.1-owrt/drivers/md/dm-snap.c    2006-01-27 15:08:36.000000000 +0100
301 @@ -677,7 +677,7 @@
302  /*
303   * Dispatches the copy operation to kcopyd.
304   */
305 -static inline void start_copy(struct pending_exception *pe)
306 +static void start_copy(struct pending_exception *pe)
307  {
308         struct dm_snapshot *s = pe->snap;
309         struct io_region src, dest;
310 diff -Nur linux-2.6.15.1/drivers/md/raid10.c linux-2.6.15.1-owrt/drivers/md/raid10.c
311 --- linux-2.6.15.1/drivers/md/raid10.c  2006-01-15 07:16:02.000000000 +0100
312 +++ linux-2.6.15.1-owrt/drivers/md/raid10.c     2006-01-27 15:08:36.000000000 +0100
313 @@ -173,7 +173,7 @@
314         }
315  }
316  
317 -static inline void free_r10bio(r10bio_t *r10_bio)
318 +static void free_r10bio(r10bio_t *r10_bio)
319  {
320         unsigned long flags;
321  
322 @@ -194,7 +194,7 @@
323         mempool_free(r10_bio, conf->r10bio_pool);
324  }
325  
326 -static inline void put_buf(r10bio_t *r10_bio)
327 +static void put_buf(r10bio_t *r10_bio)
328  {
329         conf_t *conf = mddev_to_conf(r10_bio->mddev);
330         unsigned long flags;
331 diff -Nur linux-2.6.15.1/drivers/md/raid1.c linux-2.6.15.1-owrt/drivers/md/raid1.c
332 --- linux-2.6.15.1/drivers/md/raid1.c   2006-01-15 07:16:02.000000000 +0100
333 +++ linux-2.6.15.1-owrt/drivers/md/raid1.c      2006-01-27 15:08:36.000000000 +0100
334 @@ -158,7 +158,7 @@
335         }
336  }
337  
338 -static inline void free_r1bio(r1bio_t *r1_bio)
339 +static void free_r1bio(r1bio_t *r1_bio)
340  {
341         unsigned long flags;
342  
343 @@ -179,7 +179,7 @@
344         mempool_free(r1_bio, conf->r1bio_pool);
345  }
346  
347 -static inline void put_buf(r1bio_t *r1_bio)
348 +static void put_buf(r1bio_t *r1_bio)
349  {
350         conf_t *conf = mddev_to_conf(r1_bio->mddev);
351         unsigned long flags;
352 diff -Nur linux-2.6.15.1/drivers/md/raid5.c linux-2.6.15.1-owrt/drivers/md/raid5.c
353 --- linux-2.6.15.1/drivers/md/raid5.c   2006-01-15 07:16:02.000000000 +0100
354 +++ linux-2.6.15.1-owrt/drivers/md/raid5.c      2006-01-27 15:08:36.000000000 +0100
355 @@ -71,7 +71,7 @@
356  
357  static void print_raid5_conf (raid5_conf_t *conf);
358  
359 -static inline void __release_stripe(raid5_conf_t *conf, struct stripe_head *sh)
360 +static void __release_stripe(raid5_conf_t *conf, struct stripe_head *sh)
361  {
362         if (atomic_dec_and_test(&sh->count)) {
363                 if (!list_empty(&sh->lru))
364 @@ -188,7 +188,7 @@
365  
366  static void raid5_build_block (struct stripe_head *sh, int i);
367  
368 -static inline void init_stripe(struct stripe_head *sh, sector_t sector, int pd_idx)
369 +static void init_stripe(struct stripe_head *sh, sector_t sector, int pd_idx)
370  {
371         raid5_conf_t *conf = sh->raid_conf;
372         int disks = conf->raid_disks, i;
373 @@ -1421,7 +1421,7 @@
374         }
375  }
376  
377 -static inline void raid5_activate_delayed(raid5_conf_t *conf)
378 +static void raid5_activate_delayed(raid5_conf_t *conf)
379  {
380         if (atomic_read(&conf->preread_active_stripes) < IO_THRESHOLD) {
381                 while (!list_empty(&conf->delayed_list)) {
382 @@ -1437,7 +1437,7 @@
383         }
384  }
385  
386 -static inline void activate_bit_delay(raid5_conf_t *conf)
387 +static void activate_bit_delay(raid5_conf_t *conf)
388  {
389         /* device_lock is held */
390         struct list_head head;
391 diff -Nur linux-2.6.15.1/drivers/md/raid6main.c linux-2.6.15.1-owrt/drivers/md/raid6main.c
392 --- linux-2.6.15.1/drivers/md/raid6main.c       2006-01-15 07:16:02.000000000 +0100
393 +++ linux-2.6.15.1-owrt/drivers/md/raid6main.c  2006-01-27 15:08:36.000000000 +0100
394 @@ -90,7 +90,7 @@
395  
396  static void print_raid6_conf (raid6_conf_t *conf);
397  
398 -static inline void __release_stripe(raid6_conf_t *conf, struct stripe_head *sh)
399 +static void __release_stripe(raid6_conf_t *conf, struct stripe_head *sh)
400  {
401         if (atomic_dec_and_test(&sh->count)) {
402                 if (!list_empty(&sh->lru))
403 @@ -207,7 +207,7 @@
404  
405  static void raid6_build_block (struct stripe_head *sh, int i);
406  
407 -static inline void init_stripe(struct stripe_head *sh, sector_t sector, int pd_idx)
408 +static void init_stripe(struct stripe_head *sh, sector_t sector, int pd_idx)
409  {
410         raid6_conf_t *conf = sh->raid_conf;
411         int disks = conf->raid_disks, i;
412 @@ -1501,7 +1501,7 @@
413         }
414  }
415  
416 -static inline void raid6_activate_delayed(raid6_conf_t *conf)
417 +static void raid6_activate_delayed(raid6_conf_t *conf)
418  {
419         if (atomic_read(&conf->preread_active_stripes) < IO_THRESHOLD) {
420                 while (!list_empty(&conf->delayed_list)) {
421 @@ -1517,7 +1517,7 @@
422         }
423  }
424  
425 -static inline void activate_bit_delay(raid6_conf_t *conf)
426 +static void activate_bit_delay(raid6_conf_t *conf)
427  {
428         /* device_lock is held */
429         struct list_head head;
430 diff -Nur linux-2.6.15.1/drivers/media/video/tvp5150.c linux-2.6.15.1-owrt/drivers/media/video/tvp5150.c
431 --- linux-2.6.15.1/drivers/media/video/tvp5150.c        2006-01-15 07:16:02.000000000 +0100
432 +++ linux-2.6.15.1-owrt/drivers/media/video/tvp5150.c   2006-01-27 15:08:36.000000000 +0100
433 @@ -87,7 +87,7 @@
434         int sat;
435  };
436  
437 -static inline int tvp5150_read(struct i2c_client *c, unsigned char addr)
438 +static int tvp5150_read(struct i2c_client *c, unsigned char addr)
439  {
440         unsigned char buffer[1];
441         int rc;
442 diff -Nur linux-2.6.15.1/drivers/message/fusion/mptlan.c linux-2.6.15.1-owrt/drivers/message/fusion/mptlan.c
443 --- linux-2.6.15.1/drivers/message/fusion/mptlan.c      2006-01-15 07:16:02.000000000 +0100
444 +++ linux-2.6.15.1-owrt/drivers/message/fusion/mptlan.c 2006-01-27 15:08:36.000000000 +0100
445 @@ -848,7 +848,7 @@
446  }
447  
448  /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
449 -static inline void
450 +static void
451  mpt_lan_wake_post_buckets_task(struct net_device *dev, int priority)
452  /*
453   * @priority: 0 = put it on the timer queue, 1 = put it on the immediate queue
454 @@ -870,7 +870,7 @@
455  }
456  
457  /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
458 -static inline int
459 +static int
460  mpt_lan_receive_skb(struct net_device *dev, struct sk_buff *skb)
461  {
462         struct mpt_lan_priv *priv = dev->priv;
463 diff -Nur linux-2.6.15.1/drivers/mtd/devices/doc2000.c linux-2.6.15.1-owrt/drivers/mtd/devices/doc2000.c
464 --- linux-2.6.15.1/drivers/mtd/devices/doc2000.c        2006-01-15 07:16:02.000000000 +0100
465 +++ linux-2.6.15.1-owrt/drivers/mtd/devices/doc2000.c   2006-01-27 15:08:36.000000000 +0100
466 @@ -138,7 +138,7 @@
467     bypass the internal pipeline. Each of 4 delay cycles (read from the NOP register) is
468     required after writing to CDSN Control register, see Software Requirement 11.4 item 3. */
469  
470 -static inline int DoC_Command(struct DiskOnChip *doc, unsigned char command,
471 +static int DoC_Command(struct DiskOnChip *doc, unsigned char command,
472                               unsigned char xtraflags)
473  {
474         void __iomem *docptr = doc->virtadr;
475 diff -Nur linux-2.6.15.1/drivers/mtd/devices/doc2001.c linux-2.6.15.1-owrt/drivers/mtd/devices/doc2001.c
476 --- linux-2.6.15.1/drivers/mtd/devices/doc2001.c        2006-01-15 07:16:02.000000000 +0100
477 +++ linux-2.6.15.1-owrt/drivers/mtd/devices/doc2001.c   2006-01-27 15:08:36.000000000 +0100
478 @@ -103,7 +103,7 @@
479     with the internal pipeline. Each of 4 delay cycles (read from the NOP register) is
480     required after writing to CDSN Control register, see Software Requirement 11.4 item 3. */
481  
482 -static inline void DoC_Command(void __iomem * docptr, unsigned char command,
483 +static void DoC_Command(void __iomem * docptr, unsigned char command,
484                                unsigned char xtraflags)
485  {
486         /* Assert the CLE (Command Latch Enable) line to the flash chip */
487 diff -Nur linux-2.6.15.1/drivers/mtd/devices/doc2001plus.c linux-2.6.15.1-owrt/drivers/mtd/devices/doc2001plus.c
488 --- linux-2.6.15.1/drivers/mtd/devices/doc2001plus.c    2006-01-15 07:16:02.000000000 +0100
489 +++ linux-2.6.15.1-owrt/drivers/mtd/devices/doc2001plus.c       2006-01-27 15:08:36.000000000 +0100
490 @@ -118,7 +118,7 @@
491  /* DoC_Command: Send a flash command to the flash chip through the Flash
492   * command register. Need 2 Write Pipeline Terminates to complete send.
493   */
494 -static inline void DoC_Command(void __iomem * docptr, unsigned char command,
495 +static void DoC_Command(void __iomem * docptr, unsigned char command,
496                                unsigned char xtraflags)
497  {
498         WriteDOC(command, docptr, Mplus_FlashCmd);
499 diff -Nur linux-2.6.15.1/drivers/mtd/nand/diskonchip.c linux-2.6.15.1-owrt/drivers/mtd/nand/diskonchip.c
500 --- linux-2.6.15.1/drivers/mtd/nand/diskonchip.c        2006-01-15 07:16:02.000000000 +0100
501 +++ linux-2.6.15.1-owrt/drivers/mtd/nand/diskonchip.c   2006-01-27 15:08:36.000000000 +0100
502 @@ -1506,7 +1506,7 @@
503         return 1;
504  }
505  
506 -static inline int __init doc_probe(unsigned long physadr)
507 +static int __init doc_probe(unsigned long physadr)
508  {
509         unsigned char ChipID;
510         struct mtd_info *mtd;
511 diff -Nur linux-2.6.15.1/drivers/net/e100.c linux-2.6.15.1-owrt/drivers/net/e100.c
512 --- linux-2.6.15.1/drivers/net/e100.c   2006-01-15 07:16:02.000000000 +0100
513 +++ linux-2.6.15.1-owrt/drivers/net/e100.c      2006-01-27 15:08:36.000000000 +0100
514 @@ -587,7 +587,7 @@
515         (void)readb(&nic->csr->scb.status);
516  }
517  
518 -static inline void e100_enable_irq(struct nic *nic)
519 +static void e100_enable_irq(struct nic *nic)
520  {
521         unsigned long flags;
522  
523 @@ -597,7 +597,7 @@
524         e100_write_flush(nic);
525  }
526  
527 -static inline void e100_disable_irq(struct nic *nic)
528 +static void e100_disable_irq(struct nic *nic)
529  {
530         unsigned long flags;
531  
532 @@ -786,7 +786,7 @@
533  
534  #define E100_WAIT_SCB_TIMEOUT 20000 /* we might have to wait 100ms!!! */
535  #define E100_WAIT_SCB_FAST 20       /* delay like the old code */
536 -static inline int e100_exec_cmd(struct nic *nic, u8 cmd, dma_addr_t dma_addr)
537 +static int e100_exec_cmd(struct nic *nic, u8 cmd, dma_addr_t dma_addr)
538  {
539         unsigned long flags;
540         unsigned int i;
541 @@ -817,7 +817,7 @@
542         return err;
543  }
544  
545 -static inline int e100_exec_cb(struct nic *nic, struct sk_buff *skb,
546 +static int e100_exec_cb(struct nic *nic, struct sk_buff *skb,
547         void (*cb_prepare)(struct nic *, struct cb *, struct sk_buff *))
548  {
549         struct cb *cb;
550 @@ -1542,7 +1542,7 @@
551         mod_timer(&nic->watchdog, jiffies + E100_WATCHDOG_PERIOD);
552  }
553  
554 -static inline void e100_xmit_prepare(struct nic *nic, struct cb *cb,
555 +static void e100_xmit_prepare(struct nic *nic, struct cb *cb,
556         struct sk_buff *skb)
557  {
558         cb->command = nic->tx_command;
559 @@ -1592,7 +1592,7 @@
560         return 0;
561  }
562  
563 -static inline int e100_tx_clean(struct nic *nic)
564 +static int e100_tx_clean(struct nic *nic)
565  {
566         struct cb *cb;
567         int tx_cleaned = 0;
568 @@ -1703,7 +1703,7 @@
569  }
570  
571  #define RFD_BUF_LEN (sizeof(struct rfd) + VLAN_ETH_FRAME_LEN)
572 -static inline int e100_rx_alloc_skb(struct nic *nic, struct rx *rx)
573 +static int e100_rx_alloc_skb(struct nic *nic, struct rx *rx)
574  {
575         if(!(rx->skb = dev_alloc_skb(RFD_BUF_LEN + NET_IP_ALIGN)))
576                 return -ENOMEM;
577 @@ -1737,7 +1737,7 @@
578         return 0;
579  }
580  
581 -static inline int e100_rx_indicate(struct nic *nic, struct rx *rx,
582 +static int e100_rx_indicate(struct nic *nic, struct rx *rx,
583         unsigned int *work_done, unsigned int work_to_do)
584  {
585         struct sk_buff *skb = rx->skb;
586 @@ -1797,7 +1797,7 @@
587         return 0;
588  }
589  
590 -static inline void e100_rx_clean(struct nic *nic, unsigned int *work_done,
591 +static void e100_rx_clean(struct nic *nic, unsigned int *work_done,
592         unsigned int work_to_do)
593  {
594         struct rx *rx;
595 diff -Nur linux-2.6.15.1/drivers/net/sb1000.c linux-2.6.15.1-owrt/drivers/net/sb1000.c
596 --- linux-2.6.15.1/drivers/net/sb1000.c 2006-01-15 07:16:02.000000000 +0100
597 +++ linux-2.6.15.1-owrt/drivers/net/sb1000.c    2006-01-27 15:08:36.000000000 +0100
598 @@ -94,7 +94,7 @@
599         const char* name);
600  static inline int card_wait_for_ready(const int ioaddr[], const char* name,
601         unsigned char in[]);
602 -static inline int card_send_command(const int ioaddr[], const char* name,
603 +static int card_send_command(const int ioaddr[], const char* name,
604         const unsigned char out[], unsigned char in[]);
605  
606  /* SB1000 hardware routines to be used during frame rx interrupt */
607 @@ -309,7 +309,7 @@
608  }
609  
610  /* Card Send Command (cannot be used during an interrupt) */
611 -static inline int
612 +static int
613  card_send_command(const int ioaddr[], const char* name,
614         const unsigned char out[], unsigned char in[])
615  {
616 diff -Nur linux-2.6.15.1/drivers/net/wireless/hostap/hostap_80211_rx.c linux-2.6.15.1-owrt/drivers/net/wireless/hostap/hostap_80211_rx.c
617 --- linux-2.6.15.1/drivers/net/wireless/hostap/hostap_80211_rx.c        2006-01-15 07:16:02.000000000 +0100
618 +++ linux-2.6.15.1-owrt/drivers/net/wireless/hostap/hostap_80211_rx.c   2006-01-27 15:08:36.000000000 +0100
619 @@ -435,7 +435,7 @@
620  }
621  
622  
623 -static inline int
624 +static int
625  hostap_rx_frame_mgmt(local_info_t *local, struct sk_buff *skb,
626                      struct hostap_80211_rx_status *rx_stats, u16 type,
627                      u16 stype)
628 @@ -499,7 +499,7 @@
629  
630  
631  /* Called only as a tasklet (software IRQ) */
632 -static inline struct net_device *prism2_rx_get_wds(local_info_t *local,
633 +static struct net_device *prism2_rx_get_wds(local_info_t *local,
634                                                    u8 *addr)
635  {
636         struct hostap_interface *iface = NULL;
637 @@ -519,7 +519,7 @@
638  }
639  
640  
641 -static inline int
642 +static int
643  hostap_rx_frame_wds(local_info_t *local, struct ieee80211_hdr_4addr *hdr,
644                     u16 fc, struct net_device **wds)
645  {
646 @@ -615,7 +615,7 @@
647  
648  
649  /* Called only as a tasklet (software IRQ) */
650 -static inline int
651 +static int
652  hostap_rx_frame_decrypt(local_info_t *local, struct sk_buff *skb,
653                         struct ieee80211_crypt_data *crypt)
654  {
655 @@ -654,7 +654,7 @@
656  
657  
658  /* Called only as a tasklet (software IRQ) */
659 -static inline int
660 +static int
661  hostap_rx_frame_decrypt_msdu(local_info_t *local, struct sk_buff *skb,
662                              int keyidx, struct ieee80211_crypt_data *crypt)
663  {
664 diff -Nur linux-2.6.15.1/drivers/net/wireless/hostap/hostap_hw.c linux-2.6.15.1-owrt/drivers/net/wireless/hostap/hostap_hw.c
665 --- linux-2.6.15.1/drivers/net/wireless/hostap/hostap_hw.c      2006-01-15 07:16:02.000000000 +0100
666 +++ linux-2.6.15.1-owrt/drivers/net/wireless/hostap/hostap_hw.c 2006-01-27 15:08:36.000000000 +0100
667 @@ -253,7 +253,7 @@
668   * @dev: pointer to net_device
669   * @entry: Prism2 command queue entry to be issued
670   */
671 -static inline int hfa384x_cmd_issue(struct net_device *dev,
672 +static int hfa384x_cmd_issue(struct net_device *dev,
673                                     struct hostap_cmd_queue *entry)
674  {
675         struct hostap_interface *iface;
676 @@ -743,7 +743,7 @@
677  }
678  
679  
680 -static inline int hfa384x_wait_offset(struct net_device *dev, u16 o_off)
681 +static int hfa384x_wait_offset(struct net_device *dev, u16 o_off)
682  {
683         int tries = HFA384X_BAP_BUSY_TIMEOUT;
684         int res = HFA384X_INW(o_off) & HFA384X_OFFSET_BUSY;
685 @@ -1904,7 +1904,7 @@
686   * and will try to get the correct fid eventually. */
687  #define EXTRA_FID_READ_TESTS
688  
689 -static inline u16 prism2_read_fid_reg(struct net_device *dev, u16 reg)
690 +static u16 prism2_read_fid_reg(struct net_device *dev, u16 reg)
691  {
692  #ifdef EXTRA_FID_READ_TESTS
693         u16 val, val2, val3;
694 @@ -2581,7 +2581,7 @@
695  
696  
697  /* Called only from hardware IRQ */
698 -static inline void prism2_check_magic(local_info_t *local)
699 +static void prism2_check_magic(local_info_t *local)
700  {
701         /* at least PCI Prism2.5 with bus mastering seems to sometimes
702          * return 0x0000 in SWSUPPORT0 for unknown reason, but re-reading the
703 diff -Nur linux-2.6.15.1/drivers/net/wireless/ipw2100.c linux-2.6.15.1-owrt/drivers/net/wireless/ipw2100.c
704 --- linux-2.6.15.1/drivers/net/wireless/ipw2100.c       2006-01-15 07:16:02.000000000 +0100
705 +++ linux-2.6.15.1-owrt/drivers/net/wireless/ipw2100.c  2006-01-27 15:08:36.000000000 +0100
706 @@ -411,7 +411,7 @@
707         write_register(dev, IPW_REG_AUTOINCREMENT_DATA, val);
708  }
709  
710 -static inline void write_nic_memory(struct net_device *dev, u32 addr, u32 len,
711 +static void write_nic_memory(struct net_device *dev, u32 addr, u32 len,
712                                     const u8 * buf)
713  {
714         u32 aligned_addr;
715 @@ -449,7 +449,7 @@
716                                     *buf);
717  }
718  
719 -static inline void read_nic_memory(struct net_device *dev, u32 addr, u32 len,
720 +static void read_nic_memory(struct net_device *dev, u32 addr, u32 len,
721                                    u8 * buf)
722  {
723         u32 aligned_addr;
724 @@ -657,7 +657,7 @@
725  
726  #define MAX_RESET_BACKOFF 10
727  
728 -static inline void schedule_reset(struct ipw2100_priv *priv)
729 +static void schedule_reset(struct ipw2100_priv *priv)
730  {
731         unsigned long now = get_seconds();
732  
733 @@ -1130,7 +1130,7 @@
734         write_register(priv->net_dev, IPW_REG_GPIO, reg);
735  }
736  
737 -static inline int rf_kill_active(struct ipw2100_priv *priv)
738 +static int rf_kill_active(struct ipw2100_priv *priv)
739  {
740  #define MAX_RF_KILL_CHECKS 5
741  #define RF_KILL_CHECK_DELAY 40
742 @@ -2177,7 +2177,7 @@
743  };
744  #endif
745  
746 -static inline int ipw2100_alloc_skb(struct ipw2100_priv *priv,
747 +static int ipw2100_alloc_skb(struct ipw2100_priv *priv,
748                                     struct ipw2100_rx_packet *packet)
749  {
750         packet->skb = dev_alloc_skb(sizeof(struct ipw2100_rx));
751 @@ -2201,7 +2201,7 @@
752  #define SEARCH_SNAPSHOT 1
753  
754  #define SNAPSHOT_ADDR(ofs) (priv->snapshot[((ofs) >> 12) & 0xff] + ((ofs) & 0xfff))
755 -static inline int ipw2100_snapshot_alloc(struct ipw2100_priv *priv)
756 +static int ipw2100_snapshot_alloc(struct ipw2100_priv *priv)
757  {
758         int i;
759         if (priv->snapshot[0])
760 @@ -2221,7 +2221,7 @@
761         return 1;
762  }
763  
764 -static inline void ipw2100_snapshot_free(struct ipw2100_priv *priv)
765 +static void ipw2100_snapshot_free(struct ipw2100_priv *priv)
766  {
767         int i;
768         if (!priv->snapshot[0])
769 @@ -2231,7 +2231,7 @@
770         priv->snapshot[0] = NULL;
771  }
772  
773 -static inline u32 ipw2100_match_buf(struct ipw2100_priv *priv, u8 * in_buf,
774 +static u32 ipw2100_match_buf(struct ipw2100_priv *priv, u8 * in_buf,
775                                     size_t len, int mode)
776  {
777         u32 i, j;
778 @@ -2288,7 +2288,7 @@
779  static u8 packet_data[IPW_RX_NIC_BUFFER_LENGTH];
780  #endif
781  
782 -static inline void ipw2100_corruption_detected(struct ipw2100_priv *priv, int i)
783 +static void ipw2100_corruption_detected(struct ipw2100_priv *priv, int i)
784  {
785  #ifdef CONFIG_IPW_DEBUG_C3
786         struct ipw2100_status *status = &priv->status_queue.drv[i];
787 @@ -2346,7 +2346,7 @@
788         schedule_reset(priv);
789  }
790  
791 -static inline void isr_rx(struct ipw2100_priv *priv, int i,
792 +static void isr_rx(struct ipw2100_priv *priv, int i,
793                           struct ieee80211_rx_stats *stats)
794  {
795         struct ipw2100_status *status = &priv->status_queue.drv[i];
796 @@ -2425,7 +2425,7 @@
797         priv->rx_queue.drv[i].host_addr = packet->dma_addr;
798  }
799  
800 -static inline int ipw2100_corruption_check(struct ipw2100_priv *priv, int i)
801 +static int ipw2100_corruption_check(struct ipw2100_priv *priv, int i)
802  {
803         struct ipw2100_status *status = &priv->status_queue.drv[i];
804         struct ipw2100_rx *u = priv->rx_buffers[i].rxp;
805 @@ -2481,7 +2481,7 @@
806   * The WRITE index is cached in the variable 'priv->rx_queue.next'.
807   *
808   */
809 -static inline void __ipw2100_rx_process(struct ipw2100_priv *priv)
810 +static void __ipw2100_rx_process(struct ipw2100_priv *priv)
811  {
812         struct ipw2100_bd_queue *rxq = &priv->rx_queue;
813         struct ipw2100_status_queue *sq = &priv->status_queue;
814 @@ -2634,7 +2634,7 @@
815   * for use by future command and data packets.
816   *
817   */
818 -static inline int __ipw2100_tx_process(struct ipw2100_priv *priv)
819 +static int __ipw2100_tx_process(struct ipw2100_priv *priv)
820  {
821         struct ipw2100_bd_queue *txq = &priv->tx_queue;
822         struct ipw2100_bd *tbd;
823 diff -Nur linux-2.6.15.1/drivers/net/wireless/ipw2200.c linux-2.6.15.1-owrt/drivers/net/wireless/ipw2200.c
824 --- linux-2.6.15.1/drivers/net/wireless/ipw2200.c       2006-01-15 07:16:02.000000000 +0100
825 +++ linux-2.6.15.1-owrt/drivers/net/wireless/ipw2200.c  2006-01-27 15:08:36.000000000 +0100
826 @@ -813,7 +813,7 @@
827         up(&priv->sem);
828  }
829  
830 -static inline void __ipw_led_activity_on(struct ipw_priv *priv)
831 +static void __ipw_led_activity_on(struct ipw_priv *priv)
832  {
833         u32 led;
834  
835 @@ -1508,7 +1508,7 @@
836  static DEVICE_ATTR(direct_dword, S_IWUSR | S_IRUGO,
837                    show_direct_dword, store_direct_dword);
838  
839 -static inline int rf_kill_active(struct ipw_priv *priv)
840 +static int rf_kill_active(struct ipw_priv *priv)
841  {
842         if (0 == (ipw_read32(priv, 0x30) & 0x10000))
843                 priv->status |= STATUS_RF_KILL_HW;
844 @@ -2359,7 +2359,7 @@
845  }
846  
847  /* perform a chip select operation */
848 -static inline void eeprom_cs(struct ipw_priv *priv)
849 +static void eeprom_cs(struct ipw_priv *priv)
850  {
851         eeprom_write_reg(priv, 0);
852         eeprom_write_reg(priv, EEPROM_BIT_CS);
853 @@ -2368,7 +2368,7 @@
854  }
855  
856  /* perform a chip select operation */
857 -static inline void eeprom_disable_cs(struct ipw_priv *priv)
858 +static void eeprom_disable_cs(struct ipw_priv *priv)
859  {
860         eeprom_write_reg(priv, EEPROM_BIT_CS);
861         eeprom_write_reg(priv, 0);
862 @@ -2475,7 +2475,7 @@
863         IPW_DEBUG_TRACE("<<\n");
864  }
865  
866 -static inline void ipw_zero_memory(struct ipw_priv *priv, u32 start, u32 count)
867 +static void ipw_zero_memory(struct ipw_priv *priv, u32 start, u32 count)
868  {
869         count >>= 2;
870         if (!count)
871 @@ -2772,7 +2772,7 @@
872         return ipw_read32(priv, 0x90) == 0xd55555d5;
873  }
874  
875 -static inline int ipw_poll_bit(struct ipw_priv *priv, u32 addr, u32 mask,
876 +static int ipw_poll_bit(struct ipw_priv *priv, u32 addr, u32 mask,
877                                int timeout)
878  {
879         int i = 0;
880 @@ -3150,7 +3150,7 @@
881  
882  #define IPW_RX_BUF_SIZE (3000)
883  
884 -static inline void ipw_rx_queue_reset(struct ipw_priv *priv,
885 +static void ipw_rx_queue_reset(struct ipw_priv *priv,
886                                       struct ipw_rx_queue *rxq)
887  {
888         unsigned long flags;
889 @@ -3608,7 +3608,7 @@
890         ipw_queue_tx_free(priv, &priv->txq[3]);
891  }
892  
893 -static inline void ipw_create_bssid(struct ipw_priv *priv, u8 * bssid)
894 +static void ipw_create_bssid(struct ipw_priv *priv, u8 * bssid)
895  {
896         /* First 3 bytes are manufacturer */
897         bssid[0] = priv->mac_addr[0];
898 @@ -3622,7 +3622,7 @@
899         bssid[0] |= 0x02;       /* set local assignment bit (IEEE802) */
900  }
901  
902 -static inline u8 ipw_add_station(struct ipw_priv *priv, u8 * bssid)
903 +static u8 ipw_add_station(struct ipw_priv *priv, u8 * bssid)
904  {
905         struct ipw_station_entry entry;
906         int i;
907 @@ -3655,7 +3655,7 @@
908         return i;
909  }
910  
911 -static inline u8 ipw_find_station(struct ipw_priv *priv, u8 * bssid)
912 +static u8 ipw_find_station(struct ipw_priv *priv, u8 * bssid)
913  {
914         int i;
915  
916 @@ -3794,7 +3794,7 @@
917         memset(avg, 0, sizeof(*avg));
918  }
919  
920 -static void inline average_add(struct average *avg, s16 val)
921 +static void average_add(struct average *avg, s16 val)
922  {
923         avg->sum -= avg->entries[avg->pos];
924         avg->sum += val;
925 @@ -3805,7 +3805,7 @@
926         }
927  }
928  
929 -static s16 inline average_value(struct average *avg)
930 +static s16 average_value(struct average *avg)
931  {
932         if (!unlikely(avg->init)) {
933                 if (avg->pos)
934 @@ -3847,7 +3847,7 @@
935  
936  }
937  
938 -static inline u32 ipw_get_max_rate(struct ipw_priv *priv)
939 +static u32 ipw_get_max_rate(struct ipw_priv *priv)
940  {
941         u32 i = 0x80000000;
942         u32 mask = priv->rates_mask;
943 @@ -4087,7 +4087,7 @@
944   * roaming_threshold -> disassociate_threshold, scan and roam for better signal.
945   * Above disassociate threshold, give up and stop scanning.
946   * Roaming is disabled if disassociate_threshold <= roaming_threshold  */
947 -static inline void ipw_handle_missed_beacon(struct ipw_priv *priv,
948 +static void ipw_handle_missed_beacon(struct ipw_priv *priv,
949                                             int missed_count)
950  {
951         priv->notif_missed_beacons = missed_count;
952 @@ -4157,7 +4157,7 @@
953   * Handle host notification packet.
954   * Called from interrupt routine
955   */
956 -static inline void ipw_rx_notification(struct ipw_priv *priv,
957 +static void ipw_rx_notification(struct ipw_priv *priv,
958                                        struct ipw_rx_notification *notif)
959  {
960         notif->size = le16_to_cpu(notif->size);
961 @@ -5096,7 +5096,7 @@
962         return 1;
963  }
964  
965 -static inline void ipw_copy_rates(struct ipw_supported_rates *dest,
966 +static void ipw_copy_rates(struct ipw_supported_rates *dest,
967                                   const struct ipw_supported_rates *src)
968  {
969         u8 i;
970 @@ -5857,7 +5857,7 @@
971  #define ipw_debug_config(x) do {} while (0)
972  #endif
973  
974 -static inline void ipw_set_fixed_rate(struct ipw_priv *priv, int mode)
975 +static void ipw_set_fixed_rate(struct ipw_priv *priv, int mode)
976  {
977         /* TODO: Verify that this works... */
978         struct ipw_fixed_rate fr = {
979 @@ -7636,7 +7636,7 @@
980  }
981  #endif
982  
983 -static inline int is_network_packet(struct ipw_priv *priv,
984 +static int is_network_packet(struct ipw_priv *priv,
985                                     struct ieee80211_hdr_4addr *header)
986  {
987         /* Filter incoming packets to determine if they are targetted toward
988 @@ -7676,7 +7676,7 @@
989  
990  #define IPW_PACKET_RETRY_TIME HZ
991  
992 -static inline int is_duplicate_packet(struct ipw_priv *priv,
993 +static  int is_duplicate_packet(struct ipw_priv *priv,
994                                       struct ieee80211_hdr_4addr *header)
995  {
996         u16 sc = le16_to_cpu(header->seq_ctl);
997 @@ -9585,7 +9585,7 @@
998  
999  /* net device stuff */
1000  
1001 -static inline void init_sys_config(struct ipw_sys_config *sys_config)
1002 +static  void init_sys_config(struct ipw_sys_config *sys_config)
1003  {
1004         memset(sys_config, 0, sizeof(struct ipw_sys_config));
1005         sys_config->bt_coexistence = 1; /* We may need to look into prvStaBtConfig */
1006 @@ -9631,7 +9631,7 @@
1007  we need to heavily modify the ieee80211_skb_to_txb.
1008  */
1009  
1010 -static inline int ipw_tx_skb(struct ipw_priv *priv, struct ieee80211_txb *txb,
1011 +static int ipw_tx_skb(struct ipw_priv *priv, struct ieee80211_txb *txb,
1012                              int pri)
1013  {
1014         struct ieee80211_hdr_3addr *hdr = (struct ieee80211_hdr_3addr *)
1015 diff -Nur linux-2.6.15.1/drivers/net/wireless/wavelan.c linux-2.6.15.1-owrt/drivers/net/wireless/wavelan.c
1016 --- linux-2.6.15.1/drivers/net/wireless/wavelan.c       2006-01-15 07:16:02.000000000 +0100
1017 +++ linux-2.6.15.1-owrt/drivers/net/wireless/wavelan.c  2006-01-27 15:08:36.000000000 +0100
1018 @@ -102,7 +102,7 @@
1019   * Write to card's Host Adapter Command Register. Include a delay for
1020   * those times when it is needed.
1021   */
1022 -static inline void hacr_write_slow(unsigned long ioaddr, u16 hacr)
1023 +static void hacr_write_slow(unsigned long ioaddr, u16 hacr)
1024  {
1025         hacr_write(ioaddr, hacr);
1026         /* delay might only be needed sometimes */
1027 @@ -242,7 +242,7 @@
1028   * The Windows drivers don't use the CRC, but the AP and the PtP tool
1029   * depend on it.
1030   */
1031 -static inline u16 psa_crc(u8 * psa,    /* The PSA */
1032 +static u16 psa_crc(u8 * psa,   /* The PSA */
1033                               int size)
1034  {                              /* Number of short for CRC */
1035         int byte_cnt;           /* Loop on the PSA */
1036 @@ -310,7 +310,7 @@
1037  /*
1038   * Write 1 byte to the MMC.
1039   */
1040 -static inline void mmc_out(unsigned long ioaddr, u16 o, u8 d)
1041 +static void mmc_out(unsigned long ioaddr, u16 o, u8 d)
1042  {
1043         int count = 0;
1044  
1045 @@ -326,7 +326,7 @@
1046   * Routine to write bytes to the Modem Management Controller.
1047   * We start at the end because it is the way it should be!
1048   */
1049 -static inline void mmc_write(unsigned long ioaddr, u8 o, u8 * b, int n)
1050 +static void mmc_write(unsigned long ioaddr, u8 o, u8 * b, int n)
1051  {
1052         o += n;
1053         b += n;
1054 @@ -340,7 +340,7 @@
1055   * Read a byte from the MMC.
1056   * Optimised version for 1 byte, avoid using memory.
1057   */
1058 -static inline u8 mmc_in(unsigned long ioaddr, u16 o)
1059 +static u8 mmc_in(unsigned long ioaddr, u16 o)
1060  {
1061         int count = 0;
1062  
1063 @@ -587,7 +587,7 @@
1064   * Set channel attention bit and busy wait until command has
1065   * completed, then acknowledge completion of the command.
1066   */
1067 -static inline int wv_synchronous_cmd(struct net_device * dev, const char *str)
1068 +static int wv_synchronous_cmd(struct net_device * dev, const char *str)
1069  {
1070         net_local *lp = (net_local *) dev->priv;
1071         unsigned long ioaddr = dev->base_addr;
1072 @@ -633,7 +633,7 @@
1073   * Configuration commands completion interrupt.
1074   * Check if done, and if OK.
1075   */
1076 -static inline int
1077 +static int
1078  wv_config_complete(struct net_device * dev, unsigned long ioaddr, net_local * lp)
1079  {
1080         unsigned short mcs_addr;
1081 @@ -843,7 +843,7 @@
1082   * wavelan_interrupt is not an option), so you may experience
1083   * delays sometimes.
1084   */
1085 -static inline void wv_82586_reconfig(struct net_device * dev)
1086 +static void wv_82586_reconfig(struct net_device * dev)
1087  {
1088         net_local *lp = (net_local *) dev->priv;
1089         unsigned long flags;
1090 @@ -1281,7 +1281,7 @@
1091   * This is the information which is displayed by the driver at startup.
1092   * There are lots of flags for configuring it to your liking.
1093   */
1094 -static inline void wv_init_info(struct net_device * dev)
1095 +static void wv_init_info(struct net_device * dev)
1096  {
1097         short ioaddr = dev->base_addr;
1098         net_local *lp = (net_local *) dev->priv;
1099 @@ -1502,7 +1502,7 @@
1100   * It's a bit complicated and you don't really want to look into it.
1101   * (called in wavelan_ioctl)
1102   */
1103 -static inline int wv_set_frequency(unsigned long ioaddr,       /* I/O port of the card */
1104 +static int wv_set_frequency(unsigned long ioaddr,      /* I/O port of the card */
1105                                    iw_freq * frequency)
1106  {
1107         const int BAND_NUM = 10;        /* Number of bands */
1108 @@ -1677,7 +1677,7 @@
1109  /*
1110   * Give the list of available frequencies.
1111   */
1112 -static inline int wv_frequency_list(unsigned long ioaddr,      /* I/O port of the card */
1113 +static int wv_frequency_list(unsigned long ioaddr,     /* I/O port of the card */
1114                                     iw_freq * list,     /* List of frequencies to fill */
1115                                     int max)
1116  {                              /* Maximum number of frequencies */
1117 @@ -2489,7 +2489,7 @@
1118   * Note: if any errors occur, the packet is "dropped on the floor".
1119   * (called by wv_packet_rcv())
1120   */
1121 -static inline void
1122 +static void
1123  wv_packet_read(struct net_device * dev, u16 buf_off, int sksize)
1124  {
1125         net_local *lp = (net_local *) dev->priv;
1126 @@ -2585,7 +2585,7 @@
1127   * (called in wavelan_interrupt()).
1128   * Note : the spinlock is already grabbed for us.
1129   */
1130 -static inline void wv_receive(struct net_device * dev)
1131 +static void wv_receive(struct net_device * dev)
1132  {
1133         unsigned long ioaddr = dev->base_addr;
1134         net_local *lp = (net_local *) dev->priv;
1135 @@ -2768,7 +2768,7 @@
1136   *
1137   * (called in wavelan_packet_xmit())
1138   */
1139 -static inline int wv_packet_write(struct net_device * dev, void *buf, short length)
1140 +static int wv_packet_write(struct net_device * dev, void *buf, short length)
1141  {
1142         net_local *lp = (net_local *) dev->priv;
1143         unsigned long ioaddr = dev->base_addr;
1144 @@ -2964,7 +2964,7 @@
1145   * Routine to initialize the Modem Management Controller.
1146   * (called by wv_hw_reset())
1147   */
1148 -static inline int wv_mmc_init(struct net_device * dev)
1149 +static int wv_mmc_init(struct net_device * dev)
1150  {
1151         unsigned long ioaddr = dev->base_addr;
1152         net_local *lp = (net_local *) dev->priv;
1153 @@ -3136,7 +3136,7 @@
1154   * Start the receive unit.
1155   * (called by wv_hw_reset())
1156   */
1157 -static inline int wv_ru_start(struct net_device * dev)
1158 +static int wv_ru_start(struct net_device * dev)
1159  {
1160         net_local *lp = (net_local *) dev->priv;
1161         unsigned long ioaddr = dev->base_addr;
1162 @@ -3228,7 +3228,7 @@
1163   *
1164   * (called by wv_hw_reset())
1165   */
1166 -static inline int wv_cu_start(struct net_device * dev)
1167 +static int wv_cu_start(struct net_device * dev)
1168  {
1169         net_local *lp = (net_local *) dev->priv;
1170         unsigned long ioaddr = dev->base_addr;
1171 @@ -3329,7 +3329,7 @@
1172   *
1173   * (called by wv_hw_reset())
1174   */
1175 -static inline int wv_82586_start(struct net_device * dev)
1176 +static int wv_82586_start(struct net_device * dev)
1177  {
1178         net_local *lp = (net_local *) dev->priv;
1179         unsigned long ioaddr = dev->base_addr;
1180 @@ -3641,7 +3641,7 @@
1181   * WaveLAN controller (i82586).
1182   * (called by wavelan_close())
1183   */
1184 -static inline void wv_82586_stop(struct net_device * dev)
1185 +static void wv_82586_stop(struct net_device * dev)
1186  {
1187         net_local *lp = (net_local *) dev->priv;
1188         unsigned long ioaddr = dev->base_addr;
1189 diff -Nur linux-2.6.15.1/drivers/scsi/aic7xxx_old.c linux-2.6.15.1-owrt/drivers/scsi/aic7xxx_old.c
1190 --- linux-2.6.15.1/drivers/scsi/aic7xxx_old.c   2006-01-15 07:16:02.000000000 +0100
1191 +++ linux-2.6.15.1-owrt/drivers/scsi/aic7xxx_old.c      2006-01-27 15:08:36.000000000 +0100
1192 @@ -1290,7 +1290,7 @@
1193   *
1194   ***************************************************************************/
1195  
1196 -static inline unsigned char
1197 +static unsigned char
1198  aic_inb(struct aic7xxx_host *p, long port)
1199  {
1200  #ifdef MMAPIO
1201 @@ -1309,7 +1309,7 @@
1202  #endif
1203  }
1204  
1205 -static inline void
1206 +static void
1207  aic_outb(struct aic7xxx_host *p, unsigned char val, long port)
1208  {
1209  #ifdef MMAPIO
1210 diff -Nur linux-2.6.15.1/drivers/scsi/iscsi_tcp.c linux-2.6.15.1-owrt/drivers/scsi/iscsi_tcp.c
1211 --- linux-2.6.15.1/drivers/scsi/iscsi_tcp.c     2006-01-15 07:16:02.000000000 +0100
1212 +++ linux-2.6.15.1-owrt/drivers/scsi/iscsi_tcp.c        2006-01-27 15:08:36.000000000 +0100
1213 @@ -1437,7 +1437,7 @@
1214         }
1215  }
1216  
1217 -static inline int
1218 +static int
1219  iscsi_digest_final_send(struct iscsi_conn *conn, struct iscsi_cmd_task *ctask,
1220                         struct iscsi_buf *buf, uint32_t *digest, int final)
1221  {
1222 diff -Nur linux-2.6.15.1/drivers/scsi/libata-core.c linux-2.6.15.1-owrt/drivers/scsi/libata-core.c
1223 --- linux-2.6.15.1/drivers/scsi/libata-core.c   2006-01-15 07:16:02.000000000 +0100
1224 +++ linux-2.6.15.1-owrt/drivers/scsi/libata-core.c      2006-01-27 15:08:36.000000000 +0100
1225 @@ -1660,7 +1660,7 @@
1226         { ATA_SHIFT_PIO,        XFER_PIO_0 },
1227  };
1228  
1229 -static inline u8 base_from_shift(unsigned int shift)
1230 +static u8 base_from_shift(unsigned int shift)
1231  {
1232         int i;
1233  
1234 diff -Nur linux-2.6.15.1/drivers/scsi/megaraid/megaraid_mbox.c linux-2.6.15.1-owrt/drivers/scsi/megaraid/megaraid_mbox.c
1235 --- linux-2.6.15.1/drivers/scsi/megaraid/megaraid_mbox.c        2006-01-15 07:16:02.000000000 +0100
1236 +++ linux-2.6.15.1-owrt/drivers/scsi/megaraid/megaraid_mbox.c   2006-01-27 15:08:36.000000000 +0100
1237 @@ -1331,7 +1331,7 @@
1238   * return the scb from the head of the free list. NULL if there are none
1239   * available
1240   **/
1241 -static inline scb_t *
1242 +static scb_t *
1243  megaraid_alloc_scb(adapter_t *adapter, struct scsi_cmnd *scp)
1244  {
1245         struct list_head        *head = &adapter->kscb_pool;
1246 @@ -1394,7 +1394,7 @@
1247   *
1248   * prepare the scatter-gather list
1249   */
1250 -static inline int
1251 +static int
1252  megaraid_mbox_mksgl(adapter_t *adapter, scb_t *scb)
1253  {
1254         struct scatterlist      *sgl;
1255 @@ -1467,7 +1467,7 @@
1256   *
1257   * post the command to the controller if mailbox is availble.
1258   */
1259 -static inline int
1260 +static int
1261  mbox_post_cmd(adapter_t *adapter, scb_t *scb)
1262  {
1263         mraid_device_t  *raid_dev = ADAP2RAIDDEV(adapter);
1264 @@ -2135,7 +2135,7 @@
1265   *
1266   * Returns:    1 if the interrupt is valid, 0 otherwise
1267   */
1268 -static inline int
1269 +static int
1270  megaraid_ack_sequence(adapter_t *adapter)
1271  {
1272         mraid_device_t          *raid_dev = ADAP2RAIDDEV(adapter);
1273 @@ -2273,7 +2273,7 @@
1274   *
1275   * DMA sync if required.
1276   */
1277 -static inline void
1278 +static void
1279  megaraid_mbox_sync_scb(adapter_t *adapter, scb_t *scb)
1280  {
1281         mbox_ccb_t      *ccb;
1282 diff -Nur linux-2.6.15.1/drivers/scsi/megaraid/megaraid_sas.c linux-2.6.15.1-owrt/drivers/scsi/megaraid/megaraid_sas.c
1283 --- linux-2.6.15.1/drivers/scsi/megaraid/megaraid_sas.c 2006-01-15 07:16:02.000000000 +0100
1284 +++ linux-2.6.15.1-owrt/drivers/scsi/megaraid/megaraid_sas.c    2006-01-27 15:08:36.000000000 +0100
1285 @@ -80,7 +80,7 @@
1286   *
1287   * Returns a free command from the pool
1288   */
1289 -static inline struct megasas_cmd *megasas_get_cmd(struct megasas_instance
1290 +static struct megasas_cmd *megasas_get_cmd(struct megasas_instance
1291                                                   *instance)
1292  {
1293         unsigned long flags;
1294 @@ -262,7 +262,7 @@
1295   * If successful, this function returns the number of SG elements. Otherwise,
1296   * it returnes -1.
1297   */
1298 -static inline int
1299 +static int
1300  megasas_make_sgl32(struct megasas_instance *instance, struct scsi_cmnd *scp,
1301                    union megasas_sgl *mfi_sgl)
1302  {
1303 @@ -310,7 +310,7 @@
1304   * If successful, this function returns the number of SG elements. Otherwise,
1305   * it returnes -1.
1306   */
1307 -static inline int
1308 +static int
1309  megasas_make_sgl64(struct megasas_instance *instance, struct scsi_cmnd *scp,
1310                    union megasas_sgl *mfi_sgl)
1311  {
1312 @@ -359,7 +359,7 @@
1313   * This function prepares CDB commands. These are typcially pass-through
1314   * commands to the devices.
1315   */
1316 -static inline int
1317 +static int
1318  megasas_build_dcdb(struct megasas_instance *instance, struct scsi_cmnd *scp,
1319                    struct megasas_cmd *cmd)
1320  {
1321 @@ -440,7 +440,7 @@
1322   *
1323   * Frames (and accompanying SGLs) for regular SCSI IOs use this function.
1324   */
1325 -static inline int
1326 +static int
1327  megasas_build_ldio(struct megasas_instance *instance, struct scsi_cmnd *scp,
1328                    struct megasas_cmd *cmd)
1329  {
1330 @@ -562,7 +562,7 @@
1331   * @scp:               SCSI command
1332   * @frame_count:       [OUT] Number of frames used to prepare this command
1333   */
1334 -static inline struct megasas_cmd *megasas_build_cmd(struct megasas_instance
1335 +static struct megasas_cmd *megasas_build_cmd(struct megasas_instance
1336                                                     *instance,
1337                                                     struct scsi_cmnd *scp,
1338                                                     int *frame_count)
1339 @@ -913,7 +913,7 @@
1340   * @instance:                  Adapter soft state
1341   * @cmd:                       Completed command
1342   */
1343 -static inline void
1344 +static void
1345  megasas_unmap_sgbuf(struct megasas_instance *instance, struct megasas_cmd *cmd)
1346  {
1347         dma_addr_t buf_h;
1348 @@ -957,7 +957,7 @@
1349   *                             an alternate status (as in the case of aborted
1350   *                             commands)
1351   */
1352 -static inline void
1353 +static void
1354  megasas_complete_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd,
1355                      u8 alt_status)
1356  {
1357 @@ -1104,7 +1104,7 @@
1358   *                                     SCSI mid-layer instead of the status
1359   *                                     returned by the FW
1360   */
1361 -static inline int
1362 +static int
1363  megasas_deplete_reply_queue(struct megasas_instance *instance, u8 alt_status)
1364  {
1365         u32 status;
1366 diff -Nur linux-2.6.15.1/drivers/scsi/sr.c linux-2.6.15.1-owrt/drivers/scsi/sr.c
1367 --- linux-2.6.15.1/drivers/scsi/sr.c    2006-01-15 07:16:02.000000000 +0100
1368 +++ linux-2.6.15.1-owrt/drivers/scsi/sr.c       2006-01-27 15:08:36.000000000 +0100
1369 @@ -150,7 +150,7 @@
1370         return cd;
1371  }
1372  
1373 -static inline void scsi_cd_put(struct scsi_cd *cd)
1374 +static void scsi_cd_put(struct scsi_cd *cd)
1375  {
1376         struct scsi_device *sdev = cd->device;
1377  
1378 diff -Nur linux-2.6.15.1/drivers/usb/atm/usbatm.c linux-2.6.15.1-owrt/drivers/usb/atm/usbatm.c
1379 --- linux-2.6.15.1/drivers/usb/atm/usbatm.c     2006-01-15 07:16:02.000000000 +0100
1380 +++ linux-2.6.15.1-owrt/drivers/usb/atm/usbatm.c        2006-01-27 15:08:36.000000000 +0100
1381 @@ -207,7 +207,7 @@
1382  **  urbs  **
1383  ************/
1384  
1385 -static inline struct urb *usbatm_pop_urb(struct usbatm_channel *channel)
1386 +static struct urb *usbatm_pop_urb(struct usbatm_channel *channel)
1387  {
1388         struct urb *urb;
1389  
1390 @@ -224,7 +224,7 @@
1391         return urb;
1392  }
1393  
1394 -static inline int usbatm_submit_urb(struct urb *urb)
1395 +static int usbatm_submit_urb(struct urb *urb)
1396  {
1397         struct usbatm_channel *channel = urb->context;
1398         int ret;
1399 diff -Nur linux-2.6.15.1/drivers/video/matrox/matroxfb_maven.c linux-2.6.15.1-owrt/drivers/video/matrox/matroxfb_maven.c
1400 --- linux-2.6.15.1/drivers/video/matrox/matroxfb_maven.c        2006-01-15 07:16:02.000000000 +0100
1401 +++ linux-2.6.15.1-owrt/drivers/video/matrox/matroxfb_maven.c   2006-01-27 15:08:36.000000000 +0100
1402 @@ -968,7 +968,7 @@
1403         return 0;
1404  }
1405  
1406 -static inline int maven_program_timming(struct maven_data* md,
1407 +static int maven_program_timming(struct maven_data* md,
1408                 const struct mavenregs* m) {
1409         struct i2c_client* c = md->client;
1410  
1411 diff -Nur linux-2.6.15.1/fs/9p/conv.c linux-2.6.15.1-owrt/fs/9p/conv.c
1412 --- linux-2.6.15.1/fs/9p/conv.c 2006-01-15 07:16:02.000000000 +0100
1413 +++ linux-2.6.15.1-owrt/fs/9p/conv.c    2006-01-27 15:08:36.000000000 +0100
1414 @@ -56,7 +56,7 @@
1415         return buf->p > buf->ep;
1416  }
1417  
1418 -static inline int buf_check_size(struct cbuf *buf, int len)
1419 +static int buf_check_size(struct cbuf *buf, int len)
1420  {
1421         if (buf->p+len > buf->ep) {
1422                 if (buf->p < buf->ep) {
1423 @@ -69,7 +69,7 @@
1424         return 1;
1425  }
1426  
1427 -static inline void *buf_alloc(struct cbuf *buf, int len)
1428 +static void *buf_alloc(struct cbuf *buf, int len)
1429  {
1430         void *ret = NULL;
1431  
1432 @@ -81,7 +81,7 @@
1433         return ret;
1434  }
1435  
1436 -static inline void buf_put_int8(struct cbuf *buf, u8 val)
1437 +static void buf_put_int8(struct cbuf *buf, u8 val)
1438  {
1439         if (buf_check_size(buf, 1)) {
1440                 buf->p[0] = val;
1441 @@ -89,7 +89,7 @@
1442         }
1443  }
1444  
1445 -static inline void buf_put_int16(struct cbuf *buf, u16 val)
1446 +static void buf_put_int16(struct cbuf *buf, u16 val)
1447  {
1448         if (buf_check_size(buf, 2)) {
1449                 *(__le16 *) buf->p = cpu_to_le16(val);
1450 @@ -97,7 +97,7 @@
1451         }
1452  }
1453  
1454 -static inline void buf_put_int32(struct cbuf *buf, u32 val)
1455 +static void buf_put_int32(struct cbuf *buf, u32 val)
1456  {
1457         if (buf_check_size(buf, 4)) {
1458                 *(__le32 *)buf->p = cpu_to_le32(val);
1459 @@ -105,7 +105,7 @@
1460         }
1461  }
1462  
1463 -static inline void buf_put_int64(struct cbuf *buf, u64 val)
1464 +static void buf_put_int64(struct cbuf *buf, u64 val)
1465  {
1466         if (buf_check_size(buf, 8)) {
1467                 *(__le64 *)buf->p = cpu_to_le64(val);
1468 @@ -113,7 +113,7 @@
1469         }
1470  }
1471  
1472 -static inline void buf_put_stringn(struct cbuf *buf, const char *s, u16 slen)
1473 +static void buf_put_stringn(struct cbuf *buf, const char *s, u16 slen)
1474  {
1475         if (buf_check_size(buf, slen + 2)) {
1476                 buf_put_int16(buf, slen);
1477 @@ -135,7 +135,7 @@
1478         }
1479  }
1480  
1481 -static inline u8 buf_get_int8(struct cbuf *buf)
1482 +static u8 buf_get_int8(struct cbuf *buf)
1483  {
1484         u8 ret = 0;
1485  
1486 @@ -147,7 +147,7 @@
1487         return ret;
1488  }
1489  
1490 -static inline u16 buf_get_int16(struct cbuf *buf)
1491 +static u16 buf_get_int16(struct cbuf *buf)
1492  {
1493         u16 ret = 0;
1494  
1495 @@ -159,7 +159,7 @@
1496         return ret;
1497  }
1498  
1499 -static inline u32 buf_get_int32(struct cbuf *buf)
1500 +static u32 buf_get_int32(struct cbuf *buf)
1501  {
1502         u32 ret = 0;
1503  
1504 @@ -171,7 +171,7 @@
1505         return ret;
1506  }
1507  
1508 -static inline u64 buf_get_int64(struct cbuf *buf)
1509 +static u64 buf_get_int64(struct cbuf *buf)
1510  {
1511         u64 ret = 0;
1512  
1513 diff -Nur linux-2.6.15.1/fs/binfmt_elf.c linux-2.6.15.1-owrt/fs/binfmt_elf.c
1514 --- linux-2.6.15.1/fs/binfmt_elf.c      2006-01-15 07:16:02.000000000 +0100
1515 +++ linux-2.6.15.1-owrt/fs/binfmt_elf.c 2006-01-27 15:08:36.000000000 +0100
1516 @@ -1212,7 +1212,7 @@
1517         if (!dump_seek(file, (off))) \
1518                 goto end_coredump;
1519  
1520 -static inline void fill_elf_header(struct elfhdr *elf, int segs)
1521 +static void fill_elf_header(struct elfhdr *elf, int segs)
1522  {
1523         memcpy(elf->e_ident, ELFMAG, SELFMAG);
1524         elf->e_ident[EI_CLASS] = ELF_CLASS;
1525 @@ -1237,7 +1237,7 @@
1526         return;
1527  }
1528  
1529 -static inline void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, off_t offset)
1530 +static void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, off_t offset)
1531  {
1532         phdr->p_type = PT_NOTE;
1533         phdr->p_offset = offset;
1534 diff -Nur linux-2.6.15.1/fs/binfmt_misc.c linux-2.6.15.1-owrt/fs/binfmt_misc.c
1535 --- linux-2.6.15.1/fs/binfmt_misc.c     2006-01-15 07:16:02.000000000 +0100
1536 +++ linux-2.6.15.1-owrt/fs/binfmt_misc.c        2006-01-27 15:08:36.000000000 +0100
1537 @@ -264,7 +264,7 @@
1538         return p - from;
1539  }
1540  
1541 -static inline char * check_special_flags (char * sfs, Node * e)
1542 +static char * check_special_flags (char * sfs, Node * e)
1543  {
1544         char * p = sfs;
1545         int cont = 1;
1546 diff -Nur linux-2.6.15.1/fs/bio.c linux-2.6.15.1-owrt/fs/bio.c
1547 --- linux-2.6.15.1/fs/bio.c     2006-01-15 07:16:02.000000000 +0100
1548 +++ linux-2.6.15.1-owrt/fs/bio.c        2006-01-27 15:08:36.000000000 +0100
1549 @@ -123,7 +123,7 @@
1550         bio_free(bio, fs_bio_set);
1551  }
1552  
1553 -inline void bio_init(struct bio *bio)
1554 +void bio_init(struct bio *bio)
1555  {
1556         bio->bi_next = NULL;
1557         bio->bi_flags = 1 << BIO_UPTODATE;
1558 @@ -252,7 +252,7 @@
1559   *     the actual data it points to. Reference count of returned
1560   *     bio will be one.
1561   */
1562 -inline void __bio_clone(struct bio *bio, struct bio *bio_src)
1563 +void __bio_clone(struct bio *bio, struct bio *bio_src)
1564  {
1565         request_queue_t *q = bdev_get_queue(bio_src->bi_bdev);
1566  
1567 diff -Nur linux-2.6.15.1/fs/buffer.c linux-2.6.15.1-owrt/fs/buffer.c
1568 --- linux-2.6.15.1/fs/buffer.c  2006-01-15 07:16:02.000000000 +0100
1569 +++ linux-2.6.15.1-owrt/fs/buffer.c     2006-01-27 15:08:36.000000000 +0100
1570 @@ -1170,7 +1170,7 @@
1571   * some of those buffers may be aliases of filesystem data.
1572   * grow_dev_page() will go BUG() if this happens.
1573   */
1574 -static inline int
1575 +static int
1576  grow_buffers(struct block_device *bdev, sector_t block, int size)
1577  {
1578         struct page *page;
1579 @@ -1396,7 +1396,7 @@
1580  /*
1581   * Look up the bh in this cpu's LRU.  If it's there, move it to the head.
1582   */
1583 -static inline struct buffer_head *
1584 +static struct buffer_head *
1585  lookup_bh_lru(struct block_device *bdev, sector_t block, int size)
1586  {
1587         struct buffer_head *ret = NULL;
1588 @@ -1546,7 +1546,7 @@
1589  /*
1590   * Called when truncating a buffer on a page completely.
1591   */
1592 -static inline void discard_buffer(struct buffer_head * bh)
1593 +static void discard_buffer(struct buffer_head * bh)
1594  {
1595         lock_buffer(bh);
1596         clear_buffer_dirty(bh);
1597 diff -Nur linux-2.6.15.1/fs/compat.c linux-2.6.15.1-owrt/fs/compat.c
1598 --- linux-2.6.15.1/fs/compat.c  2006-01-15 07:16:02.000000000 +0100
1599 +++ linux-2.6.15.1-owrt/fs/compat.c     2006-01-27 15:08:36.000000000 +0100
1600 @@ -1523,7 +1523,7 @@
1601   * Ooo, nasty.  We need here to frob 32-bit unsigned longs to
1602   * 64-bit unsigned longs.
1603   */
1604 -static inline
1605 +static
1606  int compat_get_fd_set(unsigned long nr, compat_ulong_t __user *ufdset,
1607                         unsigned long *fdset)
1608  {
1609 @@ -1556,7 +1556,7 @@
1610         return 0;
1611  }
1612  
1613 -static inline
1614 +static
1615  void compat_set_fd_set(unsigned long nr, compat_ulong_t __user *ufdset,
1616                         unsigned long *fdset)
1617  {
1618 diff -Nur linux-2.6.15.1/fs/dcache.c linux-2.6.15.1-owrt/fs/dcache.c
1619 --- linux-2.6.15.1/fs/dcache.c  2006-01-15 07:16:02.000000000 +0100
1620 +++ linux-2.6.15.1-owrt/fs/dcache.c     2006-01-27 15:08:36.000000000 +0100
1621 @@ -94,7 +94,7 @@
1622   * d_iput() operation if defined.
1623   * Called with dcache_lock and per dentry lock held, drops both.
1624   */
1625 -static inline void dentry_iput(struct dentry * dentry)
1626 +static void dentry_iput(struct dentry * dentry)
1627  {
1628         struct inode *inode = dentry->d_inode;
1629         if (inode) {
1630 diff -Nur linux-2.6.15.1/fs/exec.c linux-2.6.15.1-owrt/fs/exec.c
1631 --- linux-2.6.15.1/fs/exec.c    2006-01-15 07:16:02.000000000 +0100
1632 +++ linux-2.6.15.1-owrt/fs/exec.c       2006-01-27 15:08:36.000000000 +0100
1633 @@ -575,7 +575,7 @@
1634   * disturbing other processes.  (Other processes might share the signal
1635   * table via the CLONE_SIGHAND option to clone().)
1636   */
1637 -static inline int de_thread(struct task_struct *tsk)
1638 +static int de_thread(struct task_struct *tsk)
1639  {
1640         struct signal_struct *sig = tsk->signal;
1641         struct sighand_struct *newsighand, *oldsighand = tsk->sighand;
1642 @@ -780,7 +780,7 @@
1643   * so that a new one can be started
1644   */
1645  
1646 -static inline void flush_old_files(struct files_struct * files)
1647 +static void flush_old_files(struct files_struct * files)
1648  {
1649         long j = -1;
1650         struct fdtable *fdt;
1651 @@ -964,7 +964,7 @@
1652  
1653  EXPORT_SYMBOL(prepare_binprm);
1654  
1655 -static inline int unsafe_exec(struct task_struct *p)
1656 +static int unsafe_exec(struct task_struct *p)
1657  {
1658         int unsafe = 0;
1659         if (p->ptrace & PT_PTRACED) {
1660 diff -Nur linux-2.6.15.1/fs/fcntl.c linux-2.6.15.1-owrt/fs/fcntl.c
1661 --- linux-2.6.15.1/fs/fcntl.c   2006-01-15 07:16:02.000000000 +0100
1662 +++ linux-2.6.15.1-owrt/fs/fcntl.c      2006-01-27 15:08:36.000000000 +0100
1663 @@ -35,7 +35,7 @@
1664         spin_unlock(&files->file_lock);
1665  }
1666  
1667 -static inline int get_close_on_exec(unsigned int fd)
1668 +static int get_close_on_exec(unsigned int fd)
1669  {
1670         struct files_struct *files = current->files;
1671         struct fdtable *fdt;
1672 diff -Nur linux-2.6.15.1/fs/inode.c linux-2.6.15.1-owrt/fs/inode.c
1673 --- linux-2.6.15.1/fs/inode.c   2006-01-15 07:16:02.000000000 +0100
1674 +++ linux-2.6.15.1-owrt/fs/inode.c      2006-01-27 15:03:56.000000000 +0100
1675 @@ -770,7 +770,7 @@
1676   *
1677   * Note, @test is called with the inode_lock held, so can't sleep.
1678   */
1679 -static inline struct inode *ifind(struct super_block *sb,
1680 +static struct inode *ifind(struct super_block *sb,
1681                 struct hlist_head *head, int (*test)(struct inode *, void *),
1682                 void *data, const int wait)
1683  {
1684 @@ -804,7 +804,7 @@
1685   *
1686   * Otherwise NULL is returned.
1687   */
1688 -static inline struct inode *ifind_fast(struct super_block *sb,
1689 +static struct inode *ifind_fast(struct super_block *sb,
1690                 struct hlist_head *head, unsigned long ino)
1691  {
1692         struct inode *inode;
1693 diff -Nur linux-2.6.15.1/fs/jffs2/build.c linux-2.6.15.1-owrt/fs/jffs2/build.c
1694 --- linux-2.6.15.1/fs/jffs2/build.c     2006-01-15 07:16:02.000000000 +0100
1695 +++ linux-2.6.15.1-owrt/fs/jffs2/build.c        2006-01-27 15:08:36.000000000 +0100
1696 @@ -47,7 +47,7 @@
1697              ic = next_inode(&i, ic, (c)))
1698  
1699  
1700 -static inline void jffs2_build_inode_pass1(struct jffs2_sb_info *c,
1701 +static void jffs2_build_inode_pass1(struct jffs2_sb_info *c,
1702                                         struct jffs2_inode_cache *ic)
1703  {
1704         struct jffs2_full_dirent *fd;
1705 diff -Nur linux-2.6.15.1/fs/jffs2/nodelist.c linux-2.6.15.1-owrt/fs/jffs2/nodelist.c
1706 --- linux-2.6.15.1/fs/jffs2/nodelist.c  2006-01-15 07:16:02.000000000 +0100
1707 +++ linux-2.6.15.1-owrt/fs/jffs2/nodelist.c     2006-01-27 15:08:36.000000000 +0100
1708 @@ -134,7 +134,7 @@
1709  /*
1710   * Allocate and initializes a new fragment.
1711   */
1712 -static inline struct jffs2_node_frag * new_fragment(struct jffs2_full_dnode *fn, uint32_t ofs, uint32_t size)
1713 +static struct jffs2_node_frag * new_fragment(struct jffs2_full_dnode *fn, uint32_t ofs, uint32_t size)
1714  {
1715         struct jffs2_node_frag *newfrag;
1716  
1717 @@ -513,7 +513,7 @@
1718   *
1719   * Checks the node if we are in the checking stage.
1720   */
1721 -static inline int check_node(struct jffs2_sb_info *c, struct jffs2_inode_info *f, struct jffs2_tmp_dnode_info *tn)
1722 +static int check_node(struct jffs2_sb_info *c, struct jffs2_inode_info *f, struct jffs2_tmp_dnode_info *tn)
1723  {
1724         int ret;
1725  
1726 diff -Nur linux-2.6.15.1/fs/lockd/xdr.c linux-2.6.15.1-owrt/fs/lockd/xdr.c
1727 --- linux-2.6.15.1/fs/lockd/xdr.c       2006-01-15 07:16:02.000000000 +0100
1728 +++ linux-2.6.15.1-owrt/fs/lockd/xdr.c  2006-01-27 15:08:36.000000000 +0100
1729 @@ -44,7 +44,7 @@
1730  /*
1731   * XDR functions for basic NLM types
1732   */
1733 -static inline u32 *nlm_decode_cookie(u32 *p, struct nlm_cookie *c)
1734 +static u32 *nlm_decode_cookie(u32 *p, struct nlm_cookie *c)
1735  {
1736         unsigned int    len;
1737  
1738 @@ -79,7 +79,7 @@
1739         return p;
1740  }
1741  
1742 -static inline u32 *
1743 +static u32 *
1744  nlm_decode_fh(u32 *p, struct nfs_fh *f)
1745  {
1746         unsigned int    len;
1747 @@ -119,7 +119,7 @@
1748         return xdr_encode_netobj(p, oh);
1749  }
1750  
1751 -static inline u32 *
1752 +static u32 *
1753  nlm_decode_lock(u32 *p, struct nlm_lock *lock)
1754  {
1755         struct file_lock        *fl = &lock->fl;
1756 diff -Nur linux-2.6.15.1/fs/locks.c linux-2.6.15.1-owrt/fs/locks.c
1757 --- linux-2.6.15.1/fs/locks.c   2006-01-15 07:16:02.000000000 +0100
1758 +++ linux-2.6.15.1-owrt/fs/locks.c      2006-01-27 15:03:52.000000000 +0100
1759 @@ -154,7 +154,7 @@
1760  }
1761  
1762  /* Free a lock which is not in use. */
1763 -static inline void locks_free_lock(struct file_lock *fl)
1764 +static void locks_free_lock(struct file_lock *fl)
1765  {
1766         if (fl == NULL) {
1767                 BUG();
1768 @@ -475,8 +475,7 @@
1769  /*
1770   * Check whether two locks have the same owner.
1771   */
1772 -static inline int
1773 -posix_same_owner(struct file_lock *fl1, struct file_lock *fl2)
1774 +static int posix_same_owner(struct file_lock *fl1, struct file_lock *fl2)
1775  {
1776         if (fl1->fl_lmops && fl1->fl_lmops->fl_compare_owner)
1777                 return fl2->fl_lmops == fl1->fl_lmops &&
1778 @@ -487,7 +486,7 @@
1779  /* Remove waiter from blocker's block list.
1780   * When blocker ends up pointing to itself then the list is empty.
1781   */
1782 -static inline void __locks_delete_block(struct file_lock *waiter)
1783 +static void __locks_delete_block(struct file_lock *waiter)
1784  {
1785         list_del_init(&waiter->fl_block);
1786         list_del_init(&waiter->fl_link);
1787 diff -Nur linux-2.6.15.1/fs/mbcache.c linux-2.6.15.1-owrt/fs/mbcache.c
1788 --- linux-2.6.15.1/fs/mbcache.c 2006-01-15 07:16:02.000000000 +0100
1789 +++ linux-2.6.15.1-owrt/fs/mbcache.c    2006-01-27 15:08:36.000000000 +0100
1790 @@ -126,7 +126,7 @@
1791  }
1792  
1793  
1794 -static inline void
1795 +static void
1796  __mb_cache_entry_unhash(struct mb_cache_entry *ce)
1797  {
1798         int n;
1799 @@ -139,7 +139,7 @@
1800  }
1801  
1802  
1803 -static inline void
1804 +static void
1805  __mb_cache_entry_forget(struct mb_cache_entry *ce, gfp_t gfp_mask)
1806  {
1807         struct mb_cache *cache = ce->e_cache;
1808 @@ -158,7 +158,7 @@
1809  }
1810  
1811  
1812 -static inline void
1813 +static void
1814  __mb_cache_entry_release_unlock(struct mb_cache_entry *ce)
1815  {
1816         /* Wake up all processes queuing for this cache entry. */
1817 diff -Nur linux-2.6.15.1/fs/namei.c linux-2.6.15.1-owrt/fs/namei.c
1818 --- linux-2.6.15.1/fs/namei.c   2006-01-15 07:16:02.000000000 +0100
1819 +++ linux-2.6.15.1-owrt/fs/namei.c      2006-01-27 15:08:36.000000000 +0100
1820 @@ -112,7 +112,7 @@
1821   * POSIX.1 2.4: an empty pathname is invalid (ENOENT).
1822   * PATH_MAX includes the nul terminator --RR.
1823   */
1824 -static inline int do_getname(const char __user *filename, char *page)
1825 +static int do_getname(const char __user *filename, char *page)
1826  {
1827         int retval;
1828         unsigned long len = PATH_MAX;
1829 @@ -395,7 +395,7 @@
1830   * short-cut DAC fails, then call permission() to do more
1831   * complete permission check.
1832   */
1833 -static inline int exec_permission_lite(struct inode *inode,
1834 +static int exec_permission_lite(struct inode *inode,
1835                                        struct nameidata *nd)
1836  {
1837         umode_t mode = inode->i_mode;
1838 @@ -485,7 +485,7 @@
1839  static int __emul_lookup_dentry(const char *, struct nameidata *);
1840  
1841  /* SMP-safe */
1842 -static inline int
1843 +static __always_inline int
1844  walk_init_root(const char *name, struct nameidata *nd)
1845  {
1846         read_lock(&current->fs->lock);
1847 @@ -503,7 +503,7 @@
1848         return 1;
1849  }
1850  
1851 -static inline int __vfs_follow_link(struct nameidata *nd, const char *link)
1852 +static __always_inline int __vfs_follow_link(struct nameidata *nd, const char *link)
1853  {
1854         int res = 0;
1855         char *name;
1856 @@ -543,7 +543,7 @@
1857         struct dentry *dentry;
1858  };
1859  
1860 -static inline int __do_follow_link(struct path *path, struct nameidata *nd)
1861 +static __always_inline int __do_follow_link(struct path *path, struct nameidata *nd)
1862  {
1863         int error;
1864         void *cookie;
1865 @@ -689,7 +689,7 @@
1866         return 0;
1867  }
1868  
1869 -static inline void follow_dotdot(struct nameidata *nd)
1870 +static __always_inline void follow_dotdot(struct nameidata *nd)
1871  {
1872         while(1) {
1873                 struct vfsmount *parent;
1874 @@ -1293,7 +1293,7 @@
1875   * 10. We don't allow removal of NFS sillyrenamed files; it's handled by
1876   *     nfs_async_unlink().
1877   */
1878 -static inline int may_delete(struct inode *dir,struct dentry *victim,int isdir)
1879 +static int may_delete(struct inode *dir,struct dentry *victim,int isdir)
1880  {
1881         int error;
1882  
1883 @@ -2314,7 +2314,7 @@
1884         return error;
1885  }
1886  
1887 -static inline int do_rename(const char * oldname, const char * newname)
1888 +static int do_rename(const char * oldname, const char * newname)
1889  {
1890         int error = 0;
1891         struct dentry * old_dir, * new_dir;
1892 diff -Nur linux-2.6.15.1/fs/nfsd/nfsxdr.c linux-2.6.15.1-owrt/fs/nfsd/nfsxdr.c
1893 --- linux-2.6.15.1/fs/nfsd/nfsxdr.c     2006-01-15 07:16:02.000000000 +0100
1894 +++ linux-2.6.15.1-owrt/fs/nfsd/nfsxdr.c        2006-01-27 15:11:46.000000000 +0100
1895 @@ -37,7 +37,7 @@
1896  /*
1897   * XDR functions for basic NFS types
1898   */
1899 -static inline u32 *
1900 +static u32 *
1901  decode_fh(u32 *p, struct svc_fh *fhp)
1902  {
1903         fh_init(fhp, NFS_FHSIZE);
1904 @@ -55,7 +55,7 @@
1905         return decode_fh(p, fhp);
1906  }
1907  
1908 -static inline u32 *
1909 +static u32 *
1910  encode_fh(u32 *p, struct svc_fh *fhp)
1911  {
1912         memcpy(p, &fhp->fh_handle.fh_base, NFS_FHSIZE);
1913 diff -Nur linux-2.6.15.1/fs/open.c linux-2.6.15.1-owrt/fs/open.c
1914 --- linux-2.6.15.1/fs/open.c    2006-01-15 07:16:02.000000000 +0100
1915 +++ linux-2.6.15.1-owrt/fs/open.c       2006-01-27 15:04:00.000000000 +0100
1916 @@ -216,7 +216,7 @@
1917         return err;
1918  }
1919  
1920 -static inline long do_sys_truncate(const char __user * path, loff_t length)
1921 +static long do_sys_truncate(const char __user * path, loff_t length)
1922  {
1923         struct nameidata nd;
1924         struct inode * inode;
1925 @@ -282,7 +282,7 @@
1926         return do_sys_truncate(path, (long)length);
1927  }
1928  
1929 -static inline long do_sys_ftruncate(unsigned int fd, loff_t length, int small)
1930 +static long do_sys_ftruncate(unsigned int fd, loff_t length, int small)
1931  {
1932         struct inode * inode;
1933         struct dentry *dentry;
1934 @@ -970,7 +970,7 @@
1935  
1936  EXPORT_SYMBOL(get_unused_fd);
1937  
1938 -static inline void __put_unused_fd(struct files_struct *files, unsigned int fd)
1939 +static void __put_unused_fd(struct files_struct *files, unsigned int fd)
1940  {
1941         struct fdtable *fdt = files_fdtable(files);
1942         __FD_CLR(fd, fdt->open_fds);
1943 diff -Nur linux-2.6.15.1/fs/pipe.c linux-2.6.15.1-owrt/fs/pipe.c
1944 --- linux-2.6.15.1/fs/pipe.c    2006-01-15 07:16:02.000000000 +0100
1945 +++ linux-2.6.15.1-owrt/fs/pipe.c       2006-01-27 15:08:36.000000000 +0100
1946 @@ -50,7 +50,7 @@
1947         down(PIPE_SEM(*inode));
1948  }
1949  
1950 -static inline int
1951 +static int
1952  pipe_iov_copy_from_user(void *to, struct iovec *iov, unsigned long len)
1953  {
1954         unsigned long copy;
1955 @@ -70,7 +70,7 @@
1956         return 0;
1957  }
1958  
1959 -static inline int
1960 +static int
1961  pipe_iov_copy_to_user(struct iovec *iov, const void *from, unsigned long len)
1962  {
1963         unsigned long copy;
1964 diff -Nur linux-2.6.15.1/include/asm-i386/bitops.h linux-2.6.15.1-owrt/include/asm-i386/bitops.h
1965 --- linux-2.6.15.1/include/asm-i386/bitops.h    2006-01-15 07:16:02.000000000 +0100
1966 +++ linux-2.6.15.1-owrt/include/asm-i386/bitops.h       2006-01-27 15:03:37.000000000 +0100
1967 @@ -247,7 +247,7 @@
1968  static int test_bit(int nr, const volatile void * addr);
1969  #endif
1970  
1971 -static inline int constant_test_bit(int nr, const volatile unsigned long *addr)
1972 +static __always_inline int constant_test_bit(int nr, const volatile unsigned long *addr)
1973  {
1974         return ((1UL << (nr & 31)) & (addr[nr >> 5])) != 0;
1975  }
1976 diff -Nur linux-2.6.15.1/include/asm-i386/current.h linux-2.6.15.1-owrt/include/asm-i386/current.h
1977 --- linux-2.6.15.1/include/asm-i386/current.h   2006-01-15 07:16:02.000000000 +0100
1978 +++ linux-2.6.15.1-owrt/include/asm-i386/current.h      2006-01-27 15:03:37.000000000 +0100
1979 @@ -5,7 +5,7 @@
1980  
1981  struct task_struct;
1982  
1983 -static inline struct task_struct * get_current(void)
1984 +static __always_inline struct task_struct * get_current(void)
1985  {
1986         return current_thread_info()->task;
1987  }
1988 diff -Nur linux-2.6.15.1/include/asm-i386/string.h linux-2.6.15.1-owrt/include/asm-i386/string.h
1989 --- linux-2.6.15.1/include/asm-i386/string.h    2006-01-15 07:16:02.000000000 +0100
1990 +++ linux-2.6.15.1-owrt/include/asm-i386/string.h       2006-01-27 15:03:37.000000000 +0100
1991 @@ -201,7 +201,7 @@
1992  return __res;
1993  }
1994  
1995 -static inline void * __memcpy(void * to, const void * from, size_t n)
1996 +static __always_inline void * __memcpy(void * to, const void * from, size_t n)
1997  {
1998  int d0, d1, d2;
1999  __asm__ __volatile__(
2000 @@ -223,7 +223,7 @@
2001   * This looks ugly, but the compiler can optimize it totally,
2002   * as the count is constant.
2003   */
2004 -static inline void * __constant_memcpy(void * to, const void * from, size_t n)
2005 +static __always_inline void * __constant_memcpy(void * to, const void * from, size_t n)
2006  {
2007         long esi, edi;
2008         if (!n) return to;
2009 @@ -367,7 +367,7 @@
2010   * things 32 bits at a time even when we don't know the size of the
2011   * area at compile-time..
2012   */
2013 -static inline void * __constant_c_memset(void * s, unsigned long c, size_t count)
2014 +static __always_inline void * __constant_c_memset(void * s, unsigned long c, size_t count)
2015  {
2016  int d0, d1;
2017  __asm__ __volatile__(
2018 @@ -416,7 +416,7 @@
2019   * This looks horribly ugly, but the compiler can optimize it totally,
2020   * as we by now know that both pattern and count is constant..
2021   */
2022 -static inline void * __constant_c_and_count_memset(void * s, unsigned long pattern, size_t count)
2023 +static __always_inline void * __constant_c_and_count_memset(void * s, unsigned long pattern, size_t count)
2024  {
2025         switch (count) {
2026                 case 0:
2027 diff -Nur linux-2.6.15.1/include/asm-i386/uaccess.h linux-2.6.15.1-owrt/include/asm-i386/uaccess.h
2028 --- linux-2.6.15.1/include/asm-i386/uaccess.h   2006-01-15 07:16:02.000000000 +0100
2029 +++ linux-2.6.15.1-owrt/include/asm-i386/uaccess.h      2006-01-27 15:03:37.000000000 +0100
2030 @@ -411,7 +411,7 @@
2031   * Returns number of bytes that could not be copied.
2032   * On success, this will be zero.
2033   */
2034 -static inline unsigned long __must_check
2035 +static __always_inline unsigned long __must_check
2036  __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
2037  {
2038         if (__builtin_constant_p(n)) {
2039 @@ -432,7 +432,7 @@
2040         return __copy_to_user_ll(to, from, n);
2041  }
2042  
2043 -static inline unsigned long __must_check
2044 +static __always_inline unsigned long __must_check
2045  __copy_to_user(void __user *to, const void *from, unsigned long n)
2046  {
2047         might_sleep();
2048 @@ -456,7 +456,7 @@
2049   * If some data could not be copied, this function will pad the copied
2050   * data to the requested size using zero bytes.
2051   */
2052 -static inline unsigned long
2053 +static __always_inline unsigned long
2054  __copy_from_user_inatomic(void *to, const void __user *from, unsigned long n)
2055  {
2056         if (__builtin_constant_p(n)) {
2057 @@ -477,7 +477,7 @@
2058         return __copy_from_user_ll(to, from, n);
2059  }
2060  
2061 -static inline unsigned long
2062 +static __always_inline unsigned long
2063  __copy_from_user(void *to, const void __user *from, unsigned long n)
2064  {
2065         might_sleep();
2066 diff -Nur linux-2.6.15.1/include/asm-x86_64/fixmap.h linux-2.6.15.1-owrt/include/asm-x86_64/fixmap.h
2067 --- linux-2.6.15.1/include/asm-x86_64/fixmap.h  2006-01-15 07:16:02.000000000 +0100
2068 +++ linux-2.6.15.1-owrt/include/asm-x86_64/fixmap.h     2006-01-27 15:03:37.000000000 +0100
2069 @@ -76,7 +76,7 @@
2070   * directly without translation, we catch the bug with a NULL-deference
2071   * kernel oops. Illegal ranges of incoming indices are caught too.
2072   */
2073 -static inline unsigned long fix_to_virt(const unsigned int idx)
2074 +static __always_inline unsigned long fix_to_virt(const unsigned int idx)
2075  {
2076         /*
2077          * this branch gets completely eliminated after inlining,
2078 diff -Nur linux-2.6.15.1/include/asm-x86_64/uaccess.h linux-2.6.15.1-owrt/include/asm-x86_64/uaccess.h
2079 --- linux-2.6.15.1/include/asm-x86_64/uaccess.h 2006-01-15 07:16:02.000000000 +0100
2080 +++ linux-2.6.15.1-owrt/include/asm-x86_64/uaccess.h    2006-01-27 15:03:37.000000000 +0100
2081 @@ -244,7 +244,7 @@
2082  extern unsigned long copy_from_user(void *to, const void __user *from, unsigned len); 
2083  extern unsigned long copy_in_user(void __user *to, const void __user *from, unsigned len); 
2084  
2085 -static inline int __copy_from_user(void *dst, const void __user *src, unsigned size) 
2086 +static __always_inline int __copy_from_user(void *dst, const void __user *src, unsigned size)
2087  { 
2088         int ret = 0;
2089         if (!__builtin_constant_p(size))
2090 @@ -273,7 +273,7 @@
2091         }
2092  }      
2093  
2094 -static inline int __copy_to_user(void __user *dst, const void *src, unsigned size) 
2095 +static __always_inline int __copy_to_user(void __user *dst, const void *src, unsigned size)
2096  { 
2097         int ret = 0;
2098         if (!__builtin_constant_p(size))
2099 @@ -305,7 +305,7 @@
2100  }      
2101  
2102  
2103 -static inline int __copy_in_user(void __user *dst, const void __user *src, unsigned size) 
2104 +static __always_inline int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
2105  { 
2106         int ret = 0;
2107         if (!__builtin_constant_p(size))
2108 diff -Nur linux-2.6.15.1/include/linux/compiler-gcc3.h linux-2.6.15.1-owrt/include/linux/compiler-gcc3.h
2109 --- linux-2.6.15.1/include/linux/compiler-gcc3.h        2006-01-15 07:16:02.000000000 +0100
2110 +++ linux-2.6.15.1-owrt/include/linux/compiler-gcc3.h   2006-01-27 15:04:45.000000000 +0100
2111 @@ -30,3 +30,4 @@
2112  #define __must_check           __attribute__((warn_unused_result))
2113  #endif
2114  
2115 +#define __always_inline                inline __attribute__((always_inline))
2116 diff -Nur linux-2.6.15.1/include/linux/compiler-gcc4.h linux-2.6.15.1-owrt/include/linux/compiler-gcc4.h
2117 --- linux-2.6.15.1/include/linux/compiler-gcc4.h        2006-01-15 07:16:02.000000000 +0100
2118 +++ linux-2.6.15.1-owrt/include/linux/compiler-gcc4.h   2006-01-27 15:03:21.000000000 +0100
2119 @@ -3,14 +3,16 @@
2120  /* These definitions are for GCC v4.x.  */
2121  #include <linux/compiler-gcc.h>
2122  
2123 +#ifdef CONFIG_FORCED_INLINING
2124 +# undef inline
2125 +# undef __inline__
2126 +# undef __inline
2127  #define inline                 inline          __attribute__((always_inline))
2128  #define __inline__             __inline__      __attribute__((always_inline))
2129  #define __inline               __inline        __attribute__((always_inline))
2130 -#define __deprecated           __attribute__((deprecated))
2131 +#endif
2132 +
2133  #define __attribute_used__     __attribute__((__used__))
2134 -#define __attribute_pure__     __attribute__((pure))
2135 -#define __attribute_const__    __attribute__((__const__))
2136 -#define  noinline              __attribute__((noinline))
2137  #define __must_check           __attribute__((warn_unused_result))
2138  #define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
2139 -
2140 +#define __always_inline                inline __attribute__((always_inline))
2141 diff -Nur linux-2.6.15.1/include/linux/mm.h linux-2.6.15.1-owrt/include/linux/mm.h
2142 --- linux-2.6.15.1/include/linux/mm.h   2006-01-15 07:16:02.000000000 +0100
2143 +++ linux-2.6.15.1-owrt/include/linux/mm.h      2006-01-27 15:03:37.000000000 +0100
2144 @@ -507,7 +507,7 @@
2145  extern struct page *mem_map;
2146  #endif
2147  
2148 -static inline void *lowmem_page_address(struct page *page)
2149 +static __always_inline void *lowmem_page_address(struct page *page)
2150  {
2151         return __va(page_to_pfn(page) << PAGE_SHIFT);
2152  }
2153 diff -Nur linux-2.6.15.1/include/linux/sched.h linux-2.6.15.1-owrt/include/linux/sched.h
2154 --- linux-2.6.15.1/include/linux/sched.h        2006-01-15 07:16:02.000000000 +0100
2155 +++ linux-2.6.15.1-owrt/include/linux/sched.h   2006-01-27 15:03:45.000000000 +0100
2156 @@ -1102,19 +1102,8 @@
2157  }
2158  
2159  
2160 -#ifdef CONFIG_SECURITY
2161 -/* code is in security.c */
2162 +/* code is in security.c or kernel/sys.c if !SECURITY */
2163  extern int capable(int cap);
2164 -#else
2165 -static inline int capable(int cap)
2166 -{
2167 -       if (cap_raised(current->cap_effective, cap)) {
2168 -               current->flags |= PF_SUPERPRIV;
2169 -               return 1;
2170 -       }
2171 -       return 0;
2172 -}
2173 -#endif
2174  
2175  /*
2176   * Routines for handling mm_structs
2177 diff -Nur linux-2.6.15.1/include/linux/time.h linux-2.6.15.1-owrt/include/linux/time.h
2178 --- linux-2.6.15.1/include/linux/time.h 2006-01-15 07:16:02.000000000 +0100
2179 +++ linux-2.6.15.1-owrt/include/linux/time.h    2006-01-27 15:04:09.000000000 +0100
2180 @@ -38,38 +38,9 @@
2181         return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec);
2182  } 
2183  
2184 -/* Converts Gregorian date to seconds since 1970-01-01 00:00:00.
2185 - * Assumes input in normal date format, i.e. 1980-12-31 23:59:59
2186 - * => year=1980, mon=12, day=31, hour=23, min=59, sec=59.
2187 - *
2188 - * [For the Julian calendar (which was used in Russia before 1917,
2189 - * Britain & colonies before 1752, anywhere else before 1582,
2190 - * and is still in use by some communities) leave out the
2191 - * -year/100+year/400 terms, and add 10.]
2192 - *
2193 - * This algorithm was first published by Gauss (I think).
2194 - *
2195 - * WARNING: this function will overflow on 2106-02-07 06:28:16 on
2196 - * machines were long is 32-bit! (However, as time_t is signed, we
2197 - * will already get problems at other places on 2038-01-19 03:14:08)
2198 - */
2199 -static inline unsigned long
2200 -mktime (unsigned int year, unsigned int mon,
2201 -       unsigned int day, unsigned int hour,
2202 -       unsigned int min, unsigned int sec)
2203 -{
2204 -       if (0 >= (int) (mon -= 2)) {    /* 1..12 -> 11,12,1..10 */
2205 -               mon += 12;              /* Puts Feb last since it has leap day */
2206 -               year -= 1;
2207 -       }
2208 -
2209 -       return (((
2210 -               (unsigned long) (year/4 - year/100 + year/400 + 367*mon/12 + day) +
2211 -                       year*365 - 719499
2212 -           )*24 + hour /* now have hours */
2213 -         )*60 + min /* now have minutes */
2214 -       )*60 + sec; /* finally seconds */
2215 -}
2216 +extern unsigned long mktime (unsigned int year, unsigned int mon,
2217 +                            unsigned int day, unsigned int hour,
2218 +                            unsigned int min, unsigned int sec);
2219  
2220  extern struct timespec xtime;
2221  extern struct timespec wall_to_monotonic;
2222 @@ -80,6 +51,8 @@
2223         return xtime.tv_sec;
2224  }
2225  
2226 +extern void set_normalized_timespec (struct timespec *ts, time_t sec, long nsec);
2227 +
2228  struct timespec current_kernel_time(void);
2229  
2230  #define CURRENT_TIME (current_kernel_time())
2231 @@ -99,21 +72,6 @@
2232  
2233  extern struct timespec timespec_trunc(struct timespec t, unsigned gran);
2234  
2235 -static inline void
2236 -set_normalized_timespec (struct timespec *ts, time_t sec, long nsec)
2237 -{
2238 -       while (nsec >= NSEC_PER_SEC) {
2239 -               nsec -= NSEC_PER_SEC;
2240 -               ++sec;
2241 -       }
2242 -       while (nsec < 0) {
2243 -               nsec += NSEC_PER_SEC;
2244 -               --sec;
2245 -       }
2246 -       ts->tv_sec = sec;
2247 -       ts->tv_nsec = nsec;
2248 -}
2249 -
2250  #endif /* __KERNEL__ */
2251  
2252  #define NFDBITS                        __NFDBITS
2253 diff -Nur linux-2.6.15.1/kernel/cpuset.c linux-2.6.15.1-owrt/kernel/cpuset.c
2254 --- linux-2.6.15.1/kernel/cpuset.c      2006-01-15 07:16:02.000000000 +0100
2255 +++ linux-2.6.15.1-owrt/kernel/cpuset.c 2006-01-27 15:08:36.000000000 +0100
2256 @@ -1252,7 +1252,7 @@
2257   * when reading out p->cpuset, as we don't really care if it changes
2258   * on the next cycle, and we are not going to try to dereference it.
2259   */
2260 -static inline int pid_array_load(pid_t *pidarray, int npids, struct cpuset *cs)
2261 +static int pid_array_load(pid_t *pidarray, int npids, struct cpuset *cs)
2262  {
2263         int n = 0;
2264         struct task_struct *g, *p;
2265 diff -Nur linux-2.6.15.1/kernel/exit.c linux-2.6.15.1-owrt/kernel/exit.c
2266 --- linux-2.6.15.1/kernel/exit.c        2006-01-15 07:16:02.000000000 +0100
2267 +++ linux-2.6.15.1-owrt/kernel/exit.c   2006-01-27 15:08:36.000000000 +0100
2268 @@ -192,7 +192,7 @@
2269         return retval;
2270  }
2271  
2272 -static inline int has_stopped_jobs(int pgrp)
2273 +static int has_stopped_jobs(int pgrp)
2274  {
2275         int retval = 0;
2276         struct task_struct *p;
2277 @@ -229,7 +229,7 @@
2278   *
2279   * NOTE that reparent_to_init() gives the caller full capabilities.
2280   */
2281 -static inline void reparent_to_init(void)
2282 +static void reparent_to_init(void)
2283  {
2284         write_lock_irq(&tasklist_lock);
2285  
2286 @@ -366,7 +366,7 @@
2287  
2288  EXPORT_SYMBOL(daemonize);
2289  
2290 -static inline void close_files(struct files_struct * files)
2291 +static void close_files(struct files_struct * files)
2292  {
2293         int i, j;
2294         struct fdtable *fdt;
2295 @@ -540,7 +540,7 @@
2296         p->real_parent = reaper;
2297  }
2298  
2299 -static inline void reparent_thread(task_t *p, task_t *father, int traced)
2300 +static void reparent_thread(task_t *p, task_t *father, int traced)
2301  {
2302         /* We don't want people slaying init.  */
2303         if (p->exit_signal != -1)
2304 @@ -604,7 +604,7 @@
2305   * group, and if no such member exists, give it to
2306   * the global child reaper process (ie "init")
2307   */
2308 -static inline void forget_original_parent(struct task_struct * father,
2309 +static void forget_original_parent(struct task_struct * father,
2310                                           struct list_head *to_release)
2311  {
2312         struct task_struct *p, *reaper = father;
2313 diff -Nur linux-2.6.15.1/kernel/posix-timers.c linux-2.6.15.1-owrt/kernel/posix-timers.c
2314 --- linux-2.6.15.1/kernel/posix-timers.c        2006-01-15 07:16:02.000000000 +0100
2315 +++ linux-2.6.15.1-owrt/kernel/posix-timers.c   2006-01-27 15:08:36.000000000 +0100
2316 @@ -203,7 +203,7 @@
2317         return do_sys_settimeofday(tp, NULL);
2318  }
2319  
2320 -static inline int common_timer_create(struct k_itimer *new_timer)
2321 +static int common_timer_create(struct k_itimer *new_timer)
2322  {
2323         INIT_LIST_HEAD(&new_timer->it.real.abs_timer_entry);
2324         init_timer(&new_timer->it.real.timer);
2325 @@ -513,7 +513,7 @@
2326  }
2327  
2328  
2329 -static inline struct task_struct * good_sigevent(sigevent_t * event)
2330 +static struct task_struct * good_sigevent(sigevent_t * event)
2331  {
2332         struct task_struct *rtn = current->group_leader;
2333  
2334 @@ -939,7 +939,7 @@
2335  
2336  /* Set a POSIX.1b interval timer. */
2337  /* timr->it_lock is taken. */
2338 -static inline int
2339 +static int
2340  common_timer_set(struct k_itimer *timr, int flags,
2341                  struct itimerspec *new_setting, struct itimerspec *old_setting)
2342  {
2343 @@ -1122,7 +1122,7 @@
2344  /*
2345   * return timer owned by the process, used by exit_itimers
2346   */
2347 -static inline void itimer_delete(struct k_itimer *timer)
2348 +static void itimer_delete(struct k_itimer *timer)
2349  {
2350         unsigned long flags;
2351  
2352 diff -Nur linux-2.6.15.1/kernel/sched.c linux-2.6.15.1-owrt/kernel/sched.c
2353 --- linux-2.6.15.1/kernel/sched.c       2006-01-15 07:16:02.000000000 +0100
2354 +++ linux-2.6.15.1-owrt/kernel/sched.c  2006-01-27 15:08:36.000000000 +0100
2355 @@ -512,7 +512,7 @@
2356   * long it was waiting to run.  We also note when it began so that we
2357   * can keep stats on how long its timeslice is.
2358   */
2359 -static inline void sched_info_arrive(task_t *t)
2360 +static void sched_info_arrive(task_t *t)
2361  {
2362         unsigned long now = jiffies, diff = 0;
2363         struct runqueue *rq = task_rq(t);
2364 @@ -994,7 +994,7 @@
2365   * We want to under-estimate the load of migration sources, to
2366   * balance conservatively.
2367   */
2368 -static inline unsigned long __source_load(int cpu, int type, enum idle_type idle)
2369 +static unsigned long __source_load(int cpu, int type, enum idle_type idle)
2370  {
2371         runqueue_t *rq = cpu_rq(cpu);
2372         unsigned long running = rq->nr_running;
2373 @@ -1849,7 +1849,7 @@
2374   * pull_task - move a task from a remote runqueue to the local runqueue.
2375   * Both runqueues must be locked.
2376   */
2377 -static inline
2378 +static
2379  void pull_task(runqueue_t *src_rq, prio_array_t *src_array, task_t *p,
2380                runqueue_t *this_rq, prio_array_t *this_array, int this_cpu)
2381  {
2382 @@ -1871,7 +1871,7 @@
2383  /*
2384   * can_migrate_task - may task p from runqueue rq be migrated to this_cpu?
2385   */
2386 -static inline
2387 +static
2388  int can_migrate_task(task_t *p, runqueue_t *rq, int this_cpu,
2389                      struct sched_domain *sd, enum idle_type idle,
2390                      int *all_pinned)
2391 @@ -2357,7 +2357,7 @@
2392   * idle_balance is called by schedule() if this_cpu is about to become
2393   * idle. Attempts to pull tasks from other CPUs.
2394   */
2395 -static inline void idle_balance(int this_cpu, runqueue_t *this_rq)
2396 +static void idle_balance(int this_cpu, runqueue_t *this_rq)
2397  {
2398         struct sched_domain *sd;
2399  
2400 @@ -2741,7 +2741,7 @@
2401                 resched_task(rq->idle);
2402  }
2403  
2404 -static inline void wake_sleeping_dependent(int this_cpu, runqueue_t *this_rq)
2405 +static void wake_sleeping_dependent(int this_cpu, runqueue_t *this_rq)
2406  {
2407         struct sched_domain *tmp, *sd = NULL;
2408         cpumask_t sibling_map;
2409 @@ -2795,7 +2795,7 @@
2410         return p->time_slice * (100 - sd->per_cpu_gain) / 100;
2411  }
2412  
2413 -static inline int dependent_sleeper(int this_cpu, runqueue_t *this_rq)
2414 +static int dependent_sleeper(int this_cpu, runqueue_t *this_rq)
2415  {
2416         struct sched_domain *tmp, *sd = NULL;
2417         cpumask_t sibling_map;
2418 @@ -5505,7 +5505,7 @@
2419   * Detach sched domains from a group of cpus specified in cpu_map
2420   * These cpus will now be attached to the NULL domain
2421   */
2422 -static inline void detach_destroy_domains(const cpumask_t *cpu_map)
2423 +static void detach_destroy_domains(const cpumask_t *cpu_map)
2424  {
2425         int i;
2426  
2427 diff -Nur linux-2.6.15.1/kernel/signal.c linux-2.6.15.1-owrt/kernel/signal.c
2428 --- linux-2.6.15.1/kernel/signal.c      2006-01-15 07:16:02.000000000 +0100
2429 +++ linux-2.6.15.1-owrt/kernel/signal.c 2006-01-27 15:08:36.000000000 +0100
2430 @@ -465,7 +465,7 @@
2431         spin_unlock_irqrestore(&current->sighand->siglock, flags);
2432  }
2433  
2434 -static inline int collect_signal(int sig, struct sigpending *list, siginfo_t *info)
2435 +static int collect_signal(int sig, struct sigpending *list, siginfo_t *info)
2436  {
2437         struct sigqueue *q, *first = NULL;
2438         int still_pending = 0;
2439 @@ -1786,7 +1786,7 @@
2440   * We return zero if we still hold the siglock and should look
2441   * for another signal without checking group_stop_count again.
2442   */
2443 -static inline int handle_group_stop(void)
2444 +static int handle_group_stop(void)
2445  {
2446         int stop_count;
2447  
2448 diff -Nur linux-2.6.15.1/kernel/sys.c linux-2.6.15.1-owrt/kernel/sys.c
2449 --- linux-2.6.15.1/kernel/sys.c 2006-01-15 07:16:02.000000000 +0100
2450 +++ linux-2.6.15.1-owrt/kernel/sys.c    2006-01-27 15:03:45.000000000 +0100
2451 @@ -223,6 +223,18 @@
2452  
2453  EXPORT_SYMBOL(unregister_reboot_notifier);
2454  
2455 +#ifndef CONFIG_SECURITY
2456 +int capable(int cap)
2457 +{
2458 +        if (cap_raised(current->cap_effective, cap)) {
2459 +              current->flags |= PF_SUPERPRIV;
2460 +              return 1;
2461 +        }
2462 +        return 0;
2463 +}
2464 +EXPORT_SYMBOL(capable);
2465 +#endif
2466 +
2467  static int set_one_prio(struct task_struct *p, int niceval, int error)
2468  {
2469         int no_nice;
2470 diff -Nur linux-2.6.15.1/kernel/time.c linux-2.6.15.1-owrt/kernel/time.c
2471 --- linux-2.6.15.1/kernel/time.c        2006-01-15 07:16:02.000000000 +0100
2472 +++ linux-2.6.15.1-owrt/kernel/time.c   2006-01-27 15:04:09.000000000 +0100
2473 @@ -583,6 +583,67 @@
2474  }
2475  EXPORT_SYMBOL_GPL(getnstimestamp);
2476  
2477 +/* Converts Gregorian date to seconds since 1970-01-01 00:00:00.
2478 + * Assumes input in normal date format, i.e. 1980-12-31 23:59:59
2479 + * => year=1980, mon=12, day=31, hour=23, min=59, sec=59.
2480 + *
2481 + * [For the Julian calendar (which was used in Russia before 1917,
2482 + * Britain & colonies before 1752, anywhere else before 1582,
2483 + * and is still in use by some communities) leave out the
2484 + * -year/100+year/400 terms, and add 10.]
2485 + *
2486 + * This algorithm was first published by Gauss (I think).
2487 + *
2488 + * WARNING: this function will overflow on 2106-02-07 06:28:16 on
2489 + * machines were long is 32-bit! (However, as time_t is signed, we
2490 + * will already get problems at other places on 2038-01-19 03:14:08)
2491 + */
2492 +unsigned long
2493 +mktime (unsigned int year, unsigned int mon,
2494 +       unsigned int day, unsigned int hour,
2495 +       unsigned int min, unsigned int sec)
2496 +{
2497 +       if (0 >= (int) (mon -= 2)) {    /* 1..12 -> 11,12,1..10 */
2498 +               mon += 12;              /* Puts Feb last since it has leap day */
2499 +               year -= 1;
2500 +       }
2501 +
2502 +       return ((((unsigned long)
2503 +                 (year/4 - year/100 + year/400 + 367*mon/12 + day) +
2504 +                 year*365 - 719499
2505 +           )*24 + hour /* now have hours */
2506 +         )*60 + min /* now have minutes */
2507 +       )*60 + sec; /* finally seconds */
2508 +}
2509 +
2510 +/**
2511 + * set_normalized_timespec - set timespec sec and nsec parts and normalize
2512 + *
2513 + * @ts:                pointer to timespec variable to be set
2514 + * @sec:       seconds to set
2515 + * @nsec:      nanoseconds to set
2516 + *
2517 + * Set seconds and nanoseconds field of a timespec variable and
2518 + * normalize to the timespec storage format
2519 + *
2520 + * Note: The tv_nsec part is always in the range of
2521 + *     0 <= tv_nsec < NSEC_PER_SEC
2522 + * For negative values only the tv_sec field is negative !
2523 + */
2524 +void set_normalized_timespec (struct timespec *ts, time_t sec, long nsec)
2525 +{
2526 +       while (nsec >= NSEC_PER_SEC) {
2527 +               nsec -= NSEC_PER_SEC;
2528 +               ++sec;
2529 +       }
2530 +       while (nsec < 0) {
2531 +               nsec += NSEC_PER_SEC;
2532 +               --sec;
2533 +       }
2534 +       ts->tv_sec = sec;
2535 +       ts->tv_nsec = nsec;
2536 +}
2537 +
2538  #if (BITS_PER_LONG < 64)
2539  u64 get_jiffies_64(void)
2540  {
2541 diff -Nur linux-2.6.15.1/kernel/workqueue.c linux-2.6.15.1-owrt/kernel/workqueue.c
2542 --- linux-2.6.15.1/kernel/workqueue.c   2006-01-15 07:16:02.000000000 +0100
2543 +++ linux-2.6.15.1-owrt/kernel/workqueue.c      2006-01-27 15:08:36.000000000 +0100
2544 @@ -147,7 +147,7 @@
2545         return ret;
2546  }
2547  
2548 -static inline void run_workqueue(struct cpu_workqueue_struct *cwq)
2549 +static void run_workqueue(struct cpu_workqueue_struct *cwq)
2550  {
2551         unsigned long flags;
2552  
2553 diff -Nur linux-2.6.15.1/lib/Kconfig.debug linux-2.6.15.1-owrt/lib/Kconfig.debug
2554 --- linux-2.6.15.1/lib/Kconfig.debug    2006-01-15 07:16:02.000000000 +0100
2555 +++ linux-2.6.15.1-owrt/lib/Kconfig.debug       2006-01-27 15:03:21.000000000 +0100
2556 @@ -186,6 +186,20 @@
2557           some architectures or if you use external debuggers.
2558           If you don't debug the kernel, you can say N.
2559  
2560 +config FORCED_INLINING
2561 +       bool "Force gcc to inline functions marked 'inline'"
2562 +       depends on DEBUG_KERNEL
2563 +       default y
2564 +       help
2565 +         This option determines if the kernel forces gcc to inline the functions
2566 +         developers have marked 'inline'. Doing so takes away freedom from gcc to
2567 +         do what it thinks is best, which is desirable for the gcc 3.x series of
2568 +         compilers. The gcc 4.x series have a rewritten inlining algorithm and
2569 +         disabling this option will generate a smaller kernel there. Hopefully
2570 +         this algorithm is so good that allowing gcc4 to make the decision can
2571 +         become the default in the future, until then this option is there to
2572 +         test gcc for this.
2573 +
2574  config RCU_TORTURE_TEST
2575         tristate "torture tests for RCU"
2576         depends on DEBUG_KERNEL
2577 diff -Nur linux-2.6.15.1/mm/internal.h linux-2.6.15.1-owrt/mm/internal.h
2578 --- linux-2.6.15.1/mm/internal.h        2006-01-15 07:16:02.000000000 +0100
2579 +++ linux-2.6.15.1-owrt/mm/internal.h   2006-01-27 15:04:04.000000000 +0100
2580 @@ -9,5 +9,20 @@
2581   * 2 of the License, or (at your option) any later version.
2582   */
2583  
2584 -/* page_alloc.c */
2585 -extern void set_page_refs(struct page *page, int order);
2586 +static inline void set_page_refs(struct page *page, int order)
2587 +{
2588 +#ifdef CONFIG_MMU
2589 +       set_page_count(page, 1);
2590 +#else
2591 +       int i;
2592 +
2593 +       /*
2594 +        * We need to reference all the pages for this order, otherwise if
2595 +        * anyone accesses one of the pages with (get/put) it will be freed.
2596 +        * - eg: access_process_vm()
2597 +        */
2598 +       for (i = 0; i < (1 << order); i++)
2599 +               set_page_count(page + i, 1);
2600 +#endif /* CONFIG_MMU */
2601 +}
2602 +
2603 diff -Nur linux-2.6.15.1/mm/page_alloc.c linux-2.6.15.1-owrt/mm/page_alloc.c
2604 --- linux-2.6.15.1/mm/page_alloc.c      2006-01-15 07:16:02.000000000 +0100
2605 +++ linux-2.6.15.1-owrt/mm/page_alloc.c 2006-01-27 15:04:04.000000000 +0100
2606 @@ -451,23 +451,6 @@
2607         return page;
2608  }
2609  
2610 -void set_page_refs(struct page *page, int order)
2611 -{
2612 -#ifdef CONFIG_MMU
2613 -       set_page_count(page, 1);
2614 -#else
2615 -       int i;
2616 -
2617 -       /*
2618 -        * We need to reference all the pages for this order, otherwise if
2619 -        * anyone accesses one of the pages with (get/put) it will be freed.
2620 -        * - eg: access_process_vm()
2621 -        */
2622 -       for (i = 0; i < (1 << order); i++)
2623 -               set_page_count(page + i, 1);
2624 -#endif /* CONFIG_MMU */
2625 -}
2626 -
2627  /*
2628   * This page is about to be returned from the page allocator
2629   */
2630 diff -Nur linux-2.6.15.1/net/ieee80211/ieee80211_module.c linux-2.6.15.1-owrt/net/ieee80211/ieee80211_module.c
2631 --- linux-2.6.15.1/net/ieee80211/ieee80211_module.c     2006-01-15 07:16:02.000000000 +0100
2632 +++ linux-2.6.15.1-owrt/net/ieee80211/ieee80211_module.c        2006-01-27 15:08:36.000000000 +0100
2633 @@ -62,7 +62,7 @@
2634  MODULE_AUTHOR(DRV_COPYRIGHT);
2635  MODULE_LICENSE("GPL");
2636  
2637 -static inline int ieee80211_networks_allocate(struct ieee80211_device *ieee)
2638 +static int ieee80211_networks_allocate(struct ieee80211_device *ieee)
2639  {
2640         if (ieee->networks)
2641                 return 0;
2642 @@ -90,7 +90,7 @@
2643         ieee->networks = NULL;
2644  }
2645  
2646 -static inline void ieee80211_networks_initialize(struct ieee80211_device *ieee)
2647 +static void ieee80211_networks_initialize(struct ieee80211_device *ieee)
2648  {
2649         int i;
2650  
2651 diff -Nur linux-2.6.15.1/net/ieee80211/ieee80211_rx.c linux-2.6.15.1-owrt/net/ieee80211/ieee80211_rx.c
2652 --- linux-2.6.15.1/net/ieee80211/ieee80211_rx.c 2006-01-15 07:16:02.000000000 +0100
2653 +++ linux-2.6.15.1-owrt/net/ieee80211/ieee80211_rx.c    2006-01-27 15:08:36.000000000 +0100
2654 @@ -35,7 +35,7 @@
2655  
2656  #include <net/ieee80211.h>
2657  
2658 -static inline void ieee80211_monitor_rx(struct ieee80211_device *ieee,
2659 +static void ieee80211_monitor_rx(struct ieee80211_device *ieee,
2660                                         struct sk_buff *skb,
2661                                         struct ieee80211_rx_stats *rx_stats)
2662  {
2663 @@ -165,7 +165,7 @@
2664   * Responsible for handling management control frames
2665   *
2666   * Called by ieee80211_rx */
2667 -static inline int
2668 +static int
2669  ieee80211_rx_frame_mgmt(struct ieee80211_device *ieee, struct sk_buff *skb,
2670                         struct ieee80211_rx_stats *rx_stats, u16 type,
2671                         u16 stype)
2672 @@ -266,7 +266,7 @@
2673  }
2674  
2675  /* Called only as a tasklet (software IRQ), by ieee80211_rx */
2676 -static inline int
2677 +static int
2678  ieee80211_rx_frame_decrypt(struct ieee80211_device *ieee, struct sk_buff *skb,
2679                            struct ieee80211_crypt_data *crypt)
2680  {
2681 @@ -297,7 +297,7 @@
2682  }
2683  
2684  /* Called only as a tasklet (software IRQ), by ieee80211_rx */
2685 -static inline int
2686 +static int
2687  ieee80211_rx_frame_decrypt_msdu(struct ieee80211_device *ieee,
2688                                 struct sk_buff *skb, int keyidx,
2689                                 struct ieee80211_crypt_data *crypt)
2690 @@ -1157,7 +1157,7 @@
2691  
2692  /***************************************************/
2693  
2694 -static inline int ieee80211_network_init(struct ieee80211_device *ieee, struct ieee80211_probe_response
2695 +static int ieee80211_network_init(struct ieee80211_device *ieee, struct ieee80211_probe_response
2696                                          *beacon,
2697                                          struct ieee80211_network *network,
2698                                          struct ieee80211_rx_stats *stats)
2699 @@ -1236,7 +1236,7 @@
2700                 !memcmp(src->ssid, dst->ssid, src->ssid_len));
2701  }
2702  
2703 -static inline void update_network(struct ieee80211_network *dst,
2704 +static void update_network(struct ieee80211_network *dst,
2705                                   struct ieee80211_network *src)
2706  {
2707         int qos_active;
2708 @@ -1295,7 +1295,7 @@
2709         return (WLAN_FC_GET_STYPE(le16_to_cpu(fc)) == IEEE80211_STYPE_BEACON);
2710  }
2711  
2712 -static inline void ieee80211_process_probe_response(struct ieee80211_device
2713 +static void ieee80211_process_probe_response(struct ieee80211_device
2714                                                     *ieee, struct
2715                                                     ieee80211_probe_response
2716                                                     *beacon, struct ieee80211_rx_stats
2717 diff -Nur linux-2.6.15.1/net/ieee80211/ieee80211_tx.c linux-2.6.15.1-owrt/net/ieee80211/ieee80211_tx.c
2718 --- linux-2.6.15.1/net/ieee80211/ieee80211_tx.c 2006-01-15 07:16:02.000000000 +0100
2719 +++ linux-2.6.15.1-owrt/net/ieee80211/ieee80211_tx.c    2006-01-27 15:08:36.000000000 +0100
2720 @@ -127,7 +127,7 @@
2721  static u8 P802_1H_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0xf8 };
2722  static u8 RFC1042_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0x00 };
2723  
2724 -static inline int ieee80211_copy_snap(u8 * data, u16 h_proto)
2725 +static int ieee80211_copy_snap(u8 * data, u16 h_proto)
2726  {
2727         struct ieee80211_snap_hdr *snap;
2728         u8 *oui;
2729 @@ -150,7 +150,7 @@
2730         return SNAP_SIZE + sizeof(u16);
2731  }
2732  
2733 -static inline int ieee80211_encrypt_fragment(struct ieee80211_device *ieee,
2734 +static int ieee80211_encrypt_fragment(struct ieee80211_device *ieee,
2735                                              struct sk_buff *frag, int hdr_len)
2736  {
2737         struct ieee80211_crypt_data *crypt = ieee->crypt[ieee->tx_keyidx];
2738 diff -Nur linux-2.6.15.1/net/ieee80211/ieee80211_wx.c linux-2.6.15.1-owrt/net/ieee80211/ieee80211_wx.c
2739 --- linux-2.6.15.1/net/ieee80211/ieee80211_wx.c 2006-01-15 07:16:02.000000000 +0100
2740 +++ linux-2.6.15.1-owrt/net/ieee80211/ieee80211_wx.c    2006-01-27 15:08:36.000000000 +0100
2741 @@ -42,7 +42,7 @@
2742  };
2743  
2744  #define MAX_CUSTOM_LEN 64
2745 -static inline char *ipw2100_translate_scan(struct ieee80211_device *ieee,
2746 +static char *ipw2100_translate_scan(struct ieee80211_device *ieee,
2747                                            char *start, char *stop,
2748                                            struct ieee80211_network *network)
2749  {
2750 diff -Nur linux-2.6.15.1/net/netfilter/nfnetlink.c linux-2.6.15.1-owrt/net/netfilter/nfnetlink.c
2751 --- linux-2.6.15.1/net/netfilter/nfnetlink.c    2006-01-15 07:16:02.000000000 +0100
2752 +++ linux-2.6.15.1-owrt/net/netfilter/nfnetlink.c       2006-01-27 15:08:36.000000000 +0100
2753 @@ -212,7 +212,7 @@
2754  }
2755  
2756  /* Process one complete nfnetlink message. */
2757 -static inline int nfnetlink_rcv_msg(struct sk_buff *skb,
2758 +static int nfnetlink_rcv_msg(struct sk_buff *skb,
2759                                     struct nlmsghdr *nlh, int *errp)
2760  {
2761         struct nfnl_callback *nc;
2762 diff -Nur linux-2.6.15.1/security/selinux/hooks.c linux-2.6.15.1-owrt/security/selinux/hooks.c
2763 --- linux-2.6.15.1/security/selinux/hooks.c     2006-01-15 07:16:02.000000000 +0100
2764 +++ linux-2.6.15.1-owrt/security/selinux/hooks.c        2006-01-27 15:08:36.000000000 +0100
2765 @@ -1018,7 +1018,7 @@
2766     has the same SID as the process.  If av is zero, then
2767     access to the file is not checked, e.g. for cases
2768     where only the descriptor is affected like seek. */
2769 -static inline int file_has_perm(struct task_struct *tsk,
2770 +static int file_has_perm(struct task_struct *tsk,
2771                                 struct file *file,
2772                                 u32 av)
2773  {
2774 diff -Nur linux-2.6.15.1/sound/oss/esssolo1.c linux-2.6.15.1-owrt/sound/oss/esssolo1.c
2775 --- linux-2.6.15.1/sound/oss/esssolo1.c 2006-01-15 07:16:02.000000000 +0100
2776 +++ linux-2.6.15.1-owrt/sound/oss/esssolo1.c    2006-01-27 15:08:36.000000000 +0100
2777 @@ -515,7 +515,7 @@
2778         return 0;
2779  }
2780  
2781 -static inline int prog_dmabuf_dac(struct solo1_state *s)
2782 +static int prog_dmabuf_dac(struct solo1_state *s)
2783  {
2784         unsigned long va;
2785         int c;
2786 diff -Nur linux-2.6.15.1/sound/pci/es1968.c linux-2.6.15.1-owrt/sound/pci/es1968.c
2787 --- linux-2.6.15.1/sound/pci/es1968.c   2006-01-15 07:16:02.000000000 +0100
2788 +++ linux-2.6.15.1-owrt/sound/pci/es1968.c      2006-01-27 15:13:39.000000000 +0100
2789 @@ -731,7 +731,7 @@
2790         apu_data_set(chip, data);
2791  }
2792  
2793 -static inline void apu_set_register(es1968_t *chip, u16 channel, u8 reg, u16 data)
2794 +static void apu_set_register(es1968_t *chip, u16 channel, u8 reg, u16 data)
2795  {
2796         unsigned long flags;
2797         spin_lock_irqsave(&chip->reg_lock, flags);
2798 diff -Nur linux-2.6.15.1/arch/mips/Makefile linux-2.6.15.1-owrt/arch/mips/Makefile
2799 --- linux-2.6.15.1/arch/mips/Makefile   2006-01-21 17:13:20.000000000 +0100
2800 +++ linux-2.6.15.1-owrt/arch/mips/Makefile      2006-01-28 11:37:25.000000000 +0100
2801 @@ -93,7 +93,6 @@
2802  #
2803  cflags-y                       += -I $(TOPDIR)/include/asm/gcc
2804  cflags-y                       += -G 0 -mno-abicalls -fno-pic -pipe
2805 -cflags-y                       += $(call cc-option, -finline-limit=100000)
2806  LDFLAGS_vmlinux                        += -G 0 -static -n -nostdlib
2807  MODFLAGS                       += -mlong-calls
2808  
2809 --- linux-2.6.15.1.old/include/asm-mips/system.h        2006-01-28 15:02:54.481032280 +0100
2810 +++ linux-2.6.15.1.dev/include/asm-mips/system.h        2006-01-28 14:47:51.634285848 +0100
2811 @@ -273,7 +273,7 @@
2812     if something tries to do an invalid xchg().  */
2813  extern void __xchg_called_with_bad_pointer(void);
2814  
2815 -static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size)
2816 +static __always_inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size)
2817  {
2818         switch (size) {
2819                 case 4: