On 2020-07-16 10:46, Thomas Huth wrote:
On 16/07/2020 10.23, Pierre Morel wrote:
After a channel is enabled we start a SENSE_ID command using
the SSCH instruction to recognize the control unit and device.
This tests the success of SSCH, the I/O interruption and the TSCH
instructions.
The SENSE_ID command response is tested to report 0xff inside
its reserved field and to report the same control unit type
as the cu_type kernel argument.
Without the cu_type kernel argument, the test expects a device
with a default control unit type of 0x3832, a.k.a virtio-net-ccw.
Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx>
---
[...]
+/*
+ * css_residual_count
+ * Return the residual count, if it is valid.
+ *
+ * Return value:
+ * Success: the residual count
+ * Not meaningful: -1 (-1 can not be a valid count)
+ */
+int css_residual_count(unsigned int schid)
+{
+
+ if (!(irb.scsw.ctrl & (SCSW_SC_PENDING | SCSW_SC_PRIMARY)))
+ goto invalid;
+
+ if (irb.scsw.dev_stat)
+ if (irb.scsw.sch_stat & ~(SCSW_SCHS_PCI | SCSW_SCHS_IL))
+ goto invalid;
+
+ return irb.scsw.count;
+
+invalid:
+ return -1;
+}
I still think this would look nicer without gotos. Anyway,
You are right.
Thanks to let me modify this later.
Acked-by: Thomas Huth <thuth@xxxxxxxxxx>
Thanks,
Pierre
--
Pierre Morel
IBM Lab Boeblingen