klibc-bot for Aurelien Jarno
2016-Jan-06 01:54 UTC
[klibc] [klibc:master] ppc64: fix struct stat
Commit-ID: ce358438679db7488f36706feaf64d6d5ab84ad6 Gitweb: http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=ce358438679db7488f36706feaf64d6d5ab84ad6 Author: Aurelien Jarno <aurelien at aurel32.net> AuthorDate: Wed, 6 Jan 2016 00:44:16 +0000 Committer: H. Peter Anvin <hpa at linux.intel.com> CommitDate: Tue, 5 Jan 2016 17:45:55 -0800 [klibc] ppc64: fix struct stat On ppc64 the struct stat defined by klibc matches the kernel one. However it contains implicit padding before the st_rdev field due to the 64-bit alignement. For internal reasons, klibc defines st_rdev as a pair of 32-bit values (using the __stdev64 macro). They only need to be 32-bit aligned and as a consequence st->st_rdev is incorrectly defined. The solution is to add an explicit padding in the structure. This fixes the resume binary on ppc64 BE and LE, and probably other things. Signed-off-by: Aurelien Jarno <aurelien at aurel32.net> Link: http://lkml.kernel.org/r/20160106004416.GG28542 at decadent.org.uk Signed-off-by: Ben Hutchings <ben at decadent.org.uk> Signed-off-by: H. Peter Anvin <hpa at linux.intel.com> --- usr/include/arch/ppc64/klibc/archstat.h | 1 + 1 file changed, 1 insertion(+) diff --git a/usr/include/arch/ppc64/klibc/archstat.h b/usr/include/arch/ppc64/klibc/archstat.h index 918d810..0bbbff3 100644 --- a/usr/include/arch/ppc64/klibc/archstat.h +++ b/usr/include/arch/ppc64/klibc/archstat.h @@ -12,6 +12,7 @@ struct stat { mode_t st_mode; uid_t st_uid; gid_t st_gid; + unsigned int __pad1; __stdev64 (st_rdev); off_t st_size; unsigned long st_blksize;