lkml.org 
[lkml]   [2021]   [Feb]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [next]: fs/io_uring.c:6171:10: error: implicit declaration of function 'io_sendmsg_prep_async'; did you mean 'io_req_prep_async'?
    From
    Date
    On 2/19/21 9:08 AM, Naresh Kamboju wrote:
    > Linux next tag 20210219 arm and mips builds failed due to below error.
    >
    > Following build configs failed
    > arm (s3c6400_defconfig) with gcc-8
    > arm (s3c6400_defconfig) with gcc-9
    > arm (s3c6400_defconfig) with gcc-10
    >
    > mips (e55_defconfig) with gcc-8
    > mips (e55_defconfig) with gcc-9
    > mips (e55_defconfig) with gcc-10
    >
    > fs/io_uring.c:6171:10: error: implicit declaration of function
    > 'io_sendmsg_prep_async'; did you mean 'io_req_prep_async'?
    > [-Werror=implicit-function-declaration]
    > return io_sendmsg_prep_async(req);
    > ^~~~~~~~~~~~~~~~~~~~~
    > io_req_prep_async
    >
    > Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>

    This should fix it, cleaning it up a bit at the same time.


    commit b1c892df32ebf6f30c995e23dcafeae2392ad1bc
    Author: Jens Axboe <axboe@kernel.dk>
    Date: Fri Feb 19 09:35:19 2021 -0700

    io_uring: make the !CONFIG_NET helpers a bit more robust

    With the prep and prep async split, we now have potentially 3 helpers
    that need to be defined for !CONFIG_NET. Add some helpers to do just
    that.

    Fixes the following compile error on !CONFIG_NET:

    fs/io_uring.c:6171:10: error: implicit declaration of function
    'io_sendmsg_prep_async'; did you mean 'io_req_prep_async'?
    [-Werror=implicit-function-declaration]
    return io_sendmsg_prep_async(req);
    ^~~~~~~~~~~~~~~~~~~~~
    io_req_prep_async

    Fixes: 93642ef88434 ("io_uring: split sqe-prep and async setup")
    Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

    diff --git a/fs/io_uring.c b/fs/io_uring.c
    index b7bae301744b..c9a5c498dc3b 100644
    --- a/fs/io_uring.c
    +++ b/fs/io_uring.c
    @@ -5127,56 +5127,32 @@ static int io_connect(struct io_kiocb *req, unsigned int issue_flags)
    return 0;
    }
    #else /* !CONFIG_NET */
    -static int io_sendmsg_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
    -{
    - return -EOPNOTSUPP;
    -}
    -
    -static int io_sendmsg(struct io_kiocb *req, unsigned int issue_flags)
    -{
    - return -EOPNOTSUPP;
    -}
    -
    -static int io_send(struct io_kiocb *req, unsigned int issue_flags)
    -{
    - return -EOPNOTSUPP;
    -}
    -
    -static int io_recvmsg_prep(struct io_kiocb *req,
    - const struct io_uring_sqe *sqe)
    -{
    - return -EOPNOTSUPP;
    -}
    -
    -static int io_recvmsg(struct io_kiocb *req, unsigned int issue_flags)
    -{
    - return -EOPNOTSUPP;
    -}
    -
    -static int io_recv(struct io_kiocb *req, unsigned int issue_flags)
    -{
    - return -EOPNOTSUPP;
    -}
    -
    -static int io_accept_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
    -{
    - return -EOPNOTSUPP;
    -}
    -
    -static int io_accept(struct io_kiocb *req, unsigned int issue_flags)
    -{
    - return -EOPNOTSUPP;
    -}
    -
    -static int io_connect_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
    -{
    - return -EOPNOTSUPP;
    -}
    -
    -static int io_connect(struct io_kiocb *req, unsigned int issue_flags)
    -{
    - return -EOPNOTSUPP;
    -}
    +#define IO_NETOP_FN(op) \
    +static int io_##op(struct io_kiocb *req, unsigned int issue_flags) \
    +{ \
    + return -EOPNOTSUPP; \
    +}
    +
    +#define IO_NETOP_PREP(op) \
    +IO_NETOP_FN(op) \
    +static int io_##op##_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) \
    +{ \
    + return -EOPNOTSUPP; \
    +} \
    +
    +#define IO_NETOP_PREP_ASYNC(op) \
    +IO_NETOP_PREP(op) \
    +static int io_##op##_prep_async(struct io_kiocb *req) \
    +{ \
    + return -EOPNOTSUPP; \
    +}
    +
    +IO_NETOP_PREP_ASYNC(sendmsg);
    +IO_NETOP_PREP_ASYNC(recvmsg);
    +IO_NETOP_PREP_ASYNC(connect);
    +IO_NETOP_PREP(accept);
    +IO_NETOP_FN(send);
    +IO_NETOP_FN(recv);
    #endif /* CONFIG_NET */

    struct io_poll_table {
    --
    Jens Axboe

    \
     
     \ /
      Last update: 2021-02-19 17:40    [W:2.260 / U:1.420 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site