2017-06-13 10:54:14

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: build failure after merge of the block tree

Hi Jall,

After merging the block tree, today's linux-next build (s390x
s390-defconfig) failed like this:

drivers/s390/block/scm_blk.c:293:10: error: 'BLK_MQ_RQ_QUEUE_BUSY' undeclared (first use in this function)
drivers/s390/block/scm_blk.c:327:9: error: 'BLK_MQ_RQ_QUEUE_OK' undeclared (first use in this function)

Caused by commit

fc17b6534eb8 ("blk-mq: switch ->queue_rq return value to blk_status_t")

interacting with commit

12d907626539 ("s390/scm: convert to blk-mq")

from the s390 tree.

Is the following the correct merge fixup?

From: Stephen Rothwell <[email protected]>
Date: Tue, 13 Jun 2017 20:51:32 +1000
Subject: [PATCH] s390: fix up for "blk-mq: switch ->queue_rq return value to
blk_status_t"

Signed-off-by: Stephen Rothwell <[email protected]>
---
drivers/s390/block/scm_blk.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c
index 42018a20f2b7..2cd6123c8f18 100644
--- a/drivers/s390/block/scm_blk.c
+++ b/drivers/s390/block/scm_blk.c
@@ -290,7 +290,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
spin_lock(&sq->lock);
if (!scm_permit_request(bdev, req)) {
spin_unlock(&sq->lock);
- return BLK_MQ_RQ_QUEUE_BUSY;
+ return BLK_STS_RESOURCE;
}

scmrq = sq->scmrq;
@@ -299,7 +299,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
if (!scmrq) {
SCM_LOG(5, "no request");
spin_unlock(&sq->lock);
- return BLK_MQ_RQ_QUEUE_BUSY;
+ return BLK_STS_RESOURCE;
}
scm_request_init(bdev, scmrq);
sq->scmrq = scmrq;
@@ -315,7 +315,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,

sq->scmrq = NULL;
spin_unlock(&sq->lock);
- return BLK_MQ_RQ_QUEUE_BUSY;
+ return BLK_STS_RESOURCE;
}
blk_mq_start_request(req);

@@ -324,7 +324,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
sq->scmrq = NULL;
}
spin_unlock(&sq->lock);
- return BLK_MQ_RQ_QUEUE_OK;
+ return BLK_STS_OK;
}

static int scm_blk_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
--
2.11.0

--
Cheers,
Stephen Rothwell


2017-06-15 14:50:58

by Sebastian Ott

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

On Tue, 13 Jun 2017, Stephen Rothwell wrote:
> After merging the block tree, today's linux-next build (s390x
> s390-defconfig) failed like this:
>
> drivers/s390/block/scm_blk.c:293:10: error: 'BLK_MQ_RQ_QUEUE_BUSY' undeclared (first use in this function)
> drivers/s390/block/scm_blk.c:327:9: error: 'BLK_MQ_RQ_QUEUE_OK' undeclared (first use in this function)
>
> Caused by commit
>
> fc17b6534eb8 ("blk-mq: switch ->queue_rq return value to blk_status_t")
>
> interacting with commit
>
> 12d907626539 ("s390/scm: convert to blk-mq")
>
> from the s390 tree.
>
> Is the following the correct merge fixup?

Yes, that looks good!

Thanks,
Sebastian

2017-06-19 09:00:33

by Sebastian Ott

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

On Thu, 15 Jun 2017, Sebastian Ott wrote:
> On Tue, 13 Jun 2017, Stephen Rothwell wrote:
> > After merging the block tree, today's linux-next build (s390x
> > s390-defconfig) failed like this:
> >
> > drivers/s390/block/scm_blk.c:293:10: error: 'BLK_MQ_RQ_QUEUE_BUSY' undeclared (first use in this function)
> > drivers/s390/block/scm_blk.c:327:9: error: 'BLK_MQ_RQ_QUEUE_OK' undeclared (first use in this function)
> >
> > Caused by commit
> >
> > fc17b6534eb8 ("blk-mq: switch ->queue_rq return value to blk_status_t")
> >
> > interacting with commit
> >
> > 12d907626539 ("s390/scm: convert to blk-mq")
> >
> > from the s390 tree.
> >
> > Is the following the correct merge fixup?
>
> Yes, that looks good!

