Re: [PATCH] arm64: CONFIG_DEVPORT should not be used when PCI is being used

From: Greg Kroah-Hartman
Date: Wed Apr 06 2016 - 20:20:59 EST


On Wed, Apr 06, 2016 at 03:27:20PM -0600, Al Stone wrote:
> On arm64 systems, using /dev/port does not really make sense; this is
> historically used for other architectures to access ISA IO ports, which
> with any luck do not exist on arm64 platforms. With the following snippet
> of perl code (from Jeff Bastian <jbastian@xxxxxxxxxx>), we can reliably
> panic an arm64 system with PCI enabled:
>
> #!/usr/bin/perl -w
> # extracted from sensors-detect from lm_sensors
> # to reproduce kernel crash when probing the
> # Super-I/O ports
> use Fcntl qw(:DEFAULT :seek);
> sysopen(IOPORTS, "/dev/port", O_RDWR);
> binmode(IOPORTS);
> sysseek(IOPORTS, 0x2e, 0);
> syswrite(IOPORTS, pack("C", 0x0d), 1);
>
> So, make sure CONFIG_DEVPORT cannot be set on arm64; it cannot really be
> used and it allows us to crash a kernel from user space.
>
> Signed-off-by: Al Stone <ahs3@xxxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> drivers/char/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
> index b272397..c532f62 100644
> --- a/drivers/char/Kconfig
> +++ b/drivers/char/Kconfig
> @@ -587,7 +587,7 @@ config TELCLOCK
>
> config DEVPORT
> bool
> - depends on !M68K
> + depends on !M68K && !ARM64

Why not fix the real bug here, it's odd that only these two arches need
this disabled, don't you agree?

thanks,

greg k-h