···242242 * @phba: pointer to lpfc hba data structure.243243 * @axchg: pointer to exchange context for the NVME LS request244244 *245245- * This routine is used for processing an asychronously received NVME LS245245+ * This routine is used for processing an asynchronously received NVME LS246246 * request. Any remaining validation is done and the LS is then forwarded247247 * to the nvme-fc transport via nvme_fc_rcv_ls_req().248248 *
+1-1
drivers/scsi/lpfc/lpfc_nvmet.c
···21422142 * @phba: pointer to lpfc hba data structure.21432143 * @axchg: pointer to exchange context for the NVME LS request21442144 *21452145- * This routine is used for processing an asychronously received NVME LS21452145+ * This routine is used for processing an asynchronously received NVME LS21462146 * request. Any remaining validation is done and the LS is then forwarded21472147 * to the nvmet-fc transport via nvmet_fc_rcv_ls_req().21482148 *
···70407040 int i;70417041 u8 failed;70427042 __le32 *mfp;70437043+ int ret_val;7043704470447045 /* make sure doorbell is not in use */70457046 if ((ioc->base_readl_ext_retry(&ioc->chip->Doorbell) & MPI2_DOORBELL_USED)) {70467047 ioc_err(ioc, "doorbell is in use (line=%d)\n", __LINE__);70477047- return -EFAULT;70487048+ goto doorbell_diag_reset;70487049 }7049705070507051 /* clear pending doorbell interrupts from previous state changes */···71357134 le32_to_cpu(mfp[i]));71367135 }71377136 return 0;71377137+71387138+doorbell_diag_reset:71397139+ ret_val = _base_diag_reset(ioc);71407140+ return ret_val;71387141}7139714271407143/**
···506506 return(NULL);507507 }508508509509+ vha->irq_offset = QLA_BASE_VECTORS;509510 host = vha->host;510511 fc_vport->dd_data = vha;511512 /* New host info */
+8-7
drivers/scsi/qla2xxx/qla_os.c
···69026902 set_user_nice(current, MIN_NICE);6903690369046904 set_current_state(TASK_INTERRUPTIBLE);69056905- while (!kthread_should_stop()) {69056905+ while (1) {69066906 ql_dbg(ql_dbg_dpc, base_vha, 0x4000,69076907 "DPC handler sleeping.\n");6908690869096909 schedule();69106910+69116911+ if (kthread_should_stop())69126912+ break;6910691369116914 if (test_and_clear_bit(DO_EEH_RECOVERY, &base_vha->dpc_flags))69126915 qla_pci_set_eeh_busy(base_vha);···69236920 goto end_loop;69246921 }6925692269236923+ if (test_bit(UNLOADING, &base_vha->dpc_flags))69246924+ /* don't do any work. Wait to be terminated by kthread_stop */69256925+ goto end_loop;69266926+69266927 ha->dpc_active = 1;6927692869286929 ql_dbg(ql_dbg_dpc + ql_dbg_verbose, base_vha, 0x4001,69296930 "DPC handler waking up, dpc_flags=0x%lx.\n",69306931 base_vha->dpc_flags);69316931-69326932- if (test_bit(UNLOADING, &base_vha->dpc_flags))69336933- break;6934693269356933 if (IS_P3P_TYPE(ha)) {69366934 if (IS_QLA8044(ha)) {···72447240 * Make sure that nobody tries to wake us up again.72457241 */72467242 ha->dpc_active = 0;72477247-72487248- /* Cleanup any residual CTX SRBs. */72497249- qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16);7250724372517244 return 0;72527245}
···64486448 }64496449 sd_dp = &sqcp->sd_dp;6450645064516451- if (polled)64516451+ if (polled || (ndelay > 0 && ndelay < INCLUSIVE_TIMING_MAX_NS))64526452 ns_from_boot = ktime_get_boottime_ns();6453645364546454 /* one of the resp_*() response functions is called here */
···149149*/150150static int vmstor_proto_version;151151152152+static bool hv_dev_is_fc(struct hv_device *hv_dev);153153+152154#define STORVSC_LOGGING_NONE 0153155#define STORVSC_LOGGING_ERROR 1154156#define STORVSC_LOGGING_WARN 2···11391137 * not correctly handle:11401138 * INQUIRY command with page code parameter set to 0x8011411139 * MODE_SENSE command with cmd[2] == 0x1c11401140+ * MAINTENANCE_IN is not supported by HyperV FC passthrough11421141 *11431142 * Setup srb and scsi status so this won't be fatal.11441143 * We do this so we can distinguish truly fatal failues···11471144 */1148114511491146 if ((stor_pkt->vm_srb.cdb[0] == INQUIRY) ||11501150- (stor_pkt->vm_srb.cdb[0] == MODE_SENSE)) {11471147+ (stor_pkt->vm_srb.cdb[0] == MODE_SENSE) ||11481148+ (stor_pkt->vm_srb.cdb[0] == MAINTENANCE_IN &&11491149+ hv_dev_is_fc(device))) {11511150 vstor_packet->vm_srb.scsi_status = 0;11521151 vstor_packet->vm_srb.srb_status = SRB_STATUS_SUCCESS;11531152 }
···310310 * to allow variant specific Uni-Pro initialization.311311 * @pwr_change_notify: called before and after a power mode change312312 * is carried out to allow vendor spesific capabilities313313- * to be set.313313+ * to be set. PRE_CHANGE can modify final_params based314314+ * on desired_pwr_mode, but POST_CHANGE must not alter315315+ * the final_params parameter314316 * @setup_xfer_req: called before any transfer request is issued315317 * to set some things316318 * @setup_task_mgmt: called before any task management request is issued···328326 * @config_scaling_param: called to configure clock scaling parameters329327 * @fill_crypto_prdt: initialize crypto-related fields in the PRDT330328 * @event_notify: called to notify important events331331- * @reinit_notify: called to notify reinit of UFSHCD during max gear switch332329 * @mcq_config_resource: called to configure MCQ platform resources333330 * @get_hba_mac: reports maximum number of outstanding commands supported by334331 * the controller. Should be implemented for UFSHCI 4.0 or later···353352 int (*link_startup_notify)(struct ufs_hba *,354353 enum ufs_notify_change_status);355354 int (*pwr_change_notify)(struct ufs_hba *,356356- enum ufs_notify_change_status status,357357- struct ufs_pa_layer_attr *,358358- struct ufs_pa_layer_attr *);355355+ enum ufs_notify_change_status status,356356+ struct ufs_pa_layer_attr *desired_pwr_mode,357357+ struct ufs_pa_layer_attr *final_params);359358 void (*setup_xfer_req)(struct ufs_hba *hba, int tag,360359 bool is_scsi_cmd);361360 void (*setup_task_mgmt)(struct ufs_hba *, int, u8);···377376 void *prdt, unsigned int num_segments);378377 void (*event_notify)(struct ufs_hba *hba,379378 enum ufs_event_type evt, void *data);380380- void (*reinit_notify)(struct ufs_hba *);381379 int (*mcq_config_resource)(struct ufs_hba *hba);382380 int (*get_hba_mac)(struct ufs_hba *hba);383381 int (*op_runtime_config)(struct ufs_hba *hba);