net: bcmgenet: Reset RBUF on first open
authorPhil Elwell <phil@raspberrypi.com>
Fri, 25 Sep 2020 14:07:23 +0000 (15:07 +0100)
committerDom Cobley <popcornmix@gmail.com>
Mon, 19 Feb 2024 11:33:04 +0000 (11:33 +0000)
commit50cd17746a90ce87a52c09d4b7143d14432c0754
treec44795a7cf35c939243364ac58d3b4f8291c5b7d
parent6c720bbae190786baeab46d1741716002070e63e
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

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
drivers/net/ethernet/broadcom/genet/bcmgenet.c