mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	io_uring: allow multishot recv CQEs to overflow
With commit aa1df3a360 ("io_uring: fix CQE reordering"), there are
stronger guarantees for overflow ordering. Specifically ensuring that
userspace will not receive out of order receive CQEs. Therefore this is
not needed any more for recv/recvmsg.
Signed-off-by: Dylan Yudaken <dylany@meta.com>
Link: https://lore.kernel.org/r/20221107125236.260132-4-dylany@meta.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
			
			
This commit is contained in:
		
							parent
							
								
									515e269612
								
							
						
					
					
						commit
						e2ad599d1e
					
				
					 1 changed files with 2 additions and 6 deletions
				
			
		| 
						 | 
					@ -602,15 +602,11 @@ static inline bool io_recv_finish(struct io_kiocb *req, int *ret,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!mshot_finished) {
 | 
						if (!mshot_finished) {
 | 
				
			||||||
		if (io_post_aux_cqe(req->ctx, req->cqe.user_data, *ret,
 | 
							if (io_post_aux_cqe(req->ctx, req->cqe.user_data, *ret,
 | 
				
			||||||
				    cflags | IORING_CQE_F_MORE, false)) {
 | 
									    cflags | IORING_CQE_F_MORE, true)) {
 | 
				
			||||||
			io_recv_prep_retry(req);
 | 
								io_recv_prep_retry(req);
 | 
				
			||||||
			return false;
 | 
								return false;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		/*
 | 
							/* Otherwise stop multishot but use the current result. */
 | 
				
			||||||
		 * Otherwise stop multishot but use the current result.
 | 
					 | 
				
			||||||
		 * Probably will end up going into overflow, but this means
 | 
					 | 
				
			||||||
		 * we cannot trust the ordering anymore
 | 
					 | 
				
			||||||
		 */
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	io_req_set_res(req, *ret, cflags);
 | 
						io_req_set_res(req, *ret, cflags);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue