Browse Source

[S390] vdso: fix per cpu vdso pointer in lowcore

The vdso_per_cpu_data entry in the lowcore structure uses __u32
instead of __u64. If the data page is above 4GB the pointer is
truncated and the kernel crashes.

Reported-by: Mijo Safradin <mijo@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Martin Schwidefsky 16 năm trước cách đây
mục cha
commit
d5e842c4b7
1 tập tin đã thay đổi với 2 bổ sung2 xóa
  1. 2 2
      arch/s390/include/asm/lowcore.h

+ 2 - 2
arch/s390/include/asm/lowcore.h

@@ -384,8 +384,8 @@ struct _lowcore
         __u32        panic_magic;              /* 0xe00 */
         __u32        panic_magic;              /* 0xe00 */
 
 
 	/* Per cpu primary space access list */
 	/* Per cpu primary space access list */
-	__u8	     pad_0xe04[0xe3c-0xe04];   /* 0xe04 */
-	__u32	     vdso_per_cpu_data;	       /* 0xe3c */
+	__u8	     pad_0xe04[0xe38-0xe04];   /* 0xe04 */
+	__u64	     vdso_per_cpu_data;	       /* 0xe38 */
 	__u32	     paste[16];		       /* 0xe40 */
 	__u32	     paste[16];		       /* 0xe40 */
 
 
 	__u8	     pad13[0x11b8-0xe80];      /* 0xe80 */
 	__u8	     pad13[0x11b8-0xe80];      /* 0xe80 */