From: Peter Oberparleiter The path grouping can fail due to non-unique pathgroup-IDs. The source for the CPU-ID part of the ID was incorrectly specified on 64 bit systems. Additionally, the length of the ID was too large due to incorrect data packing declaration. Fix CPU-ID lowcore address and add missing packing declaration. Signed-off-by: Peter Oberparleiter Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton --- drivers/s390/cio/css.h | 4 ++-- include/asm-s390/lowcore.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff -puN drivers/s390/cio/css.h~s390-cio-non-unique-path-group-ids drivers/s390/cio/css.h --- devel/drivers/s390/cio/css.h~s390-cio-non-unique-path-group-ids 2006-05-31 11:18:36.000000000 -0700 +++ devel-akpm/drivers/s390/cio/css.h 2006-05-31 11:18:36.000000000 -0700 @@ -45,11 +45,11 @@ struct pgid { union { __u8 fc; /* SPID function code */ struct path_state ps; /* SNID path state */ - } inf; + } __attribute__ ((packed)) inf; union { __u32 cpu_addr : 16; /* CPU address */ struct extended_cssid ext_cssid; - } pgid_high; + } __attribute__ ((packed)) pgid_high; __u32 cpu_id : 24; /* CPU identification */ __u32 cpu_model : 16; /* CPU model */ __u32 tod_high; /* high word TOD clock */ diff -puN include/asm-s390/lowcore.h~s390-cio-non-unique-path-group-ids include/asm-s390/lowcore.h --- devel/include/asm-s390/lowcore.h~s390-cio-non-unique-path-group-ids 2006-05-31 11:18:36.000000000 -0700 +++ devel-akpm/include/asm-s390/lowcore.h 2006-05-31 11:18:36.000000000 -0700 @@ -98,8 +98,8 @@ #define __LC_KERNEL_ASCE 0xD58 #define __LC_USER_ASCE 0xD60 #define __LC_PANIC_STACK 0xD68 -#define __LC_CPUID 0xD90 -#define __LC_CPUADDR 0xD98 +#define __LC_CPUID 0xD80 +#define __LC_CPUADDR 0xD88 #define __LC_IPLDEV 0xDB8 #define __LC_JIFFY_TIMER 0xDC0 #define __LC_CURRENT 0xDD8 _