Hi James, I like the plan except for one bit: The staging tree will be a major pain due to the rules for applying to it and all the whitespace cleanup junk you'll get. I would storngly recommend to you to do this with a non-mainline tree instead. I'd be happy to help you maintaining it if you want. > Questions: > a) How best to deal with overlapping pci id's ? E.g. if we do (1) and we > have an initiator and target driver, there is a lot of adapters that are > fully functional for target operation, but were sold as primarily an > initiator adapter. How could we manage target mode enablement without code > mod or hard pci id partitioning ? I know individual pci unbind/bind could > work, but its been frowned upon as a long term option. Same thing goes for > module parameters to select which ports do what role. Let's start with a manual bind for the target driver. A slightly more fancy option would be to add the PCI IDs to both and reject the device with -ENXIO if not configured for the right role.