The '7. Generic subsystem callbacks' should be a section title, but
the markdown syntax is not adequate now.
Fix it so the chapter can be linked at docs.kernel.org correctly.
Signed-off-by: Yiwei Lin <s921975628@gmail.com>
[ rjw: Changelog edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
The min/max limit perf values calculated based on frequency
may exceed the reasonable range of perf(highest perf, lowest perf).
Signed-off-by: Meng Li <li.meng@amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Alexandre Ghiti <alexghiti@rivosinc.com> says:
This contains 2 fixes for NAPOT: patch 1 disables the use of NAPOT
mapping for vmalloc/vmap and patch 2 implements pte_leaf_size() to
report NAPOT size.
* b4-shazam-merge:
riscv: Fix pte_leaf_size() for NAPOT
Revert "riscv: mm: support Svnapot in huge vmap"
Link: https://lore.kernel.org/r/20240227205016.121901-1-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This reverts commit ce173474cf.
We cannot correctly deal with NAPOT mappings in vmalloc/vmap because if
some part of a NAPOT mapping is unmapped, the remaining mapping is not
updated accordingly. For example:
ptr = vmalloc_huge(64 * 1024, GFP_KERNEL);
vunmap_range((unsigned long)(ptr + PAGE_SIZE),
(unsigned long)(ptr + 64 * 1024));
leads to the following kernel page table dump:
0xffff8f8000ef0000-0xffff8f8000ef1000 0x00000001033c0000 4K PTE N .. .. D A G . . W R V
Meaning the first entry which was not unmapped still has the N bit set,
which, if accessed first and cached in the TLB, could allow access to the
unmapped range.
That's because the logic to break the NAPOT mapping does not exist and
likely won't. Indeed, to break a NAPOT mapping, we first have to clear
the whole mapping, flush the TLB and then set the new mapping ("break-
before-make" equivalent). That works fine in userspace since we can handle
any pagefault occurring on the remaining mapping but we can't handle a kernel
pagefault on such mapping.
So fix this by reverting the commit that introduced the vmap/vmalloc
support.
Fixes: ce173474cf ("riscv: mm: support Svnapot in huge vmap")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20240227205016.121901-2-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Samuel Holland <samuel.holland@sifive.com> says:
This series fixes a couple of issues related to using the cbo.zero
instruction in userspace. The first patch fixes a bug where the wrong
enable bit gets set if the kernel is running in M-mode. The remaining
patches fix a bug where the enable bit gets reset to its default value
after a nonretentive idle state. I have hardware which reproduces this:
Before this series:
$ tools/testing/selftests/riscv/hwprobe/cbo
TAP version 13
1..3
ok 1 Zicboz block size
# Zicboz block size: 64
Illegal instruction
After applying this series:
$ tools/testing/selftests/riscv/hwprobe/cbo
TAP version 13
1..3
ok 1 Zicboz block size
# Zicboz block size: 64
ok 2 cbo.zero
ok 3 cbo.zero check
# Totals: pass:3 fail:0 xfail:0 xpass:0 skip:0 error:0
* b4-shazam-merge:
riscv: Save/restore envcfg CSR during CPU suspend
riscv: Add a custom ISA extension for the [ms]envcfg CSR
riscv: Fix enabling cbo.zero when running in M-mode
Link: https://lore.kernel.org/r/20240228065559.3434837-1-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
The value of the [ms]envcfg CSR is lost when entering a nonretentive
idle state, so the CSR must be rewritten when resuming the CPU.
Cc: <stable@vger.kernel.org> # v6.7+
Fixes: 43c16d51a1 ("RISC-V: Enable cbo.zero in usermode")
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Link: https://lore.kernel.org/r/20240228065559.3434837-4-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
The [ms]envcfg CSR was added in version 1.12 of the RISC-V privileged
ISA (aka S[ms]1p12). However, bits in this CSR are defined by several
other extensions which may be implemented separately from any particular
version of the privileged ISA (for example, some unrelated errata may
prevent an implementation from claiming conformance with Ss1p12). As a
result, Linux cannot simply use the privileged ISA version to determine
if the CSR is present. It must also check if any of these other
extensions are implemented. It also cannot probe the existence of the
CSR at runtime, because Linux does not require Sstrict, so (in the
absence of additional information) it cannot know if a CSR at that
address is [ms]envcfg or part of some non-conforming vendor extension.
Since there are several standard extensions that imply the existence of
the [ms]envcfg CSR, it becomes unwieldy to check for all of them
wherever the CSR is accessed. Instead, define a custom Xlinuxenvcfg ISA
extension bit that is implied by the other extensions and denotes that
the CSR exists as defined in the privileged ISA, containing at least one
of the fields common between menvcfg and senvcfg.
This extension does not need to be parsed from the devicetree or ISA
string because it can only be implemented as a subset of some other
standard extension.
Cc: <stable@vger.kernel.org> # v6.7+
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Link: https://lore.kernel.org/r/20240228065559.3434837-3-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
When the kernel is running in M-mode, the CBZE bit must be set in the
menvcfg CSR, not in senvcfg.
Cc: <stable@vger.kernel.org>
Fixes: 43c16d51a1 ("RISC-V: Enable cbo.zero in usermode")
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20240228065559.3434837-2-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Add myself as a maintainer for the various SiFive drivers, since I have
been performing cleanup activity on these drivers and reviewing patches
to them for a while now. Remove Palmer as a maintainer, as he is focused
on overall RISC-V architecture support.
Collapse some duplicate entries into the main SiFive drivers entry:
- Conor is already maintainer of standalone cache drivers as a whole,
and these files are also covered by the "sifive" file name regex.
- Paul's git tree has not been updated since 2018, and all file names
matching the "fu540" pattern also match the "sifive" pattern.
- Green has not been active on the LKML for a couple of years.
Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Acked-by: Paul Walmsley <paul.walmsley@sifive.com>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
Link: https://lore.kernel.org/r/20240215234941.1663791-1-samuel.holland@sifive.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Add MT6357 codec entry in the MFD driver.
Signed-off-by: Fabien Parent <fparent@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20240226-audio-i350-v1-13-4fa1cea1667f@baylibre.com
Signed-off-by: Lee Jones <lee@kernel.org>
To support GHES_ASSIST on Machine Check Architecture (MCA) error sources,
a set of GHES structures is provided by the system firmware for each MCA
error source. Each of these sets consists of a GHES structure for each MCA
bank on each logical CPU, with all structures of a set sharing a common
Related Source ID, equal to the Source ID of one of the MCA error source
structures.[1] On SOCs with large core counts, this typically equates to
tens of thousands of GHES_ASSIST structures for MCA under
"/sys/bus/platform/drivers/GHES".
Support for GHES_ASSIST however, hasn't been implemented in the kernel. As
such, the information provided through these structures is not consumed by
Linux. Moreover, these GHES_ASSIST structures for MCA, which are supposed
to provide supplemental information in context of an error reported by
hardware, are setup as independent error sources by the kernel during HEST
initialization.
Additionally, if the Type field of the Notification structure, associated
with these GHES_ASSIST structures for MCA, is set to Polled, the kernel
sets up a timer for each individual structure. The duration of the timer
is derived from the Poll Interval field of the Notification structure. On
SOCs with high core counts, this will result in tens of thousands of
timers expiring periodically causing unnecessary preemptions and wastage
of CPU cycles. The problem will particularly intensify if Poll Interval
duration is not sufficiently high.
Since GHES_ASSIST support is not present in kernel, skip initialization
of GHES_ASSIST structures for MCA to eliminate their performance impact.
[1] ACPI specification 6.5, section 18.7
Signed-off-by: Avadhut Naik <avadhut.naik@amd.com>
Reviewed-by: Yazen Ghannam <yazen.ghannam@amd.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Commit b38460bc46 ("kunit: Fix checksum tests on big endian CPUs")
fixed endianness issues with kunit checksum tests, but then
commit 6f4c45cbcb ("kunit: Add tests for csum_ipv6_magic and
ip_fast_csum") introduced new issues on big endian CPUs. Those issues
are once again reflected by the warnings reported by sparse.
So, fix them with the same approach, perform proper conversion in
order to support both little and big endian CPUs. Once the conversions
are properly done and the right types used, the sparse warnings are
cleared as well.
Reported-by: Erhard Furtner <erhard_f@mailbox.org>
Fixes: 6f4c45cbcb ("kunit: Add tests for csum_ipv6_magic and ip_fast_csum")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Tested-by: Charlie Jenkins <charlie@rivosinc.com>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: Paolo Abeni <pabeni@redhat.com>
Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
Link: https://lore.kernel.org/r/73df3a9e95c2179119398ad1b4c84cdacbd8dfb6.1708684443.git.christophe.leroy@csgroup.eu
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
'#interrupt-cells' is a required provided for interrupt providers,
hence make it required.
While at it, move '#interrupt-cells' in the example to match common sort
order.
Fixes: 361104b056 ("dt-bindings: mfd: Convert da9063 to yaml")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/f512045738d2102c771a171a514ed7cf612c6d6f.1708944455.git.geert+renesas@glider.be
Signed-off-by: Lee Jones <lee@kernel.org>
- mgmt: Fix limited discoverable off timeout
- hci_qca: Set BDA quirk bit if fwnode exists in DT
- hci_bcm4377: do not mark valid bd_addr as invalid
- hci_sync: Check the correct flag before starting a scan
- Enforce validation on max value of connection interval
- hci_sync: Fix accept_list when attempting to suspend
- hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
- Avoid potential use-after-free in hci_error_reset
- rfcomm: Fix null-ptr-deref in rfcomm_check_security
- hci_event: Fix wrongly recorded wakeup BD_ADDR
- qca: Fix wrong event type for patch config command
- qca: Fix triggering coredump implementation
-----BEGIN PGP SIGNATURE-----
iQJNBAABCAA3FiEE7E6oRXp8w05ovYr/9JCA4xAyCykFAmXfSTQZHGx1aXoudm9u
LmRlbnR6QGludGVsLmNvbQAKCRD0kIDjEDILKd2UD/4jJaoGygVTAlthLkllVEOu
mC52iXLpuxVfjIsHHMKPh4ysxTid4Zx0zijM7wLuZc7rCnOSw8Sdu72Mmm0q8Hcx
hxkp731oB0jDKUt9DMXBasNF/Gk10BubD79oy+rZx4D2lKNJoUgktbtyp+3rFo7b
2GdpxThYGz4UiiCVgZbMTv/kBzQvZPP/Dd/i+9dXq9sxDAi40bJcnT9o1/XLtEpN
Ctz482PLqANkBvkmqUOx5SkeA1GcvlcNd9jDU2Ou/vwpHTAQk10RxFIr+ywV2PVI
wieUAlD5OadlpDw1+0a6qz80MOEZg5I5qIpJ71h19KrMkWUlxOIomAKxjam6yUCb
GSykO9pU18Q247++V3YPdbSLclgsjnxVWDThI7gp5JRXsjPW3g7taV2T6S4Q6s3r
7f6FANeCYSL4sydnySXindwD3z8qsNqvCMblGrNM71COn9tv70Jyy6jZpqO+TttH
AnVH5EgAUjpKN+3ePicRioeZ6rpr651hmz/PNPbjMggUMxQebz4Bpri9gO8YeW0A
ksZVDfEXnuS0ev/uQKUEt/Fl+GiI64+QlipAFMPkgvQ1DtnEAYSzTYADKT6Owtuy
J8tvehnjc+0c7RIpXAt5/yVWeMdHZvr06udVvglSSmJ/ZzeFU4UVdTNb5mbaL3rV
9XNB4YyjMXmvEVR4/VhuGw==
=ZpLZ
-----END PGP SIGNATURE-----
Merge tag 'for-net-2024-02-28' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
Luiz Augusto von Dentz says:
====================
bluetooth pull request for net:
- mgmt: Fix limited discoverable off timeout
- hci_qca: Set BDA quirk bit if fwnode exists in DT
- hci_bcm4377: do not mark valid bd_addr as invalid
- hci_sync: Check the correct flag before starting a scan
- Enforce validation on max value of connection interval
- hci_sync: Fix accept_list when attempting to suspend
- hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
- Avoid potential use-after-free in hci_error_reset
- rfcomm: Fix null-ptr-deref in rfcomm_check_security
- hci_event: Fix wrongly recorded wakeup BD_ADDR
- qca: Fix wrong event type for patch config command
- qca: Fix triggering coredump implementation
* tag 'for-net-2024-02-28' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth:
Bluetooth: qca: Fix triggering coredump implementation
Bluetooth: hci_qca: Set BDA quirk bit if fwnode exists in DT
Bluetooth: qca: Fix wrong event type for patch config command
Bluetooth: Enforce validation on max value of connection interval
Bluetooth: hci_event: Fix handling of HCI_EV_IO_CAPA_REQUEST
Bluetooth: mgmt: Fix limited discoverable off timeout
Bluetooth: hci_event: Fix wrongly recorded wakeup BD_ADDR
Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security
Bluetooth: hci_sync: Fix accept_list when attempting to suspend
Bluetooth: Avoid potential use-after-free in hci_error_reset
Bluetooth: hci_sync: Check the correct flag before starting a scan
Bluetooth: hci_bcm4377: do not mark valid bd_addr as invalid
====================
Link: https://lore.kernel.org/r/20240228145644.2269088-1-luiz.dentz@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
When the decrypt request goes to the backlog and crypto_aead_decrypt
returns -EBUSY, tls_do_decryption will wait until all async
decryptions have completed. If one of them fails, tls_do_decryption
will return -EBADMSG and tls_decrypt_sg jumps to the error path,
releasing all the pages. But the pages have been passed to the async
callback, and have already been released by tls_decrypt_done.
The only true async case is when crypto_aead_decrypt returns
-EINPROGRESS. With -EBUSY, we already waited so we can tell
tls_sw_recvmsg that the data is available for immediate copy, but we
need to notify tls_decrypt_sg (via the new ->async_done flag) that the
memory has already been released.
Fixes: 8590541473 ("net: tls: handle backlogging of crypto requests")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://lore.kernel.org/r/4755dd8d9bebdefaa19ce1439b833d6199d4364c.1709132643.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
If we're not doing async, the handling is much simpler. There's no
reference counting, we just need to wait for the completion to wake us
up and return its result.
We should preferably also use a separate crypto_wait. I'm not seeing a
UAF as I did in the past, I think aec7961916 ("tls: fix race between
async notify and socket close") took care of it.
This will make the next fix easier.
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://lore.kernel.org/r/47bde5f649707610eaef9f0d679519966fc31061.1709132643.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
If we peek from 2 records with a currently empty rx_list, and the
first record is decrypted synchronously but the second record is
decrypted async, the following happens:
1. decrypt record 1 (sync)
2. copy from record 1 to the userspace's msg
3. queue the decrypted record to rx_list for future read(!PEEK)
4. decrypt record 2 (async)
5. queue record 2 to rx_list
6. call process_rx_list to copy data from the 2nd record
We currently pass copied=0 as skip offset to process_rx_list, so we
end up copying once again from the first record. We should skip over
the data we've already copied.
Seen with selftest tls.12_aes_gcm.recv_peek_large_buf_mult_recs
Fixes: 692d7b5d1f ("tls: Fix recvmsg() to be able to peek across multiple records")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://lore.kernel.org/r/1b132d2b2b99296bfde54e8a67672d90d6d16e71.1709132643.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
With mixed sync/async decryption, or failures of crypto_aead_decrypt,
we increment decrypt_pending but we never do the corresponding
decrement since tls_decrypt_done will not be called. In this case, we
should decrement decrypt_pending immediately to avoid getting stuck.
For example, the prequeue prequeue test gets stuck with mixed
modes (one async decrypt + one sync decrypt).
Fixes: 94524d8fc9 ("net/tls: Add support for async decryption of tls records")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Link: https://lore.kernel.org/r/c56d5fc35543891d5319f834f25622360e1bfbec.1709132643.git.sd@queasysnail.net
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This set of changes refactors the audio-related device tree nodes on
Tegra234 and improves USB support for Jetson AGX Xavier. Furthermore
this consolidates SD/MMC aliases on Tegra234 and provides correct
configuration data for the MGBE Ethernet devices found on Tegra234
so that they can operate at full speed.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmXY11QACgkQ3SOs138+
s6Hg5hAAjnK4X5fDwmDD882HBZCA87ikXSVxFzXFmjT/9Wu6I28YuNrL3LWCRAaJ
btX0xAJzTnZGhxGUig1nC+i56oxBZt71u8t/ap0pXKQK/An3LFDoNCgd+08SWMb1
aeCW5/VfZfuNpCTG8DRCPEqBPpgoiCNUSGbdKa0Xy9o2clY0GHvhFNmym5H0k+1A
vHbJij/ByRDE1ffjfC6x+iCRS0BO1wlxmwSQKj6t/5TFKsYOuG/XsqCQ7C4yW67I
MzyzQoQ1dWFGZUPm6DvXRz8Nl0gPxjy/1aI3cJRd7Q0U65TrC8IwVbQhfv8Eqc0W
iUEXAvriEbKtZk3ocbdeZBy27hlCNCSJTba8l19hOh7qg0wC1+pyXIUDkX9UJ1xU
svgh9eiw4v3wGtW+tz06X+dKn9FUcTwA8fiXzGjya2nJhOi2o1w/ciJZN6S1lahn
vRYTyImxyE+nBkPmZuv2oSypxEHYz09vmcGZIYUN96EqfyMEyev/aIQG2KyJtC9c
onpseos2vFUzp8TIn76z3MLDEJHLoebKrlxp0ZoFLGq25nHkcplASjvXoQ6wuzVu
nclpwQQuJx0vWznno0YZbl1sQmiCNZTE1Zg9UyVGwQHesIwdIEvoZYQ1rsKnGHUx
XpCpR/caZx8S4BrN56/1UzqJu10gJrlKfNZxpLrMHaMzoxqx6PM=
=98Yi
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgtVAACgkQYKtH/8kJ
UieIHBAAhPXau6VOLbw6rbo/kNP9Eu6g4kvMH0d2wklqfUX1crpEyNFtI6a+fLfw
ITSQDTzICyQjGLWp+wW3mq8zSa++2lCke1xsSj6c77RFqvg09KLdjVPufnfY57ft
8703q+GXHTd5QvHj332edrRq6HkrXo/Mh9P1f3bJr7SiXkdmccbi7aWffOAeM2Be
TKi+FFzW5n7hAWdzBuFUyszvWnx4c/fx69arWAH0EYL1hyQ94lTBWX8CELQF5bW5
9F05u0CVJ8ePsuw8duKngZnoa53k5lPNkemfdcjNN1WKZc8Eupt00ioHpctb7afE
1ux2PLYOHTjqV01a1xnjrD4eZ7Oq8etw4tCb3GORu0tL+NCxgHiiyh5Sg/GY/CTm
F/yl7/AunFgp5/ahegSk6RFswLbM2cEfaPSBexZiFPzonGXXaJb9V4zgSuNth6BN
NzsexuVRohw4wZa1o9dfrnVsIguCHQIpVrBY7K6GDpTLlzynXD6hSyvZbg7r2O2l
tmaU19e2eek7fteNEEmHKpvq38dyQaL7azRxxqAVZOsHvAaB3DJQxZrqXyNPem85
eTSjVAdh5E1TXLJypD8ONn9U6daWvviYXPcOpdu9x22PqGS07fC8z/j1RLe0bAKw
oo7qQwxTcqu/tqGIzs6APQky1UDS/nRJzFY5fGQS8X0ZsnFVG7c=
=QB8Y
-----END PGP SIGNATURE-----
Merge tag 'tegra-for-6.9-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
arm64: tegra: Device tree changes for v6.9-rc1
This set of changes refactors the audio-related device tree nodes on
Tegra234 and improves USB support for Jetson AGX Xavier. Furthermore
this consolidates SD/MMC aliases on Tegra234 and provides correct
configuration data for the MGBE Ethernet devices found on Tegra234
so that they can operate at full speed.
* tag 'tegra-for-6.9-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
arm64: tegra: Remove Jetson Orin NX and Jetson Orin Nano DTSI
arm64: tegra: Add audio support for Jetson Orin NX and Jetson Orin Nano
arm64: tegra: Define missing IO ports
arm64: tegra: Move AHUB ports to SoC DTSI
arm64: tegra: Add USB Type-C controller for Jetson AGX Xavier
arm64: tegra: Add USB device support for Jetson AGX Xavier
arm64: tegra: Add current monitors for Jetson Xavier
arm64: tegra: Add AXI configuration for Tegra234 MGBE
arm64: tegra: Use consistent SD/MMC aliases on Tegra234
arm64: tegra: Enable cros-ec-spi as wake source
Link: https://lore.kernel.org/r/20240223174849.1509465-5-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Add support for the LG Optimus 4X HD and LG Optimus VU devices and clean
up some minor issues.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmXY1mUACgkQ3SOs138+
s6E7Lw/7BQTi/ofcVRVjp5TdVXUov3HkB7KeCxUfH+1J7KQxV2bP5LuuOunqBgAP
E8We0pUp71tJHZV3uVzaLNv0IkDG9/ARuXGKQjdH20nN7ix9ubbEwofmx4INIUgN
raFrTOg7DtFWsP1rputkfb7kXhv4XEe3lo52wH416l/HCaloJITyJCMYGkmWoaJU
Up+XuwxB6TpbsUtqt8pZnUVCvOMAkz9L3i21MNmlbPmROH6o7riJHkjVo1Gq3iTl
vAoKJZiMNRXWJEw+3/YCtd3ATa3/P5U+P1e6jS9SnmEJEISXna9C0qZWn6YJ8L+5
3As+QClzyxSKMpHS6GdRiGVLgk/kIfsRC279Wv5RsxTGxRcECPTk+jh0fJOdgXYi
hBALSQ5Leb9Ipq5NxP3DjRWraaN+ZCHVvtW3RJuunEAL8iu+G/wmAmuP+K2Hda5J
cGoYc1XWnE+ASlK0lfv4/XDmL0WTTy5jlrvddEkAVPJn4s68f8SWCR/dS848ZxOW
W2vaoWOWz1qUdNgfkgQ8zJK5Laseb/EGzS7BVQxmYwnEs3A/Ri6CVQZfeA19O4fP
4Uufr13P4hdci8wal9v7s6lpig97c0zKGWqI+SFVBLGFNNYuh9bVQ9q1w85uOSwF
ymSVvy+RP7h45PZY1Qnx2DvhiLBOK8hKYRsYZLWd/J5qmteDCBo=
=c6vf
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgtQoACgkQYKtH/8kJ
UicPKw/+LrmNzKQQLoWYT2/VEvSY463T9UvxIv4iYwVQRVyYT/ellmwBttjIkkIv
ytrrJVJF7pqWPHn6a+EP9/cSWLDIF1i1P+rkR4toqvybnmOfiYPBmU1YUhcCVbJc
a3QlZqtOUcmlsenWU11BGEYBTibVObDOF68xpzKYlqeTFW4ZIIUe1HxjOuH3/IYW
vFy3BdhhMlgUYcfmUF6Mozc6sPQDlZFgXZ8Kul3m3WLeKTEKqfSXV1CRskirozOd
1Isz4VnPc2uyq6U5LpfWLpWVHztwAe5tdcRC3RcsPweZyvbDR0hZ6QiU0RDto7Z0
eCLIRcLw9soSgpOqPTIZW+PUr6ey57eFq8yGe59pyfOrilFYjSzOD611kEzyOaS4
iFasuM4WHS4Pr5K8KdWpwi5vRF0L7hvWbVgomXBW9TPigKdlrgKPRPRVm4exKEI8
h2D9TlN6SsmX15ffMX77ffa2TpEDJ0HgRGPd1yFgFXUNGs9OT/rk/FW2ujmQssnX
+/EAURI+6vwew8J9Qo2QUflr8sDtkArzNR2pzTvwMVOiI+/2YBHQHPAvi5qh83cC
8Uh8mManX8v2vfhMN5Vzr6cDtZtohC/ogJ7Ou5m/ld/TsD9OGFMTKT2vDq2jXDc4
I2AfxJHHVKnDCYpYU/wv0jJXc4gTLsuhcMxsCBH95kjzMeCH1Oc=
=y+q1
-----END PGP SIGNATURE-----
Merge tag 'tegra-for-6.9-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
ARM: tegra: Device tree changes for v6.9-rc1
Add support for the LG Optimus 4X HD and LG Optimus VU devices and clean
up some minor issues.
* tag 'tegra-for-6.9-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
ARM: tegra: Add device-tree for LG Optimus 4X HD (P880)
ARM: tegra: Add device-tree for LG Optimus Vu (P895)
ARM: tegra: nexus7: Add missing clock binding into sound node
ARM: tegra: Enable cros-ec-spi as wake source
Link: https://lore.kernel.org/r/20240223174849.1509465-4-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This contains device tree bindings additions for LG Optimus devices as
well as cleanups for the PMC hardware block.
-----BEGIN PGP SIGNATURE-----
iQIyBAABCAAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmXY1e4ACgkQ3SOs138+
s6E+Og/4gYi63k8VjbhzhMnr855ZEKWTh6VqXHU2ol/MAkV/ZBsky8jdgiKfqzWt
GP80giHsPUEFqTGaT8Rxh/ikBWeaKzUJuP7SeCEdPZ/g16amn5ZKqNVlsEDdQZky
OEY1QlX+dBHthYvJXAnh193MbmCLmt4t/0NNLHau5r0gQhY5OgZ2eJlKLO57OcUf
pmp99O7SLWfH6sZdUqWqKrqMCZHxQWKvwj/Efj+qoL5lCFVpGzE4ZrUVu1TvrWYL
BMSsGzy/cLOygo+MCR/qZDFjP4HjRmEAA27jQtLK0mbBY1QJpx3zpuSiGRhQox+n
H6nRHS1Dq4OhDWlnNZc8z0seajgCVMljxVc3bavVqdUlpEuUBXymEN2b0hMctP5p
iBCZCgajue5VAP0A4T9fBtja52nScjvvoJwWITa8Gc354JfrVKl/7zbZvaxxP5XB
ubmEJO59ZgQKBX/C3cir3C9UO8p8seibIPJuC25/0U7ECl/ZMjwGU9UnfOcO/E4G
LZRPL/oxI39rQXm1VyH2wT1vKKOiNGOgyLZaMi5G3QuytjV7DBo0QCnBJGHromhV
ab2mQV5RCNYUc0uEKBX3mneAQ184qtQrCdpKRAlACtdCupUD/pFVVq4Xl+b9m5bp
jCxZuauCdYIPil3BSBK0INayB0qDhixeBPTjsiDlfWR490bvvQ==
=7E47
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgtNQACgkQYKtH/8kJ
UicH6RAA0yBcsQlo0tZ3KU9XflLya8DrJYxIHAVD+B2k4HqXwTWg5ZiDONduC+uA
AjY5QLrWRpLR3H2KXURBr5TU777XB0COxUN9/3EhZqQwUQoPD2olwpA6DJ6JEPgQ
kn7vrzQVCna4DPs+nqh6fSoZ16UfZ35MBji3fSP8bjzjzvpz4AuZ5PN7v1c97eXz
6RcM++mMoEp0MQR9pmtHGDqtANE0wAb0qAl48Jo+JKGcnxd8PsyddElGcdf1iJfV
qIM/rYqZdHoBwnftAyASUBU3VVGq6dKwQ2bEuP1T0ONVV2LhNNvG/jarm9GeVuH0
W+zRAC07u86iDpxNDAxwXgKjIDXwlFkTCY62FZUQiaX9qVc5EfBt2shbN00qxyhl
0Non+NenBaolt094po/sfmW6+zWcbRwiYFl9IkIaV81wM0jkeyVRXUGc/Ffcbgws
0XmpbZMZCHO3lw7AFccz2frr7BREVwlwTtUBYIGdom6ldLj2uvYouM1B1P1VZ/aI
JMAtvWAO9pb0BhRmdQ+ldR3b3URO8j9lstJusxoT0OzBLyTcFJ+Bf/UTYHNIbqd8
/SL7SVLAzH1ag7+wcvfO0C2N9MIWPIve0pR4IUy2NLaSKDjRbI0sFYy8iJ/GMpHo
6Lb5TURPzsozf0B8q0ZqnTjjD4VZEisRZ9TrkRVif0sWhLgb02E=
=WYO1
-----END PGP SIGNATURE-----
Merge tag 'tegra-for-6.9-dt-bindings' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
dt-bindings: Changes for v6.9-rc1
This contains device tree bindings additions for LG Optimus devices as
well as cleanups for the PMC hardware block.
* tag 'tegra-for-6.9-dt-bindings' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
dt-bindings: arm: tegra: Add LG Optimus Vu P895 and Optimus 4X P880
dt-bindings: tegra: pmc: Update scratch as an optional aperture
Link: https://lore.kernel.org/r/20240223174849.1509465-3-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
- Add pin control, I2C, GPIO, CA76 cluster, Ethernet, SD/MMC, DMA, and
HyperFLASH/QSPI (RPC) support for the R-Car V4M SoC,
- Add I2C EEPROM, Ethernet, eMMC, and QSPI FLASH support for the Gray
Hawk Single development board,
- Fix PCIe power on ULCB development boards equipped with the
Shimafuji Kingfisher extension,
- Add PSCI support for the RZ/G3S SoC,
- Add camera support for the RZ/G2UL SMARC EVK development board,
- Add display support for the RZ/G2L{,C} and RZ/V2L SoCs and SMARC EVK
development boards,
- Miscellaneous fixes and improvements,
-----BEGIN PGP SIGNATURE-----
iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCZdh7QwAKCRCKwlD9ZEnx
cDxcAQDLIZaS/ODio5p/KmIGwi/5tuY1dK/FOMwkmOuOvlTSSwD+PsYBDEhr98of
Mz7woOMUnMh0/SbCgggd69u4KLnbwAs=
=IcGX
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgtHIACgkQYKtH/8kJ
UifE9Q/8Coa4FOLFWy9qzZAh1Fw/UZnUqp50vePr34xyhH5iOrajsQSP2ZAfRIoI
jSk0DMr8WZEVvBa4YQ/nBCg6aJWtSrCAQcQ99FCtLnuId0XkfNNXgCWFNTadSCLQ
lpDuMMCCEkkFn1AnRP8UcO4jC6uRn7nIKXaHRj/pVBwda+z34xEdsbYuIW7GPoVq
385VCE0aLKqm/u6MpcuWlGwdKAAmO0FsnpFSZkoec71D2TmF1+miXTD4l/0Llhmh
DBU6ms+WmQvpn5u8+RsVP2LawSoyok3vejXu2N6WhqIUozwVi6FWYBwaOnZD2EMa
5FYhCosCpuJETBC3eh5/hT13onmZMiJqE056KKOB4oTFP7Mjr6HAQNPBZtmIF+Rh
r3pgZ1p6QX1NrMie+jO6rsHxxJXvl/7Iy+4kH0tvzN2dPsmE36xbSnxA3CACA+66
Ny17pwaVczLsp+FnbhEs8PVYVzfIPuzVq46aJTxVbNbfGK/mpex5ncoU2K6FkJCg
0mKKjTeaf75jIYWCR395GeAdJ2DVl+IIEIXqE5me5I3Ug0FzVLDEWa+rPiKXAELf
OC7HEWCoq2IZsiwvilv7v+OgRzX4EuRBy8Yf8IkDYxwMy7SDtmkfStIhrcCmuvsR
jXK6L5fk9Z4yuhezNOXNJy5gb2KlRiO69tpnTdJyvR5x6nfwWzk=
=fAmU
-----END PGP SIGNATURE-----
Merge tag 'renesas-dts-for-v6.9-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
Renesas DTS updates for v6.9 (take two)
- Add pin control, I2C, GPIO, CA76 cluster, Ethernet, SD/MMC, DMA, and
HyperFLASH/QSPI (RPC) support for the R-Car V4M SoC,
- Add I2C EEPROM, Ethernet, eMMC, and QSPI FLASH support for the Gray
Hawk Single development board,
- Fix PCIe power on ULCB development boards equipped with the
Shimafuji Kingfisher extension,
- Add PSCI support for the RZ/G3S SoC,
- Add camera support for the RZ/G2UL SMARC EVK development board,
- Add display support for the RZ/G2L{,C} and RZ/V2L SoCs and SMARC EVK
development boards,
- Miscellaneous fixes and improvements,
* tag 'renesas-dts-for-v6.9-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel: (31 commits)
arm64: dts: renesas: rzg2l-smarc: Enable DU and link with DSI
arm64: dts: renesas: r9a07g054: Add DU node
arm64: dts: renesas: r9a07g044: Add DU node
arm64: dts: renesas: gray-hawk-single: Add QSPI FLASH support
arm64: dts: renesas: r8a779h0: Add RPC node
arm64: dts: renesas: r8a779h0: Add DMA support
arm64: dts: renesas: gray-hawk-single: Add eMMC support
arm64: dts: renesas: r8a779h0: Add SD/MMC node
ARM: dts: renesas: r8a7778: Add missing reg-names to sound node
arm64: dts: renesas: rzg2ul-smarc: Enable CRU, CSI support
arm64: dts: renesas: gray-hawk-single: Add Ethernet support
arm64: dts: renesas: r8a779h0: Add Ethernet-AVB support
arm64: dts: renesas: r8a779g0: Correct avb[01] reg sizes
arm64: dts: renesas: r8a779a0: Correct avb[01] reg sizes
arm64: dts: renesas: r9a08g045: Add PSCI support
arm64: dts: renesas: rzg3s-smarc-som: Guard Ethernet IRQ GPIO hogs
arm64: dts: renesas: r9a08g045: Add missing interrupts to IRQC node
arm64: dts: renesas: rzg2l: Add missing interrupts to IRQC nodes
arm64: dts: renesas: r8a779h0: Add CA76 operating points
arm64: dts: renesas: r8a779h0: Add CPU core clocks
...
Link: https://lore.kernel.org/r/cover.1708687134.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
In configurations with CONFIG_TICK_ONESHOT but no CONFIG_NO_HZ or
CONFIG_HIGH_RES_TIMERS, tick_sched_timer_dying() is stubbed out,
but still defined as a global function as well:
kernel/time/tick-sched.c:1599:6: error: redefinition of 'tick_sched_timer_dying'
1599 | void tick_sched_timer_dying(int cpu)
| ^
kernel/time/tick-sched.h:111:20: note: previous definition is here
111 | static inline void tick_sched_timer_dying(int cpu) { }
| ^
This configuration only appears with ARM CONFIG_ARCH_BCM_MOBILE,
which should not actually select CONFIG_TICK_ONESHOT.
Adjust the #ifdef for the stub to match the condition for building the
tick-sched.c file for consistency with the definition and to avoid
the build regression.
Fixes: 3aedb7fcd8 ("tick/sched: Remove useless oneshot ifdeffery")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20240228123850.3499024-1-arnd@kernel.org
Even if the roll forward recovery stopped due to any error, we have to fix
the write pointers in order to mount the disk from the previous checkpoint.
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
In cfd66bb715 ("f2fs: fix deadloop in foreground GC"), we needed to check
the number of blocks in a section instead of the segment.
Fixes: cfd66bb715 ("f2fs: fix deadloop in foreground GC")
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Don't get stuck in the f2fs_gc loop while disabling checkpoint. Instead, we have
a time-based management.
Reviewed-by: Chao Yu <chao@kernel.org>
Reviewed-by: Daeho Jeong <daehojeong@google.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Use it to simulate no free segment case during block allocation.
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
It needs to check compress flag w/ .i_sem lock, otherwise, compressed
inode may be disabled after the check condition, it's not needed to
set compress option on non-compress inode.
Fixes: e1e8debec6 ("f2fs: add F2FS_IOC_SET_COMPRESS_OPTION ioctl")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
If CONFIG_F2FS_CHECK_FS is off, and for very rare corner case that
we run out of free segment, we should not panic kernel, instead,
let's handle such error correctly in its caller.
Signed-off-by: Chao Yu <chao@kernel.org>
Tested-by: Zhiguo Niu <zhiguo.niu@unisoc.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
There is low probability that an out-of-bounds segment will be got
on a small-capacity device. In order to prevent subsequent write requests
allocating block address from this invalid segment, which may cause
unexpected issue, stop checkpoint should be performed.
Also introduce a new stop cp reason: STOP_CP_REASON_NO_SEGMENT.
Note, f2fs_stop_checkpoint(, false) is complex and it may sleep, so we should
move it outside segmap_lock spinlock coverage in get_new_segment().
Signed-off-by: Zhiguo Niu <zhiguo.niu@unisoc.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Commit 093749e296 ("f2fs: support age threshold based garbage
collection") added this declaration, but w/ definition, delete
it.
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
It's possible that mtk_crtc->event is NULL in
mtk_drm_crtc_finish_page_flip().
pending_needs_vblank value is set by mtk_crtc->event, but in
mtk_drm_crtc_atomic_flush(), it's is not guarded by the same
lock in mtk_drm_finish_page_flip(), thus a race condition happens.
Consider the following case:
CPU1 CPU2
step 1:
mtk_drm_crtc_atomic_begin()
mtk_crtc->event is not null,
step 1:
mtk_drm_crtc_atomic_flush:
mtk_drm_crtc_update_config(
!!mtk_crtc->event)
step 2:
mtk_crtc_ddp_irq ->
mtk_drm_finish_page_flip:
lock
mtk_crtc->event set to null,
pending_needs_vblank set to false
unlock
pending_needs_vblank set to true,
step 2:
mtk_crtc_ddp_irq ->
mtk_drm_finish_page_flip called again,
pending_needs_vblank is still true
//null pointer
Instead of guarding the entire mtk_drm_crtc_atomic_flush(), it's more
efficient to just check if mtk_crtc->event is null before use.
Fixes: 119f517362 ("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.")
Signed-off-by: Hsin-Yi Wang <hsinyi@chromium.org>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20240223212404.3709690-1-hsinyi@chromium.org/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Move rxrpc_send_ACK() to output.c to so that it is with
rxrpc_send_ack_packet() prior to merging the two.
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
Don't pick values out of the wire header in rxkad when setting up DATA
packet security, but rather use other sources. This makes it easier to get
rid of txb->wire.
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
Split (sub)packet preparation and timestamping out of the DATA packet
transmission function to make it easier to glue multiple txbufs together
into a jumbo DATA packet. This will require preparation and timestamping
of all the subpackets in a txbuf, and these functions provide convenient
points to place the required iteration.
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
Add a kvec[] to the rxrpc_txbuf struct to point to the contributory buffers
for a packet. Start with just a single element for now, but this will be
expanded later.
Make the ACK sending function use it, which means that rxrpc_fill_out_ack()
doesn't need to return the size of the sack table, padding and trailer.
Make the data sending code use it, both in where sendmsg() packages code up
into txbufs and where those txbufs are transmitted.
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
Merge together the DF and non-DF branches of the transmission function and
always set the flag to the right thing before transmitting. If we see
-EMSGSIZE from udp_sendmsg(), turn off DF and retry.
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
Don't reset the DF flag after transmission, but rather set it when needed
since it should be a fast op now that we call IP directly.
This includes turning it off for RESPONSE packets and, for the moment, ACK
packets. In future, we will need to turn it on for ACK packets used to do
path MTU discovery.
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
call->tx_transmitted and call->acks_prev_seq don't need to be managed with
cmpxchg() and barriers as it's only used within the singular I/O thread.
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
Strip the atomic ops and barriering off of the call timer tracking as this
is handled solely within the I/O thread, except for expect_term_by which is
set by sendmsg().
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
From AFS-3.3 a trailer containing extra info was added to the ACK packet
format - but AF_RXRPC has the names of some of the fields mixed up compared
to other AFS implementations.
Rename the struct and the fields to make them match.
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
Add a field to rxrpc_txbuf in which to store the checksum to go in the
header as this may get overwritten in the wire header struct when
transmitting as part of a jumbo packet.
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
Convert the transmission buffer flags into a mask and use | and & rather
than bitops functions (atomic ops are not required as only the I/O thread
can manipulate them once submitted for transmission).
The bottom byte can then correspond directly to the Rx protocol header
flags.
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