Re: [PATCH v5 3/6] iomap: introduce io{read|write}64_{lo_hi|hi_lo}

From: Andy Shevchenko
Date: Sun Jul 30 2017 - 12:03:57 EST


On Thu, Jul 27, 2017 at 2:19 AM, Logan Gunthorpe <logang@xxxxxxxxxxxx> wrote:
> In order to provide non-atomic functions for io{read|write}64 that will
> use readq and writeq when appropriate. We define a number of variants
> of these functions in the generic iomap that will do non-atomic
> operations on pio but atomic operations on mmio.
>
> These functions are only defined if readq and writeq are defined. If
> they are not, then the wrappers that always use non-atomic operations
> from include/linux/io-64-nonatomic*.h will be used.

Don't you see here a slight problem?

In some cases we want to substitute atomic in favour of non-atomic
when both are defined.
So, please don't do this "smartly".

> +u64 ioread64_lo_hi(void __iomem *addr)
> +{
> + IO_COND(addr, return pio_read64_lo_hi(port), return readq(addr));
> + return 0xffffffffffffffffLL;
> +}

U missed u.

--
With Best Regards,
Andy Shevchenko