[PATCH] adjust the alignment in struct sal_processor_static_info

From: Hidetoshi Seto <seto.hidetoshi_at_jp.fujitsu.com>
Date: 2004-08-05 16:42:36
Hi all,

Struct ia64_fpreg(asm-ia64/fpu.h) is forced to align 16-byte.
An array of this struct is in struct sal_processor_static_info
(asm-ia64/sal.h), however, we can't touch the array correctly
because of the forced alignment.

Usually, SAL log record contains:
  Record Header
    - sizeof(sal_log_record_header_t) = 40
  Section Header
    - sizeof(sal_log_sec_hdr_t) = 24
  Section Body(Processor Error Section)
    - sizeof(before mod_error_info) = 32
    - sizeof(sal_log_mod_error_info_t) = 48
    - sizeof(sal_cpuid_info) = 48
    - sizeof(sal_log_mod_error_info_t) = 48
    - sizeof(sal_processor_static_info_t) = 5256
      (offset of struct ia64_fpreg fr[0]
        in sal_processor_static_info_t) = 3208

So, the total offset of fr[0] from beginning of the record is:
    40 + 24 + 32 + 48*n + 48 + 3208
This number can't be divided by 16. fr[0] never fit to the
16-byte boundary because of the remainder.

This trivial patch will fix this issue.

Thanks,

H.Seto

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>

diff -Nur linux-2.6.8-rc3/include/asm-ia64/sal.h linux-2.6.8-rc3-sal/include/asm-ia64/sal.h
--- linux-2.6.8-rc3/include/asm-ia64/sal.h	2004-08-04 06:28:48.000000000 +0900
+++ linux-2.6.8-rc3-sal/include/asm-ia64/sal.h	2004-08-04 18:05:58.365516395 +0900
@@ -364,7 +364,7 @@
 	u64 cr[128];
 	u64 ar[128];
 	u64 rr[8];
-	struct ia64_fpreg fr[128];
+	struct ia64_fpreg __attribute__ ((packed)) fr[128];
 } sal_processor_static_info_t;
 
 struct sal_cpuid_info {
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Thu Aug 5 02:42:57 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:29 EST