diff --git a/tools/libxl/libxl_psr.c b/tools/libxl/libxl_psr.c index 2a077773ab..33782394a2 100644 --- a/tools/libxl/libxl_psr.c +++ b/tools/libxl/libxl_psr.c @@ -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: diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c index 708915515e..942d8491fc 100644 --- a/xen/arch/x86/mm/paging.c +++ b/xen/arch/x86/mm/paging.c @@ -766,7 +766,7 @@ long paging_domctl_continuation(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) if ( op.interface_version != XEN_DOMCTL_INTERFACE_VERSION || op.cmd != XEN_DOMCTL_shadow_op ) - return -EBADRQC; + return -EOPNOTSUPP; d = rcu_lock_domain_by_id(op.domain); if ( d == NULL ) diff --git a/xen/arch/x86/psr.c b/xen/arch/x86/psr.c index ed59803573..c0daa2effe 100644 --- a/xen/arch/x86/psr.c +++ b/xen/arch/x86/psr.c @@ -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; diff --git a/xen/common/domain.c b/xen/common/domain.c index 8efef5c179..791166b06c 100644 --- a/xen/common/domain.c +++ b/xen/common/domain.c @@ -900,7 +900,7 @@ int vcpu_pause_by_systemcontroller(struct vcpu *v) new = old + 1; if ( new > 255 ) - return -EUSERS; + return -EOVERFLOW; prev = cmpxchg(&v->controller_pause_count, old, new); } while ( prev != old ); @@ -980,7 +980,7 @@ int __domain_pause_by_systemcontroller(struct domain *d, * toolstack overflowing d->pause_count with many repeated hypercalls. */ if ( new > 255 ) - return -EUSERS; + return -EOVERFLOW; prev = cmpxchg(&d->controller_pause_count, old, new); } while ( prev != old ); diff --git a/xen/common/hvm/save.c b/xen/common/hvm/save.c index da6e668982..c9882e5783 100644 --- a/xen/common/hvm/save.c +++ b/xen/common/hvm/save.c @@ -114,7 +114,7 @@ int hvm_save_one(struct domain *d, uint16_t typecode, uint16_t instance, uint32_t off; const struct hvm_save_descriptor *desc; - rv = -EBADSLT; + rv = -ENOENT; for ( off = 0; off < (ctxt.cur - sizeof(*desc)); off += desc->length ) { desc = (void *)(ctxt.data + off); diff --git a/xen/include/public/errno.h b/xen/include/public/errno.h index 9a7e41110f..8c88bb1d40 100644 --- a/xen/include/public/errno.h +++ b/xen/include/public/errno.h @@ -21,6 +21,12 @@ enum xen_errno { /* * Values originating from x86 Linux. Please consider using respective * values when adding new definitions here. + * + * The set of identifiers to be added here shouldn't extend beyond what + * POSIX mandates (see e.g. + * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html) + * with the exception that we support some optional (XSR) values + * specified there (but no new ones should be added). */ XEN_ERRNO(EPERM, 1) /* Operation not permitted */ @@ -54,8 +60,6 @@ XEN_ERRNO(EDEADLK, 35) /* Resource deadlock would occur */ XEN_ERRNO(ENAMETOOLONG, 36) /* File name too long */ XEN_ERRNO(ENOLCK, 37) /* No record locks available */ XEN_ERRNO(ENOSYS, 38) /* Function not implemented */ -XEN_ERRNO(EBADRQC, 56) /* Invalid request code */ -XEN_ERRNO(EBADSLT, 57) /* Invalid slot */ XEN_ERRNO(ENODATA, 61) /* No data available */ XEN_ERRNO(ETIME, 62) /* Timer expired */ XEN_ERRNO(EBADMSG, 74) /* Not a data message */ @@ -64,15 +68,13 @@ XEN_ERRNO(EILSEQ, 84) /* Illegal byte sequence */ #ifdef __XEN__ /* Internal only, should never be exposed to the guest. */ 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 */ XEN_ERRNO(ENOBUFS, 105) /* No buffer space available */ XEN_ERRNO(EISCONN, 106) /* Transport endpoint is already connected */ XEN_ERRNO(ENOTCONN, 107) /* Transport endpoint is not connected */ -XEN_ERRNO(ESHUTDOWN, 108) /* Cannot send after transport endpoint shutdown */ -XEN_ERRNO(ETOOMANYREFS, 109) /* Too many references: cannot splice */ XEN_ERRNO(ETIMEDOUT, 110) /* Connection timed out */ #undef XEN_ERRNO