}
 
        xfer = &minfo->xfer_block[xfer_id];
+       /*
+        * Even if a response was indeed expected on this slot at this point,
+        * a buggy platform could wrongly reply feeding us an unexpected
+        * delayed response we're not prepared to handle: bail-out safely
+        * blaming firmware.
+        */
+       if (unlikely(msg_type == MSG_TYPE_DELAYED_RESP && !xfer->async_done)) {
+               dev_err(dev,
+                       "Delayed Response for %d not expected! Buggy F/W ?\n",
+                       xfer_id);
+               info->desc->ops->clear_channel(cinfo);
+               /* It was unexpected, so nobody will clear the xfer if not us */
+               __scmi_xfer_put(minfo, xfer);
+               return;
+       }
 
        scmi_dump_header_dbg(dev, &xfer->hdr);