Skip to contentSkip to conversation

restore skb_copy_datagram, removed from 2.6.11-rc2, breaking VMWare

PATCH In review Chip Salzenberg 3 participants 3 messages Jan 22, 2005 Networking

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 restore skb_copy_datagram, removed from 2.6.11-rc2, breaking VMWare

Those of you who are using VMWare 4.5 will find that 2.6.11-rc2 removes the public function "skb_copy_datagram", breaking VMWare (and any other module using that interface *sigh*).

The attached patch restores the (little harmless wrapper) function.

Signature · 2 lines
Chip Salzenberg            - a.k.a. -            <[email protected]>
 "What I cannot create, I do not understand." - Richard Feynman
include/linux/skbuff.h renamed from include/linux/skbuff.h.old +2 -0
@@ -1087,4 +1087,6 @@
 extern unsigned int    datagram_poll(struct file *file, struct socket *sock,
 				     struct poll_table_struct *wait);
+extern int	       skb_copy_datagram(const struct sk_buff *from,
+					 int offset, char __user *to, int size);
 extern int	       skb_copy_datagram_iovec(const struct sk_buff *from,
 					       int offset, struct iovec *to,
net/core/datagram.c renamed from net/core/datagram.c.old +14 -0
@@ -200,4 +200,17 @@
 }
 
+/*
+ *	Copy a datagram to a linear buffer.
+ */
+int skb_copy_datagram(const struct sk_buff *skb, int offset, char __user *to, int size)
+{
+	struct iovec iov = {
+		.iov_base = to,
+		.iov_len =size,
+	};
+
+	return skb_copy_datagram_iovec(skb, offset, &iov, size);
+}
+
 /**
  *	skb_copy_datagram_iovec - Copy a datagram to an iovec.
@@ -478,4 +491,5 @@
 EXPORT_SYMBOL(datagram_poll);
 EXPORT_SYMBOL(skb_copy_and_csum_datagram_iovec);
+EXPORT_SYMBOL(skb_copy_datagram);
 EXPORT_SYMBOL(skb_copy_datagram_iovec);
 EXPORT_SYMBOL(skb_free_datagram);
#1 lore raw
Quoted 5 lines · Chip Salzenberg

Those of you who are using VMWare 4.5 will find that 2.6.11-rc2 removes the public function "skb_copy_datagram", breaking VMWare (and any other module using that interface *sigh*).

The attached patch restores the (little harmless wrapper) function.

Fix them to use the wrapped function instead.

#2 lore raw
In reply to Chip Salzenberg
Quoted 3 lines · Chip Salzenberg

Those of you who are using VMWare 4.5 will find that 2.6.11-rc2 removes the public function "skb_copy_datagram", breaking VMWare (and any other module using that interface *sigh*).

There is no need for it. It is fixed internally, and it will be part of vmware-any-any-update89 and WS5.0 RC1.
Petr Vandrovec

Quoted 42 lines

The attached patch restores the (little harmless wrapper) function.

Signature · 2 lines
Chip Salzenberg            - a.k.a. -            <[email protected]>
 "What I cannot create, I do not understand." - Richard Feynman
include/linux/skbuff.h renamed from include/linux/skbuff.h.old +2 -0
@@ -1087,4 +1087,6 @@
 extern unsigned int    datagram_poll(struct file *file, struct socket *sock,
 				     struct poll_table_struct *wait);
+extern int	       skb_copy_datagram(const struct sk_buff *from,
+					 int offset, char __user *to, int size);
 extern int	       skb_copy_datagram_iovec(const struct sk_buff *from,
 					       int offset, struct iovec *to,
net/core/datagram.c renamed from net/core/datagram.c.old +14 -0
@@ -200,4 +200,17 @@
 }
 
+/*
+ *	Copy a datagram to a linear buffer.
+ */
+int skb_copy_datagram(const struct sk_buff *skb, int offset, char __user *to, int size)
+{
+	struct iovec iov = {
+		.iov_base = to,
+		.iov_len =size,
+	};
+
+	return skb_copy_datagram_iovec(skb, offset, &iov, size);
+}
+
 /**
  *	skb_copy_datagram_iovec - Copy a datagram to an iovec.
@@ -478,4 +491,5 @@
 EXPORT_SYMBOL(datagram_poll);
 EXPORT_SYMBOL(skb_copy_and_csum_datagram_iovec);
+EXPORT_SYMBOL(skb_copy_datagram);
 EXPORT_SYMBOL(skb_copy_datagram_iovec);
 EXPORT_SYMBOL(skb_free_datagram);