From 9711d43c84b55040923121c50364300da70a35f7 Mon Sep 17 00:00:00 2001 From: LI Qing Date: Wed, 19 Jun 2024 14:08:58 +0800 Subject: [PATCH] Use `Ord::clamp` to simplify the scheduling priority value --- kernel/aster-nix/src/sched/nice.rs | 16 ++++------------ kernel/aster-nix/src/syscall/set_get_priority.rs | 8 +------- 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/kernel/aster-nix/src/sched/nice.rs b/kernel/aster-nix/src/sched/nice.rs index 837e42120..790e59195 100644 --- a/kernel/aster-nix/src/sched/nice.rs +++ b/kernel/aster-nix/src/sched/nice.rs @@ -30,12 +30,8 @@ impl Nice { /// Values given beyond the permissible range are automatically adjusted /// to the nearest boundary value. pub fn new(raw: i8) -> Self { - if raw > Self::MAX.to_raw() { - Self::MAX - } else if raw < Self::MIN.to_raw() { - Self::MIN - } else { - Self { value: raw } + Self { + value: raw.clamp(Self::MIN.to_raw(), Self::MAX.to_raw()), } } @@ -87,12 +83,8 @@ impl Priority { /// Values given beyond the permissible range are automatically adjusted /// to the nearest boundary value. pub fn new(raw: u8) -> Self { - if raw > Self::MAX.to_raw() { - Self::MAX - } else if raw < Self::MIN.to_raw() { - Self::MIN - } else { - Self { value: raw } + Self { + value: raw.clamp(Self::MIN.to_raw(), Self::MAX.to_raw()), } } diff --git a/kernel/aster-nix/src/syscall/set_get_priority.rs b/kernel/aster-nix/src/syscall/set_get_priority.rs index 776a0ede2..7e5e2f82a 100644 --- a/kernel/aster-nix/src/syscall/set_get_priority.rs +++ b/kernel/aster-nix/src/syscall/set_get_priority.rs @@ -12,13 +12,7 @@ use crate::{ pub fn sys_set_priority(which: i32, who: u32, prio: i32) -> Result { let prio_target = PriorityTarget::new(which, who)?; let new_nice = { - let norm_prio = if prio > i8::MAX as i32 { - i8::MAX - } else if prio < i8::MIN as i32 { - i8::MIN - } else { - prio as i8 - }; + let norm_prio = prio.clamp(i8::MIN as i32, i8::MAX as i32) as i8; Nice::new(norm_prio) };