Re: [GIT PULL] s390 patches for 4.13 merge window

From: Martin Schwidefsky
Date: Tue Jul 04 2017 - 04:29:39 EST


On Tue, 4 Jul 2017 10:05:30 +0200
Martin Schwidefsky <schwidefsky@xxxxxxxxxx> wrote:

> On Tue, 4 Jul 2017 17:58:18 +1000
> Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> > Hi Linus,
> >
> > On Mon, 3 Jul 2017 15:46:00 -0700 Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> > >
> > > On Mon, Jul 3, 2017 at 2:01 AM, Martin Schwidefsky
> > > <schwidefsky@xxxxxxxxxx> wrote:
> > > >
> > > > please pull from the 'for-linus' branch of
> > > >
> > > > git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git for-linus
> > >
> > > So my conflict resolution looks different from the one Stephen posted,
> > > which may be due to various reasons, ranging from "linux-next has
> > > other things that conflict" to just "I didn't notice some semantic
> > > conflict since unlike linux-next I don't build for s390".
> > >
> > > Regardless, you should check my current -git tree just to verify, and
> > > send me a patch if I screwed something up.
> >
> > At least part of the difference is the following merge fix patch I have
> > been carrying. It is needed due to a build failure.
> >
> > From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> > 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 <sfr@xxxxxxxxxxxxxxxx>
> > ---
> > 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,
>
> This is the same patch I came up with to get it to compile. I asked
> Sebastian to verify that the driver actually works with these changes.

Looks good. Sebastian confirmed that the scm driver will be fine with the
add-on patch from Stephen.

@Linus:
I can add this to the s390 tree and sent the patch with the next please-pull.
Or you can apply the patch directly, whatever you prefer.

--
blue skies,
Martin.

"Reality continues to ruin my life." - Calvin.