IMO, asm-generic headers should be used in more architectures as far as possible. The patch of stat.h could be split into two parts to discuss. Firstly, STAT64_HAS_BROKEN_ST_INO is defined in most architecture's asm/stat.h, and it should be considered as the part in asm-generic/stat.h. Secondly, STAT64_PAD_BEFORE_* are misunderstanding definitions, and perhaps it should use STAT64_ST_SIZE_NEED_ALIGN_64. Indeed, the macros are used for compatibility, but most architectures could make full use of asm-generic headers, and new architectures could just follow the default values. Guan Xuetao > -----Original Message----- > From: Arnd Bergmann [mailto:arnd@xxxxxxxx] > Sent: Sunday, January 09, 2011 8:28 AM > To: Guan Xuetao > Cc: linux-arch@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx > Subject: Re: [PATCH] asm-generic headers: modify stat.h in include/asm-generic to be applicable to more architectures > > On Saturday 08 January 2011, Guan Xuetao wrote: > > From: Guan Xuetao <guanxuetao@xxxxxxxxxxxxxxx> > > > > This patch modifies stat.h in include/asm-generic to be applicable to more architectures. > > STAT64_HAS_BROKEN_ST_INO is defined in most architecture's asm/stat.h, and it need > > 32-bit __st_ino member to be defined in different position of 64-bit st_ino member. > > STAT64_PAD_BEFORE_ST_SIZE is the pad before st_size member, with default value 8 bytes. > > STAT64_PAD_BEFORE_ST_BLOCKS is the pad before st_blocks member, with default value > > 4 bytes to align the following member to 64-bit. > > I'd prefer not to apply this patch. It makes the generic header > significantly more complex, and I can't see a significant benefit. > > The existing architectures would all still have to define the macros > you test and also keep defining stuff like __old_kernel_stat, while > risking to introduce bugs while changing to the common header. We've > done similar tricks in other places, where the differences between > architectures are smaller, but this one doesn't seem worth it > unless we can get to the point where we can define struct stat in > linux/stat.h for everyone and only do the macros for the architectures > that need it. > > Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html