x86/libxl: replace non-POSIX error codes used by PSR code
authorRoger Pau Monné <roger.pau@citrix.com>
Wed, 22 Jul 2015 14:45:35 +0000 (16:45 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 22 Jul 2015 14:45:35 +0000 (16:45 +0200)
PSR was using EBADSLT and EUSERS which are not POSIX error codes, replace
them with ENOTSOCK and EOVERFLOW respectively.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
tools/libxl/libxl_psr.c
xen/arch/x86/psr.c
xen/include/public/errno.h

index 2a077773ab4a3fd8e0c87c81e636bfb08c1d2ee2..33782394a2a565d84d13f7d373a278c2a762046c 100644 (file)
@@ -31,7 +31,7 @@ static void libxl__psr_log_err_msg(libxl__gc *gc, int err)
     case ESRCH:
         msg = "invalid domain ID";
         break;
-    case EBADSLT:
+    case ENOTSOCK:
         msg = "socket is not supported";
         break;
     case EFAULT:
@@ -59,7 +59,7 @@ static void libxl__psr_cmt_log_err_msg(libxl__gc *gc, int err)
     case ENOENT:
         msg = "CMT is not attached to this domain";
         break;
-    case EUSERS:
+    case EOVERFLOW:
         msg = "no free RMID available";
         break;
     default:
@@ -81,7 +81,7 @@ static void libxl__psr_cat_log_err_msg(libxl__gc *gc, int err)
     case ENOENT:
         msg = "CAT is not enabled on the socket";
         break;
-    case EUSERS:
+    case EOVERFLOW:
         msg = "no free COS available";
         break;
     case EEXIST:
index ed59803573bf456c7102dcbdffc0ded561622f18..c0daa2effef3b45a1872019414b6410c3c6b3238 100644 (file)
@@ -178,7 +178,7 @@ int psr_alloc_rmid(struct domain *d)
     if ( rmid > psr_cmt->rmid_max )
     {
         d->arch.psr_rmid = 0;
-        return -EUSERS;
+        return -EOVERFLOW;
     }
 
     d->arch.psr_rmid = rmid;
@@ -253,7 +253,7 @@ static struct psr_cat_socket_info *get_cat_socket_info(unsigned int socket)
         return ERR_PTR(-ENODEV);
 
     if ( socket >= nr_sockets )
-        return ERR_PTR(-EBADSLT);
+        return ERR_PTR(-ENOTSOCK);
 
     if ( !test_bit(socket, cat_socket_enable) )
         return ERR_PTR(-ENOENT);
@@ -334,7 +334,7 @@ static int write_l3_cbm(unsigned int socket, unsigned int cos, uint64_t cbm)
         unsigned int cpu = get_socket_cpu(socket);
 
         if ( cpu >= nr_cpu_ids )
-            return -EBADSLT;
+            return -ENOTSOCK;
         on_selected_cpus(cpumask_of(cpu), do_write_l3_cbm, &info, 1);
     }
 
@@ -383,7 +383,7 @@ int psr_set_l3_cbm(struct domain *d, unsigned int socket, uint64_t cbm)
     if ( !found )
     {
         spin_unlock(&info->cbm_lock);
-        return -EUSERS;
+        return -EOVERFLOW;
     }
 
     cos = found - map;
index 9a7e41110fe7df1dd974479cdcf69886793a30c2..50adcb96993f7c64634174a44a3cb488b8c5098c 100644 (file)
@@ -65,6 +65,7 @@ XEN_ERRNO(EILSEQ,     84)     /* Illegal byte sequence */
 XEN_ERRNO(ERESTART,    85)     /* Interrupted system call should be restarted */
 #endif
 XEN_ERRNO(EUSERS,      87)     /* Too many users */
+XEN_ERRNO(ENOTSOCK,    88)     /* Socket operation on non-socket */
 XEN_ERRNO(EOPNOTSUPP,  95)     /* Operation not supported on transport endpoint */
 XEN_ERRNO(EADDRINUSE,  98)     /* Address already in use */
 XEN_ERRNO(EADDRNOTAVAIL, 99)   /* Cannot assign requested address */