serial_core:recognize invalid pointer from userspace

From: Jiang Lu
Date: Wed Mar 09 2016 - 03:02:49 EST




Hi,

When running setserial, application issue a TIOCGSERIAL iotcl to get serial setting, then update
serial setting with TIOCSSERIAL ioctl. It always failed with TIOCSSERIAL ioctl, for application
pass 0xffffffff for iomem_base in serial_struct to kernel.

On 32bit rootfs & 64bit kernel, compat_ioctl use 0xffffffff as a magic number to mark invalid pointer
for iomem_base in serial_struct when truncating a 64bit pointer into 32bit.

Serial driver need recognize this invalid pointer when parsing serial_struct from userspace.

Thanks
Jiang Lu