]> xenbits.xensource.com Git - xen.git/commitdiff
libxc: remove tests of alloca() return value
authorDavid Vrabel <david.vrabel@citrix.com>
Wed, 7 Mar 2012 09:39:45 +0000 (09:39 +0000)
committerDavid Vrabel <david.vrabel@citrix.com>
Wed, 7 Mar 2012 09:39:45 +0000 (09:39 +0000)
alloca() does not return NULL on an allocation failure on Linux so
remove the unneccessary tests from this Linux-specific code.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Cc: Santosh Jodh <santosh.jodh@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
xen-unstable changeset:   24832:9cc7961d8f5c
xen-unstable date:        Mon Feb 20 17:31:49 2012 +0000

tools/libxc/xc_linux_osdep.c

index 5ef5cd63f5ac70fb39958c9ac41091c3df235d6c..6477ad8607710f5cb81acf2258f31fab26b417fb 100644 (file)
@@ -218,63 +218,54 @@ static void *linux_privcmd_map_foreign_bulk(xc_interface *xch, xc_osdep_handle h
          * IOCTL_PRIVCMD_MMAPBATCH_V2 is not supported - fall back to
          * IOCTL_PRIVCMD_MMAPBATCH.
          */
+        privcmd_mmapbatch_t ioctlx;
         xen_pfn_t *pfn = alloca(num * sizeof(*pfn));
 
-        if ( pfn )
-        {
-            privcmd_mmapbatch_t ioctlx;
-
-            memcpy(pfn, arr, num * sizeof(*arr));
+        memcpy(pfn, arr, num * sizeof(*arr));
 
-            ioctlx.num = num;
-            ioctlx.dom = dom;
-            ioctlx.addr = (unsigned long)addr;
-            ioctlx.arr = pfn;
+        ioctlx.num = num;
+        ioctlx.dom = dom;
+        ioctlx.addr = (unsigned long)addr;
+        ioctlx.arr = pfn;
 
-            rc = ioctl(fd, IOCTL_PRIVCMD_MMAPBATCH, &ioctlx);
+        rc = ioctl(fd, IOCTL_PRIVCMD_MMAPBATCH, &ioctlx);
 
-            rc = rc < 0 ? -errno : 0;
+        rc = rc < 0 ? -errno : 0;
 
-            for ( i = 0; i < num; ++i )
+        for ( i = 0; i < num; ++i )
+        {
+            switch ( pfn[i] ^ arr[i] )
             {
-                switch ( pfn[i] ^ arr[i] )
+            case 0:
+                err[i] = rc != -ENOENT ? rc : 0;
+                continue;
+            default:
+                err[i] = -EINVAL;
+                continue;
+            case XEN_DOMCTL_PFINFO_PAGEDTAB:
+                if ( rc != -ENOENT )
                 {
-                case 0:
-                    err[i] = rc != -ENOENT ? rc : 0;
+                    err[i] = rc ?: -EINVAL;
                     continue;
-                default:
-                    err[i] = -EINVAL;
-                    continue;
-                case XEN_DOMCTL_PFINFO_PAGEDTAB:
-                    if ( rc != -ENOENT )
-                    {
-                        err[i] = rc ?: -EINVAL;
-                        continue;
-                    }
-                    rc = xc_map_foreign_batch_single(fd, dom, pfn + i,
+                 }
+                rc = xc_map_foreign_batch_single(fd, dom, pfn + i,
                         (unsigned long)addr + ((unsigned long)i<<XC_PAGE_SHIFT));
-                    if ( rc < 0 )
-                    {
-                        rc = -errno;
-                        break;
-                    }
-                    rc = -ENOENT;
-                    continue;
+                if ( rc < 0 )
+                {
+                    rc = -errno;
+                    break;
                 }
-                break;
-            }
-
-            if ( rc == -ENOENT && i == num )
-                rc = 0;
-            else if ( rc )
-            {
-                errno = -rc;
-                rc = -1;
+                rc = -ENOENT;
+                continue;
             }
+            break;
         }
-        else
+
+        if ( rc == -ENOENT && i == num )
+            rc = 0;
+        else if ( rc )
         {
-            errno = -ENOMEM;
+            errno = -rc;
             rc = -1;
         }
     }
@@ -532,8 +523,6 @@ static void *do_gnttab_map_grant_refs(xc_gnttab *xch, xc_osdep_handle h,
 
     map = alloca(sizeof(*map) +
                  (count - 1) * sizeof(struct ioctl_gntdev_map_grant_ref));
-    if ( map == NULL )
-        return NULL;
 
     for ( i = 0; i < count; i++ )
     {