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

2014-05-10 Thread Ben Hutchings
On Thu, 2014-05-01 at 13:45 -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)
[...]

As I understand it, this is a problem only if you rebuild the
out-of-tree openvswitch, as otherwise skb_orphan_frags() will not be
used.

Anyway, this will be fixed shortly.

Ben.

-- 
Ben Hutchings
Sturgeon's Law: Ninety percent of everything is crap.


signature.asc
Description: This is a digitally signed message part


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

2014-05-02 Thread Emil Goode
Hello Jarno,

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

commit dcc0fb782b3a6e2abfeaaeb45dd88ed09596be0f
Author: Michael S. Tsirkin m...@redhat.com
Date:   Fri Jul 20 09:23:20 2012 +

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 m...@redhat.com
Date:   Fri Jul 20 09:23:07 2012 +

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-requ...@lists.debian.org
 with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
 Archive: 
 https://lists.debian.org/c7b639a4-ae25-4247-a105-d7a164964...@nicira.com
 


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2014-05-01 Thread Jarno Rajahalme
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-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org