Ok, we should also adjust the return code to fix this:

drivers/s390/block/scm_blk.c:426:2: warning: initialization from incompatible pointer type [enabled by default]
.queue_rq = scm_blk_request,
^

diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c
index 2cd6123c8f18..4279685901bf 100644
--- a/drivers/s390/block/scm_blk.c
+++ b/drivers/s390/block/scm_blk.c
@@ -278,8 +278,8 @@ struct scm_queue {
spinlock_t lock;
};

-static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
- const struct blk_mq_queue_data *qd)
+static blk_status_t scm_blk_request(struct blk_mq_hw_ctx *hctx,
+ const struct blk_mq_queue_data *qd)
{
struct scm_device *scmdev = hctx->queue->queuedata;
struct scm_blk_dev *bdev = dev_get_drvdata(&scmdev->dev);

2017-06-20 01:45:27

by Stephen Rothwell

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

Hi Sebastian,

On Mon, 19 Jun 2017 11:00:23 +0200 (CEST) Sebastian Ott <[email protected]> wrote:
>
> Ok, we should also adjust the return code to fix this:
>
> drivers/s390/block/scm_blk.c:426:2: warning: initialization from incompatible pointer type [enabled by default]
> .queue_rq = scm_blk_request,
> ^
>
> diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c
> index 2cd6123c8f18..4279685901bf 100644
> --- a/drivers/s390/block/scm_blk.c
> +++ b/drivers/s390/block/scm_blk.c
> @@ -278,8 +278,8 @@ struct scm_queue {
> spinlock_t lock;
> };
>
> -static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
> - const struct blk_mq_queue_data *qd)
> +static blk_status_t scm_blk_request(struct blk_mq_hw_ctx *hctx,
> + const struct blk_mq_queue_data *qd)
> {
> struct scm_device *scmdev = hctx->queue->queuedata;
> struct scm_blk_dev *bdev = dev_get_drvdata(&scmdev->dev);
>

Good point, I have done that today. The complete fix up patch now
looks like this:

From: Stephen Rothwell <[email protected]>
Date: Tue, 13 Jun 2017 20:51:32 +1000
Subject: [PATCH] s390: fix up for "blk-mq: switch ->queue_rq return value to
blk_status_t"

Signed-off-by: Stephen Rothwell <[email protected]>
---
drivers/s390/block/scm_blk.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c
index 42018a20f2b7..0071febac9e6 100644
--- a/drivers/s390/block/scm_blk.c
+++ b/drivers/s390/block/scm_blk.c
@@ -278,7 +278,7 @@ struct scm_queue {
spinlock_t lock;
};

-static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
+static blk_status_t scm_blk_request(struct blk_mq_hw_ctx *hctx,
const struct blk_mq_queue_data *qd)
{
struct scm_device *scmdev = hctx->queue->queuedata;
@@ -290,7 +290,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
spin_lock(&sq->lock);
if (!scm_permit_request(bdev, req)) {
spin_unlock(&sq->lock);
- return BLK_MQ_RQ_QUEUE_BUSY;
+ return BLK_STS_RESOURCE;
}

scmrq = sq->scmrq;
@@ -299,7 +299,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
if (!scmrq) {
SCM_LOG(5, "no request");
spin_unlock(&sq->lock);
- return BLK_MQ_RQ_QUEUE_BUSY;
+ return BLK_STS_RESOURCE;
}
scm_request_init(bdev, scmrq);
sq->scmrq = scmrq;
@@ -315,7 +315,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,

sq->scmrq = NULL;
spin_unlock(&sq->lock);
- return BLK_MQ_RQ_QUEUE_BUSY;
+ return BLK_STS_RESOURCE;
}
blk_mq_start_request(req);

@@ -324,7 +324,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
sq->scmrq = NULL;
}
spin_unlock(&sq->lock);
- return BLK_MQ_RQ_QUEUE_OK;
+ return BLK_STS_OK;
}

static int scm_blk_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
--
2.11.0

--
Cheers,
Stephen Rothwell

