[PATCH] s390: cio non-unique path group ids

From: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>

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 <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Peter Oberparleiter and committed by
Linus Torvalds
4ae9538d e0ec5749

+4 -4
+2 -2
drivers/s390/cio/css.h
··· 45 45 union { 46 46 __u8 fc; /* SPID function code */ 47 47 struct path_state ps; /* SNID path state */ 48 - } inf; 48 + } __attribute__ ((packed)) inf; 49 49 union { 50 50 __u32 cpu_addr : 16; /* CPU address */ 51 51 struct extended_cssid ext_cssid; 52 - } pgid_high; 52 + } __attribute__ ((packed)) pgid_high; 53 53 __u32 cpu_id : 24; /* CPU identification */ 54 54 __u32 cpu_model : 16; /* CPU model */ 55 55 __u32 tod_high; /* high word TOD clock */
+2 -2
include/asm-s390/lowcore.h
··· 98 98 #define __LC_KERNEL_ASCE 0xD58 99 99 #define __LC_USER_ASCE 0xD60 100 100 #define __LC_PANIC_STACK 0xD68 101 - #define __LC_CPUID 0xD90 102 - #define __LC_CPUADDR 0xD98 101 + #define __LC_CPUID 0xD80 102 + #define __LC_CPUADDR 0xD88 103 103 #define __LC_IPLDEV 0xDB8 104 104 #define __LC_JIFFY_TIMER 0xDC0 105 105 #define __LC_CURRENT 0xDD8