• J
    nvme_fcloop: rework to remove xxx_IN_ISR feature flags · 24431d60
    James Smart 提交于
    The existing fcloop driver expects the target side upcalls to
    the transport to context switch, thus the calls into the nvmet layer
    are not done in the calling context of the host/initiator down calls.
    The xxx_IN_ISR feature flags are used to select this logic.
    
    The xxx_IN_ISR feature flags should go away in the nvmet_fc transport
    as no other lldd utilizes them. Both Broadcom and Cavium lldds have their
    own non-ISR deferred handlers thus the nvmet calls can be made directly.
    
    This patch converts the paths that make the target upcalls (command
    receive, abort receive) such that they schedule a work item rather
    than expecting the transport to schedule the work item.
    
    The patch also cleans up the following:
    - The completion path from target to host scheduled a host work
      element called "work". Rename it "tio_done_work" for code clarity.
    - The abort io path called a iniwork item to call the host side
      io done. This is no longer needed as the abort routine can make
      the same call.
    Signed-off-by: NJames Smart <james.smart@broadcom.com>
    Signed-off-by: NChristoph Hellwig <hch@lst.de>
    24431d60
fcloop.c 29.1 KB