Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4dcc2a4d authored by Sebastian Ott's avatar Sebastian Ott Committed by Martin Schwidefsky
Browse files

s390/chsc: make headers usable



Make sure that exported headers are save to be included by userspace
exploiting /dev/chsc.

Reported-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 9be5f34f
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
/*
 *    Copyright IBM Corp. 2007
 *    Copyright IBM Corp. 2007, 2012
 *    Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
 */

@@ -12,10 +12,10 @@
#define __MAX_CHPID 255

struct chp_id {
	u8 reserved1;
	u8 cssid;
	u8 reserved2;
	u8 id;
	__u8 reserved1;
	__u8 cssid;
	__u8 reserved2;
	__u8 id;
} __attribute__((packed));

#ifdef __KERNEL__
+6 −4
Original line number Diff line number Diff line
/*
 * ioctl interface for /dev/chsc
 *
 * Copyright IBM Corp. 2008
 * Copyright IBM Corp. 2008, 2012
 * Author(s): Cornelia Huck <cornelia.huck@de.ibm.com>
 */

@@ -9,9 +9,12 @@
#define _ASM_CHSC_H

#include <linux/types.h>
#include <linux/ioctl.h>
#include <asm/chpid.h>
#include <asm/schid.h>

#define CHSC_SIZE 0x1000

struct chsc_async_header {
	__u16 length;
	__u16 code;
@@ -23,15 +26,14 @@ struct chsc_async_header {

struct chsc_async_area {
	struct chsc_async_header header;
	__u8 data[PAGE_SIZE - 16 /* size of chsc_async_header */];
	__u8 data[CHSC_SIZE - sizeof(struct chsc_async_header)];
} __attribute__ ((packed));


struct chsc_response_struct {
	__u16 length;
	__u16 code;
	__u32 parms;
	__u8 data[PAGE_SIZE - 8];
	__u8 data[CHSC_SIZE - 2 * sizeof(__u16) - sizeof(__u32)];
} __attribute__ ((packed));

struct chsc_chp_cd {