usb: max-3421: Prevent corruption of freed memory
commit b5fdf5c6e6bee35837e160c00ac89327bdad031b upstream. The MAX-3421 USB driver remembers the state of the USB toggles for a device/endpoint. To save SPI writes, this was only done when a new device/endpoint was being used. Unfortunately, if the old device was removed, this would cause writes to freed memory. To fix this, a simpler scheme is used. The toggles are read from hardware when a URB is completed, and the toggles are always written to hardware when any URB transaction is started. This will cause a few more SPI transactions, but no causes kernel panics. Fixes: 2d53139f ("Add support for using a MAX3421E chip as a host driver.") Issue: FP3SEC-163 Change-Id: Ied2bfa09a4841869778c6d4c29ef9b3ba8116a2b Cc: stable <stable@vger.kernel.org> Signed-off-by:Mark Tomlinson <mark.tomlinson@alliedtelesis.co.nz> Link: https://lore.kernel.org/r/20210625031456.8632-1-mark.tomlinson@alliedtelesis.co.nz Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org> (cherry picked from commit 48e448d6) (cherry picked from commit 551ba5c6f77f03736d131132eb4f466e9dbc2f5b)
Loading
Please register or sign in to comment