On 09-08-19, 18:33, Arnd Bergmann wrote:
> When compile-testing on other architectures, we get lots of warnings
> about incorrect format strings, like:
>
>drivers/dma/iop-adma.c: In function 'iop_adma_alloc_slots':
>drivers/dma/iop-adma.c:307:6: warning: format '%x' expects argument of
> type 'unsigned int', but argument 6 has type 'dma_addr_t {aka long long
> unsigned int}' [-Wformat=]
>
>drivers/dma/iop-adma.c: In function 'iop_adma_prep_dma_memcpy':
> >> drivers/dma/iop-adma.c:518:40: warning: format '%u' expects argument of
> >> type 'unsigned int', but argument 5 has type 'size_t {aka long unsigned
> >> int}' [-Wformat=]
>
> Use %zu for printing size_t as required, and cast the dma_addr_t
> arguments to 'u64' for printing with %llx. Ideally this should use
> the %pad format string, but that requires an lvalue argument that
> doesn't work here.
Please change title to "dmaengine: iop-adma: use correct printk format strings"
After that:
Acked-by: Vinod Koul
>
> Signed-off-by: Arnd Bergmann
> ---
> drivers/dma/iop-adma.c | 18 +-
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/dma/iop-adma.c b/drivers/dma/iop-adma.c
> index 7857b54770d1..aebdd671651a 100644
> --- a/drivers/dma/iop-adma.c
> +++ b/drivers/dma/iop-adma.c
> @@ -117,9 +117,9 @@ static void __iop_adma_slot_cleanup(struct iop_adma_chan
> *iop_chan)
> list_for_each_entry_safe(iter, _iter, _chan->chain,
> chain_node) {
> pr_debug("\tcookie: %d slot: %d busy: %d "
> - "this_desc: %#x next_desc: %#x ack: %d\n",
> + "this_desc: %#x next_desc: %#llx ack: %d\n",
> iter->async_tx.cookie, iter->idx, busy,
> - iter->async_tx.phys, iop_desc_get_next_desc(iter),
> + iter->async_tx.phys, (u64)iop_desc_get_next_desc(iter),
> async_tx_test_ack(>async_tx));
> prefetch(_iter);
> prefetch(&_iter->async_tx);
> @@ -307,9 +307,9 @@ iop_adma_alloc_slots(struct iop_adma_chan *iop_chan, int
> num_slots,
> int i;
> dev_dbg(iop_chan->device->common.dev,
> "allocated slot: %d "
> - "(desc %p phys: %#x) slots_per_op %d\n",
> + "(desc %p phys: %#llx) slots_per_op
> %d\n",
> iter->idx, iter->hw_desc,
> - iter->async_tx.phys, slots_per_op);
> + (u64)iter->async_tx.phys, slots_per_op);
>
> /* pre-ack all but the last descriptor */
> if (num_slots != slots_per_op)
> @@ -517,7 +517,7 @@ iop_adma_prep_dma_memcpy(struct dma_chan *chan,
> dma_addr_t dma_dest,
> return NULL;
> BUG_ON(len > IOP_ADMA_MAX_BYTE_COUNT);
>
> - dev_dbg(iop_chan->device->common.dev, "%s len: %u\n",
> + dev_dbg(iop_chan->device->common.dev, "%s len: %zu\n",
> __func__, len);
>
> spin_lock_bh(_chan->lock);
> @@ -550,7 +550,7 @@ iop_adma_prep_dma_xor(struct dma_chan *chan, dma_addr_t
> dma_dest,
> BUG_ON(len > IOP_ADMA_XOR_MAX_BYTE_COUNT);
>
> dev_dbg(iop_chan->device->common.dev,
> - "%s src_cnt: %d len: %u flags: %lx\n",
> + "%s src_cnt: %d len: %zu flags: %lx\n",
> __func__, src_cnt, len, flags);
>
> spin_lock_bh(_chan->lock);
> @@ -583,7 +583,7 @@ iop_adma_prep_dma_xor_val(struct dma_chan *chan,
> dma_addr_t *dma_src,
> if (unlikely(!len))
> return NULL;
>
> - dev_dbg(iop_chan->device->common.dev, "%s src_cnt: %d len: %u\n",
> + dev_dbg(iop_chan->device->common.dev, "%s src_cnt: %d len: %zu\n",
> __func__, src_cnt, len);
>
> spin_lock_bh(_chan->lock);
> @@ -621,7 +621,7 @@ iop_adma_prep_dma_pq(struct dma_chan *chan, dma_addr_t
> *dst, dma_addr_t *src,
> BUG_ON(len > IOP_ADMA_XOR_MAX_BYTE_COUNT);
>
> dev_dbg(iop_chan->device->common.dev,
> - "%s src_cnt: %d len: %u flags: %lx\n",
> + "%s src_cnt: %d len: %zu flags: %lx\n",
> __func__, src_cnt, len, flags);
>
> if (dmaf_p_disabled_continue(flags))
> @@ -684,7 +684,7 @@ iop_adma_prep_dma_pq_val(struct dma_chan *chan,
> dma_addr_t *pq, dma_addr_t *src,
> return NULL;
> BUG_ON(len > IOP_ADMA_XOR_MAX_BYTE_COUNT);
>
> - dev_dbg(iop_chan->device->common.dev, "%s src_cnt: %d len: %u\n",
> + dev_dbg(iop_chan->device->common.dev, "%s src_cnt: %d len: %zu\n",
> __func__, src_cnt, len);
>
> spin_lock_bh(_chan->lock);
> --
> 2.20.0
--
~Vinod