Thu, Dec 14, 2017 at 07:49:41PM CET, jakub.kicin...@netronome.com wrote:
>On Thu, 14 Dec 2017 14:10:45 +0100, Jiri Pirko wrote:
>> >Why? Just a namechange?
>> >
>> >  
>> >>IIUC the problem is we don't know whether the driver/callee of the new
>> >>port is aware of previous callbacks/filters and we can't replay them.  
>> 
>> Well, the problem is a bit different.
>> There are 2 scenarios when we need to fail here:
>> 1) tc offload feature is turned off, there are some filters offloaded in
>>    the block. That is what I commented above.
>> 2) tc offload feature is turned on, there are some filters offloaded in
>>    the block but the block is not accounted by the driver. This is
>>    because of the lack or replay. This is taken care of in the beginning
>>    of __tcf_block_cb_register function - see below, there is a comment
>>    there.
>
>Restating in code terms, shouldn't this:
>
>+      tcf_block_offload_cmd(block, dev, ei, TC_BLOCK_BIND);
>+      return 0;
>
>return the error like this:
>
>       return tcf_block_offload_cmd(block, dev, ei, TC_BLOCK_BIND);
>
>We expect simple drivers to do this:
>
>       case TC_BLOCK_BIND:
>               return tcf_block_cb_register(f->block, mycb,
>                                            priv, priv);
>
>Which will return an error for shared offloaded block, just need to
>propagate it.

Got it. Will do. Thanks!


Reply via email to