lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPDyKFqRzOceWJUODP0YEu348S4=OHdQA-3c3tEMAJshCQN+Qg@mail.gmail.com>
Date:   Thu, 23 Jun 2022 14:35:00 +0200
From:   Ulf Hansson <ulf.hansson@...aro.org>
To:     John Garry <john.garry@...wei.com>
Cc:     axboe@...nel.dk, damien.lemoal@...nsource.wdc.com,
        bvanassche@....org, hch@....de, jejb@...ux.ibm.com,
        martin.petersen@...cle.com, hare@...e.de, satishkh@...co.com,
        sebaddel@...co.com, kartilak@...co.com, linux-doc@...r.kernel.org,
        linux-rdma@...r.kernel.org, linux-mmc@...r.kernel.org,
        linux-nvme@...ts.infradead.org, linux-s390@...r.kernel.org,
        linux-scsi@...r.kernel.org, mpi3mr-linuxdrv.pdl@...adcom.com,
        linux-block@...r.kernel.org, linux-kernel@...r.kernel.org,
        nbd@...er.debian.org
Subject: Re: [PATCH v2 3/6] blk-mq: Drop blk_mq_ops.timeout 'reserved' arg

On Tue, 21 Jun 2022 at 13:22, John Garry <john.garry@...wei.com> wrote:
>
> With new API blk_mq_is_reserved_rq() we can tell if a request is from
> the reserved pool, so stop passing 'reserved' arg. There is actually
> only a single user of that arg for all the callback implementations, which
> can use blk_mq_is_reserved_rq() instead.
>
> This will also allow us to stop passing the same 'reserved' around the
> blk-mq iter functions next.
>
> Signed-off-by: John Garry <john.garry@...wei.com>
> Reviewed-by: Christoph Hellwig <hch@....de>
> Reviewed-by: Bart Van Assche <bvanassche@....org>
> Reviewed-by: Hannes Reinecke <hare@...e.de>

Acked-by: Ulf Hansson <ulf.hansson@...aro.org> # For MMC

Kind regards
Uffe


