Subject: linux-next: build failure after merge of the block tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 14 Dec 2020 15:18:03 +1100

Hi all,

After merging the block tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

drivers/md/raid0.c: In function 'raid0_handle_discard':
drivers/md/raid0.c:511:26: error: passing argument 1 of 'trace_block_bio_remap' from incompatible pointer type [-Werror=incompatible-pointer-types]
  511 |    trace_block_bio_remap(bdev_get_queue(rdev->bdev),
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~
      |                          |
      |                          struct request_queue *
In file included from include/trace/events/block.h:11,
                 from drivers/md/raid0.c:17:
include/trace/events/block.h:458:23: note: expected 'struct bio *' but argument is of type 'struct request_queue *'
  458 |  TP_PROTO(struct bio *bio, dev_t dev, sector_t from),
      |           ~~~~~~~~~~~~^~~
include/linux/tracepoint.h:238:34: note: in definition of macro '__DECLARE_TRACE'
  238 |  static inline void trace_##name(proto)    \
      |                                  ^~~~~
include/linux/tracepoint.h:411:24: note: in expansion of macro 'PARAMS'
  411 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
      |                        ^~~~~~
include/linux/tracepoint.h:547:2: note: in expansion of macro 'DECLARE_TRACE'
  547 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
      |  ^~~~~~~~~~~~~
include/linux/tracepoint.h:547:22: note: in expansion of macro 'PARAMS'
  547 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
      |                      ^~~~~~
include/trace/events/block.h:456:1: note: in expansion of macro 'TRACE_EVENT'
  456 | TRACE_EVENT(block_bio_remap,
      | ^~~~~~~~~~~
include/trace/events/block.h:458:2: note: in expansion of macro 'TP_PROTO'
  458 |  TP_PROTO(struct bio *bio, dev_t dev, sector_t from),
      |  ^~~~~~~~
drivers/md/raid0.c:512:5: warning: passing argument 2 of 'trace_block_bio_remap' makes integer from pointer without a cast [-Wint-conversion]
  512 |     discard_bio, disk_devt(mddev->gendisk),
      |     ^~~~~~~~~~~
      |     |
      |     struct bio *
In file included from include/trace/events/block.h:11,
                 from drivers/md/raid0.c:17:
include/trace/events/block.h:458:34: note: expected 'dev_t' {aka 'unsigned int'} but argument is of type 'struct bio *'
  458 |  TP_PROTO(struct bio *bio, dev_t dev, sector_t from),
      |                            ~~~~~~^~~
include/linux/tracepoint.h:238:34: note: in definition of macro '__DECLARE_TRACE'
  238 |  static inline void trace_##name(proto)    \
      |                                  ^~~~~
include/linux/tracepoint.h:411:24: note: in expansion of macro 'PARAMS'
  411 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
      |                        ^~~~~~
include/linux/tracepoint.h:547:2: note: in expansion of macro 'DECLARE_TRACE'
  547 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
      |  ^~~~~~~~~~~~~
include/linux/tracepoint.h:547:22: note: in expansion of macro 'PARAMS'
  547 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
      |                      ^~~~~~
include/trace/events/block.h:456:1: note: in expansion of macro 'TRACE_EVENT'
  456 | TRACE_EVENT(block_bio_remap,
      | ^~~~~~~~~~~
include/trace/events/block.h:458:2: note: in expansion of macro 'TP_PROTO'
  458 |  TP_PROTO(struct bio *bio, dev_t dev, sector_t from),
      |  ^~~~~~~~
drivers/md/raid0.c:511:4: error: too many arguments to function 'trace_block_bio_remap'
  511 |    trace_block_bio_remap(bdev_get_queue(rdev->bdev),
      |    ^~~~~~~~~~~~~~~~~~~~~
In file included from include/trace/events/block.h:11,
                 from drivers/md/raid0.c:17:
include/linux/tracepoint.h:238:21: note: declared here
  238 |  static inline void trace_##name(proto)    \
      |                     ^~~~~~
include/linux/tracepoint.h:411:2: note: in expansion of macro '__DECLARE_TRACE'
  411 |  __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
      |  ^~~~~~~~~~~~~~~
include/linux/tracepoint.h:547:2: note: in expansion of macro 'DECLARE_TRACE'
  547 |  DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
      |  ^~~~~~~~~~~~~
include/trace/events/block.h:456:1: note: in expansion of macro 'TRACE_EVENT'
  456 | TRACE_EVENT(block_bio_remap,
      | ^~~~~~~~~~~

Caused by commit

  1c02fca620f7 ("block: remove the request_queue argument to the block_bio_remap tracepoint")

interacting with commit

  57a0f3a81ef2 ("Revert "md: add md_submit_discard_bio() for submitting discard bio"")

from Linus' tree.

I have applied the following merge fix:

From: Stephen Rothwell <[email-masked]>
Date: Mon, 14 Dec 2020 15:14:26 +1100
Subject: [PATCH] fixup for "block: remove the request_queue argument to the block_bio_remap tracepoint"

conflicting with

"Revert "md: add md_submit_discard_bio() for submitting discard bio""

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 drivers/md/raid0.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
index 8f5b0143d8c6..67f157f2525d 100644
--- a/drivers/md/raid0.c
+++ b/drivers/md/raid0.c
@@ -508,8 +508,8 @@ static void raid0_handle_discard(struct mddev *mddev, struct bio *bio)
 		bio_chain(discard_bio, bio);
 		bio_clone_blkg_association(discard_bio, bio);
 		if (mddev->gendisk)
-			trace_block_bio_remap(bdev_get_queue(rdev->bdev),
-				discard_bio, disk_devt(mddev->gendisk),
+			trace_block_bio_remap(discard_bio,
+				disk_devt(mddev->gendisk),
 				bio->bi_iter.bi_sector);
 		submit_bio_noacct(discard_bio);
 	}
-- 
2.29.2

-- 
Cheers,
Stephen Rothwell