[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#746602: skb_copy_ubufs() not exported by the Debian Linux kernel 3.2.57-3



Hello Jarno,

Yes it seems that the following commit should be included in 3.2.

commit dcc0fb782b3a6e2abfeaaeb45dd88ed09596be0f
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Fri Jul 20 09:23:20 2012 +0000

    skbuff: export skb_copy_ubufs

It applies cleanly on top of 3.2.58. However, the skb_orphan_frags inline function
is not in include/linux/skbuff.h of kernel 3.2.58, but it is available in the
debian linux-headers-3.2.0-4-amd64 package. It seems like the following commit
has been backported to the debian 3.2 kernel but not to mainline 3.2.x.

commit a353e0ce0fd42d8859260666d1e9b10f2abd4698
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Fri Jul 20 09:23:07 2012 +0000

    skbuff: add an api to orphan frags

Probably these need to be included together.

Best regards,

Emil Goode

On Thu, May 01, 2014 at 01:45:28PM -0700, Jarno Rajahalme wrote:
> Package: linux-source-3.2
> Version: 3.2.57-3
> 
> The symbol skb_copy_ubufs() is not exported in net/core/skbuff.c, even though it is exposed in include/linux/skbuff.h and used by skb_orphan_frags(). OVS kernel module fails to start due to this:
> 
> Error: Module openvswitch is not currently loaded
> ERROR: could not insert 'openvswitch': Unknown symbol in module, or unknown parameter (see dmesg)
> 
> dmesg output:
> 
> [ 3315.819202] openvswitch: Unknown symbol skb_copy_ubufs (err 0)
> 
> 
> /lib/modules/3.2.0-4-amd64/source/include/linux/skbuff.h has this:
> 
> static inline int skb_orphan_frags(struct sk_buff *skb, gfp_t gfp_mask)
> {
> 	if (likely(!(skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY)))
> 		return 0;
> 	return skb_copy_ubufs(skb, gfp_mask);
> }
> 
> But /usr/src/linux-source-3.2/net/core/skbuff.c only has this:
> 
> int skb_copy_ubufs(struct sk_buff *skb, gfp_t gfp_mask)
> {
> 	int i;
> [snipped]
> 	return 0;
> }
> 
> Note the missing EXPORT_SYMBOL() after the function definition.
> 
> It seems that skb_copy_ubufs() has been exported in Linux 3.6, as the skb_orphan_frags() was introduced. Now Debian 3.2.57-3 has a backported skb_orphan_frags(), but the export of the symbol sib_copy_ubufs() was not backported.
> 
> Regards,
> 
>  Jarno Rajahalme
> 
> 
> --
> To UNSUBSCRIBE, email to debian-kernel-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Archive: [🔎] C7B639A4-AE25-4247-A105-D7A164964557@nicira.com">https://lists.debian.org/[🔎] C7B639A4-AE25-4247-A105-D7A164964557@nicira.com
> 


Reply to: