Thread (32 messages) 32 messages, 10 authors, 2020-12-10

Re: [PATCH v6 4/5] PCI: vmd: Update type of the __iomem pointers

From: Bjorn Helgaas <helgaas@kernel.org>
Date: 2020-11-30 17:22:16
Also in: linux-arm-kernel, linux-pci, linux-rockchip

On Mon, Nov 30, 2020 at 09:06:56AM +0000, David Laight wrote:
From: Krzysztof Wilczynski
quoted
Sent: 29 November 2020 23:08

Use "void __iomem" instead "char __iomem" pointer type when working with
the accessor functions (with names like readb() or writel(), etc.) to
better match a given accessor function signature where commonly the
address pointing to an I/O memory region would be a "void __iomem"
pointer.
ISTM that is heading in the wrong direction.

I think (form the variable names etc) that these are pointers
to specific registers.

So what you ought to have is a type for that register block.
Typically this is actually a structure - to give some type
checking that the offsets are being used with the correct
base address.
In this case, "cfgbar" is not really a pointer to a register; it's the
address of memory-mapped config space.  The VMD hardware turns
accesses to that space into PCI config transactions on its secondary
side.  xgene_pcie_get_cfg_base() and brcm_pcie_map_conf() are similar
situations and use "void *".

Bjorn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help