USB: fixes for v5.10-rc2
Nothing major as of yet, we're adding support for Intel Alder Lake-S in dwc3, together with a few fixes that are quite important (memory leak in raw-gadget, probe crashes in goku_udc, and so on). Signed-off-by: Felipe Balbi <balbi@kernel.org> -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEElLzh7wn96CXwjh2IzL64meEamQYFAl+fxs0ACgkQzL64meEa mQbh9hAAy+R7f/Ma6yNOVESnkMq8tza2L1q1b8F3J/9GDV9TuLVc7rORXWlWzfHl uS/puEMqpK+DBQJrR5mdomGBZ2kwnQvCh7ejw1h9P+WS4K1ELOB/6SgRIX1/+8Co deRBuD+p/YjQosCNHukOj6I6dpgHrsg8AzfwWGAVNLxAtPsWNXYMHCAPkSR3duKK DuNNg4HKrBbjRhLq00lsGKjvq0Mpw/tjX6B9jhjvDeWaFRR13nP8qQt/iJ+ZOHGH LzUK+l138IrGF7ILdAHLHmg5kbkxSQS1Q4kL8MCfesq8+8AqT0XNncDTzsWhW8vv 0CVkblHJDlwL70ZFOkgWwgq7bCIoiMqiKjSOOPIhz+RwjYaffClQ9dRFCttjaMEx Unjjg6XnjC6hVE30kLh+MT9aWvm7ghZnmhhCjYuX/hjKabp8xjh5SNK8+P1eSR5X znIHFL09z5qo5xoCmOTrREXiclVpey1w0vkxzXiJJQCA7l9c3zBxBskHglXsMsRm ct3dySHh/ok5PG9MTFWwngTCQe4vQNkToza6ysqvrNgGLwuDTtqRTaeYxxYbFYBE 80j5mUdkqw4eQqcIpEBDaVb3GZuAOzXj51eExtl81xcNpPJPi4dfJrh+qe7eXsEz olc8Gb0VJws9FbHAancLQ5oq/PUEbAFWmx44vygN+0T5Mgp4GuE= =9Vi/ -----END PGP SIGNATURE----- Merge tag 'fixes-for-v5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: USB: fixes for v5.10-rc2 Nothing major as of yet, we're adding support for Intel Alder Lake-S in dwc3, together with a few fixes that are quite important (memory leak in raw-gadget, probe crashes in goku_udc, and so on). Signed-off-by: Felipe Balbi <balbi@kernel.org> * tag 'fixes-for-v5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb: usb: raw-gadget: fix memory leak in gadget_setup usb: dwc2: Avoid leaving the error_debugfs label unused usb: dwc3: ep0: Fix delay status handling usb: gadget: fsl: fix null pointer checking usb: gadget: goku_udc: fix potential crashes in probe usb: dwc3: pci: add support for the Intel Alder Lake-S
This commit is contained in:
commit
58d51f330e
|
@ -608,10 +608,13 @@ static int dwc2_driver_probe(struct platform_device *dev)
|
|||
#endif /* CONFIG_USB_DWC2_PERIPHERAL || CONFIG_USB_DWC2_DUAL_ROLE */
|
||||
return 0;
|
||||
|
||||
#if IS_ENABLED(CONFIG_USB_DWC2_PERIPHERAL) || \
|
||||
IS_ENABLED(CONFIG_USB_DWC2_DUAL_ROLE)
|
||||
error_debugfs:
|
||||
dwc2_debugfs_exit(hsotg);
|
||||
if (hsotg->hcd_enabled)
|
||||
dwc2_hcd_remove(hsotg);
|
||||
#endif
|
||||
error_drd:
|
||||
dwc2_drd_exit(hsotg);
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#define PCI_DEVICE_ID_INTEL_TGPLP 0xa0ee
|
||||
#define PCI_DEVICE_ID_INTEL_TGPH 0x43ee
|
||||
#define PCI_DEVICE_ID_INTEL_JSP 0x4dee
|
||||
#define PCI_DEVICE_ID_INTEL_ADLS 0x7ae1
|
||||
|
||||
#define PCI_INTEL_BXT_DSM_GUID "732b85d5-b7a7-4a1b-9ba0-4bbd00ffd511"
|
||||
#define PCI_INTEL_BXT_FUNC_PMU_PWR 4
|
||||
|
@ -367,6 +368,9 @@ static const struct pci_device_id dwc3_pci_id_table[] = {
|
|||
{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_JSP),
|
||||
(kernel_ulong_t) &dwc3_pci_intel_properties, },
|
||||
|
||||
{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ADLS),
|
||||
(kernel_ulong_t) &dwc3_pci_intel_properties, },
|
||||
|
||||
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_NL_USB),
|
||||
(kernel_ulong_t) &dwc3_pci_amd_properties, },
|
||||
{ } /* Terminating Entry */
|
||||
|
|
|
@ -1058,10 +1058,11 @@ void dwc3_ep0_send_delayed_status(struct dwc3 *dwc)
|
|||
{
|
||||
unsigned int direction = !dwc->ep0_expect_in;
|
||||
|
||||
dwc->delayed_status = false;
|
||||
|
||||
if (dwc->ep0state != EP0_STATUS_PHASE)
|
||||
return;
|
||||
|
||||
dwc->delayed_status = false;
|
||||
__dwc3_ep0_do_control_status(dwc, dwc->eps[direction]);
|
||||
}
|
||||
|
||||
|
|
|
@ -564,9 +564,12 @@ static int raw_ioctl_event_fetch(struct raw_dev *dev, unsigned long value)
|
|||
return -ENODEV;
|
||||
}
|
||||
length = min(arg.length, event->length);
|
||||
if (copy_to_user((void __user *)value, event, sizeof(*event) + length))
|
||||
if (copy_to_user((void __user *)value, event, sizeof(*event) + length)) {
|
||||
kfree(event);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
kfree(event);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1051,7 +1051,7 @@ static int fsl_ep_fifo_status(struct usb_ep *_ep)
|
|||
u32 bitmask;
|
||||
struct ep_queue_head *qh;
|
||||
|
||||
if (!_ep || _ep->desc || !(_ep->desc->bEndpointAddress&0xF))
|
||||
if (!_ep || !_ep->desc || !(_ep->desc->bEndpointAddress&0xF))
|
||||
return -ENODEV;
|
||||
|
||||
ep = container_of(_ep, struct fsl_ep, ep);
|
||||
|
|
|
@ -1760,6 +1760,7 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
goto err;
|
||||
}
|
||||
|
||||
pci_set_drvdata(pdev, dev);
|
||||
spin_lock_init(&dev->lock);
|
||||
dev->pdev = pdev;
|
||||
dev->gadget.ops = &goku_ops;
|
||||
|
@ -1793,7 +1794,6 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
}
|
||||
dev->regs = (struct goku_udc_regs __iomem *) base;
|
||||
|
||||
pci_set_drvdata(pdev, dev);
|
||||
INFO(dev, "%s\n", driver_desc);
|
||||
INFO(dev, "version: " DRIVER_VERSION " %s\n", dmastr());
|
||||
INFO(dev, "irq %d, pci mem %p\n", pdev->irq, base);
|
||||
|
|
Loading…
Reference in New Issue