io_uring-6.15-20250502

-----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmgU+cYQHGF4Ym9lQGtl
 cm5lbC5kawAKCRD301j7KXHgpoFVD/0aEdC9uYnU9aDwBD8qahbo3xIXTVf3ZWsb
 BINHxoA2FOM/NDwf8pohbvkrgbum7pE+wQBl8DFfJaNl4cxvHf/wK+jTOIrg/rMr
 7k6k2J1AlLNzGuQds0IL6CjJTNNzqMwN2/7mLyfBtr5eH3c2Ai1QDSMowcPNBMmW
 M6XMBpG0YXh35mxLKZaSeN91IzUzKDnRGuafiJOWXGc80Al5m9u5XPaarefj9/7g
 YPgEyxuUBS5R5/Q8Q5ZIwaTWmySAJjzD7c8c/HuGLjqaMJEGs+sVhZX77BC71/VY
 QUW3fHY+Vi6qfQMpSV46EqoKBYMWFqePSj0Oe3MTY0Rz3JiQ9j8jY7NXBpPxPR8N
 oOwg9fTWJNUTVL0SyXlUqe6gHLxrg8PKLvCEdfbfno8TikOP8I1YeOpT9LUSvLvQ
 e4mcS/p16lDnt5Hn9jzaWRUy278trSsuw8dcheQkbTZA8ScqnesaJyT/iIWQLKhb
 GE8L1sG0Vk2wk9tU+zJGmTdA+CPoKTUgvznEsKKS+JT17Cypmj98dGKP+WLtFs3S
 Vkpw4hBqSRSPIWw1xsz2jIy0fkTW/wzodlbyPAmEDV3UFma63/cW6KH+pponMVy6
 wk2pAY7LalvmT3Vuu+883rcWBj2ZeWAnvK5FGrpspNXJv6bXRGabonQHg2FmQ2SX
 aTotRb1oqQ==
 =oTOy
 -----END PGP SIGNATURE-----

Merge tag 'io_uring-6.15-20250502' of git://git.kernel.dk/linux

Pull io_uring fix from Jens Axboe:
 "Just a single fix, annotating the fdinfo side SQ/CQ head/tail reads
  with data_race() as they are known racy.

  Only serves to silence syzbot testing, by definition these debug
  outputs are going to be racy as they may change as soon as we've read
  them"

* tag 'io_uring-6.15-20250502' of git://git.kernel.dk/linux:
  io_uring/fdinfo: annotate racy sq/cq head/tail reads
This commit is contained in:
Linus Torvalds 2025-05-02 10:21:34 -07:00
commit 731e5e1a5b

View file

@ -123,11 +123,11 @@ __cold void io_uring_show_fdinfo(struct seq_file *m, struct file *file)
seq_printf(m, "SqMask:\t0x%x\n", sq_mask);
seq_printf(m, "SqHead:\t%u\n", sq_head);
seq_printf(m, "SqTail:\t%u\n", sq_tail);
seq_printf(m, "CachedSqHead:\t%u\n", ctx->cached_sq_head);
seq_printf(m, "CachedSqHead:\t%u\n", data_race(ctx->cached_sq_head));
seq_printf(m, "CqMask:\t0x%x\n", cq_mask);
seq_printf(m, "CqHead:\t%u\n", cq_head);
seq_printf(m, "CqTail:\t%u\n", cq_tail);
seq_printf(m, "CachedCqTail:\t%u\n", ctx->cached_cq_tail);
seq_printf(m, "CachedCqTail:\t%u\n", data_race(ctx->cached_cq_tail));
seq_printf(m, "SQEs:\t%u\n", sq_tail - sq_head);
sq_entries = min(sq_tail - sq_head, ctx->sq_entries);
for (i = 0; i < sq_entries; i++) {