@@ -433,6 +433,11 @@ static int css_interpret_ccw(SubchDev *sch, hwaddr ccw_addr,
return -EINVAL;
}
+ /* We don't support MIDA. */
+ if (ccw.flags & CCW_FLAG_MIDA) {
+ return -EINVAL;
+ }
+
if (ccw.flags & CCW_FLAG_SUSPEND) {
return suspend_allowed ? -EINPROGRESS : -EINVAL;
}
@@ -182,6 +182,7 @@ typedef struct CCW1 {
#define CCW_FLAG_PCI 0x08
#define CCW_FLAG_IDA 0x04
#define CCW_FLAG_SUSPEND 0x02
+#define CCW_FLAG_MIDA 0x01
#define CCW_CMD_NOOP 0x03
#define CCW_CMD_BASIC_SENSE 0x04
@@ -201,6 +201,10 @@ static int ioinst_orb_valid(ORB *orb)
(orb->ctrl1 & ORB_CTRL1_MASK_INVALID)) {
return 0;
}
+ /* We don't support MIDA. */
+ if (orb->ctrl1 & ORB_CTRL1_MASK_MIDAW) {
+ return 0;
+ }
if ((orb->cpa & HIGH_ORDER_BIT) != 0) {
return 0;
}