Messages in this thread | | | Date | Tue, 08 Apr 2008 23:38:11 +0200 | From | Jiri Slaby <> | Subject | Re: [PATCH] drivers/char/specialix.c: stop inlining largish static functions |
| |
On 04/08/2008 12:44 PM, Denys Vlasenko wrote: > Hi Alan, > > drivers/char/specialix.c has unusually large number > of static inline functions - 22. > > I looked through them. The file is positively inline-happy. > Inlines with udelay() calls. Inlines with complex loops. > Nested inlines. Rarely called inlines (e.g. with request_region > inside). > > This patch removes "inline" from 15 static functions > (regardless of number of callsites - gcc nowadays auto-inlines > statics with one callsite). > > Size difference for 32bit x86: > text data bss dec hex filename > 21669 204 8780 30653 77bd linux-2.6-ALLYES/drivers/char/specialix.o > 18470 204 8780 27454 6b3e linux-2.6.inline-ALLYES/drivers/char/specialix.o > > > Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
- static const char *badmagic = + static const char badmagic[] = KERN_ERR "sx: Warning: bad specialix port magic number for device %s in %s\n"; - static const char *badinfo = + static const char badinfo[] = KERN_ERR "sx: Warning: null specialix port for device %s in %s\n";
BTW what's this good for? I mean, why we need this as a variable not directly as a parameter?
if (!port) { printk(badinfo, name, routine); return 1; } if (port->magic != SPECIALIX_MAGIC) { printk(badmagic, name, routine); return 1; }
| |