> ---
>  block/blk-mq.c                    | 6 +++---
>  block/bsg-lib.c                   | 2 +-
>  drivers/block/mtip32xx/mtip32xx.c | 5 ++---
>  drivers/block/nbd.c               | 3 +--
>  drivers/block/null_blk/main.c     | 2 +-
>  drivers/mmc/core/queue.c          | 3 +--
>  drivers/nvme/host/apple.c         | 3 +--
>  drivers/nvme/host/fc.c            | 3 +--
>  drivers/nvme/host/pci.c           | 2 +-
>  drivers/nvme/host/rdma.c          | 3 +--
>  drivers/nvme/host/tcp.c           | 3 +--
>  drivers/s390/block/dasd.c         | 2 +-
>  drivers/s390/block/dasd_int.h     | 2 +-
>  drivers/scsi/scsi_error.c         | 3 +--
>  drivers/scsi/scsi_priv.h          | 3 +--
>  include/linux/blk-mq.h            | 2 +-
>  16 files changed, 19 insertions(+), 28 deletions(-)
>
> diff --git a/block/blk-mq.c b/block/blk-mq.c
> index d38c97fe89f5..81bd39e36e49 100644
> --- a/block/blk-mq.c
> +++ b/block/blk-mq.c
> @@ -1426,13 +1426,13 @@ bool blk_mq_queue_inflight(struct request_queue *q)
>  }
>  EXPORT_SYMBOL_GPL(blk_mq_queue_inflight);
>
> -static void blk_mq_rq_timed_out(struct request *req, bool reserved)
> +static void blk_mq_rq_timed_out(struct request *req)
>  {
>         req->rq_flags |= RQF_TIMED_OUT;
>         if (req->q->mq_ops->timeout) {
>                 enum blk_eh_timer_return ret;
>
> -               ret = req->q->mq_ops->timeout(req, reserved);
> +               ret = req->q->mq_ops->timeout(req);
>                 if (ret == BLK_EH_DONE)
>                         return;
>                 WARN_ON_ONCE(ret != BLK_EH_RESET_TIMER);
> @@ -1481,7 +1481,7 @@ static bool blk_mq_check_expired(struct request *rq, void *priv, bool reserved)
>          * from blk_mq_check_expired().
>          */
>         if (blk_mq_req_expired(rq, next))
> -               blk_mq_rq_timed_out(rq, reserved);
> +               blk_mq_rq_timed_out(rq);
>         return true;
>  }
>
> diff --git a/block/bsg-lib.c b/block/bsg-lib.c
> index acfe1357bf6c..9570c77b9fe3 100644
> --- a/block/bsg-lib.c
> +++ b/block/bsg-lib.c
> @@ -331,7 +331,7 @@ void bsg_remove_queue(struct request_queue *q)
>  }
>  EXPORT_SYMBOL_GPL(bsg_remove_queue);
>
> -static enum blk_eh_timer_return bsg_timeout(struct request *rq, bool reserved)
> +static enum blk_eh_timer_return bsg_timeout(struct request *rq)
>  {
>         struct bsg_set *bset =
>                 container_of(rq->q->tag_set, struct bsg_set, tag_set);
> diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c
> index 27386a572ba4..d5767215840c 100644
> --- a/drivers/block/mtip32xx/mtip32xx.c
> +++ b/drivers/block/mtip32xx/mtip32xx.c
> @@ -3487,12 +3487,11 @@ static int mtip_init_cmd(struct blk_mq_tag_set *set, struct request *rq,
>         return 0;
>  }
>
> -static enum blk_eh_timer_return mtip_cmd_timeout(struct request *req,
> -                                                               bool reserved)
> +static enum blk_eh_timer_return mtip_cmd_timeout(struct request *req)
>  {
>         struct driver_data *dd = req->q->queuedata;
>
> -       if (reserved) {
> +       if (blk_mq_is_reserved_rq(req)) {
>                 struct mtip_cmd *cmd = blk_mq_rq_to_pdu(req);
>
>                 cmd->status = BLK_STS_TIMEOUT;
> diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
> index 07f3c139a3d7..166303716560 100644
> --- a/drivers/block/nbd.c
> +++ b/drivers/block/nbd.c
> @@ -393,8 +393,7 @@ static u32 req_to_nbd_cmd_type(struct request *req)
>         }
>  }
>
> -static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req,
> -                                                bool reserved)
> +static enum blk_eh_timer_return nbd_xmit_timeout(struct request *req)
>  {
>         struct nbd_cmd *cmd = blk_mq_rq_to_pdu(req);
>         struct nbd_device *nbd = cmd->nbd;
> diff --git a/drivers/block/null_blk/main.c b/drivers/block/null_blk/main.c
> index 6b67088f4ea7..2d815d1eba25 100644
> --- a/drivers/block/null_blk/main.c
> +++ b/drivers/block/null_blk/main.c
> @@ -1578,7 +1578,7 @@ static int null_poll(struct blk_mq_hw_ctx *hctx, struct io_comp_batch *iob)
>         return nr;
>  }
>
> -static enum blk_eh_timer_return null_timeout_rq(struct request *rq, bool res)
> +static enum blk_eh_timer_return null_timeout_rq(struct request *rq)
>  {
>         struct blk_mq_hw_ctx *hctx = rq->mq_hctx;
>         struct nullb_cmd *cmd = blk_mq_rq_to_pdu(rq);
> diff --git a/drivers/mmc/core/queue.c b/drivers/mmc/core/queue.c
> index fa5324ceeebe..17236340dbd2 100644
> --- a/drivers/mmc/core/queue.c
> +++ b/drivers/mmc/core/queue.c
> @@ -116,8 +116,7 @@ static enum blk_eh_timer_return mmc_cqe_timed_out(struct request *req)
>         }
>  }
>
> -static enum blk_eh_timer_return mmc_mq_timed_out(struct request *req,
> -                                                bool reserved)
> +static enum blk_eh_timer_return mmc_mq_timed_out(struct request *req)
>  {
>         struct request_queue *q = req->q;
>         struct mmc_queue *mq = q->queuedata;
> diff --git a/drivers/nvme/host/apple.c b/drivers/nvme/host/apple.c
> index d702d7d60235..495118ce958a 100644
> --- a/drivers/nvme/host/apple.c
> +++ b/drivers/nvme/host/apple.c
> @@ -862,8 +862,7 @@ static void apple_nvme_disable(struct apple_nvme *anv, bool shutdown)
>         }
>  }
>
> -static enum blk_eh_timer_return apple_nvme_timeout(struct request *req,
> -                                                  bool reserved)
> +static enum blk_eh_timer_return apple_nvme_timeout(struct request *req)
>  {
>         struct apple_nvme_iod *iod = blk_mq_rq_to_pdu(req);
>         struct apple_nvme_queue *q = iod->q;
> diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
> index 3c778bb0c294..a166c0b1cc33 100644
> --- a/drivers/nvme/host/fc.c
> +++ b/drivers/nvme/host/fc.c
> @@ -2565,8 +2565,7 @@ nvme_fc_error_recovery(struct nvme_fc_ctrl *ctrl, char *errmsg)
>         nvme_reset_ctrl(&ctrl->ctrl);
>  }
>
> -static enum blk_eh_timer_return
> -nvme_fc_timeout(struct request *rq, bool reserved)
> +static enum blk_eh_timer_return nvme_fc_timeout(struct request *rq)
>  {
>         struct nvme_fc_fcp_op *op = blk_mq_rq_to_pdu(rq);
>         struct nvme_fc_ctrl *ctrl = op->ctrl;
> diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
> index c7012e85d035..83b1229a4e36 100644
> --- a/drivers/nvme/host/pci.c
> +++ b/drivers/nvme/host/pci.c
> @@ -1344,7 +1344,7 @@ static void nvme_warn_reset(struct nvme_dev *dev, u32 csts)
>                  "Try \"nvme_core.default_ps_max_latency_us=0 pcie_aspm=off\" and report a bug\n");
>  }
>
> -static enum blk_eh_timer_return nvme_timeout(struct request *req, bool reserved)
> +static enum blk_eh_timer_return nvme_timeout(struct request *req)
>  {
>         struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
>         struct nvme_queue *nvmeq = iod->nvmeq;
> diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
> index f2a5e1ea508a..d2fb8651e49d 100644
> --- a/drivers/nvme/host/rdma.c
> +++ b/drivers/nvme/host/rdma.c
> @@ -2013,8 +2013,7 @@ static void nvme_rdma_complete_timed_out(struct request *rq)
>         nvmf_complete_timed_out_request(rq);
>  }
>
> -static enum blk_eh_timer_return
> -nvme_rdma_timeout(struct request *rq, bool reserved)
> +static enum blk_eh_timer_return nvme_rdma_timeout(struct request *rq)
>  {
>         struct nvme_rdma_request *req = blk_mq_rq_to_pdu(rq);
>         struct nvme_rdma_queue *queue = req->queue;
> diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c
> index bb67538d241b..f21f7b0140f9 100644
> --- a/drivers/nvme/host/tcp.c
> +++ b/drivers/nvme/host/tcp.c
> @@ -2321,8 +2321,7 @@ static void nvme_tcp_complete_timed_out(struct request *rq)
>         nvmf_complete_timed_out_request(rq);
>  }
>
> -static enum blk_eh_timer_return
> -nvme_tcp_timeout(struct request *rq, bool reserved)
> +static enum blk_eh_timer_return nvme_tcp_timeout(struct request *rq)
>  {
>         struct nvme_tcp_request *req = blk_mq_rq_to_pdu(rq);
>         struct nvme_ctrl *ctrl = &req->queue->ctrl->ctrl;
> diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
> index ba6d78789660..35d6f62ed515 100644
> --- a/drivers/s390/block/dasd.c
> +++ b/drivers/s390/block/dasd.c
> @@ -3145,7 +3145,7 @@ static blk_status_t do_dasd_request(struct blk_mq_hw_ctx *hctx,
>   * BLK_EH_DONE if the request is handled or terminated
>   *                   by the driver.
>   */
> -enum blk_eh_timer_return dasd_times_out(struct request *req, bool reserved)
> +enum blk_eh_timer_return dasd_times_out(struct request *req)
>  {
>         struct dasd_block *block = req->q->queuedata;
>         struct dasd_device *device;
> diff --git a/drivers/s390/block/dasd_int.h b/drivers/s390/block/dasd_int.h
> index 83b918b84b4a..333a399f754e 100644
> --- a/drivers/s390/block/dasd_int.h
> +++ b/drivers/s390/block/dasd_int.h
> @@ -795,7 +795,7 @@ void dasd_free_device(struct dasd_device *);
>  struct dasd_block *dasd_alloc_block(void);
>  void dasd_free_block(struct dasd_block *);
>
> -enum blk_eh_timer_return dasd_times_out(struct request *req, bool reserved);
> +enum blk_eh_timer_return dasd_times_out(struct request *req);
>
>  void dasd_enable_device(struct dasd_device *);
>  void dasd_set_target_state(struct dasd_device *, int);
> diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
> index a8b71b73a5a5..266ce414589c 100644
> --- a/drivers/scsi/scsi_error.c
> +++ b/drivers/scsi/scsi_error.c
> @@ -318,7 +318,6 @@ void scsi_eh_scmd_add(struct scsi_cmnd *scmd)
>  /**
>   * scsi_timeout - Timeout function for normal scsi commands.
>   * @req:       request that is timing out.
> - * @reserved:  whether the request is a reserved request.
>   *
>   * Notes:
>   *     We do not need to lock this.  There is the potential for a race
> @@ -326,7 +325,7 @@ void scsi_eh_scmd_add(struct scsi_cmnd *scmd)
>   *     normal completion function determines that the timer has already
>   *     fired, then it mustn't do anything.
>   */
> -enum blk_eh_timer_return scsi_timeout(struct request *req, bool reserved)
> +enum blk_eh_timer_return scsi_timeout(struct request *req)
>  {
>         struct scsi_cmnd *scmd = blk_mq_rq_to_pdu(req);
>         enum blk_eh_timer_return rtn = BLK_EH_DONE;
> diff --git a/drivers/scsi/scsi_priv.h b/drivers/scsi/scsi_priv.h
> index 695d0c83ffe0..6eeaa0a7f86d 100644
> --- a/drivers/scsi/scsi_priv.h
> +++ b/drivers/scsi/scsi_priv.h
> @@ -72,8 +72,7 @@ extern void scsi_exit_devinfo(void);
>
>  /* scsi_error.c */
>  extern void scmd_eh_abort_handler(struct work_struct *work);
> -extern enum blk_eh_timer_return scsi_timeout(struct request *req,
> -                                            bool reserved);
> +extern enum blk_eh_timer_return scsi_timeout(struct request *req);
>  extern int scsi_error_handler(void *host);
>  extern enum scsi_disposition scsi_decide_disposition(struct scsi_cmnd *cmd);
>  extern void scsi_eh_wakeup(struct Scsi_Host *shost);
> diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
> index 6d81fe10e850..fbb08bdd4618 100644
> --- a/include/linux/blk-mq.h
> +++ b/include/linux/blk-mq.h
> @@ -575,7 +575,7 @@ struct blk_mq_ops {
>         /**
>          * @timeout: Called on request timeout.
>          */
> -       enum blk_eh_timer_return (*timeout)(struct request *, bool);
> +       enum blk_eh_timer_return (*timeout)(struct request *);
>
>         /**
>          * @poll: Called to poll for completion of a specific tag.
> --
> 2.25.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