On Tue, Mar 31, 2015 at 4:34 PM, Pravin Shelar <pshe...@nicira.com> wrote: > On Tue, Mar 31, 2015 at 1:18 PM, Jesse Gross <je...@nicira.com> wrote: >> On Tue, Mar 31, 2015 at 1:12 PM, Pravin Shelar <pshe...@nicira.com> wrote: >>> On Tue, Mar 31, 2015 at 11:44 AM, Jesse Gross <je...@nicira.com> wrote: >>>> On Tue, Mar 31, 2015 at 11:02 AM, Pravin Shelar <pshe...@nicira.com> wrote: >>>>> On Tue, Mar 31, 2015 at 9:34 AM, Jesse Gross <je...@nicira.com> wrote: >>>>>> skb protocol offsets are relative to the beginning of the >>>>>> buffer and therefore must be updated if the buffer size is >>>>>> expanded. Kernel functions do this automatically for existing >>>>>> fields but obviously not for anything that we backport. This >>>>>> introduces a wrapper for pskb_expand_head() to update the >>>>>> inner protocol fields that we have backported. >>>>>> >>>>>> Without this, a kernel crash can be triggered with tunnel >>>>>> packets that do not have enough headroom and need to be >>>>>> segmented. >>>>>> >>>>> which pskb_expand head actually causes this issue for vxlan? >>>> >>>> This is the result of skb_cow_head() in vxlan_xmit_skb(). >>>> >>> >>> Dont we also need to fix skb_cow_head()? otherwise OVS could use >>> kernel defined function to expand skb and could skip compat version >>> entirely. >> >> skb_cow_head (and its helpers) are inline functions in the kernel >> header files. So even when we use the kernel's version it should still >> pick up our backported pskb_expand_head() and by intercepting the >> calls there we should pick up a wider set of callers. > > I do not see gso.h included in skbuff.h where skb_cow_head() is defined.
We can't really include gso.h from skbuff.h due to dependency loops. However, I should be able to put the #define in skbuff.h (before we #include the real version) and then move the definition to the .c file. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev