{
        struct hv_vas_all_caps *hv_caps;
        struct hv_nx_cop_caps *hv_nxc;
+       u64 feat;
        int rc;
 
        hv_caps = kmalloc(sizeof(*hv_caps), GFP_KERNEL);
         */
        rc = h_query_vas_capabilities(H_QUERY_NX_CAPABILITIES, 0,
                                          (u64)virt_to_phys(hv_caps));
+       if (!rc)
+               feat = be64_to_cpu(hv_caps->feat_type);
+       kfree(hv_caps);
        if (rc)
-               goto out;
+               return;
+       if (!(feat & VAS_NX_GZIP_FEAT_BIT))
+               return;
 
-       caps_feat = be64_to_cpu(hv_caps->feat_type);
        /*
         * NX-GZIP feature available
         */
-       if (caps_feat & VAS_NX_GZIP_FEAT_BIT) {
-               hv_nxc = kmalloc(sizeof(*hv_nxc), GFP_KERNEL);
-               if (!hv_nxc)
-                       goto out;
-               /*
-                * Get capabilities for NX-GZIP feature
-                */
-               rc = h_query_vas_capabilities(H_QUERY_NX_CAPABILITIES,
-                                                 VAS_NX_GZIP_FEAT,
-                                                 (u64)virt_to_phys(hv_nxc));
-       } else {
-               pr_err("NX-GZIP feature is not available\n");
-               rc = -EINVAL;
-       }
+       hv_nxc = kmalloc(sizeof(*hv_nxc), GFP_KERNEL);
+       if (!hv_nxc)
+               return;
+       /*
+        * Get capabilities for NX-GZIP feature
+        */
+       rc = h_query_vas_capabilities(H_QUERY_NX_CAPABILITIES,
+                                         VAS_NX_GZIP_FEAT,
+                                         (u64)virt_to_phys(hv_nxc));
 
        if (!rc) {
                nx_cop_caps.descriptor = be64_to_cpu(hv_nxc->descriptor);
                                be64_to_cpu(hv_nxc->min_compress_len);
                nx_cop_caps.min_decompress_len =
                                be64_to_cpu(hv_nxc->min_decompress_len);
-       } else {
-               caps_feat = 0;
+               caps_feat = feat;
        }
 
        kfree(hv_nxc);
-out:
-       kfree(hv_caps);
 }
 
 static const struct vio_device_id nx842_vio_driver_ids[] = {