forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 's390-5.3-2' of git://git.kernel.org/pub/scm/linux/kernel/g…
…it/s390/linux Pull more s390 updates from Vasily Gorbik: - Fix integer overflow during stack frame unwind with invalid backchain. - Cleanup unused symbol export in zcrypt code. - Fix MIO addressing control activation in PCI code and expose its usage via sysfs. - Fix kernel image signature verification report presence detection. - Fix irq registration in vfio-ap code. - Add CPU measurement counters for newer machines. - Add base DASD thin provisioning support and code cleanups. * tag 's390-5.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (21 commits) s390/unwind: avoid int overflow in outside_of_stack s390/zcrypt: remove the exporting of ap_query_configuration s390/pci: add mio_enabled attribute s390: fix setting of mio addressing control s390/ipl: Fix detection of has_secure attribute s390: vfio-ap: fix irq registration s390/cpumf: Add extended counter set definitions for model 8561 and 8562 s390/dasd: Handle out-of-space constraint s390/dasd: Add discard support for ESE volumes s390/dasd: Use ALIGN_DOWN macro s390/dasd: Make dasd_setup_queue() a discipline function s390/dasd: Add new ioctl to release space s390/dasd: Add dasd_sleep_on_queue_interruptible() s390/dasd: Add missing intensity definition s390/dasd: Fix whitespace s390/dasd: Add dynamic formatting support for ESE volumes s390/dasd: Recognise data for ESE volumes s390/dasd: Put sub-order definitions in a separate section s390/dasd: Make layout analysis ESE compatible s390/dasd: Remove old defines and function ...
- Loading branch information
Showing
22 changed files
with
1,547 additions
and
256 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
/* | ||
/* | ||
* Author(s)......: Holger Smolinski <[email protected]> | ||
* Bugreports.to..: <[email protected]> | ||
* Copyright IBM Corp. 1999, 2000 | ||
|
@@ -21,40 +21,40 @@ | |
|
||
#define DASD_API_VERSION 6 | ||
|
||
/* | ||
/* | ||
* struct dasd_information2_t | ||
* represents any data about the device, which is visible to userspace. | ||
* including foramt and featueres. | ||
*/ | ||
typedef struct dasd_information2_t { | ||
unsigned int devno; /* S/390 devno */ | ||
unsigned int real_devno; /* for aliases */ | ||
unsigned int schid; /* S/390 subchannel identifier */ | ||
unsigned int cu_type : 16; /* from SenseID */ | ||
unsigned int cu_model : 8; /* from SenseID */ | ||
unsigned int dev_type : 16; /* from SenseID */ | ||
unsigned int dev_model : 8; /* from SenseID */ | ||
unsigned int open_count; | ||
unsigned int req_queue_len; | ||
unsigned int chanq_len; /* length of chanq */ | ||
char type[4]; /* from discipline.name, 'none' for unknown */ | ||
unsigned int status; /* current device level */ | ||
unsigned int label_block; /* where to find the VOLSER */ | ||
unsigned int FBA_layout; /* fixed block size (like AIXVOL) */ | ||
unsigned int characteristics_size; | ||
unsigned int confdata_size; | ||
char characteristics[64]; /* from read_device_characteristics */ | ||
char configuration_data[256]; /* from read_configuration_data */ | ||
unsigned int format; /* format info like formatted/cdl/ldl/... */ | ||
unsigned int features; /* dasd features like 'ro',... */ | ||
unsigned int reserved0; /* reserved for further use ,... */ | ||
unsigned int reserved1; /* reserved for further use ,... */ | ||
unsigned int reserved2; /* reserved for further use ,... */ | ||
unsigned int reserved3; /* reserved for further use ,... */ | ||
unsigned int reserved4; /* reserved for further use ,... */ | ||
unsigned int reserved5; /* reserved for further use ,... */ | ||
unsigned int reserved6; /* reserved for further use ,... */ | ||
unsigned int reserved7; /* reserved for further use ,... */ | ||
unsigned int devno; /* S/390 devno */ | ||
unsigned int real_devno; /* for aliases */ | ||
unsigned int schid; /* S/390 subchannel identifier */ | ||
unsigned int cu_type : 16; /* from SenseID */ | ||
unsigned int cu_model : 8; /* from SenseID */ | ||
unsigned int dev_type : 16; /* from SenseID */ | ||
unsigned int dev_model : 8; /* from SenseID */ | ||
unsigned int open_count; | ||
unsigned int req_queue_len; | ||
unsigned int chanq_len; /* length of chanq */ | ||
char type[4]; /* from discipline.name, 'none' for unknown */ | ||
unsigned int status; /* current device level */ | ||
unsigned int label_block; /* where to find the VOLSER */ | ||
unsigned int FBA_layout; /* fixed block size (like AIXVOL) */ | ||
unsigned int characteristics_size; | ||
unsigned int confdata_size; | ||
char characteristics[64]; /* from read_device_characteristics */ | ||
char configuration_data[256]; /* from read_configuration_data */ | ||
unsigned int format; /* format info like formatted/cdl/ldl/... */ | ||
unsigned int features; /* dasd features like 'ro',... */ | ||
unsigned int reserved0; /* reserved for further use ,... */ | ||
unsigned int reserved1; /* reserved for further use ,... */ | ||
unsigned int reserved2; /* reserved for further use ,... */ | ||
unsigned int reserved3; /* reserved for further use ,... */ | ||
unsigned int reserved4; /* reserved for further use ,... */ | ||
unsigned int reserved5; /* reserved for further use ,... */ | ||
unsigned int reserved6; /* reserved for further use ,... */ | ||
unsigned int reserved7; /* reserved for further use ,... */ | ||
} dasd_information2_t; | ||
|
||
/* | ||
|
@@ -92,34 +92,34 @@ typedef struct dasd_information2_t { | |
|
||
#define DASD_PARTN_BITS 2 | ||
|
||
/* | ||
/* | ||
* struct dasd_information_t | ||
* represents any data about the data, which is visible to userspace | ||
*/ | ||
typedef struct dasd_information_t { | ||
unsigned int devno; /* S/390 devno */ | ||
unsigned int real_devno; /* for aliases */ | ||
unsigned int schid; /* S/390 subchannel identifier */ | ||
unsigned int cu_type : 16; /* from SenseID */ | ||
unsigned int cu_model : 8; /* from SenseID */ | ||
unsigned int dev_type : 16; /* from SenseID */ | ||
unsigned int dev_model : 8; /* from SenseID */ | ||
unsigned int open_count; | ||
unsigned int req_queue_len; | ||
unsigned int chanq_len; /* length of chanq */ | ||
char type[4]; /* from discipline.name, 'none' for unknown */ | ||
unsigned int status; /* current device level */ | ||
unsigned int label_block; /* where to find the VOLSER */ | ||
unsigned int FBA_layout; /* fixed block size (like AIXVOL) */ | ||
unsigned int characteristics_size; | ||
unsigned int confdata_size; | ||
char characteristics[64]; /* from read_device_characteristics */ | ||
char configuration_data[256]; /* from read_configuration_data */ | ||
unsigned int devno; /* S/390 devno */ | ||
unsigned int real_devno; /* for aliases */ | ||
unsigned int schid; /* S/390 subchannel identifier */ | ||
unsigned int cu_type : 16; /* from SenseID */ | ||
unsigned int cu_model : 8; /* from SenseID */ | ||
unsigned int dev_type : 16; /* from SenseID */ | ||
unsigned int dev_model : 8; /* from SenseID */ | ||
unsigned int open_count; | ||
unsigned int req_queue_len; | ||
unsigned int chanq_len; /* length of chanq */ | ||
char type[4]; /* from discipline.name, 'none' for unknown */ | ||
unsigned int status; /* current device level */ | ||
unsigned int label_block; /* where to find the VOLSER */ | ||
unsigned int FBA_layout; /* fixed block size (like AIXVOL) */ | ||
unsigned int characteristics_size; | ||
unsigned int confdata_size; | ||
char characteristics[64]; /* from read_device_characteristics */ | ||
char configuration_data[256]; /* from read_configuration_data */ | ||
} dasd_information_t; | ||
|
||
/* | ||
* Read Subsystem Data - Performance Statistics | ||
*/ | ||
*/ | ||
typedef struct dasd_rssd_perf_stats_t { | ||
unsigned char invalid:1; | ||
unsigned char format:3; | ||
|
@@ -154,21 +154,21 @@ typedef struct dasd_rssd_perf_stats_t { | |
unsigned char reseved2[96]; | ||
} __attribute__((packed)) dasd_rssd_perf_stats_t; | ||
|
||
/* | ||
/* | ||
* struct profile_info_t | ||
* holds the profinling information | ||
* holds the profinling information | ||
*/ | ||
typedef struct dasd_profile_info_t { | ||
unsigned int dasd_io_reqs; /* number of requests processed at all */ | ||
unsigned int dasd_io_sects; /* number of sectors processed at all */ | ||
unsigned int dasd_io_secs[32]; /* histogram of request's sizes */ | ||
unsigned int dasd_io_times[32]; /* histogram of requests's times */ | ||
unsigned int dasd_io_timps[32]; /* histogram of requests's times per sector */ | ||
unsigned int dasd_io_time1[32]; /* histogram of time from build to start */ | ||
unsigned int dasd_io_time2[32]; /* histogram of time from start to irq */ | ||
unsigned int dasd_io_time2ps[32]; /* histogram of time from start to irq */ | ||
unsigned int dasd_io_time3[32]; /* histogram of time from irq to end */ | ||
unsigned int dasd_io_nr_req[32]; /* histogram of # of requests in chanq */ | ||
unsigned int dasd_io_reqs; /* number of requests processed at all */ | ||
unsigned int dasd_io_sects; /* number of sectors processed at all */ | ||
unsigned int dasd_io_secs[32]; /* histogram of request's sizes */ | ||
unsigned int dasd_io_times[32]; /* histogram of requests's times */ | ||
unsigned int dasd_io_timps[32]; /* histogram of requests's times per sector */ | ||
unsigned int dasd_io_time1[32]; /* histogram of time from build to start */ | ||
unsigned int dasd_io_time2[32]; /* histogram of time from start to irq */ | ||
unsigned int dasd_io_time2ps[32]; /* histogram of time from start to irq */ | ||
unsigned int dasd_io_time3[32]; /* histogram of time from irq to end */ | ||
unsigned int dasd_io_nr_req[32]; /* histogram of # of requests in chanq */ | ||
} dasd_profile_info_t; | ||
|
||
/* | ||
|
@@ -189,10 +189,12 @@ typedef struct format_data_t { | |
* 3/11: also write home address | ||
* 4/12: invalidate track | ||
*/ | ||
#define DASD_FMT_INT_FMT_R0 1 /* write record zero */ | ||
#define DASD_FMT_INT_FMT_HA 2 /* write home address, also set FMT_R0 ! */ | ||
#define DASD_FMT_INT_INVAL 4 /* invalidate tracks */ | ||
#define DASD_FMT_INT_COMPAT 8 /* use OS/390 compatible disk layout */ | ||
#define DASD_FMT_INT_FMT_R0 1 /* write record zero */ | ||
#define DASD_FMT_INT_FMT_HA 2 /* write home address, also set FMT_R0 ! */ | ||
#define DASD_FMT_INT_INVAL 4 /* invalidate tracks */ | ||
#define DASD_FMT_INT_COMPAT 8 /* use OS/390 compatible disk layout */ | ||
#define DASD_FMT_INT_FMT_NOR0 16 /* remove permission to write record zero */ | ||
#define DASD_FMT_INT_ESE_FULL 32 /* release space for entire volume */ | ||
|
||
/* | ||
* struct format_check_t | ||
|
@@ -225,7 +227,7 @@ typedef struct format_check_t { | |
/* If key-length was != 0 */ | ||
#define DASD_FMT_ERR_KEY_LENGTH 5 | ||
|
||
/* | ||
/* | ||
* struct attrib_data_t | ||
* represents the operation (cache) bits for the device. | ||
* Used in DE to influence caching of the DASD. | ||
|
@@ -281,23 +283,23 @@ struct dasd_snid_ioctl_data { | |
* Here ist how the ioctl-nr should be used: | ||
* 0 - 31 DASD driver itself | ||
* 32 - 239 still open | ||
* 240 - 255 reserved for EMC | ||
* 240 - 255 reserved for EMC | ||
*******************************************************************************/ | ||
|
||
/* Disable the volume (for Linux) */ | ||
#define BIODASDDISABLE _IO(DASD_IOCTL_LETTER,0) | ||
#define BIODASDDISABLE _IO(DASD_IOCTL_LETTER,0) | ||
/* Enable the volume (for Linux) */ | ||
#define BIODASDENABLE _IO(DASD_IOCTL_LETTER,1) | ||
#define BIODASDENABLE _IO(DASD_IOCTL_LETTER,1) | ||
/* Issue a reserve/release command, rsp. */ | ||
#define BIODASDRSRV _IO(DASD_IOCTL_LETTER,2) /* reserve */ | ||
#define BIODASDRLSE _IO(DASD_IOCTL_LETTER,3) /* release */ | ||
#define BIODASDSLCK _IO(DASD_IOCTL_LETTER,4) /* steal lock */ | ||
/* reset profiling information of a device */ | ||
#define BIODASDPRRST _IO(DASD_IOCTL_LETTER,5) | ||
/* Quiesce IO on device */ | ||
#define BIODASDQUIESCE _IO(DASD_IOCTL_LETTER,6) | ||
#define BIODASDQUIESCE _IO(DASD_IOCTL_LETTER,6) | ||
/* Resume IO on device */ | ||
#define BIODASDRESUME _IO(DASD_IOCTL_LETTER,7) | ||
#define BIODASDRESUME _IO(DASD_IOCTL_LETTER,7) | ||
/* Abort all I/O on a device */ | ||
#define BIODASDABORTIO _IO(DASD_IOCTL_LETTER, 240) | ||
/* Allow I/O on a device */ | ||
|
@@ -315,13 +317,15 @@ struct dasd_snid_ioctl_data { | |
/* Performance Statistics Read */ | ||
#define BIODASDPSRD _IOR(DASD_IOCTL_LETTER,4,dasd_rssd_perf_stats_t) | ||
/* Get Attributes (cache operations) */ | ||
#define BIODASDGATTR _IOR(DASD_IOCTL_LETTER,5,attrib_data_t) | ||
#define BIODASDGATTR _IOR(DASD_IOCTL_LETTER,5,attrib_data_t) | ||
|
||
|
||
/* #define BIODASDFORMAT _IOW(IOCTL_LETTER,0,format_data_t) , deprecated */ | ||
#define BIODASDFMT _IOW(DASD_IOCTL_LETTER,1,format_data_t) | ||
#define BIODASDFMT _IOW(DASD_IOCTL_LETTER,1,format_data_t) | ||
/* Set Attributes (cache operations) */ | ||
#define BIODASDSATTR _IOW(DASD_IOCTL_LETTER,2,attrib_data_t) | ||
#define BIODASDSATTR _IOW(DASD_IOCTL_LETTER,2,attrib_data_t) | ||
/* Release Allocated Space */ | ||
#define BIODASDRAS _IOW(DASD_IOCTL_LETTER, 3, format_data_t) | ||
|
||
/* Get Sense Path Group ID (SNID) data */ | ||
#define BIODASDSNID _IOWR(DASD_IOCTL_LETTER, 1, struct dasd_snid_ioctl_data) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.