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.
-- 
Chip Salzenberg            - a.k.a. -            <[EMAIL PROTECTED]>
 "What I cannot create, I do not understand." - Richard Feynman
--- x/include/linux/skbuff.h.old        2005-01-22 10:03:55.000000000 -0500
+++ y/include/linux/skbuff.h    2005-01-22 10:42:33.000000000 -0500
@@ -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,

--- x/net/core/datagram.c.old   2005-01-22 10:03:56.000000000 -0500
+++ y/net/core/datagram.c       2005-01-22 10:43:40.000000000 -0500
@@ -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);

Reply via email to