Skip to contentSkip to conversation

Is /dev/port useful on arm64?

RFC Al Stone 2 participants 3 messages Apr 25, 2016 – Apr 26, 2016

lore
Share & tools
lore

Al Stone

author
#0 lore raw

In examining a bug report where lm_sensors fails on arm64 (and panics the kernel, which is kind of annoying), it turns out it is trying to read information from an ISA port using the /dev/port device.

It's easy enough to disable this; you can:

-- set CONFIG_DEVPORT=n for arm64 (in arch/arm64/Kconfig)

-- or, redefine the macro arch_has_dev_port() to:

	#define arch_has_dev_port()	(0)

      in arch/arm64/include/asm/io.h

However, /dev/port is used for both ISA and PCI IO ports. So, this led me to what may be a dumb question: is there really a need for PCI support in /dev/port for arm64?

Supporting ISA just seems silly, at least from an ARMv8 server standpoint, but PCI is less clear to me. Anyone have opinions one way or the other?

It seems like it would be a waste of time to do the work to make sure the PCI ports work correctly only to find out they will never be used, but I can't think of anyone that actually needs them.

Thanks.

Signature · 8 lines
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Red Hat, Inc.
ahs3 at redhat.com
-----------------------------------
#1 lore raw
Quoted 7 lines · On Monday 25 April 2016 16:35:04 Al Stone wrote:

However, /dev/port is used for both ISA and PCI IO ports. So, this led me to what may be a dumb question: is there really a need for PCI support in /dev/port for arm64?

Supporting ISA just seems silly, at least from an ARMv8 server standpoint, but PCI is less clear to me. Anyone have opinions one way or the other?

Hisilicon has an ISA-like bus in their system, in form of LPC.

Quoted 3 lines

It seems like it would be a waste of time to do the work to make sure the PCI ports work correctly only to find out they will never be used, but I can't think of anyone that actually needs them.

I think we should change the /dev/port implementation to interact with the architecture code so it knows which addresses have been registered through pci_ioremap_io to ensure that accessing it at least doesn't predictably crash the kernel.

Aside from that, most distros probably want to disable it anyway along with /dev/mem, but an embedded user can access the two if they absolutely need to.

Arnd

author
#2 lore raw
Quoted 10 lines · Arnd Bergmann
Quoted 7 lines · On Monday 25 April 2016 16:35:04 Al Stone wrote:

However, /dev/port is used for both ISA and PCI IO ports. So, this led me to what may be a dumb question: is there really a need for PCI support in /dev/port for arm64?

Supporting ISA just seems silly, at least from an ARMv8 server standpoint, but PCI is less clear to me. Anyone have opinions one way or the other?

Hisilicon has an ISA-like bus in their system, in form of LPC.

Right, I'd heard about that one.

Quoted 8 lines
Quoted 3 lines

It seems like it would be a waste of time to do the work to make sure the PCI ports work correctly only to find out they will never be used, but I can't think of anyone that actually needs them.

I think we should change the /dev/port implementation to interact with the architecture code so it knows which addresses have been registered through pci_ioremap_io to ensure that accessing it at least doesn't predictably crash the kernel.

Yeah, agreed, but a more long term solution than I personally need today. I'll look into it a bit more, though.

Quoted 5 lines

Aside from that, most distros probably want to disable it anyway along with /dev/mem, but an embedded user can access the two if they absolutely need to.

Arnd

This is what I was thinking, too, but I didn't want to cut anything short if someone was actually using it.

Signature · 8 lines
ciao,
al
-----------------------------------
Al Stone
Software Engineer
Red Hat, Inc.
ahs3 at redhat.com
-----------------------------------