} else {
                /* fatal error -  set status to FAILED
                   internal error 09 - Command Reject */
-               dev_err(&device->cdev->dev, "An error occurred in the DASD "
-                       "device driver, reason=%s\n", "09");
+               if (!test_bit(DASD_CQR_SUPPRESS_CR, &erp->flags))
+                       dev_err(&device->cdev->dev,
+                               "An error occurred in the DASD device driver, reason=09\n");
 
                erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED);
        }
 
                dasd_eckd_dump_sense_tcw(device, req, irb);
        } else {
                /*
-                * In some cases the 'No Record Found' error might be expected
-                * and log messages shouldn't be written then. Check if the
-                * according suppress bit is set.
+                * In some cases the 'Command Reject' or 'No Record Found'
+                * error might be expected and log messages shouldn't be
+                * written then. Check if the according suppress bit is set.
                 */
+               if (sense && sense[0] & SNS0_CMD_REJECT &&
+                   test_bit(DASD_CQR_SUPPRESS_CR, &req->flags))
+                       return;
+
                if (sense && sense[1] & SNS1_NO_REC_FOUND &&
                    test_bit(DASD_CQR_SUPPRESS_NRF, &req->flags))
                        return;
 
        cqr->buildclk = get_tod_clock();
        cqr->status = DASD_CQR_FILLED;
+       /* the command might not be supported, suppress error message */
+       __set_bit(DASD_CQR_SUPPRESS_CR, &cqr->flags);
        rc = dasd_sleep_on_interruptible(cqr);
        if (rc == 0) {
                *data = *host_access;
 
                                         */
 /*
  * The following flags are used to suppress output of certain errors.
- * These flags should only be used for format checks!
  */
 #define DASD_CQR_SUPPRESS_NRF  4       /* Suppress 'No Record Found' error */
 #define DASD_CQR_SUPPRESS_FP   5       /* Suppress 'File Protected' error*/
 #define DASD_CQR_SUPPRESS_IL   6       /* Suppress 'Incorrect Length' error */
+#define DASD_CQR_SUPPRESS_CR   7       /* Suppress 'Command Reject' error */
 
 /* Signature for error recovery functions. */
 typedef struct dasd_ccw_req *(*dasd_erp_fn_t) (struct dasd_ccw_req *);