Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932155AbcDGP4v (ORCPT ); Thu, 7 Apr 2016 11:56:51 -0400 Received: from mail-ig0-f177.google.com ([209.85.213.177]:37364 "EHLO mail-ig0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755796AbcDGP4u (ORCPT ); Thu, 7 Apr 2016 11:56:50 -0400 From: Al Stone X-Google-Original-From: Al Stone Reply-To: ahs3@redhat.com Subject: Re: [PATCH] arm64: CONFIG_DEVPORT should not be used when PCI is being used References: <1459978040-2226-1-git-send-email-ahs3@redhat.com> <20160407001819.GB9228@kroah.com> To: Geert Uytterhoeven , Greg Kroah-Hartman Cc: "linux-kernel@vger.kernel.org" , Arnd Bergmann X-Enigmail-Draft-Status: N1110 Organization: Red Hat, Inc. Message-ID: <5706833F.3000803@redhat.com> Date: Thu, 7 Apr 2016 09:56:47 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2721 Lines: 82 On 04/07/2016 01:26 AM, Geert Uytterhoeven wrote: > On Thu, Apr 7, 2016 at 2:18 AM, Greg Kroah-Hartman > wrote: >> 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 ), 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); > > There are plenty of ways to crash a system as the root user... Of course. This was just a new one. >>> 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 >>> Cc: Arnd Bergmann >>> Cc: Greg Kroah-Hartman >>> --- >>> 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? Agreed. It does seem odd. I'm not sure I understand which bug you're thinking is the real one, though -- that DEVPORT should be disabled in all places that don't have ISA or that arm64 needs to have /dev/port work properly? Or perhaps I missed something else entirely... > In fact even the !M68K dependency is odd. > The logic seems to originate from commit 153dcc54df826d2f ("[PATCH] mem driver: > fix conditional on isa i/o support"), which accidentally changed an "||" into > an "&&". > > Will send a patch later... > > Gr{oetje,eeting}s, > > Geert Aha. I missed that bit. Sorry about that. So something like this instead: config DEVPORT bool depends on ISA && PCI default y That makes more sense. Thanks. -- ciao, al ----------------------------------- Al Stone Software Engineer Red Hat, Inc. ahs3@redhat.com -----------------------------------