mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
usb: dwc3: Fix NULL pointer exception in dwc3_pci_remove()
commit7b412b04a0upstream. In dwc3_pci_quirks() function, gpiod lookup table is only registered for baytrail SOC. But in dwc3_pci_remove(), we try to unregistered it without any checks. This leads to NULL pointer de-reference exception in gpiod_remove_lookup_table() when unloading the module for non baytrail SOCs. This patch fixes this issue. Fixes:5741022cbd("usb: dwc3: pci: Add GPIO lookup table on platforms without ACPI GPIO resources") Cc: <stable@vger.kernel.org> Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c4d1e71e56
commit
2ff85eaf16
@@ -283,8 +283,10 @@ err:
|
||||
static void dwc3_pci_remove(struct pci_dev *pci)
|
||||
{
|
||||
struct dwc3_pci *dwc = pci_get_drvdata(pci);
|
||||
struct pci_dev *pdev = dwc->pci;
|
||||
|
||||
gpiod_remove_lookup_table(&platform_bytcr_gpios);
|
||||
if (pdev->device == PCI_DEVICE_ID_INTEL_BYT)
|
||||
gpiod_remove_lookup_table(&platform_bytcr_gpios);
|
||||
#ifdef CONFIG_PM
|
||||
cancel_work_sync(&dwc->wakeup_work);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user