From: Leon Romanovsky <leon@kernel.org>
To: Arnd Bergmann <arnd@kernel.org>
Cc: Bart Van Assche <bvanassche@acm.org>,
Arnd Bergmann <arnd@arndb.de>, Jason Gunthorpe <jgg@ziepe.ca>,
Nathan Chancellor <nathan@kernel.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
"Nicholas A. Bellinger" <nab@risingtidesystems.com>,
linux-rdma@vger.kernel.org, target-devel@vger.kernel.org,
linux-kernel@vger.kernel.org, llvm@lists.linux.dev
Subject: Re: [PATCH] RDMA/srpt: fix function pointer cast warnings
Date: Wed, 14 Feb 2024 11:21:44 +0200 [thread overview]
Message-ID: <20240214092144.GF52640@unreal> (raw)
In-Reply-To: <20240213100728.458348-1-arnd@kernel.org>
On Tue, Feb 13, 2024 at 11:07:13AM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> clang-16 notices that srpt_qp_event() gets called through an incompatible
> pointer here:
>
> drivers/infiniband/ulp/srpt/ib_srpt.c:1815:5: error: cast from 'void (*)(struct ib_event *, struct srpt_rdma_ch *)' to 'void (*)(struct ib_event *, void *)' converts to incompatible function type [-Werror,-Wcast-function-type-strict]
> 1815 | = (void(*)(struct ib_event *, void*))srpt_qp_event;
>
> Change srpt_qp_event() to use the correct prototype and adjust the
> argument inside of it.
>
> Fixes: a42d985bd5b2 ("ib_srpt: Initial SRP Target merge for v3.3-rc1")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> drivers/infiniband/ulp/srpt/ib_srpt.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
This patch generates the following warnings, fixed and applied.
➜ kernel git:(wip/leon-for-rc) mkt ci
f17a855457db (HEAD -> build) RDMA/srpt: fix function pointer cast warnings
drivers/infiniband/ulp/srpt/ib_srpt.c:220: warning: Function parameter or struct member 'ptr' not described in 'srpt_qp_event'
drivers/infiniband/ulp/srpt/ib_srpt.c:220: warning: Excess function parameter 'ch' description in 'srpt_qp_event'
drivers/infiniband/ulp/srpt/ib_srpt.c:220: warning: Function parameter or struct member 'ptr' not described in 'srpt_qp_event'
drivers/infiniband/ulp/srpt/ib_srpt.c:220: warning: Excess function parameter 'ch' description in 'srpt_qp_event'
>
> diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c
> index 0875f197118f..942b311b6296 100644
> --- a/drivers/infiniband/ulp/srpt/ib_srpt.c
> +++ b/drivers/infiniband/ulp/srpt/ib_srpt.c
> @@ -216,8 +216,10 @@ static const char *get_ch_state_name(enum rdma_ch_state s)
> * @event: Description of the event that occurred.
> * @ch: SRPT RDMA channel.
> */
> -static void srpt_qp_event(struct ib_event *event, struct srpt_rdma_ch *ch)
> +static void srpt_qp_event(struct ib_event *event, void *ptr)
> {
> + struct srpt_rdma_ch *ch = ptr;
> +
> pr_debug("QP event %d on ch=%p sess_name=%s-%d state=%s\n",
> event->event, ch, ch->sess_name, ch->qp->qp_num,
> get_ch_state_name(ch->state));
> @@ -1811,8 +1813,7 @@ static int srpt_create_ch_ib(struct srpt_rdma_ch *ch)
> ch->cq_size = ch->rq_size + sq_size;
>
> qp_init->qp_context = (void *)ch;
> - qp_init->event_handler
> - = (void(*)(struct ib_event *, void*))srpt_qp_event;
> + qp_init->event_handler = srpt_qp_event;
> qp_init->send_cq = ch->cq;
> qp_init->recv_cq = ch->cq;
> qp_init->sq_sig_type = IB_SIGNAL_REQ_WR;
> --
> 2.39.2
>
next prev parent reply other threads:[~2024-02-14 9:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-13 10:07 [PATCH] RDMA/srpt: fix function pointer cast warnings Arnd Bergmann
2024-02-13 21:23 ` Bart Van Assche
2024-02-14 9:21 ` Leon Romanovsky [this message]
2024-02-14 9:24 ` Leon Romanovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240214092144.GF52640@unreal \
--to=leon@kernel.org \
--cc=arnd@arndb.de \
--cc=arnd@kernel.org \
--cc=bvanassche@acm.org \
--cc=jgg@ziepe.ca \
--cc=justinstitt@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=martin.petersen@oracle.com \
--cc=morbo@google.com \
--cc=nab@risingtidesystems.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=target-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.