Commit 2bda24e
can: gs_usb: gs_usb_open/close(): fix memory leak
The gs_usb driver appears to suffer from a malady common to many USB
CAN adapter drivers in that it performs usb_alloc_coherent() to
allocate a number of USB request blocks (URBs) for RX, and then later
relies on usb_kill_anchored_urbs() to free them, but this doesn't
actually free them. As a result, this may be leaking DMA memory that's
been used by the driver.
This commit is an adaptation of the techniques found in the esd_usb2
driver where a similar design pattern led to a memory leak. It
explicitly frees the RX URBs and their DMA memory via a call to
usb_free_coherent(). Since the RX URBs were allocated in the
gs_can_open(), we remove them in gs_can_close() rather than in the
disconnect function as was done in esd_usb2.
For more information, see the 928150f ("can: esd_usb2: fix memory
leak").
Link: https://lore.kernel.org/all/alpine.DEB.2.22.394.2206031547001.1630869@thelappy
Fixes: d08e973 ("can: gs_usb: Added support for the GS_USB CAN devices")
Cc: stable@vger.kernel.org
Signed-off-by: Rhett Aultman <rhett.aultman@samsara.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>1 parent 374e11f commit 2bda24e
1 file changed
Lines changed: 21 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
268 | 268 | | |
269 | 269 | | |
270 | 270 | | |
| 271 | + | |
| 272 | + | |
271 | 273 | | |
272 | 274 | | |
273 | 275 | | |
| |||
742 | 744 | | |
743 | 745 | | |
744 | 746 | | |
| 747 | + | |
745 | 748 | | |
746 | 749 | | |
747 | 750 | | |
| |||
752 | 755 | | |
753 | 756 | | |
754 | 757 | | |
755 | | - | |
| 758 | + | |
756 | 759 | | |
757 | 760 | | |
758 | 761 | | |
759 | 762 | | |
760 | 763 | | |
761 | 764 | | |
762 | 765 | | |
| 766 | + | |
| 767 | + | |
763 | 768 | | |
764 | 769 | | |
765 | 770 | | |
| |||
781 | 786 | | |
782 | 787 | | |
783 | 788 | | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
784 | 793 | | |
785 | 794 | | |
786 | 795 | | |
787 | 796 | | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
788 | 800 | | |
789 | 801 | | |
790 | 802 | | |
| |||
842 | 854 | | |
843 | 855 | | |
844 | 856 | | |
| 857 | + | |
845 | 858 | | |
846 | 859 | | |
847 | 860 | | |
848 | 861 | | |
849 | 862 | | |
850 | | - | |
| 863 | + | |
851 | 864 | | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
852 | 871 | | |
853 | 872 | | |
854 | 873 | | |
| |||
0 commit comments