[PATCH v2 0/5] Fix prestera driver fail to probe twice

From: Elad Nachman
Date: Wed Mar 20 2024 - 13:21:04 EST


From: Elad Nachman <enachman@xxxxxxxxxxx>

Fix issues resulting from insmod, rmmod and insmod of the
prestera driver:

1. Call of firmware switch HW reset was missing, and is required
in order to make the firmware loader shift to the correct state
needed for loading the next firmware.
2. Time-out for waiting for firmware loader to be ready was too small.
3. memory referencing after freeing
4. MAC addresses wrapping
5. Missing SFP unbind (phylink release) of a port during the port release.

v2:
1) Split first patch to firmware call for switch HW reset and to
increasing of firmware loader wait to be ready timeout
2) Explain why is switch HW reset call to the firmware required
before shutdown in commit message, and fix wording
3) Use a simpler bitwise-and on the last byte of the base MAC address
instead of randomizing again the entire MAC address.
reflect that change in the commit message, and explain why it is
needed (switch HW implementation requirement).
4) Add Fixes Tags to all commits.
5) For timeout enlargement commit, fix wording in comment and move
timeout units to milliseconds.
6) Add Tested-By tags.
7) Add patch to call prestera_port_sfp_unbind() from
prestera_destroy_ports() in order to release phylink.

Elad Nachman (5):
net: marvell: prestera: fix driver reload
net: marvell: prestera: enlarge fw restart time
net: marvell: prestera: fix memory use after free
net: marvell: prestera: force good base mac
net: marvell: prestera: unbind sfp port on exit

drivers/net/ethernet/marvell/prestera/prestera_hw.c | 8 ++++++++
drivers/net/ethernet/marvell/prestera/prestera_hw.h | 1 +
drivers/net/ethernet/marvell/prestera/prestera_main.c | 5 ++++-
drivers/net/ethernet/marvell/prestera/prestera_pci.c | 7 ++++++-
drivers/net/ethernet/marvell/prestera/prestera_router.c | 1 -
.../net/ethernet/marvell/prestera/prestera_router_hw.c | 1 -
6 files changed, 19 insertions(+), 4 deletions(-)

--
2.25.1