Re: [PATCH v12 7/9] ACPI: Translate the I/O range of non-MMIO devices before scanning
From: John Garry <hidden>
Date: 2018-02-05 14:26:00
Also in:
linux-acpi, linux-arch, linux-pci, lkml
On 05/02/2018 13:16, Andy Shevchenko wrote:
On Thu, Feb 1, 2018 at 1:32 PM, John Garry [off-list ref] wrote:
Hi Andy,
I'm not going through all patch, by one thing I would like you to pay attention on, i.e. printing resource_size_t and struct resourcequoted
quoted
+ dev_err(dev, "translate bus-addr(0x%llx) fail!\n", + resource->start);resource_size_t is dynamic width type, you will see a compiler warning. For this we have %pap specifier. Moreover, in some cases it's useful to print struct resource via %pR or %pr.
I have already fixed this up in my rework.
Consider reading kernel documentation about these (printk-formats.rst).quoted
quoted
+struct acpi_indirectio_host_data { + resource_size_t io_size; + resource_size_t io_start; +};Why not utilize struct resource? If it's coming from platform / firmware it should *never* have types like size_t, unsigned long, resource_size_t, etc.
This is not coming from firmware, but it is a struct which we define in the kernel per host, describing that host bus address range for translation. In fact, generally io_start is 0 and the io_size would be PIO_INDIRECT_SIZE, so I'll consider removing it for now.
quoted
quoted
+/* All the host devices which apply indirect-IO can be listed here. */ +static const struct acpi_device_id acpi_indirect_host_id[] = { + {""}, +};The idea of terminator is to be such (remove comma there). And it's basically redundant to have an empty string there. Moreover, it's a waste of resources in ro section.
OK, the comma should be removed. So what is the preferred acpi device id
array sentinel? I see {}, {"", 0}, and {""} used.
thank you, John