On Thu, Feb 1, 2018 at 1:32 PM, John Garry <john.garry@xxxxxxxxxx> wrote: 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 resource >> + 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. Consider reading kernel documentation about these (printk-formats.rst). >> +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. >> +/* 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. -- With Best Regards, Andy Shevchenko