[PATCH] s390: cio non-unique path group ids
authorPeter Oberparleiter <peter.oberparleiter@de.ibm.com>
Sun, 4 Jun 2006 09:51:28 +0000 (02:51 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 5 Jun 2006 19:29:16 +0000 (12:29 -0700)
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>
drivers/s390/cio/css.h
include/asm-s390/lowcore.h

index 74a257b23383abb94c8d1e011e896e97a50c1265..e210f89a24499c65f9bedea44df54d3e299c96d4 100644 (file)
@@ -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 */
index db0606c1abd4fbf56c938905790f8785a904c364..bea7279042872672c7bc3904cb9e1000a8eb41a8 100644 (file)
@@ -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