Linux kernel source tree
Go to file
Pavan Chebbi 614f4d166e tg3: Set coherent DMA mask bits to 31 for BCM57766 chipsets
The hardware on Broadcom 1G chipsets have a known limitation
where they cannot handle DMA addresses that cross over 4GB.
When such an address is encountered, the hardware sets the
address overflow error bit in the DMA status register and
triggers a reset.

However, BCM57766 hardware is setting the overflow bit and
triggering a reset in some cases when there is no actual
underlying address overflow. The hardware team analyzed the
issue and concluded that it is happening when the status
block update has an address with higher (b16 to b31) bits
as 0xffff following a previous update that had lowest bits
as 0xffff.

To work around this bug in the BCM57766 hardware, set the
coherent dma mask from the current 64b to 31b. This will
ensure that upper bits of the status block DMA address are
always at most 0x7fff, thus avoiding the improper overflow
check described above. This work around is intended for only
status block and ring memories and has no effect on TX and
RX buffers as they do not require coherent memory.

Fixes: 72f2afb8a6 ("[TG3]: Add DMA address workaround")
Reported-by: Salam Noureddine <noureddine@arista.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Reviewed-by: Michal Kubiak <michal.kubiak@intel.com>
Link: https://patch.msgid.link/20241119055741.147144-1-pavan.chebbi@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2024-11-24 16:45:48 -08:00
arch Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
block for-6.13/block-20241118 2024-11-18 16:50:08 -08:00
certs sign-file,extract-cert: use pkcs11 provider for OPENSSL MAJOR >= 3 2024-09-20 19:52:48 +03:00
crypto Random number generator updates for Linux 6.13-rc1. 2024-11-19 10:43:44 -08:00
Documentation Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
drivers tg3: Set coherent DMA mask bits to 31 for BCM57766 chipsets 2024-11-24 16:45:48 -08:00
fs Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
include Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
init printk changes for 6.13 2024-11-20 09:21:11 -08:00
io_uring A rather large update for timekeeping and timers: 2024-11-19 16:35:06 -08:00
ipc fdget(), more trivial conversions 2024-11-03 01:28:06 -05:00
kernel Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
lib Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
LICENSES LICENSES: add 0BSD license text 2024-09-01 20:43:24 -07:00
mm Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
net rtnetlink: fix rtnl_dump_ifinfo() error path 2024-11-24 16:43:13 -08:00
rust Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
samples bpf-next-bpf-next-6.13 2024-11-21 08:11:04 -08:00
scripts bpf-next-bpf-next-6.13 2024-11-21 08:11:04 -08:00
security This update includes the following changes: 2024-11-19 10:28:41 -08:00
sound Devicetree updates for v6.13: 2024-11-20 13:19:25 -08:00
tools selftests: fix nested double quotes in f-string 2024-11-24 16:42:44 -08:00
usr initramfs: shorten cmd_initfs in usr/Makefile 2024-07-16 01:07:52 +09:00
virt the bulk of struct fd memory safety stuff 2024-11-18 12:24:06 -08:00
.clang-format clang-format: Update with v6.11-rc1's for_each macro list 2024-08-02 13:20:31 +02:00
.cocciconfig
.editorconfig .editorconfig: remove trim_trailing_whitespace option 2024-06-13 16:47:52 +02:00
.get_maintainer.ignore MAINTAINERS: Retire Ralf Baechle 2024-11-12 15:48:59 +01:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore Kbuild updates for v6.12 2024-09-24 13:02:06 -07:00
.mailmap media updates for v6.13-rc1 2024-11-20 14:01:15 -08:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS cgroup: Changes for v6.13 2024-11-20 09:54:49 -08:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS Networking changes for 6.13. 2024-11-21 08:28:08 -08:00
Makefile Linux 6.12 2024-11-17 14:15:08 -08:00
README README: Fix spelling 2024-03-18 03:36:32 -06:00

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 reStructuredText 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.