Thread (33 messages) 33 messages, 4 authors, 2012-04-30

Re: [PATCH EDACv16 1/2] edac: Change internal representation to work with layers

From: Borislav Petkov <hidden>
Date: 2012-04-30 12:51:33
Also in: lkml

Possibly related (same subject, not in this thread)

On Mon, Apr 30, 2012 at 08:23:42AM -0300, Mauro Carvalho Chehab wrote:
With this I fully agree: you're nacking patches because it is not the way you
Where? Have I written Nacked-by somewhere?
write your code, not because the code there is doing anything wrong.

If you point anything wrong on the way I wrote, then I'll fix. Otherwise, why
should I do a change that will obfuscate the code?
What obfuscation are you talking about? Having the initialization of
variables along with their declaration is not it.

Now let's look what you're doing:
quoted
quoted
+     unsigned tot_csrows, tot_channels, tot_errcount = 0;
+     unsigned size, tot_dimms, count, pos[EDAC_MAX_LAYERS];
just to reassign 1 to some of them
quoted
quoted
+     tot_dimms = 1;
+     tot_channels = 1;
+     tot_csrows = 1;
a couple of lines below.

Now this is misleading.

Now let's look at what I'm proposing

	unsigned tot_dimms = 1;
	unsigned tot_csrows = 1;
	unsigned tot_channels = 1;

How is this an obfuscation? It is basic code layout practices.
The editor used by te developer is not relevant. This is not a reason
to obfuscate the code.
quoted
quoted
+struct mem_ctl_info *new_edac_mc_alloc(unsigned edac_index,
+                                    unsigned n_layers,
+                                    struct edac_mc_layer *layers,
+                                    bool rev_order,
+                                    unsigned sz_pvt)
 {
      void *ptr = NULL;
      struct mem_ctl_info *mci;
-     struct csrow_info *csi, *csrow;
+     struct edac_mc_layer *layer;
+     struct csrow_info *csi, *csr;
      struct rank_info *chi, *chp, *chan;
      struct dimm_info *dimm;
+     u32 *ce_per_layer[EDAC_MAX_LAYERS], *ue_per_layer[EDAC_MAX_LAYERS];
      void *pvt;
-     unsigned size;
-     int row, chn;
+     unsigned size, tot_dimms, count, pos[EDAC_MAX_LAYERS];
+     unsigned tot_csrows, tot_channels, tot_errcount = 0;
+     int i, j;
      int err;
+     int row, chn;
+     bool per_rank = false;
+
+     BUG_ON(n_layers > EDAC_MAX_LAYERS || n_layers == 0);
+     /*
+      * Calculate the total amount of dimms and csrows/cschannels while
+      * in the old API emulation mode
+      */
+     tot_dimms = 1;
+     tot_channels = 1;
+     tot_csrows = 1;
+     for (i = 0; i < n_layers; i++) {
+             tot_dimms *= layers[i].size;
+             if (layers[i].is_virt_csrow)
+                     tot_csrows *= layers[i].size;
+             else
+                     tot_channels *= layers[i].size;
+
+             if (layers[i].type == EDAC_MC_LAYER_CHIP_SELECT)
+                     per_rank = true;
-- 
Regards/Gruss,
Boris.

Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
GM: Alberto Bozzo
Reg: Dornach, Landkreis Muenchen
HRB Nr. 43632 WEEE Registernr: 129 19551
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help