From mboxrd@z Thu Jan 1 00:00:00 1970 From: Denys Vlasenko Subject: [PATCH 1/3] debloat aic7xxx and aic79xx drivers Date: Fri, 31 Aug 2007 16:15:54 +0100 Message-ID: <200708311615.54991.vda.linux@googlemail.com> References: <200708311613.59666.vda.linux@googlemail.com> Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_qCD2GQTk77NDqum" Return-path: Received: from nf-out-0910.google.com ([64.233.182.190]:39484 "EHLO nf-out-0910.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757486AbXHaPQJ (ORCPT ); Fri, 31 Aug 2007 11:16:09 -0400 Received: by nf-out-0910.google.com with SMTP id f5so729477nfh for ; Fri, 31 Aug 2007 08:16:07 -0700 (PDT) In-Reply-To: <200708311613.59666.vda.linux@googlemail.com> Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: Hannes Reinecke Cc: Jan Engelhardt , Matthew Wilcox , Arjan van de Ven , Adrian Bunk , Andrew Morton , linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org --Boundary-00=_qCD2GQTk77NDqum Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline On Friday 31 August 2007 16:13, Denys Vlasenko wrote: > Attached are three patches which fix that: > > text data bss dec hex filename > 261433 50018 1172 312623 4c52f linux-2.6.23-rc1.org.t/drivers/scsi/aic7xxx/built-in.o > 199654 50018 1172 250844 3d3dc linux-2.6.23-rc1.aic.t/drivers/scsi/aic7xxx/built-in.o > 184014 21314 1172 206500 326a4 linux-2.6.23-rc1.aic1.t/drivers/scsi/aic7xxx/built-in.o > 202378 2850 1172 206400 32640 linux-2.6.23-rc1.aic2.t/drivers/scsi/aic7xxx/built-in.o > > 1-debloat.patch deinlines a lot of functions > 2-addstatic.patch adds statics, #ifdefs out huge amount of unused code, adds consts > 3-addconst.patch adds more consts -- vda --Boundary-00=_qCD2GQTk77NDqum Content-Type: application/x-bzip2; name="linux-2.6.23-rc1-aic7xxx-1-debloat.patch.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="linux-2.6.23-rc1-aic7xxx-1-debloat.patch.bz2" QlpoOTFBWSZTWRCvTnYAcvL/gH4wD//7/////+///r////9gXj88AAAUA6ANOdXYw3XbuyYudxdd e9q72gB1Q6UDWu2KKHVAAAdADoAABoGq0blM2UKsgAaYAQXTsGjsNViXboADkq6NC5AAAAAAFFA3 YcirYNCshWgAYQlAgADQAAAUAHQAdsAAAAAaAHIAAAAAAAAAAAFDQGQAAaaoPQAOuRrQBWIAAAAA GICgBKaJogIZJo0yE9ITSfqQyamnlNlGn6UGR6h6g9T2pqYRkyPUw1MCUxEiIp4g0T9U0yanknqP UGjQA9TRk0aepoNNAGgAAAGm1VQANAAAAAAADQAAAAAAAACU/VJJNINBCTRtTaNT1M1PU9T0Q0AA AAAGmmgAAGmONDRo0GjQNAAAAAAyAAAANAZAAYFRJCBAIAQJk0ZNRkxDSn6EynkMqM8RqPUn6U/V G9SPU/KjZRtThCexRSlKipVJYFkqlttqfjUpUjFQj9qY0hSSI/F9h22hK0BmAkl8O6kCQCQLltSW 27hYE3c1f+3LLZhnFtu1b9n/eScuQAkAAAH2N0yDIKI7W6WBQAAADBu6eNW6bWymqc5nLgAINsLG 85nLkkkkkkkkkkpW54LnNuOWKcAUpJSjaq22+1czOcBLd3c3drpTnADlum1u7nfnAS5lu7W7uXVz gct3bdDbd3dWLADbd222ABJIA23UgSAAABJJJJJIAWLG62zbEmMNt3bdSNt02t3bN0AASS222SEt t1JIAABa21rcrN02zN0AAEkgSSANrd2zNRljdt023QBIDa3UkkkjattgBJSkhIDazdUo2ttkkhJJ La3RISSSEhIAUra3RLa3RISS2ZIlMkSk2TY30m+9tVbhxXCmddHLkrmZYrmZZrazdSSSNtra2qvt f2CAwW2dWdWJbbpu6G26brVnjc4crbZud83QqA6t2J1tm6kAABttt1ZzOOa5crgc5XLnOWbzNm82 zdAAOrdDlbbA3OVJSpboG27tvDmlsl33eW7tugACQAAG223at023duWLnNuXOcq4EieNtywskgDl VSCAgQIEDKdbQl25yctKVtbptm6Btuhtu7bobbu26kAbVugAJbW6CQpW2bbJAltugkClJJbV2rln LEhI5VmboBtuiQAJCRtZtttboAAAbZss23GBtdc4xgbyzly2rdNt0BI2t3a3dt02rd2t3biq5wAA 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 jvNjmew3PqV1e6Y66YzH0NTIk2ttqqVZJlK1fr9R5v+ex2OR9xp9BT7j0k9DSZSw/5sOZRoph6lO D3vW2et0HJ73I+J6HbmcnjV2bHQ6Hc83c4N2HDRzOh3Gj4GzqacHY5OZu+4p4HMYeJg8TQ5DqeB2 0p6G5o73ccjYwxXgN2w5nY3GOhsacNlbczcx5OZ5D0PtVwbjxMcHRhTmbqbOpTdyG6YPA9jDnzN3 qYV79yMiRPxLH/F3GyaLJFPiU3bsk2SmmmjQqw8H1HLHmdR6FQ4RUipZFRZFLDs+XQFqqJNo7mNW R7WYlseIpyOyjXJa7G5o5NzHBgp6jkjg2PJP2K4PxNyeD9zGxyidGKY3NnUc2xSpfe/F+I9z4udQ tsUqsYqMLKGSksYqOXttpeqvSfMNOzT4I5Qp6H6ntEjy5P809DrS/qp+ZSqetudqTpD2V+T8ttuZ luMWKLZmWFYyyylLLMj99X6TFdhqazMyMHiFiJFKkcyqj2GBVYp9hTvD3D5z6Eqo2Pgf3mCR0VJO gVSh6icg7GpD/sKPzkHwBY+U7DkbXO9+fV4qJJeaSkObQY3gzjOJJwv08szMHYd6oqqHzj248VbB DNmWNgIYzuplk8zMTLzJQ90GoZA2wEAfensbNknNySvwTkqVJJ5WWx0cm5UtrnmA9df63stwKkr6 9tlyWZyzp5C6aVVJSpJ3Sp+Dxffp7nycmkUopKPafhDD9fo95VKpVNHB/1GxwbEbK/QfwSZLZWj/ Fo2FdVNAgcQECChyB2HFhtG7eIBvWZ4Ksd9aSszMV6hrNYazMzLTnf8G+/B4ZkzHmFCJbxEjio5U tJFpV/zO+2022xttsYzKFsZgKMbbWhJIQkhkJgkvnnmnuLtkKaFFFGSRXZalxajVlqniu3Y1Ulpl 3v0LZbvZR7NvJax4o6osoZaBKtI7wLbZt1sJ9IePh45mLmZjMzMxjHcc51IqnPnbVdNPGjxcj/Ix PUkVVV7XvNJ2PC2iScZgkGRifaHGbHq/yyH2itgP1W/Na77HF2D2ke/zP1hArY0/N4z+RHLryI2z hwvyeN/ikk24jPeGMZD8fb656ldZHVnbXjMuslOxBOnWjxa3ZuMLFre0XSXIh3EqpVUueoHkSklN dgo7cN3bi9B1o6+L5CBWxp+j1nIjl1yRtnDhfLk+Ukm3EZyGMZDl19qdddwjqztruGXWSnYgnTrR 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 2kjsVKiRZNIqSWKliQqSNE//4u5IpwoSAhXpzsA= --Boundary-00=_qCD2GQTk77NDqum--