s390/zcrypt: cleanup CPRB struct definitions
authorHarald Freudenberger <freude@linux.ibm.com>
Fri, 1 Apr 2022 14:59:09 +0000 (16:59 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Mon, 25 Apr 2022 11:54:13 +0000 (13:54 +0200)
This patch does a little cleanup on the CPRBX struct
in zcrypt.h and the redundant CPRB struct definition in
zcrypt_msgtype6.c. Especially some of the misleading
fields from the CPRBX struct have been removed.

There is no semantic change coming with this patch.
The field names changed in the XCRB struct are only related
to reserved fields which should never been used.

Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Reviewed-by: Jürgen Christ <jchrist@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/include/uapi/asm/zcrypt.h
drivers/s390/crypto/zcrypt_msgtype6.c

index 2f04a5499d742d03837f19dedb038add46d4f8a3..8da75fdf13f8db16a166236ffb893234075cc729 100644 (file)
@@ -4,7 +4,7 @@
  *
  *  zcrypt 2.2.1 (user-visible header)
  *
- *  Copyright IBM Corp. 2001, 2019
+ *  Copyright IBM Corp. 2001, 2022
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
@@ -85,7 +85,7 @@ struct ica_rsa_modexpo_crt {
 struct CPRBX {
        __u16        cprb_len;          /* CPRB length        220        */
        __u8         cprb_ver_id;       /* CPRB version id.   0x02       */
-       __u8         pad_000[3];        /* Alignment pad bytes           */
+       __u8         _pad_000[3];       /* Alignment pad bytes           */
        __u8         func_id[2];        /* function id        0x5432     */
        __u8         cprb_flags[4];     /* Flags                         */
        __u32        req_parml;         /* request parameter buffer len  */
@@ -95,19 +95,19 @@ struct CPRBX {
        __u32        rpl_datal;         /* reply data block len          */
        __u32        rpld_datal;        /* replied data block len        */
        __u32        req_extbl;         /* request extension block len   */
-       __u8         pad_001[4];        /* reserved                      */
+       __u8         _pad_001[4];       /* reserved                      */
        __u32        rpld_extbl;        /* replied extension block len   */
-       __u8         padx000[16 - sizeof(__u8 *)];
+       __u8         _pad_002[16 - sizeof(__u8 *)];
        __u8 __user *req_parmb;         /* request parm block 'address'  */
-       __u8         padx001[16 - sizeof(__u8 *)];
+       __u8         _pad_003[16 - sizeof(__u8 *)];
        __u8 __user *req_datab;         /* request data block 'address'  */
-       __u8         padx002[16 - sizeof(__u8 *)];
+       __u8         _pad_004[16 - sizeof(__u8 *)];
        __u8 __user *rpl_parmb;         /* reply parm block 'address'    */
-       __u8         padx003[16 - sizeof(__u8 *)];
+       __u8         _pad_005[16 - sizeof(__u8 *)];
        __u8 __user *rpl_datab;         /* reply data block 'address'    */
-       __u8         padx004[16 - sizeof(__u8 *)];
+       __u8         _pad_006[16 - sizeof(__u8 *)];
        __u8 __user *req_extb;          /* request extension block 'addr'*/
-       __u8         padx005[16 - sizeof(__u8 *)];
+       __u8         _pad_007[16 - sizeof(__u8 *)];
        __u8 __user *rpl_extb;          /* reply extension block 'address'*/
        __u16        ccp_rtcode;        /* server return code            */
        __u16        ccp_rscode;        /* server reason code            */
@@ -115,12 +115,10 @@ struct CPRBX {
        __u8         logon_id[8];       /* Logon Identifier              */
        __u8         mac_value[8];      /* Mac Value                     */
        __u8         mac_content_flgs;  /* Mac content flag byte         */
-       __u8         pad_002;           /* Alignment                     */
+       __u8         _pad_008;          /* Alignment                     */
        __u16        domain;            /* Domain                        */
-       __u8         usage_domain[4];   /* Usage domain                  */
-       __u8         cntrl_domain[4];   /* Control domain                */
-       __u8         S390enf_mask[4];   /* S/390 enforcement mask        */
-       __u8         pad_004[36];       /* reserved                      */
+       __u8         _pad_009[12];      /* reserved, checked for zeros   */
+       __u8         _pad_010[36];      /* reserved                      */
 } __attribute__((packed));
 
 /**
index 57d885158cf000a3eda3cb99abf233be806f3d81..494451cf0588f18df2746c99ffc2ea10136ff14b 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- *  Copyright IBM Corp. 2001, 2012
+ *  Copyright IBM Corp. 2001, 2022
  *  Author(s): Robert Burroughs
  *            Eric Rossman (edrossma@us.ibm.com)
  *
@@ -44,63 +44,6 @@ MODULE_DESCRIPTION("Cryptographic Coprocessor (message type 6), " \
                   "Copyright IBM Corp. 2001, 2012");
 MODULE_LICENSE("GPL");
 
-/*
- * CPRB
- *       Note that all shorts, ints and longs are little-endian.
- *       All pointer fields are 32-bits long, and mean nothing
- *
- *       A request CPRB is followed by a request_parameter_block.
- *
- *       The request (or reply) parameter block is organized thus:
- *         function code
- *         VUD block
- *         key block
- */
-struct CPRB {
-       unsigned short cprb_len;        /* CPRB length                   */
-       unsigned char cprb_ver_id;      /* CPRB version id.              */
-       unsigned char pad_000;          /* Alignment pad byte.           */
-       unsigned char srpi_rtcode[4];   /* SRPI return code LELONG       */
-       unsigned char srpi_verb;        /* SRPI verb type                */
-       unsigned char flags;            /* flags                         */
-       unsigned char func_id[2];       /* function id                   */
-       unsigned char checkpoint_flag;  /*                               */
-       unsigned char resv2;            /* reserved                      */
-       unsigned short req_parml;       /* request parameter buffer      */
-                                       /* length 16-bit little endian   */
-       unsigned char req_parmp[4];     /* request parameter buffer      *
-                                        * pointer (means nothing: the   *
-                                        * parameter buffer follows      *
-                                        * the CPRB).                    */
-       unsigned char req_datal[4];     /* request data buffer           */
-                                       /* length         ULELONG        */
-       unsigned char req_datap[4];     /* request data buffer           */
-                                       /* pointer                       */
-       unsigned short rpl_parml;       /* reply  parameter buffer       */
-                                       /* length 16-bit little endian   */
-       unsigned char pad_001[2];       /* Alignment pad bytes. ULESHORT */
-       unsigned char rpl_parmp[4];     /* reply parameter buffer        *
-                                        * pointer (means nothing: the   *
-                                        * parameter buffer follows      *
-                                        * the CPRB).                    */
-       unsigned char rpl_datal[4];     /* reply data buffer len ULELONG */
-       unsigned char rpl_datap[4];     /* reply data buffer             */
-                                       /* pointer                       */
-       unsigned short ccp_rscode;      /* server reason code   ULESHORT */
-       unsigned short ccp_rtcode;      /* server return code   ULESHORT */
-       unsigned char repd_parml[2];    /* replied parameter len ULESHORT*/
-       unsigned char mac_data_len[2];  /* Mac Data Length      ULESHORT */
-       unsigned char repd_datal[4];    /* replied data length  ULELONG  */
-       unsigned char req_pc[2];        /* PC identifier                 */
-       unsigned char res_origin[8];    /* resource origin               */
-       unsigned char mac_value[8];     /* Mac Value                     */
-       unsigned char logon_id[8];      /* Logon Identifier              */
-       unsigned char usage_domain[2];  /* cdx                           */
-       unsigned char resv3[18];        /* reserved for requestor        */
-       unsigned short svr_namel;       /* server name length  ULESHORT  */
-       unsigned char svr_name[8];      /* server name                   */
-} __packed;
-
 struct function_and_rules_block {
        unsigned char function_code[2];
        unsigned short ulen;