You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-emulation/vmware-modules/files/264-3.2.0.patch

104 lines
3.4 KiB

diff --git a/vmmon-only/linux/iommu.c b/vmmon-only/linux/iommu.c
index c692c2d..501d602 100644
--- a/vmmon-only/linux/iommu.c
+++ b/vmmon-only/linux/iommu.c
@@ -42,6 +42,12 @@
#define PCI_BDF_SLOTFUNC(bdf) PCI_DEVFN(PCI_SLOT(bdf), PCI_FUNC(bdf))
#define PCI_BDF_BUS(bdf) (((bdf) >> 8) & 0xff)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+#include <linux/pci.h>
+#define iommu_found() iommu_present(&pci_bus_type)
+#define iommu_domain_alloc() iommu_domain_alloc(&pci_bus_type)
+#endif
+
typedef struct PassthruDevice {
uint32 bdf;
struct pci_dev *pdev;
diff --git a/vmnet-only/filter.c b/vmnet-only/filter.c
index 491add5..74f7a3b 100644
--- a/vmnet-only/filter.c
+++ b/vmnet-only/filter.c
@@ -40,6 +40,10 @@
#include "vnetInt.h"
#include "vmnetInt.h"
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+#include <linux/export.h>
+#endif
+
// VNet_FilterLogPacket.action for dropped packets
#define VNET_FILTER_ACTION_DRP (1)
#define VNET_FILTER_ACTION_DRP_SHORT (2)
diff --git a/vmnet-only/netif.c b/vmnet-only/netif.c
index 4bdb643..5b71339 100644
--- a/vmnet-only/netif.c
+++ b/vmnet-only/netif.c
@@ -62,7 +62,9 @@ static int VNetNetifClose(struct net_device *dev);
static int VNetNetifStartXmit(struct sk_buff *skb, struct net_device *dev);
static struct net_device_stats *VNetNetifGetStats(struct net_device *dev);
static int VNetNetifSetMAC(struct net_device *dev, void *addr);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
static void VNetNetifSetMulticast(struct net_device *dev);
+#endif
#if 0
static void VNetNetifTxTimeout(struct net_device *dev);
#endif
@@ -131,7 +133,9 @@ VNetNetIfSetup(struct net_device *dev) // IN:
.ndo_stop = VNetNetifClose,
.ndo_get_stats = VNetNetifGetStats,
.ndo_set_mac_address = VNetNetifSetMAC,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
.ndo_set_multicast_list = VNetNetifSetMulticast,
+#endif
/*
* We cannot stuck... If someone will report problems under
* low memory conditions or some such, we should enable it.
@@ -152,7 +156,9 @@ VNetNetIfSetup(struct net_device *dev) // IN:
dev->stop = VNetNetifClose;
dev->get_stats = VNetNetifGetStats;
dev->set_mac_address = VNetNetifSetMAC;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
dev->set_multicast_list = VNetNetifSetMulticast;
+#endif
/*
* We cannot stuck... If someone will report problems under
* low memory conditions or some such, we should enable it.
@@ -612,11 +618,12 @@ VNetNetifSetMAC(struct net_device *dev, // IN:
*----------------------------------------------------------------------
*/
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 2, 0)
void
VNetNetifSetMulticast(struct net_device *dev) // IN: unused
{
}
-
+#endif
/*
*----------------------------------------------------------------------
diff --git a/vmnet-only/userif.c b/vmnet-only/userif.c
index 541187b..77e0089 100644
--- a/vmnet-only/userif.c
+++ b/vmnet-only/userif.c
@@ -517,10 +517,18 @@ VNetCsumCopyDatagram(const struct sk_buff *skb, // IN: skb to copy
unsigned int tmpCsum;
const void *vaddr;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+ vaddr = kmap(skb_frag_page(frag));
+#else
vaddr = kmap(frag->page);
+#endif
tmpCsum = csum_and_copy_to_user(vaddr + frag->page_offset,
curr, frag->size, 0, &err);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
+ kunmap(skb_frag_page(frag));
+#else
kunmap(frag->page);
+#endif
if (err) {
return err;
}