[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 01/14] pc-bios: s390x: cio.c cleanup and compile fix
From: |
Cornelia Huck |
Subject: |
[PULL 01/14] pc-bios: s390x: cio.c cleanup and compile fix |
Date: |
Fri, 3 Jul 2020 12:06:37 +0200 |
From: Janosch Frank <frankja@linux.ibm.com>
Let's initialize the structs at the beginning to ease reading and also
zeroing all other fields. This also makes the compiler stop
complaining about sense_id_ccw.flags being ored into when it's not
initialized.
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Pierre Morel <pmorel@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Message-Id: <20200624075226.92728-2-frankja@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
pc-bios/s390-ccw/cio.c | 40 ++++++++++++++++++++++------------------
1 file changed, 22 insertions(+), 18 deletions(-)
diff --git a/pc-bios/s390-ccw/cio.c b/pc-bios/s390-ccw/cio.c
index 339ec5fbe7a4..83ca27ab41d2 100644
--- a/pc-bios/s390-ccw/cio.c
+++ b/pc-bios/s390-ccw/cio.c
@@ -49,13 +49,13 @@ void enable_subchannel(SubChannelId schid)
uint16_t cu_type(SubChannelId schid)
{
- Ccw1 sense_id_ccw;
SenseId sense_data;
-
- sense_id_ccw.cmd_code = CCW_CMD_SENSE_ID;
- sense_id_ccw.cda = ptr2u32(&sense_data);
- sense_id_ccw.count = sizeof(sense_data);
- sense_id_ccw.flags |= CCW_FLAG_SLI;
+ Ccw1 sense_id_ccw = {
+ .cmd_code = CCW_CMD_SENSE_ID,
+ .flags = CCW_FLAG_SLI,
+ .count = sizeof(sense_data),
+ .cda = ptr2u32(&sense_data),
+ };
if (do_cio(schid, CU_TYPE_UNKNOWN, ptr2u32(&sense_id_ccw), CCW_FMT1)) {
panic("Failed to run SenseID CCw\n");
@@ -67,13 +67,13 @@ uint16_t cu_type(SubChannelId schid)
int basic_sense(SubChannelId schid, uint16_t cutype, void *sense_data,
uint16_t data_size)
{
- Ccw1 senseCcw;
+ Ccw1 senseCcw = {
+ .cmd_code = CCW_CMD_BASIC_SENSE,
+ .count = data_size,
+ .cda = ptr2u32(sense_data),
+ };
Irb irb;
- senseCcw.cmd_code = CCW_CMD_BASIC_SENSE;
- senseCcw.cda = ptr2u32(sense_data);
- senseCcw.count = data_size;
-
return __do_cio(schid, ptr2u32(&senseCcw), CCW_FMT1, &irb);
}
@@ -314,7 +314,17 @@ static void print_irb_err(Irb *irb)
*/
static int __do_cio(SubChannelId schid, uint32_t ccw_addr, int fmt, Irb *irb)
{
- CmdOrb orb = {};
+ /*
+ * QEMU's CIO implementation requires prefetch and 64-bit idaws. We
+ * allow all paths.
+ */
+ CmdOrb orb = {
+ .fmt = fmt,
+ .pfch = 1,
+ .c64 = 1,
+ .lpm = 0xFF,
+ .cpa = ccw_addr,
+ };
int rc;
IPL_assert(fmt == 0 || fmt == 1, "Invalid ccw format");
@@ -324,12 +334,6 @@ static int __do_cio(SubChannelId schid, uint32_t ccw_addr,
int fmt, Irb *irb)
IPL_assert(ccw_addr <= 0xFFFFFF - 8, "Invalid ccw address");
}
- orb.fmt = fmt;
- orb.pfch = 1; /* QEMU's cio implementation requires prefetch */
- orb.c64 = 1; /* QEMU's cio implementation requires 64-bit idaws */
- orb.lpm = 0xFF; /* All paths allowed */
- orb.cpa = ccw_addr;
-
rc = ssch(schid, &orb);
if (rc == 1 || rc == 2) {
/* Subchannel status pending or busy. Eat status and ask for retry. */
--
2.25.4
- [PULL 00/14] s390x update, Cornelia Huck, 2020/07/03
- [PULL 01/14] pc-bios: s390x: cio.c cleanup and compile fix,
Cornelia Huck <=
- [PULL 02/14] pc-bios: s390x: Consolidate timing functions into time.h, Cornelia Huck, 2020/07/03
- [PULL 03/14] pc-bios: s390x: Move sleep and yield to helper.h, Cornelia Huck, 2020/07/03
- [PULL 04/14] pc-bios: s390x: Get rid of magic offsets into the lowcore, Cornelia Huck, 2020/07/03
- [PULL 05/14] pc-bios: s390x: Rename PSW_MASK_ZMODE to PSW_MASK_64, Cornelia Huck, 2020/07/03
- [PULL 06/14] pc-bios: s390x: Use PSW masks where possible and introduce PSW_MASK_SHORT_ADDR, Cornelia Huck, 2020/07/03
- [PULL 07/14] pc-bios: s390x: Move panic() into header and add infinite loop, Cornelia Huck, 2020/07/03
- [PULL 08/14] pc-bios: s390x: Use ebcdic2ascii table, Cornelia Huck, 2020/07/03
- [PULL 09/14] pc-bios: s390x: Make u32 ptr check explicit, Cornelia Huck, 2020/07/03
- [PULL 10/14] pc-bios/s390-ccw: Generate and include dependency files in the Makefile, Cornelia Huck, 2020/07/03
- [PULL 11/14] pc-bios/s390: Update s390-ccw bios binaries with the latest changes, Cornelia Huck, 2020/07/03