linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hannes Reinecke <hare@suse.de>
To: Denys Vlasenko <vda.linux@googlemail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>, linux-scsi@vger.kernel.org
Subject: Re: [PATCH 2/3] debloat aic7xxx and aic79xx drivers
Date: Tue, 08 Apr 2008 14:23:30 +0200	[thread overview]
Message-ID: <47FB63C2.4030006@suse.de> (raw)
In-Reply-To: <200804072000.55637.vda.linux@googlemail.com>

Hi Denys,

Denys Vlasenko wrote:
> On Monday 07 April 2008 12:34, Hannes Reinecke wrote:
>>> Adds statics, #ifdefs out huge amount of unused code, adds consts
>>>
>>> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
>>> --
>>> vda
>>>
>> NACK. We need the #defines to print out the registers.
>> And in either case the *_shipped files are in fact
>> autogenerated by aic assembler, so we need to fix that
>> one, too.
> 
> I assume you are talking about this part of a patch:
> 
> --- linux-2.6.25-rc6-aic1/drivers/scsi/aic7xxx/aic79xx_reg.h_shipped    2008-03-23 00:43:20.000000000 +0100
> +++ linux-2.6.25-rc6-aic2/drivers/scsi/aic7xxx/aic79xx_reg.h_shipped    2008-03-23 00:54:59.000000000 +0100
> @@ -11,23 +11,18 @@ typedef struct ahd_reg_parse_entry {
>         uint8_t  value;
>         uint8_t  mask;
>  } ahd_reg_parse_entry_t;
> 
> +#if 0 /* unused */
> +
>  #if AIC_DEBUG_REGISTERS
>  ahd_reg_print_t ahd_mode_ptr_print;
>  #else
>  #define ahd_mode_ptr_print(regvalue, cur_col, wrap) \
>      ahd_print_register(NULL, 0, "MODE_PTR", 0x00, regvalue, cur_col, wrap)
>  #endif
> 
> .....
> .....
> 
Correct.

> 
> Let me explain what I am doing here. I am NOT deleting ahd_intstat_print
> definition, I am moving it below the #endif which terminates big
> #if 0 /* unused */  block, moving to this place:
> 
> 
> @@ -2377,8 +2043,346 @@ ahd_reg_print_t ahd_scb_disconnected_lis
>  #define ahd_scb_disconnected_lists_print(regvalue, cur_col, wrap) \
>      ahd_print_register(NULL, 0, "SCB_DISCONNECTED_LISTS", 0x1b8, regvalue, cur_col, wrap)
>  #endif
> 
> +#endif /* unused */
> +
> +#if AIC_DEBUG_REGISTERS
> +ahd_reg_print_t ahd_intstat_print;
> +#else
> +#define ahd_intstat_print(regvalue, cur_col, wrap) \
> +    ahd_print_register(NULL, 0, "INTSTAT", 0x01, regvalue, cur_col, wrap)
> +#endif
> ...
> ...
> 
Hmm.

> 
> #if 0 / #endif block ends up containing definitions of 290 functions/macros,
> none of which is EVER used. I used this script (below) and verified that
> they are never mentioned anywhere outside of *_shipped files.
> I also did test builds with and without debug enabled and they build
> with no problems. No undefined references!
> 
Well, still not quite. The point here is that all of the functions in the
*_shipped files are in fact auto-generated by aicasm, based on the definitions
in aic79xx.seq and aic79xx.reg. So the *_reg_print.c files contains
functions for all _defined_ registers, not the actually used ones.
What we have to do here is to modify aicasm to not print out the
unused definitions, and copy those (autogenerated) files over to
the *_shipped files to have them synced properly.
Hand-patching the *_shipped files is not a good idea.

The const idea is a good one, and actually a one-liner to fix:
diff --git a/drivers/scsi/aic7xxx/aicasm/aicasm_symbol.c b/drivers/scsi/aic7xxx/aicasm/aicasm_symbol.c
index f1f448d..a7a51e4 100644
--- a/drivers/scsi/aic7xxx/aicasm/aicasm_symbol.c
+++ b/drivers/scsi/aic7xxx/aicasm/aicasm_symbol.c
@@ -370,7 +370,7 @@ aic_print_reg_dump_start(FILE *dfile, symbol_node_t *regnode)
                return;
 
        fprintf(dfile,
-"static %sreg_parse_entry_t %s_parse_table[] = {\n",
+"static const %sreg_parse_entry_t %s_parse_table[] = {\n",
                prefix,
                regnode->symbol->name);
 }


Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare@suse.de			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Markus Rex, HRB 16746 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2008-04-08 12:23 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-23  3:40 [PATCH 0/3] debloat aic7xxx and aic79xx drivers Denys Vlasenko
2008-03-23  3:41 ` [PATCH 1/3] " Denys Vlasenko
2008-03-23  3:42   ` [PATCH 2/3] " Denys Vlasenko
2008-03-23  3:42     ` [PATCH 3/3] " Denys Vlasenko
2008-04-07 10:36       ` Hannes Reinecke
2008-04-07 10:34     ` [PATCH 2/3] " Hannes Reinecke
2008-04-07 18:00       ` Denys Vlasenko
2008-04-08 12:23         ` Hannes Reinecke [this message]
2008-04-08 14:08           ` Denys Vlasenko
2008-04-08 14:54             ` Hannes Reinecke
2008-04-08 15:08               ` Denys Vlasenko
2008-04-14 18:47                 ` Denys Vlasenko
     [not found]                   ` <4804BE68.4000704@suse.de>
2008-04-15 20:10                     ` Denys Vlasenko
2008-04-21  5:10                       ` Denys Vlasenko
2008-04-14 18:46             ` Denys Vlasenko
2008-04-15 14:44               ` Hannes Reinecke
2008-04-07 10:31   ` [PATCH 1/3] " Hannes Reinecke
2008-04-07 18:01     ` Denys Vlasenko
  -- strict thread matches above, loose matches on Subject: below --
2007-10-14 14:58 [PATCH 0/3] " Denys Vlasenko
2007-10-14 15:00 ` [PATCH 1/3] " Denys Vlasenko
2007-10-14 15:01   ` [PATCH 2/3] " Denys Vlasenko
2007-08-31 15:13 [PATCH 0/3] " Denys Vlasenko
2007-08-31 15:15 ` [PATCH 1/3] " Denys Vlasenko
2007-08-31 15:16   ` [PATCH 2/3] " Denys Vlasenko
2007-09-24 10:23     ` Hannes Reinecke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47FB63C2.4030006@suse.de \
    --to=hare@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=vda.linux@googlemail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).