On Thu, Oct 18 2007 at 10:54 +0200, Matthew Wilcox <matthew@xxxxxx> wrote: > On Thu, Oct 18, 2007 at 10:16:38AM +0200, Boaz Harrosh wrote: >> Sorry Matthew, my mistake I forgot to send the last [33/33] patch >> this here should be done on top of that last one. > > Yeah. I'll rebase the series of 4 patches I just sent on top of it when > I wake up in the morning. > >> I will grab your tool and play with it. The sglist pointer shuffle >> is good, and also I know that if you put the scsi_data_buffer >> at the beginning of scsi_cmnd, than you can fill the holes with small types >> following the sub-structure. I'll give it a try. > > No, that doesn't work ;-( > > I think a macro to hide the ugliness of my earlier suggestion might fly. > Something like ... > > #define STRUCT_PACK(a, b, c, d) \ > union { a; struct { \ > char _packed_ ## __stringify(a) [sizeof(a) - sizeof(c) + sizeof(d)]; \ > b; \ > }; } > > then we use it like: > > struct scsi_cmnd { > ... > STRUCT_PACK(struct scsi_data_buffer sdb, int result, > sizeof(long), sizeof(int)); > } > > Even that's still pretty foul (and i have my grave doubts about using > stringify in that manner). It's definitely past my bedtime now ... but > a hack like that could save us another 8 bytes on x86-64. > You lost me. What union, please look at patch [33/33] Boaz - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html