]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
net: bcmgenet: Reset RBUF on first open
authorPhil Elwell <phil@raspberrypi.com>
Mon, 1 Apr 2024 11:09:33 +0000 (13:09 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 3 Apr 2024 10:07:00 +0000 (11:07 +0100)
commit0a6380cb4c6b5c1d6dad226ba3130f9090f0ccea
tree4da2343aa30b1ba2ed85af04aa9f4f0178de82cf
parentef15ddeeb6bee87c044bf7754fac524545bf71e8
net: bcmgenet: Reset RBUF on first open

If the RBUF logic is not reset when the kernel starts then there
may be some data left over from any network boot loader. If the
64-byte packet headers are enabled then this can be fatal.

Extend bcmgenet_dma_disable to do perform the reset, but not when
called from bcmgenet_resume in order to preserve a wake packet.

N.B. This different handling of resume is just based on a hunch -
why else wouldn't one reset the RBUF as well as the TBUF? If this
isn't the case then it's easy to change the patch to make the RBUF
reset unconditional.

See: https://github.com/raspberrypi/linux/issues/3850
See: https://github.com/raspberrypi/firmware/issues/1882

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
Signed-off-by: Maarten Vanraes <maarten@rmail.be>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/genet/bcmgenet.c