Gregory Price <gregory.price@xxxxxxxxxxxx> writes: > On Tue, Dec 26, 2023 at 02:05:35AM -0500, Gregory Price wrote: >> On Wed, Dec 27, 2023 at 04:39:29PM +0800, Huang, Ying wrote: >> > Gregory Price <gourry.memverge@xxxxxxxxx> writes: >> > >> > > + unsigned short mode = (*mode_arg & ~MPOL_MODE_FLAGS); >> > > + >> > > + *flags = *mode_arg & MPOL_MODE_FLAGS; >> > > + *mode_arg = mode; >> > >> > It appears that it's unnecessary to introduce a local variable to split >> > mode/flags. Just reuse the original code? >> > > > Revisiting during fixes: Note the change from int to short. > > I chose to make this explicit because validate_mpol_flags takes a short. > > I'm fairly sure changing it back throws a truncation warning. Why something like below doesn't work? int sanitize_mpol_flags(int *mode, unsigned short *flags) { *flags = *mode & MPOL_MODE_FLAGS; *mode &= ~MPOL_MODE_FLAGS; return validate_mpol_flags(*mode, flags); } -- Best Regards, Huang, Ying