mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 07:10:27 +00:00
io_uring-6.3-2023-03-16
-----BEGIN PGP SIGNATURE----- iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmQT2OsQHGF4Ym9lQGtl cm5lbC5kawAKCRD301j7KXHgpjOoD/wIs6Wdgj3coKmBFh2k7EXWUOWLVuAltCet gE9VZYihRN4z0A2s1Wpn4Zj95JND7pZprOrwvLGiRxoauXdjkqzsG5TfM2r/0fZD ZubosCiI8GtaxIbdrGh0xVERDp6W4uG1jnggE+lMaAFzUNNGXj9I58c5lqjYl7Lw D9PTi/DN4n7kj0jOAnI6Gyr1Z6arP6w+ln+xYtOR2irW3K7/v4PkIDKT2AcG3/DW Z8EvTUOFp1Pk+TNDgqTRQGBoau3t6MPt/xxkWk+on9qIP6yk1nnlHwLiAXMD+Cp9 ifmZ5szfEWBRE2lD5JckwPIOSpd3jd9A9/7fBcoUjIK/i3qqBIxNQust70/PcZWh SOgxpel9CH+TInnxo/gNma1ncORoL+2eRZHoWasvAl8HoqOSjssqkCaEdIOkW4JK nCn5sXX/XMBWBxjPBLOY0Gi64e3/m8aLUWYnSuHS/JwyEkRvDTyEcZhziMrOYKh/ qhd+jeLpQFxtv9ymxwga8KFZrGhvA5ZJL6qymeBHKgXesTfBgMOnj7NUDhGWxhCW Gv6QG/R0ZYZf4KOZt7GBF+qFQmDvFGcDSib06cw3ufmxXLBfRD3BmAlR1B2qPT/V rRAa3Qy5fJchGG2xRR0DrjvEAs2kk74sJfq59SL2CUz/zyuoS5Xyl6tN/ooFgNHJ 0ACEvGNK3g== =da06 -----END PGP SIGNATURE----- Merge tag 'io_uring-6.3-2023-03-16' of git://git.kernel.dk/linux Pull io_uring fixes from Jens Axboe: - When PF_NO_SETAFFINITY was removed for io-wq threads, we kind of forgot about the SQPOLL thread. Remove it there as well, there's even less of a reason to set it there (Michal) - Fixup a confusing 'ret' setting (Li) - When MSG_RING is used to send a direct descriptor to another ring, it's possible to have it allocate it on the target ring rather than provide a specific index for it. If this is done, return the chosen value in the CQE, like we would've done locally (Pavel) - Fix a regression in this series on huge page bvec collapsing (Pavel) * tag 'io_uring-6.3-2023-03-16' of git://git.kernel.dk/linux: io_uring/rsrc: fix folio accounting io_uring/msg_ring: let target know allocated index io_uring: rsrc: Optimize return value variable 'ret' io_uring/sqpoll: Do not set PF_NO_SETAFFINITY on sqpoll threads
This commit is contained in:
commit
b7966a5a5c
@ -202,7 +202,7 @@ static int io_msg_install_complete(struct io_kiocb *req, unsigned int issue_flag
|
||||
* completes with -EOVERFLOW, then the sender must ensure that a
|
||||
* later IORING_OP_MSG_RING delivers the message.
|
||||
*/
|
||||
if (!io_post_aux_cqe(target_ctx, msg->user_data, msg->len, 0))
|
||||
if (!io_post_aux_cqe(target_ctx, msg->user_data, ret, 0))
|
||||
ret = -EOVERFLOW;
|
||||
out_unlock:
|
||||
io_double_unlock_ctx(target_ctx);
|
||||
@ -229,6 +229,8 @@ static int io_msg_send_fd(struct io_kiocb *req, unsigned int issue_flags)
|
||||
struct io_ring_ctx *ctx = req->ctx;
|
||||
struct file *src_file = msg->src_file;
|
||||
|
||||
if (msg->len)
|
||||
return -EINVAL;
|
||||
if (target_ctx == ctx)
|
||||
return -EINVAL;
|
||||
if (target_ctx->flags & IORING_SETUP_R_DISABLED)
|
||||
|
@ -410,7 +410,7 @@ __cold static int io_rsrc_data_alloc(struct io_ring_ctx *ctx,
|
||||
unsigned nr, struct io_rsrc_data **pdata)
|
||||
{
|
||||
struct io_rsrc_data *data;
|
||||
int ret = -ENOMEM;
|
||||
int ret = 0;
|
||||
unsigned i;
|
||||
|
||||
data = kzalloc(sizeof(*data), GFP_KERNEL);
|
||||
@ -1235,7 +1235,13 @@ static int io_sqe_buffer_register(struct io_ring_ctx *ctx, struct iovec *iov,
|
||||
}
|
||||
}
|
||||
if (folio) {
|
||||
folio_put_refs(folio, nr_pages - 1);
|
||||
/*
|
||||
* The pages are bound to the folio, it doesn't
|
||||
* actually unpin them but drops all but one reference,
|
||||
* which is usually put down by io_buffer_unmap().
|
||||
* Note, needs a better helper.
|
||||
*/
|
||||
unpin_user_pages(&pages[1], nr_pages - 1);
|
||||
nr_pages = 1;
|
||||
}
|
||||
}
|
||||
|
@ -233,7 +233,6 @@ static int io_sq_thread(void *data)
|
||||
set_cpus_allowed_ptr(current, cpumask_of(sqd->sq_cpu));
|
||||
else
|
||||
set_cpus_allowed_ptr(current, cpu_online_mask);
|
||||
current->flags |= PF_NO_SETAFFINITY;
|
||||
|
||||
mutex_lock(&sqd->lock);
|
||||
while (1) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user