2017-07-04 15:16:05

by Guenter Roeck

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

On Tue, Jun 13, 2017 at 08:54:09PM +1000, Stephen Rothwell wrote:
> Hi Jall,
>
> After merging the block tree, today's linux-next build (s390x
> s390-defconfig) failed like this:
>
> drivers/s390/block/scm_blk.c:293:10: error: 'BLK_MQ_RQ_QUEUE_BUSY' undeclared (first use in this function)
> drivers/s390/block/scm_blk.c:327:9: error: 'BLK_MQ_RQ_QUEUE_OK' undeclared (first use in this function)
>
> Caused by commit
>
> fc17b6534eb8 ("blk-mq: switch ->queue_rq return value to blk_status_t")
>
> interacting with commit
>
> 12d907626539 ("s390/scm: convert to blk-mq")
>
> from the s390 tree.
>
> Is the following the correct merge fixup?
>

The failure made int into Linus' tree, but the fix didn't. Is the fix pending
in some other queue or does it have to be (re-)submitted ?

Guenter

> From: Stephen Rothwell <[email protected]>
> Date: Tue, 13 Jun 2017 20:51:32 +1000
> Subject: [PATCH] s390: fix up for "blk-mq: switch ->queue_rq return value to
> blk_status_t"
>
> Signed-off-by: Stephen Rothwell <[email protected]>
> ---
> drivers/s390/block/scm_blk.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c
> index 42018a20f2b7..2cd6123c8f18 100644
> --- a/drivers/s390/block/scm_blk.c
> +++ b/drivers/s390/block/scm_blk.c
> @@ -290,7 +290,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
> spin_lock(&sq->lock);
> if (!scm_permit_request(bdev, req)) {
> spin_unlock(&sq->lock);
> - return BLK_MQ_RQ_QUEUE_BUSY;
> + return BLK_STS_RESOURCE;
> }
>
> scmrq = sq->scmrq;
> @@ -299,7 +299,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
> if (!scmrq) {
> SCM_LOG(5, "no request");
> spin_unlock(&sq->lock);
> - return BLK_MQ_RQ_QUEUE_BUSY;
> + return BLK_STS_RESOURCE;
> }
> scm_request_init(bdev, scmrq);
> sq->scmrq = scmrq;
> @@ -315,7 +315,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
>
> sq->scmrq = NULL;
> spin_unlock(&sq->lock);
> - return BLK_MQ_RQ_QUEUE_BUSY;
> + return BLK_STS_RESOURCE;
> }
> blk_mq_start_request(req);
>
> @@ -324,7 +324,7 @@ static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
> sq->scmrq = NULL;
> }
> spin_unlock(&sq->lock);
> - return BLK_MQ_RQ_QUEUE_OK;
> + return BLK_STS_OK;
> }
>
> static int scm_blk_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,

2017-07-04 21:40:22

by Stephen Rothwell

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

Hi Guenter,

On Tue, 4 Jul 2017 08:15:57 -0700 Guenter Roeck <[email protected]> wrote:
>
> On Tue, Jun 13, 2017 at 08:54:09PM +1000, Stephen Rothwell wrote:
> >
> > After merging the block tree, today's linux-next build (s390x
> > s390-defconfig) failed like this:
> >
> > drivers/s390/block/scm_blk.c:293:10: error: 'BLK_MQ_RQ_QUEUE_BUSY' undeclared (first use in this function)
> > drivers/s390/block/scm_blk.c:327:9: error: 'BLK_MQ_RQ_QUEUE_OK' undeclared (first use in this function)
> >
> > Caused by commit
> >
> > fc17b6534eb8 ("blk-mq: switch ->queue_rq return value to blk_status_t")
> >
> > interacting with commit
> >
> > 12d907626539 ("s390/scm: convert to blk-mq")
> >
> > from the s390 tree.
> >
> > Is the following the correct merge fixup?
> >
>
> The failure made int into Linus' tree, but the fix didn't. Is the fix pending
> in some other queue or does it have to be (re-)submitted ?

It will be my in fixes tree today and until it appears in Linus' or the
s390 tree.

--
Cheers,
Stephen Rothwell