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 | 518 | int cpu, idx, cnt; |
| 519 | 519 | |
| 520 | − if (!(tgtport->ops->target_features & | |
| 521 | − NVMET_FCTGTFEAT_NEEDS_CMD_CPUSCHED) || | |
| 522 | − tgtport->ops->max_hw_queues == 1) | |
| 520 | + if (tgtport->ops->max_hw_queues == 1) | |
| 523 | 521 | return WORK_CPU_UNBOUND; |
| 524 | 522 | |
| 525 | 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 | 698 | .dma_boundary = FCLOOP_DMABOUND_4G, |
| 699 | 699 | /* optional features */ |
| 700 | 700 | .target_features = NVMET_FCTGTFEAT_CMD_IN_ISR | |
| 701 | − NVMET_FCTGTFEAT_NEEDS_CMD_CPUSCHED | | |
| 702 | 701 | NVMET_FCTGTFEAT_OPDONE_IN_ISR, |
| 703 | 702 | /* sizes of additional private data for data structures */ |
| 704 | 703 | .target_priv_sz = sizeof(struct fcloop_tport), |
| @@ -764,7 +764,6 @@ lpfc_nvmet_create_targetport(struct lpfc_hba *phba) · 763 unmodified lines | ||
| 764 | 764 | lpfc_tgttemplate.max_sgl_segments = phba->cfg_nvme_seg_cnt + 1; |
| 765 | 765 | lpfc_tgttemplate.max_hw_queues = phba->cfg_nvme_io_channel; |
| 766 | 766 | lpfc_tgttemplate.target_features = NVMET_FCTGTFEAT_READDATA_RSP | |
| 767 | − NVMET_FCTGTFEAT_NEEDS_CMD_CPUSCHED | | |
| 768 | 767 | NVMET_FCTGTFEAT_CMD_IN_ISR | |
| 769 | 768 | NVMET_FCTGTFEAT_OPDONE_IN_ISR; |
| 770 | 769 | |
| @@ -642,15 +642,7 @@ enum { · 641 unmodified lines | ||
| 642 | 642 | * sequence in one LLDD operation. Errors during Data |
| 643 | 643 | * sequence transmit must not allow RSP sequence to be sent. |
| 644 | 644 | */ |
| 645 | − NVMET_FCTGTFEAT_NEEDS_CMD_CPUSCHED = (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), | |
| 645 | + NVMET_FCTGTFEAT_CMD_IN_ISR = (1 << 1), | |
| 654 | 646 | /* Bit 2: When 0, the LLDD is calling the cmd rcv handler |
| 655 | 647 | * in a non-isr context, allowing the transport to finish |
| 656 | 648 | * op completion in the calling context. When 1, the LLDD |
| @@ -658,7 +650,7 @@ enum { · 1 unmodified line | ||
| 658 | 650 | * requiring the transport to transition to a workqueue |
| 659 | 651 | * for op completion. |
| 660 | 652 | */ |
| 661 | − NVMET_FCTGTFEAT_OPDONE_IN_ISR = (1 << 3), | |
| 653 | + NVMET_FCTGTFEAT_OPDONE_IN_ISR = (1 << 2), | |
| 662 | 654 | /* Bit 3: When 0, the LLDD is calling the op done handler |
| 663 | 655 | * in a non-isr context, allowing the transport to finish |
| 664 | 656 | * op completion in the calling context. When 1, the LLDD |