Message ID | 20200514123729.156283-2-frankja@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | pc-bios: s390x: Cleanup part 1 | expand |
On 14.05.20 14:37, Janosch Frank wrote: > Let's initialize the structs at the beginning to ease reading and also > zeroing all other fields. This also makes the compiler stop > compalining about sense_id_ccw.flags being ored into when it's not s/compalining/complaining/ > initialized. > > Signed-off-by: Janosch Frank <frankja@linux.ibm.com> > Reviewed-by: Pierre Morel <pmorel@linux.ibm.com> > --- > pc-bios/s390-ccw/cio.c | 36 ++++++++++++++++++------------------ > 1 file changed, 18 insertions(+), 18 deletions(-) > > diff --git a/pc-bios/s390-ccw/cio.c b/pc-bios/s390-ccw/cio.c > index 339ec5fbe7..63301ebb58 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, > + .count = sizeof(sense_data), > + .flags = CCW_FLAG_SLI, > + .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,13 @@ static void print_irb_err(Irb *irb) > */ > static int __do_cio(SubChannelId schid, uint32_t ccw_addr, int fmt, Irb *irb) > { > - CmdOrb orb = {}; > + CmdOrb orb = { > + .fmt = fmt, > + .pfch = 1, /* QEMU's cio implementation requires prefetch */ > + .c64 = 1, /* QEMU's cio implementation requires 64-bit idaws */ Maybe just document this on top (all comments combined) /* * QEMU's CIO implementation requires prefetch and 64-bit idaws. We * allow all paths. */ Or get rid of the tabs ;) Reviewed-by: David Hildenbrand <david@redhat.com>
On 5/18/20 1:52 PM, David Hildenbrand wrote: > On 14.05.20 14:37, Janosch Frank wrote: >> Let's initialize the structs at the beginning to ease reading and also >> zeroing all other fields. This also makes the compiler stop >> compalining about sense_id_ccw.flags being ored into when it's not > > s/compalining/complaining/ > >> initialized. >> >> Signed-off-by: Janosch Frank <frankja@linux.ibm.com> >> Reviewed-by: Pierre Morel <pmorel@linux.ibm.com> >> --- >> pc-bios/s390-ccw/cio.c | 36 ++++++++++++++++++------------------ >> 1 file changed, 18 insertions(+), 18 deletions(-) >> >> diff --git a/pc-bios/s390-ccw/cio.c b/pc-bios/s390-ccw/cio.c >> index 339ec5fbe7..63301ebb58 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, >> + .count = sizeof(sense_data), >> + .flags = CCW_FLAG_SLI, >> + .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,13 @@ static void print_irb_err(Irb *irb) >> */ >> static int __do_cio(SubChannelId schid, uint32_t ccw_addr, int fmt, Irb *irb) >> { >> - CmdOrb orb = {}; >> + CmdOrb orb = { >> + .fmt = fmt, >> + .pfch = 1, /* QEMU's cio implementation requires prefetch */ >> + .c64 = 1, /* QEMU's cio implementation requires 64-bit idaws */ > > Maybe just document this on top (all comments combined) > > /* > * QEMU's CIO implementation requires prefetch and 64-bit idaws. We > * allow all paths. > */ > > Or get rid of the tabs ;) > > Reviewed-by: David Hildenbrand <david@redhat.com> Will do, thanks!
On 14/05/2020 14.37, Janosch Frank wrote: > Let's initialize the structs at the beginning to ease reading and also > zeroing all other fields. This also makes the compiler stop > compalining 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> > --- > pc-bios/s390-ccw/cio.c | 36 ++++++++++++++++++------------------ > 1 file changed, 18 insertions(+), 18 deletions(-) With the nits mentioned by David fixed: Reviewed-by: Thomas Huth <thuth@redhat.com>
diff --git a/pc-bios/s390-ccw/cio.c b/pc-bios/s390-ccw/cio.c index 339ec5fbe7..63301ebb58 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, + .count = sizeof(sense_data), + .flags = CCW_FLAG_SLI, + .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,13 @@ static void print_irb_err(Irb *irb) */ static int __do_cio(SubChannelId schid, uint32_t ccw_addr, int fmt, Irb *irb) { - CmdOrb orb = {}; + CmdOrb orb = { + .fmt = fmt, + .pfch = 1, /* QEMU's cio implementation requires prefetch */ + .c64 = 1, /* QEMU's cio implementation requires 64-bit idaws */ + .lpm = 0xFF, /* All paths allowed */ + .cpa = ccw_addr, + }; int rc; IPL_assert(fmt == 0 || fmt == 1, "Invalid ccw format"); @@ -324,12 +330,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. */