TWx Linux Repository
Go to file
David Howells 2c9dc472e6 rxrpc: Fix generation of serial numbers to skip zero
[ Upstream commit f31041417bf7f4a4df8b3bfb52cb31bbe805b934 ]

In the Rx protocol, every packet generated is marked with a per-connection
monotonically increasing serial number.  This number can be referenced in
an ACK packet generated in response to an incoming packet - thereby
allowing the sender to use this for RTT determination, amongst other
things.

However, if the reference field in the ACK is zero, it doesn't refer to any
incoming packet (it could be a ping to find out if a packet got lost, for
example) - so we shouldn't generate zero serial numbers.

Fix the generation of serial numbers to retry if it comes up with a zero.

Furthermore, since the serial numbers are only ever allocated within the
I/O thread this connection is bound to, there's no need for atomics so
remove that too.

Fixes: 17926a79320a ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: "David S. Miller" <davem@davemloft.net>
cc: Eric Dumazet <edumazet@google.com>
cc: Jakub Kicinski <kuba@kernel.org>
cc: Paolo Abeni <pabeni@redhat.com>
cc: linux-afs@lists.infradead.org
cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-02-16 19:10:49 +01:00
arch LoongArch/smp: Call rcutree_report_cpu_starting() at tlb_init() 2024-02-05 20:14:38 +00:00
block blk-mq: fix IO hang from sbitmap wakeup race 2024-02-05 20:14:33 +00:00
certs
crypto
Documentation rust: upgrade to Rust 1.73.0 2024-02-16 19:10:43 +01:00
drivers drm/i915/gvt: Fix uninitialized variable in handle_mmio() 2024-02-16 19:10:49 +01:00
fs xfs: respect the stable writes flag on the RT device 2024-02-16 19:10:46 +01:00
include dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV 2024-02-16 19:10:42 +01:00
init
io_uring
ipc
kernel perf: Fix the nr_addr_filters fix 2024-02-05 20:14:33 +00:00
lib kunit: run test suites only after module initialization completes 2024-02-05 20:14:34 +00:00
LICENSES
mm memblock: fix crash when reserved memory is not added to memory 2024-01-31 16:19:12 -08:00
net rxrpc: Fix generation of serial numbers to skip zero 2024-02-16 19:10:49 +01:00
rust rust: upgrade to Rust 1.73.0 2024-02-16 19:10:43 +01:00
samples
scripts rust: upgrade to Rust 1.73.0 2024-02-16 19:10:43 +01:00
security lsm: new security_file_ioctl_compat() hook 2024-01-31 16:18:54 -08:00
sound ASoC: codecs: wsa883x: fix PA volume control 2024-02-05 20:14:39 +00:00
tools selftests: net: avoid just another constant wait 2024-02-16 19:10:48 +01:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: add Catherine as xfs maintainer for 6.6.y 2024-02-16 19:10:43 +01:00
Makefile Linux 6.6.16 2024-02-05 20:14:39 +00:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.