On Mon, 2011-01-24 at 20:43 -0800, James Bottomley wrote: > On Mon, 2011-01-24 at 14:57 +0100, Tejun Heo wrote: > > fcoe uses the system_wq to destroy ports and the work items need to be > > flushed before the driver is unloaded. As the work items free the > > containing data structure, they can't be flushed directly. The > > workqueue should be flushed instead. > > > > Also, the destruction works can be chained - ie. destruction of a port > > may lead to destruction of another port where the work item for the > > former queues the work for the latter. Currently, the depth of chain > > can be at most two and fcoe_exit() makes sure everything is complete > > by calling flush_scheduled_work() twice. > > > > With commit c8efcc25 (workqueue: allow chained queueing during > > destruction), destroy_workqueue() can take care of chained works on > > workqueue destruction. Add and use fcoe_wq instead. Simply > > destroying fcoe_wq on driver unload takes care of flushing. > > Cc'ing FCoE maintainer for an opinion. > > Robert, I assume this will come back via your queue with an ack. > > James > Yes, I will take care of it. There is going to be a lot of code movement in the next fcoe update to make way for a new fcoe model that will allow for new transports. It's the pre-work that the bnx2fc driver can plug into. I think having this go through my tree is a good idea. Thanks, //Rob -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html