<snip> ... > > I'm sure I'm missing something. > In my understanding, we do not need to change the ops: > - if the device offers the capability, let's call the ops > - else call the software fallback function >
What you might be missing is the observation that the approach you're describing requires changing each and every PMD. The changes are also intrusive: need to change the ops that need the SW fall-back patching, also need to change the private data of each PMD (as assigned to the opaque dev->data->dev_private) to add the context data needed by the patched ops. Therefore, this approach is a no-go. We are looking for a generic approach that can gracefully and transparently work with any PMD.