/* Additional Sense Code (ASC) */
 #define NO_ADDITIONAL_SENSE 0x0
 #define LOGICAL_UNIT_NOT_READY 0x4
+#define LOGICAL_UNIT_COMMUNICATION_FAILURE 0x8
 #define UNRECOVERED_READ_ERR 0x11
 #define PARAMETER_LIST_LENGTH_ERR 0x1a
 #define INVALID_OPCODE 0x20
 
        /* better not to use temporary buffer. */
        buf = kmalloc(scsi_bufflen(scp), GFP_ATOMIC);
-       if (!buf)
-               return ret;
+       if (!buf) {
+               mk_sense_buffer(devip, NOT_READY,
+                               LOGICAL_UNIT_COMMUNICATION_FAILURE, 0);
+               return check_condition_result;
+       }
 
        scsi_sg_copy_to_buffer(scp, buf, scsi_bufflen(scp));