From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Andr=C3=A9=20Goddard=20Rosa?= Subject: [PATCH v4 00/12] introduce skip_spaces(), reducing code size plus some clean-ups Date: Sat, 7 Nov 2009 13:16:08 -0200 Message-ID: Reply-To: device-mapper development Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: Martin Schwidefsky , Heiko Carstens , linux390@de.ibm.com, Michael Holzheu , Andrew Morton Cc: =?UTF-8?q?Andr=C3=A9=20Goddard=20Rosa?= List-Id: dm-devel.ids This patch reduces lib.a code size by 173 bytes on my Core 2 with gcc 4.4= .1 even considering that it exports a newly defined function skip_spaces() to drivers: text data bss dec hex filename = =20 64867 840 592 66299 102fb (TOTALS-lib.a-before) 64954 584 588 66126 1024e (TOTALS-lib.a-after) and implements some code tidy up. Besides reducing lib.a size, it converts many in-tree drivers to use the newly defined function, which makes another small reduction on kernel siz= e overall when those drivers are used. p.s.: Ingo, I hope to have finally fixed my environment by using send-ema= il now. Please let me know if you have any problem with these and thank you for t= he good advice. get_maintainer.pl gave lots of people as output, I hope that= 's ok. Changelog: v4: convert drivers over newly defined skip_spaces() function=20 v3: improved comments on patch 5/7 and factorize a switch statement on= 6/7 as per suggestions from Ingo and Frederic (thanks!) v2: addressed feedback from Frederic Weisbecker review (thanks!!) and split into separate patches v1: original submission Andr=C3=A9 Goddard Rosa (12): vsprintf: factorize "(null)" string vsprintf: pre-calculate final string length for later use vsprintf: give it some care to please checkpatch.pl vsprintf: use TOLOWER whenever possible vsprintf: reduce code size by avoiding extra check vsprintf: move local vars to block local vars and remove unneeded ones vsprintf: factor out skip_space code in a separate function vsprintf: reuse almost identical simple_strtoulX() functions ctype: constify read-only _ctype string string: factorize skip_spaces and export it to be generally available string: on strstrip(), first remove leading spaces before running over str tree-wide: convert open calls to remove spaces to skip_spaces() lib function arch/s390/kernel/debug.c | 3 +- arch/um/drivers/mconsole_kern.c | 16 +- arch/x86/kernel/cpu/mtrr/if.c | 11 +- drivers/md/dm-table.c | 6 +- drivers/md/md.c | 4 +- drivers/parisc/pdc_stable.c | 9 +- drivers/platform/x86/thinkpad_acpi.c | 7 +- drivers/pnp/interface.c | 36 +--- drivers/s390/block/dasd_proc.c | 5 +- drivers/video/backlight/lcd.c | 4 +- drivers/video/display/display-sysfs.c | 2 +- fs/cachefiles/daemon.c | 8 +- fs/ext4/super.c | 7 +- include/linux/ctype.h | 2 +- include/linux/string.h | 1 + kernel/params.c | 8 +- lib/argv_split.c | 13 +- lib/ctype.c | 50 +++--- lib/dynamic_debug.c | 4 +- lib/string.c | 19 ++- lib/vsprintf.c | 342 ++++++++++++++++-----------= ------ net/irda/irnet/irnet.h | 1 + net/irda/irnet/irnet_ppp.c | 8 +- net/netfilter/xt_recent.c | 3 +- sound/pci/hda/hda_hwdep.c | 7 +- 25 files changed, 264 insertions(+), 312 deletions(-) From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: =?UTF-8?q?Andr=C3=A9=20Goddard=20Rosa?= Date: Sat, 7 Nov 2009 13:16:08 -0200 Message-Id: MIME-Version: 1.0 Subject: [uml-devel] [PATCH v4 00/12] introduce skip_spaces(), reducing code size plus some clean-ups List-Id: The user-mode Linux development list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: user-mode-linux-devel-bounces@lists.sourceforge.net To: Martin Schwidefsky , Heiko Carstens , linux390@de.ibm.com, Michael Holzheu , Andrew Morton , Stoyan Gaydarov , Julia Lawall , Jeff Dike , James Morris , WANG Cong , Pekka Enberg , David Howells , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , x86@kernel.org, Alexey Dobriyan , Joe Perches , Alan Cox , Arjan van de Ven , Neil Brown , Alasdair G Kergon , Mike Snitzer , Mikulas Patocka , Jens Axboe , "Martin K . Petersen" , Andre Noll , Kyle McMartin , Helge Deller , "James E . J . Bottomley" , Roel Kluin , Henrique de Moraes Holschuh , Len Brown , Adam Belay , Bjorn Helgaas , Stefan Haberland , Stefan Weinhuber , Richard Purdie , Andrea Righi , Greg Kroah-Hartman , Pavel Roskin , Andrey Borzenkov , Steve Dickson , Trond Myklebust , Daire Byrne , Al Viro , Theodore Ts'o , Andreas Dilger , Eric Sandeen , Jan Kara , Rusty Russell , Takashi Iwai , Frederic Weisbecker , Sitsofe Wheeler , Christof Schmitt , Greg Banks , Jason Baron , "David S . Miller" , Steven Rostedt , Samuel Ortiz , Patrick McHardy , Jan Engelhardt , Roman Hoog Antink , Jaroslav Kysela , linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, user-mode-linux-devel@lists.sourceforge.net, user-mode-linux-user@lists.sourceforge.net, dm-devel@redhat.com, linux-raid@vger.kernel.org, linux-parisc@vger.kernel.org, ibm-acpi-devel@lists.sourceforge.net, linux-cachefs@redhat.com, linux-ext4@vger.kernel.org, netdev@vger.kernel.org, netfilter-devel@vger.kernel.org, netfilter@vger.kernel.org, coreteam@netfilter.org, alsa-devel@alsa-project.org Cc: =?UTF-8?q?Andr=C3=A9=20Goddard=20Rosa?= VGhpcyBwYXRjaCByZWR1Y2VzIGxpYi5hIGNvZGUgc2l6ZSBieSAxNzMgYnl0ZXMgb24gbXkgQ29y ZSAyIHdpdGggZ2NjIDQuNC4xCmV2ZW4gY29uc2lkZXJpbmcgdGhhdCBpdCBleHBvcnRzIGEgbmV3 bHkgZGVmaW5lZCBmdW5jdGlvbiBza2lwX3NwYWNlcygpCnRvIGRyaXZlcnM6CiAgIHRleHQgICAg ZGF0YSAgICAgYnNzICAgICBkZWMgICAgIGhleCBmaWxlbmFtZSAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogIDY0ODY3ICAgICA4NDAgICAgIDU5MiAgIDY2Mjk5ICAgMTAyZmIgKFRPVEFMUy1s aWIuYS1iZWZvcmUpCiAgNjQ5NTQgICAgIDU4NCAgICAgNTg4ICAgNjYxMjYgICAxMDI0ZSAoVE9U QUxTLWxpYi5hLWFmdGVyKQphbmQgaW1wbGVtZW50cyBzb21lIGNvZGUgdGlkeSB1cC4KCkJlc2lk ZXMgcmVkdWNpbmcgbGliLmEgc2l6ZSwgaXQgY29udmVydHMgbWFueSBpbi10cmVlIGRyaXZlcnMg dG8gdXNlIHRoZQpuZXdseSBkZWZpbmVkIGZ1bmN0aW9uLCB3aGljaCBtYWtlcyBhbm90aGVyIHNt YWxsIHJlZHVjdGlvbiBvbiBrZXJuZWwgc2l6ZQpvdmVyYWxsIHdoZW4gdGhvc2UgZHJpdmVycyBh cmUgdXNlZC4KCnAucy46IEluZ28sIEkgaG9wZSB0byBoYXZlIGZpbmFsbHkgZml4ZWQgbXkgZW52 aXJvbm1lbnQgYnkgdXNpbmcgc2VuZC1lbWFpbCBub3cuClBsZWFzZSBsZXQgbWUga25vdyBpZiB5 b3UgaGF2ZSBhbnkgcHJvYmxlbSB3aXRoIHRoZXNlIGFuZCB0aGFuayB5b3UgZm9yIHRoZQpnb29k IGFkdmljZS4gZ2V0X21haW50YWluZXIucGwgZ2F2ZSBsb3RzIG9mIHBlb3BsZSBhcyBvdXRwdXQs IEkgaG9wZSB0aGF0J3Mgb2suCgpDaGFuZ2Vsb2c6CiAgIHY0OiBjb252ZXJ0IGRyaXZlcnMgb3Zl ciBuZXdseSBkZWZpbmVkIHNraXBfc3BhY2VzKCkgZnVuY3Rpb24gCiAgIHYzOiBpbXByb3ZlZCBj b21tZW50cyBvbiBwYXRjaCA1LzcgYW5kIGZhY3Rvcml6ZSBhIHN3aXRjaCBzdGF0ZW1lbnQgb24g Ni83CmFzIHBlciBzdWdnZXN0aW9ucyBmcm9tIEluZ28gYW5kIEZyZWRlcmljICh0aGFua3MhKQog ICB2MjogYWRkcmVzc2VkIGZlZWRiYWNrIGZyb20gRnJlZGVyaWMgV2Vpc2JlY2tlciByZXZpZXcg KHRoYW5rcyEhKQphbmQgc3BsaXQgaW50byBzZXBhcmF0ZSBwYXRjaGVzCiAgIHYxOiBvcmlnaW5h bCBzdWJtaXNzaW9uCgpBbmRyw6kgR29kZGFyZCBSb3NhICgxMik6CiAgdnNwcmludGY6IGZhY3Rv cml6ZSAiKG51bGwpIiBzdHJpbmcKICB2c3ByaW50ZjogcHJlLWNhbGN1bGF0ZSBmaW5hbCBzdHJp bmcgbGVuZ3RoIGZvciBsYXRlciB1c2UKICB2c3ByaW50ZjogZ2l2ZSBpdCBzb21lIGNhcmUgdG8g cGxlYXNlIGNoZWNrcGF0Y2gucGwKICB2c3ByaW50ZjogdXNlIFRPTE9XRVIgd2hlbmV2ZXIgcG9z c2libGUKICB2c3ByaW50ZjogcmVkdWNlIGNvZGUgc2l6ZSBieSBhdm9pZGluZyBleHRyYSBjaGVj awogIHZzcHJpbnRmOiBtb3ZlIGxvY2FsIHZhcnMgdG8gYmxvY2sgbG9jYWwgdmFycyBhbmQgcmVt b3ZlIHVubmVlZGVkCiAgICBvbmVzCiAgdnNwcmludGY6IGZhY3RvciBvdXQgc2tpcF9zcGFjZSBj b2RlIGluIGEgc2VwYXJhdGUgZnVuY3Rpb24KICB2c3ByaW50ZjogcmV1c2UgYWxtb3N0IGlkZW50 aWNhbCBzaW1wbGVfc3RydG91bFgoKSBmdW5jdGlvbnMKICBjdHlwZTogY29uc3RpZnkgcmVhZC1v bmx5IF9jdHlwZSBzdHJpbmcKICBzdHJpbmc6IGZhY3Rvcml6ZSBza2lwX3NwYWNlcyBhbmQgZXhw b3J0IGl0IHRvIGJlIGdlbmVyYWxseSBhdmFpbGFibGUKICBzdHJpbmc6IG9uIHN0cnN0cmlwKCks IGZpcnN0IHJlbW92ZSBsZWFkaW5nIHNwYWNlcyBiZWZvcmUgcnVubmluZwogICAgb3ZlciBzdHIK ICB0cmVlLXdpZGU6IGNvbnZlcnQgb3BlbiBjYWxscyB0byByZW1vdmUgc3BhY2VzIHRvIHNraXBf c3BhY2VzKCkgbGliCiAgICBmdW5jdGlvbgoKIGFyY2gvczM5MC9rZXJuZWwvZGVidWcuYyAgICAg ICAgICAgICAgfCAgICAzICstCiBhcmNoL3VtL2RyaXZlcnMvbWNvbnNvbGVfa2Vybi5jICAgICAg IHwgICAxNiArLQogYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL2lmLmMgICAgICAgICB8ICAgMTEg Ky0KIGRyaXZlcnMvbWQvZG0tdGFibGUuYyAgICAgICAgICAgICAgICAgfCAgICA2ICstCiBkcml2 ZXJzL21kL21kLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogZHJpdmVycy9wYXJp c2MvcGRjX3N0YWJsZS5jICAgICAgICAgICB8ICAgIDkgKy0KIGRyaXZlcnMvcGxhdGZvcm0veDg2 L3RoaW5rcGFkX2FjcGkuYyAgfCAgICA3ICstCiBkcml2ZXJzL3BucC9pbnRlcmZhY2UuYyAgICAg ICAgICAgICAgIHwgICAzNiArLS0tCiBkcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9wcm9jLmMgICAg ICAgIHwgICAgNSArLQogZHJpdmVycy92aWRlby9iYWNrbGlnaHQvbGNkLmMgICAgICAgICB8ICAg IDQgKy0KIGRyaXZlcnMvdmlkZW8vZGlzcGxheS9kaXNwbGF5LXN5c2ZzLmMgfCAgICAyICstCiBm cy9jYWNoZWZpbGVzL2RhZW1vbi5jICAgICAgICAgICAgICAgIHwgICAgOCArLQogZnMvZXh0NC9z dXBlci5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKy0KIGluY2x1ZGUvbGludXgvY3R5 cGUuaCAgICAgICAgICAgICAgICAgfCAgICAyICstCiBpbmNsdWRlL2xpbnV4L3N0cmluZy5oICAg ICAgICAgICAgICAgIHwgICAgMSArCiBrZXJuZWwvcGFyYW1zLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgOCArLQogbGliL2FyZ3Zfc3BsaXQuYyAgICAgICAgICAgICAgICAgICAgICB8ICAg MTMgKy0KIGxpYi9jdHlwZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUwICsrKy0t LQogbGliL2R5bmFtaWNfZGVidWcuYyAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIGxpYi9z dHJpbmcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrLQogbGliL3ZzcHJpbnRm LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNDIgKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tCiBuZXQvaXJkYS9pcm5ldC9pcm5ldC5oICAgICAgICAgICAgICAgIHwgICAgMSAr CiBuZXQvaXJkYS9pcm5ldC9pcm5ldF9wcHAuYyAgICAgICAgICAgIHwgICAgOCArLQogbmV0L25l dGZpbHRlci94dF9yZWNlbnQuYyAgICAgICAgICAgICB8ICAgIDMgKy0KIHNvdW5kL3BjaS9oZGEv aGRhX2h3ZGVwLmMgICAgICAgICAgICAgfCAgICA3ICstCiAyNSBmaWxlcyBjaGFuZ2VkLCAyNjQg aW5zZXJ0aW9ucygrKSwgMzEyIGRlbGV0aW9ucygtKQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpM ZXQgQ3J5c3RhbCBSZXBvcnRzIGhhbmRsZSB0aGUgcmVwb3J0aW5nIC0gRnJlZSBDcnlzdGFsIFJl cG9ydHMgMjAwOCAzMC1EYXkgCnRyaWFsLiBTaW1wbGlmeSB5b3VyIHJlcG9ydCBkZXNpZ24sIGlu dGVncmF0aW9uIGFuZCBkZXBsb3ltZW50IC0gYW5kIGZvY3VzIG9uIAp3aGF0IHlvdSBkbyBiZXN0 LCBjb3JlIGFwcGxpY2F0aW9uIGNvZGluZy4gRGlzY292ZXIgd2hhdCdzIG5ldyB3aXRoCkNyeXN0 YWwgUmVwb3J0cyBub3cuICBodHRwOi8vcC5zZi5uZXQvc2Z1L2JvYmotanVseQpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpVc2VyLW1vZGUtbGludXgtZGV2 ZWwgbWFpbGluZyBsaXN0ClVzZXItbW9kZS1saW51eC1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5u ZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vdXNlci1tb2Rl LWxpbnV4LWRldmVsCg==