ipr_log_hex_data(ioa_cfg, (__be32 *)fabric, add_len);
 }
 
+/**
+ * ipr_log_sis64_service_required_error - Log a sis64 service required error.
+ * @ioa_cfg:    ioa config struct
+ * @hostrcb:    hostrcb struct
+ *
+ * Return value:
+ *      none
+ **/
+static void ipr_log_sis64_service_required_error(struct ipr_ioa_cfg *ioa_cfg,
+                                      struct ipr_hostrcb *hostrcb)
+{
+       struct ipr_hostrcb_type_41_error *error;
+
+       error = &hostrcb->hcam.u.error64.u.type_41_error;
+
+       error->failure_reason[sizeof(error->failure_reason) - 1] = '\0';
+       ipr_err("Primary Failure Reason: %s\n", error->failure_reason);
+       ipr_log_hex_data(ioa_cfg, error->data,
+                        be32_to_cpu(hostrcb->hcam.length) -
+                        (offsetof(struct ipr_hostrcb_error, u) +
+                         offsetof(struct ipr_hostrcb_type_41_error, data)));
+}
 /**
  * ipr_log_generic_error - Log an adapter error.
  * @ioa_cfg:   ioa config struct
        case IPR_HOST_RCB_OVERLAY_ID_30:
                ipr_log_sis64_fabric_error(ioa_cfg, hostrcb);
                break;
+       case IPR_HOST_RCB_OVERLAY_ID_41:
+               ipr_log_sis64_service_required_error(ioa_cfg, hostrcb);
+               break;
        case IPR_HOST_RCB_OVERLAY_ID_1:
        case IPR_HOST_RCB_OVERLAY_ID_DEFAULT:
        default:
 
        struct ipr_hostrcb64_fabric_desc desc[1];
 }__attribute__((packed, aligned (4)));
 
+struct ipr_hostrcb_type_41_error {
+       u8 failure_reason[64];
+        __be32 data[200];
+}__attribute__((packed, aligned (4)));
+
 struct ipr_hostrcb_error {
        __be32 fd_ioasc;
        struct ipr_res_addr fd_res_addr;
                struct ipr_hostrcb_type_23_error type_23_error;
                struct ipr_hostrcb_type_24_error type_24_error;
                struct ipr_hostrcb_type_30_error type_30_error;
+               struct ipr_hostrcb_type_41_error type_41_error;
        } u;
 }__attribute__((packed, aligned (8)));
 
 #define IPR_HOST_RCB_OVERLAY_ID_24                             0x24
 #define IPR_HOST_RCB_OVERLAY_ID_26                             0x26
 #define IPR_HOST_RCB_OVERLAY_ID_30                             0x30
+#define IPR_HOST_RCB_OVERLAY_ID_41                             0x41
 #define IPR_HOST_RCB_OVERLAY_ID_DEFAULT                                0xFF
 
        u8 reserved1[3];