mirror of https://gitee.com/openkylin/linux.git
[S390] Replace ENOTSUPP usage with EOPNOTSUPP
ENOTSUPP is not supposed to leak to userspace so lets just use EOPNOTSUPP everywhere. Doesn't fix a bug, but makes future reviews easier. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
59b6978745
commit
b8e660b83d
|
@ -488,7 +488,7 @@ static void *diag204_store(void)
|
||||||
|
|
||||||
static int diag224(void *ptr)
|
static int diag224(void *ptr)
|
||||||
{
|
{
|
||||||
int rc = -ENOTSUPP;
|
int rc = -EOPNOTSUPP;
|
||||||
|
|
||||||
asm volatile(
|
asm volatile(
|
||||||
" diag %1,%2,0x224\n"
|
" diag %1,%2,0x224\n"
|
||||||
|
@ -507,7 +507,7 @@ static int diag224_get_name_table(void)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
if (diag224(diag224_cpu_names)) {
|
if (diag224(diag224_cpu_names)) {
|
||||||
kfree(diag224_cpu_names);
|
kfree(diag224_cpu_names);
|
||||||
return -ENOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
EBCASC(diag224_cpu_names + 16, (*diag224_cpu_names + 1) * 16);
|
EBCASC(diag224_cpu_names + 16, (*diag224_cpu_names + 1) * 16);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1592,7 +1592,7 @@ static void vmcmd_run(struct shutdown_trigger *trigger)
|
||||||
static int vmcmd_init(void)
|
static int vmcmd_init(void)
|
||||||
{
|
{
|
||||||
if (!MACHINE_IS_VM)
|
if (!MACHINE_IS_VM)
|
||||||
return -ENOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
vmcmd_kset = kset_create_and_add("vmcmd", NULL, firmware_kobj);
|
vmcmd_kset = kset_create_and_add("vmcmd", NULL, firmware_kobj);
|
||||||
if (!vmcmd_kset)
|
if (!vmcmd_kset)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
|
@ -39,7 +39,7 @@ static int __diag_ipl_functions(struct kvm_vcpu *vcpu)
|
||||||
vcpu->run->s390_reset_flags = 0;
|
vcpu->run->s390_reset_flags = 0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -ENOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
atomic_clear_mask(CPUSTAT_RUNNING, &vcpu->arch.sie_block->cpuflags);
|
atomic_clear_mask(CPUSTAT_RUNNING, &vcpu->arch.sie_block->cpuflags);
|
||||||
|
@ -62,6 +62,6 @@ int kvm_s390_handle_diag(struct kvm_vcpu *vcpu)
|
||||||
case 0x308:
|
case 0x308:
|
||||||
return __diag_ipl_functions(vcpu);
|
return __diag_ipl_functions(vcpu);
|
||||||
default:
|
default:
|
||||||
return -ENOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ static int handle_lctlg(struct kvm_vcpu *vcpu)
|
||||||
|
|
||||||
vcpu->stat.instruction_lctlg++;
|
vcpu->stat.instruction_lctlg++;
|
||||||
if ((vcpu->arch.sie_block->ipb & 0xff) != 0x2f)
|
if ((vcpu->arch.sie_block->ipb & 0xff) != 0x2f)
|
||||||
return -ENOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
useraddr = disp2;
|
useraddr = disp2;
|
||||||
if (base2)
|
if (base2)
|
||||||
|
@ -138,7 +138,7 @@ static int handle_stop(struct kvm_vcpu *vcpu)
|
||||||
rc = __kvm_s390_vcpu_store_status(vcpu,
|
rc = __kvm_s390_vcpu_store_status(vcpu,
|
||||||
KVM_S390_STORE_STATUS_NOADDR);
|
KVM_S390_STORE_STATUS_NOADDR);
|
||||||
if (rc >= 0)
|
if (rc >= 0)
|
||||||
rc = -ENOTSUPP;
|
rc = -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vcpu->arch.local_int.action_bits & ACTION_RELOADVCPU_ON_STOP) {
|
if (vcpu->arch.local_int.action_bits & ACTION_RELOADVCPU_ON_STOP) {
|
||||||
|
@ -150,7 +150,7 @@ static int handle_stop(struct kvm_vcpu *vcpu)
|
||||||
if (vcpu->arch.local_int.action_bits & ACTION_STOP_ON_STOP) {
|
if (vcpu->arch.local_int.action_bits & ACTION_STOP_ON_STOP) {
|
||||||
vcpu->arch.local_int.action_bits &= ~ACTION_STOP_ON_STOP;
|
vcpu->arch.local_int.action_bits &= ~ACTION_STOP_ON_STOP;
|
||||||
VCPU_EVENT(vcpu, 3, "%s", "cpu stopped");
|
VCPU_EVENT(vcpu, 3, "%s", "cpu stopped");
|
||||||
rc = -ENOTSUPP;
|
rc = -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
spin_unlock_bh(&vcpu->arch.local_int.lock);
|
spin_unlock_bh(&vcpu->arch.local_int.lock);
|
||||||
|
@ -171,9 +171,9 @@ static int handle_validity(struct kvm_vcpu *vcpu)
|
||||||
2*PAGE_SIZE);
|
2*PAGE_SIZE);
|
||||||
if (rc)
|
if (rc)
|
||||||
/* user will receive sigsegv, exit to user */
|
/* user will receive sigsegv, exit to user */
|
||||||
rc = -ENOTSUPP;
|
rc = -EOPNOTSUPP;
|
||||||
} else
|
} else
|
||||||
rc = -ENOTSUPP;
|
rc = -EOPNOTSUPP;
|
||||||
|
|
||||||
if (rc)
|
if (rc)
|
||||||
VCPU_EVENT(vcpu, 2, "unhandled validity intercept code %d",
|
VCPU_EVENT(vcpu, 2, "unhandled validity intercept code %d",
|
||||||
|
@ -189,7 +189,7 @@ static int handle_instruction(struct kvm_vcpu *vcpu)
|
||||||
handler = instruction_handlers[vcpu->arch.sie_block->ipa >> 8];
|
handler = instruction_handlers[vcpu->arch.sie_block->ipa >> 8];
|
||||||
if (handler)
|
if (handler)
|
||||||
return handler(vcpu);
|
return handler(vcpu);
|
||||||
return -ENOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int handle_prog(struct kvm_vcpu *vcpu)
|
static int handle_prog(struct kvm_vcpu *vcpu)
|
||||||
|
@ -206,7 +206,7 @@ static int handle_instruction_and_prog(struct kvm_vcpu *vcpu)
|
||||||
rc = handle_instruction(vcpu);
|
rc = handle_instruction(vcpu);
|
||||||
rc2 = handle_prog(vcpu);
|
rc2 = handle_prog(vcpu);
|
||||||
|
|
||||||
if (rc == -ENOTSUPP)
|
if (rc == -EOPNOTSUPP)
|
||||||
vcpu->arch.sie_block->icptcode = 0x04;
|
vcpu->arch.sie_block->icptcode = 0x04;
|
||||||
if (rc)
|
if (rc)
|
||||||
return rc;
|
return rc;
|
||||||
|
@ -231,9 +231,9 @@ int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu)
|
||||||
u8 code = vcpu->arch.sie_block->icptcode;
|
u8 code = vcpu->arch.sie_block->icptcode;
|
||||||
|
|
||||||
if (code & 3 || (code >> 2) >= ARRAY_SIZE(intercept_funcs))
|
if (code & 3 || (code >> 2) >= ARRAY_SIZE(intercept_funcs))
|
||||||
return -ENOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
func = intercept_funcs[code >> 2];
|
func = intercept_funcs[code >> 2];
|
||||||
if (func)
|
if (func)
|
||||||
return func(vcpu);
|
return func(vcpu);
|
||||||
return -ENOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
|
@ -342,7 +342,7 @@ int kvm_s390_handle_wait(struct kvm_vcpu *vcpu)
|
||||||
if (psw_interrupts_disabled(vcpu)) {
|
if (psw_interrupts_disabled(vcpu)) {
|
||||||
VCPU_EVENT(vcpu, 3, "%s", "disabled wait");
|
VCPU_EVENT(vcpu, 3, "%s", "disabled wait");
|
||||||
__unset_cpu_idle(vcpu);
|
__unset_cpu_idle(vcpu);
|
||||||
return -ENOTSUPP; /* disabled wait */
|
return -EOPNOTSUPP; /* disabled wait */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psw_extint_disabled(vcpu) ||
|
if (psw_extint_disabled(vcpu) ||
|
||||||
|
|
|
@ -543,7 +543,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
|
||||||
rc = -EINTR;
|
rc = -EINTR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rc == -ENOTSUPP) {
|
if (rc == -EOPNOTSUPP) {
|
||||||
/* intercept cannot be handled in-kernel, prepare kvm-run */
|
/* intercept cannot be handled in-kernel, prepare kvm-run */
|
||||||
kvm_run->exit_reason = KVM_EXIT_S390_SIEIC;
|
kvm_run->exit_reason = KVM_EXIT_S390_SIEIC;
|
||||||
kvm_run->s390_sieic.icptcode = vcpu->arch.sie_block->icptcode;
|
kvm_run->s390_sieic.icptcode = vcpu->arch.sie_block->icptcode;
|
||||||
|
|
|
@ -323,5 +323,5 @@ int kvm_s390_handle_b2(struct kvm_vcpu *vcpu)
|
||||||
else
|
else
|
||||||
return handler(vcpu);
|
return handler(vcpu);
|
||||||
}
|
}
|
||||||
return -ENOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,7 +172,7 @@ static int __sigp_set_arch(struct kvm_vcpu *vcpu, u32 parameter)
|
||||||
rc = 0; /* order accepted */
|
rc = 0; /* order accepted */
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
rc = -ENOTSUPP;
|
rc = -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
@ -293,7 +293,7 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu)
|
||||||
vcpu->stat.instruction_sigp_restart++;
|
vcpu->stat.instruction_sigp_restart++;
|
||||||
/* user space must know about restart */
|
/* user space must know about restart */
|
||||||
default:
|
default:
|
||||||
return -ENOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
|
|
|
@ -309,7 +309,7 @@ query_segment_type (struct dcss_segment *seg)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (qout->segcnt > 6) {
|
if (qout->segcnt > 6) {
|
||||||
rc = -ENOTSUPP;
|
rc = -EOPNOTSUPP;
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -324,11 +324,11 @@ query_segment_type (struct dcss_segment *seg)
|
||||||
for (i=0; i<qout->segcnt; i++) {
|
for (i=0; i<qout->segcnt; i++) {
|
||||||
if (((qout->range[i].start & 0xff) != SEG_TYPE_EW) &&
|
if (((qout->range[i].start & 0xff) != SEG_TYPE_EW) &&
|
||||||
((qout->range[i].start & 0xff) != SEG_TYPE_EN)) {
|
((qout->range[i].start & 0xff) != SEG_TYPE_EN)) {
|
||||||
rc = -ENOTSUPP;
|
rc = -EOPNOTSUPP;
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
if (start != qout->range[i].start >> PAGE_SHIFT) {
|
if (start != qout->range[i].start >> PAGE_SHIFT) {
|
||||||
rc = -ENOTSUPP;
|
rc = -EOPNOTSUPP;
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
start = (qout->range[i].end >> PAGE_SHIFT) + 1;
|
start = (qout->range[i].end >> PAGE_SHIFT) + 1;
|
||||||
|
@ -357,7 +357,7 @@ query_segment_type (struct dcss_segment *seg)
|
||||||
* -ENOSYS : we are not running on VM
|
* -ENOSYS : we are not running on VM
|
||||||
* -EIO : could not perform query diagnose
|
* -EIO : could not perform query diagnose
|
||||||
* -ENOENT : no such segment
|
* -ENOENT : no such segment
|
||||||
* -ENOTSUPP: multi-part segment cannot be used with linux
|
* -EOPNOTSUPP: multi-part segment cannot be used with linux
|
||||||
* -ENOMEM : out of memory
|
* -ENOMEM : out of memory
|
||||||
* 0 .. 6 : type of segment as defined in include/asm-s390/extmem.h
|
* 0 .. 6 : type of segment as defined in include/asm-s390/extmem.h
|
||||||
*/
|
*/
|
||||||
|
@ -515,7 +515,7 @@ __segment_load (char *name, int do_nonshared, unsigned long *addr, unsigned long
|
||||||
* -ENOSYS : we are not running on VM
|
* -ENOSYS : we are not running on VM
|
||||||
* -EIO : could not perform query or load diagnose
|
* -EIO : could not perform query or load diagnose
|
||||||
* -ENOENT : no such segment
|
* -ENOENT : no such segment
|
||||||
* -ENOTSUPP: multi-part segment cannot be used with linux
|
* -EOPNOTSUPP: multi-part segment cannot be used with linux
|
||||||
* -ENOSPC : segment cannot be used (overlaps with storage)
|
* -ENOSPC : segment cannot be used (overlaps with storage)
|
||||||
* -EBUSY : segment can temporarily not be used (overlaps with dcss)
|
* -EBUSY : segment can temporarily not be used (overlaps with dcss)
|
||||||
* -ERANGE : segment cannot be used (exceeds kernel mapping range)
|
* -ERANGE : segment cannot be used (exceeds kernel mapping range)
|
||||||
|
@ -742,7 +742,7 @@ void segment_warning(int rc, char *seg_name)
|
||||||
pr_err("Loading or querying DCSS %s resulted in a "
|
pr_err("Loading or querying DCSS %s resulted in a "
|
||||||
"hardware error\n", seg_name);
|
"hardware error\n", seg_name);
|
||||||
break;
|
break;
|
||||||
case -ENOTSUPP:
|
case -EOPNOTSUPP:
|
||||||
pr_err("DCSS %s has multiple page ranges and cannot be "
|
pr_err("DCSS %s has multiple page ranges and cannot be "
|
||||||
"loaded or queried\n", seg_name);
|
"loaded or queried\n", seg_name);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue