~n-muench/ubuntu/precise/open-vm-tools/open-vm-tools.raring-precise.backport

« back to all changes in this revision

Viewing changes to modules/linux/vmci/common/vmciRoute.c

  • Committer: Package Import Robot
  • Author(s): Nate Muench
  • Date: 2012-01-23 16:09:45 UTC
  • mfrom: (1.4.6) (2.4.26 sid)
  • Revision ID: package-import@ubuntu.com-20120123160945-b6s0r1vkcovucpf3
Tags: 2011.12.20-562307-0ubuntu1
* Merge latest upstream git tag. Fixes building on Precise
  (LP: #898289, LP: #905612)

* Items merged from Debian unstable:
  - debian/control:
    + open-vm-tools recommends open-vm-dkms. (LP: #598933)
    + open-vm-tools now suggests open-vm-toolbox. (LP: #604998)
  (From 2011.08.21-471295-1 release)
  - Updating maintainer and uploaders fields.
  - Removing vcs fields.
  - Removing references to Daniel's old email address.
  - Updating years in copyright file.
  - Updating to standards version 3.9.2.
  - Updating to debhelper version 8.
  - Switching to source format 3.0 (quilt).
  - Removing manual chrpath setting.
  - Removing exclusion from plugins from debhelper shlibs.
  - Rediffing kvers.patch.
  (From 2011.09.23-491607-1 release)
  - Marking binary architecture-dependend packages as linux and kfreebsd
  only.
  - Removing liburiparser-dev from build-depends as upstream dropped
  unity support.
  - Building with libproc-dev on amd64 again.
  - Dropping disabling of dnet support.
  (From 2011.09.23-491607-2 release)
  - Adding doxygen to build-depends for api documentation.
  - Adding libcunit1-dev to build-depends for test suites.
  - Minimizing rules file.
  - Adding open-vm-tools-dev package, containing only the api
    documentation for now.
  (From 2011.09.23-491607-3 release)
  - Sorting overrides in rules alphabetically.
  - Compacting copyright file.
  - Adding udev rule to set timeout for vmware scsi devices
  (From 2011.12.20-562307-1 release)
  - Adding patch to correct typo in upstreams dkms configuration

* Remaining Changes:
  - Remove Stable part of version numbering.
  - debian folder:
    + Re-added open-vm-dkms.postinst & open-vm-dkms.prerm.
      * Allows dkms modules to compile upon installation.
  - debian/control:
    + Re-add open-vm-source and make into a transitional package
      for open-vm-toolbox.
    + Return dependancies that were moved to open-vm-tools back to
      open-vm-toolbox.
  - debian/rules and debian/open-vm-toolbox.lintian-overrides:
    + Make vmware-user-suid-wrapper suid-root
  - debian/rules:
    + Added CFLAGS field with -Wno-deprecated-declarations
      * Will suppress issues with glib 2.31 or later.
    + Add line to copy vmware-xdg-detect-de into place.
    + Install vmware-user.desktop through toolbox package.
  - debian/open-vm-tools.init:
    + Re-add 'modprobe [-r] vmblock'.
    + Add 'modprobe [-r] vmxnet'.
      * Incase it's not loaded during boot.
    + Remove and re-add pcnet32 module
      * Will be done before (remove) and after (readd) vmxnet module
        is added.
      * If vmxnet doesn't exist (aka modules fail to build), pcnet32 can be
        still used for network connectivity.
      * Workaround until a better fix can be done.
  - Re-add gnome-session to debian/local/xautostart.conf
  - Manpages removed (from debian/manpages):
    + vmmemctl.9
    + vmxnet3.9
    + Remove references to manpages that have been removed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
93
93
      return VMCI_ERROR_INVALID_ARGS;
94
94
   }
95
95
 
96
 
   /*
97
 
    * If we are acting as a host and the datagram is from or for a well-known
98
 
    * context (which also means it must have been passed down from a guest),
99
 
    * then we can assume it is intended for a guest on this host.
100
 
    */
101
 
 
102
 
   if (fromGuest && hasHostDevice &&
103
 
       (VMCI_WELL_KNOWN_CONTEXT_ID == src->context ||
104
 
        VMCI_WELL_KNOWN_CONTEXT_ID == dst->context)) {
105
 
      *route = VMCI_ROUTE_AS_HOST;
106
 
      return VMCI_SUCCESS;
107
 
   }
108
 
 
109
96
   /* Anywhere to hypervisor. */
110
97
   if (VMCI_HYPERVISOR_CONTEXT_ID == dst->context) {
111
98
      /*
210
197
               return VMCI_ERROR_INVALID_ARGS;
211
198
            }
212
199
            src->context = VMCI_HOST_CONTEXT_ID;
 
200
         } else if (VMCI_CONTEXT_IS_VM(src->context) &&
 
201
                    src->context != dst->context) {
 
202
            /*
 
203
             * VM to VM communication is not allowed. Since we catch
 
204
             * all communication destined for the host above, this
 
205
             * must be destined for a VM since there is a valid
 
206
             * context.
 
207
             */
 
208
 
 
209
            ASSERT(VMCI_CONTEXT_IS_VM(dst->context));
 
210
 
 
211
            return VMCI_ERROR_DST_UNREACHABLE;
213
212
         }
214
213
 
215
214
         /* Pass it up to the guest. */
219
218
   }
220
219
 
221
220
   /*
222
 
    * We must be a guest trying to send to another guest, which means we
223
 
    * need to send it down to the host.
 
221
    * We must be a guest trying to send to another guest, which means
 
222
    * we need to send it down to the host. We do not filter out VM to
 
223
    * VM communication here, since we want to be able to use the guest
 
224
    * driver on older versions that do support VM to VM communication.
224
225
    */
225
226
 
226
227
   if (!hasGuestDevice) {