Remove NVMET_FCTGTFEAT_NEEDS_CMD_CPUSCHED. It's unnecessary.
Unified · Split
| @@ -517,9 +517,7 @@ nvmet_fc_queue_to_cpu(struct nvmet_fc_tgtport *tgtport, int qid) · 516 unmodified lines | |||
| 517 | { | 517 | { |
| 518 | int cpu, idx, cnt; | 518 | int cpu, idx, cnt; |
| 519 | 519 | ||
| 520 | if (!(tgtport->ops->target_features & | 520 | if (tgtport->ops->max_hw_queues == 1) |
| 521 | NVMET_FCTGTFEAT_NEEDS_CMD_CPUSCHED) || | ||
| 522 | tgtport->ops->max_hw_queues == 1) | ||
| 523 | return WORK_CPU_UNBOUND; | 521 | return WORK_CPU_UNBOUND; |
| 524 | 522 | ||
| 525 | /* Simple cpu selection based on qid modulo active cpu count */ | 523 | /* Simple cpu selection based on qid modulo active cpu count */ |
| @@ -698,7 +698,6 @@ static struct nvmet_fc_target_template tgttemplate = { · 697 unmodified lines | |||
| 698 | .dma_boundary = FCLOOP_DMABOUND_4G, | 698 | .dma_boundary = FCLOOP_DMABOUND_4G, |
| 699 | /* optional features */ | 699 | /* optional features */ |
| 700 | .target_features = NVMET_FCTGTFEAT_CMD_IN_ISR | | 700 | .target_features = NVMET_FCTGTFEAT_CMD_IN_ISR | |
| 701 | NVMET_FCTGTFEAT_NEEDS_CMD_CPUSCHED | | ||
| 702 | NVMET_FCTGTFEAT_OPDONE_IN_ISR, | 701 | NVMET_FCTGTFEAT_OPDONE_IN_ISR, |
| 703 | /* sizes of additional private data for data structures */ | 702 | /* sizes of additional private data for data structures */ |
| 704 | .target_priv_sz = sizeof(struct fcloop_tport), | 703 | .target_priv_sz = sizeof(struct fcloop_tport), |
| @@ -764,7 +764,6 @@ lpfc_nvmet_create_targetport(struct lpfc_hba *phba) · 763 unmodified lines | |||
| 764 | lpfc_tgttemplate.max_sgl_segments = phba->cfg_nvme_seg_cnt + 1; | 764 | lpfc_tgttemplate.max_sgl_segments = phba->cfg_nvme_seg_cnt + 1; |
| 765 | lpfc_tgttemplate.max_hw_queues = phba->cfg_nvme_io_channel; | 765 | lpfc_tgttemplate.max_hw_queues = phba->cfg_nvme_io_channel; |
| 766 | lpfc_tgttemplate.target_features = NVMET_FCTGTFEAT_READDATA_RSP | | 766 | lpfc_tgttemplate.target_features = NVMET_FCTGTFEAT_READDATA_RSP | |
| 767 | NVMET_FCTGTFEAT_NEEDS_CMD_CPUSCHED | | ||
| 768 | NVMET_FCTGTFEAT_CMD_IN_ISR | | 767 | NVMET_FCTGTFEAT_CMD_IN_ISR | |
| 769 | NVMET_FCTGTFEAT_OPDONE_IN_ISR; | 768 | NVMET_FCTGTFEAT_OPDONE_IN_ISR; |
| 770 | 769 | ||
| @@ -642,15 +642,7 @@ enum { · 641 unmodified lines | |||
| 642 | * sequence in one LLDD operation. Errors during Data | 642 | * sequence in one LLDD operation. Errors during Data |
| 643 | * sequence transmit must not allow RSP sequence to be sent. | 643 | * sequence transmit must not allow RSP sequence to be sent. |
| 644 | */ | 644 | */ |
| 645 | NVMET_FCTGTFEAT_NEEDS_CMD_CPUSCHED = (1 << 1), | 645 | NVMET_FCTGTFEAT_CMD_IN_ISR = (1 << 1), |
| 646 | /* Bit 1: When 0, the LLDD will deliver FCP CMD | ||
| 647 | * on the CPU it should be affinitized to. Thus work will | ||
| 648 | * be scheduled on the cpu received on. When 1, the LLDD | ||
| 649 | * may not deliver the CMD on the CPU it should be worked | ||
| 650 | * on. The transport should pick a cpu to schedule the work | ||
| 651 | * on. | ||
| 652 | */ | ||
| 653 | NVMET_FCTGTFEAT_CMD_IN_ISR = (1 << 2), | ||
| 654 | /* Bit 2: When 0, the LLDD is calling the cmd rcv handler | 646 | /* Bit 2: When 0, the LLDD is calling the cmd rcv handler |
| 655 | * in a non-isr context, allowing the transport to finish | 647 | * in a non-isr context, allowing the transport to finish |
| 656 | * op completion in the calling context. When 1, the LLDD | 648 | * op completion in the calling context. When 1, the LLDD |
| @@ -658,7 +650,7 @@ enum { · 1 unmodified line | |||
| 658 | * requiring the transport to transition to a workqueue | 650 | * requiring the transport to transition to a workqueue |
| 659 | * for op completion. | 651 | * for op completion. |
| 660 | */ | 652 | */ |
| 661 | NVMET_FCTGTFEAT_OPDONE_IN_ISR = (1 << 3), | 653 | NVMET_FCTGTFEAT_OPDONE_IN_ISR = (1 << 2), |
| 662 | /* Bit 3: When 0, the LLDD is calling the op done handler | 654 | /* Bit 3: When 0, the LLDD is calling the op done handler |
| 663 | * in a non-isr context, allowing the transport to finish | 655 | * in a non-isr context, allowing the transport to finish |
| 664 | * op completion in the calling context. When 1, the LLDD | 656 | * op completion in the calling context. When 1, the LLDD |