On Thu, Jun 6, 2024, at 11:46, He Zhe wrote:
> v2:
> - Use in_compat_syscall to determine if we're handling 32-bit or 64-bit
> - Drop unnecessary compat_ptr for hpet_ioctl_common
> - Add comment for COMPAT_HPET_INFO and COMPAT_HPET_IRQFREQ
Thanks, this version looks correct to me,
Reviewed-by: Arnd Bergmann <[email protected]>
I would suggest one simplification though:
> +#ifdef CONFIG_COMPAT
> + if (in_compat_syscall()) {
> + if (count < sizeof(compat_ulong_t))
> + return -EINVAL;
> + } else {
> + if (count < sizeof(unsigned long))
> + return -EINVAL;
> + }
> +#else
> if (count < sizeof(unsigned long))
> return -EINVAL;
> +#endif
The #ifdef/#else is not really required here, since
in_compat_syscall() is defined to return false when
this is unset. For both cases, it should be sufficient
to keep the part inside of the #ifdef block.
Arnd